1dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/*===---- altivec.h - Standard header for type generic math ---------------===*\
2dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner *
3dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner * Permission is hereby granted, free of charge, to any person obtaining a copy
4dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner * of this software and associated documentation files (the "Software"), to deal
5dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner * in the Software without restriction, including without limitation the rights
6dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner * copies of the Software, and to permit persons to whom the Software is
8dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner * furnished to do so, subject to the following conditions:
9dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner *
10dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner * The above copyright notice and this permission notice shall be included in
11dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner * all copies or substantial portions of the Software.
12dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner *
13dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner * THE SOFTWARE.
20dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner *
21dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner\*===----------------------------------------------------------------------===*/
22dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
23dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner#ifndef __ALTIVEC_H
24dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner#define __ALTIVEC_H
25dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
26dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner#ifndef __ALTIVEC__
27dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner#error "AltiVec support not enabled"
28dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner#endif
29dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
30dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* constants for mapping CR6 bits to predicate result. */
31dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
32dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner#define __CR6_EQ     0
33dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner#define __CR6_EQ_REV 1
34dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner#define __CR6_LT     2
35dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner#define __CR6_LT_REV 3
36dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __ATTRS_o_ai __attribute__((__overloadable__, __always_inline__))
384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_perm(vector signed char a, vector signed char b, vector unsigned char c);
414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
433ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsevvec_perm(vector unsigned char a,
443ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev         vector unsigned char b,
453ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev         vector unsigned char c);
464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
47f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevstatic vector bool char __ATTRS_o_ai
48f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_perm(vector bool char a, vector bool char b, vector unsigned char c);
49f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_perm(vector short a, vector short b, vector unsigned char c);
524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
543ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsevvec_perm(vector unsigned short a,
553ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev         vector unsigned short b,
563ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev         vector unsigned char c);
574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
58f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevstatic vector bool short __ATTRS_o_ai
59f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_perm(vector bool short a, vector bool short b, vector unsigned char c);
60f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
61f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevstatic vector pixel __ATTRS_o_ai
62f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_perm(vector pixel a, vector pixel b, vector unsigned char c);
63f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_perm(vector int a, vector int b, vector unsigned char c);
664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_perm(vector unsigned int a, vector unsigned int b, vector unsigned char c);
694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
70f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevstatic vector bool int __ATTRS_o_ai
71f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_perm(vector bool int a, vector bool int b, vector unsigned char c);
72f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_perm(vector float a, vector float b, vector unsigned char c);
75dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
76dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_abs */
77dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
78dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner#define __builtin_altivec_abs_v16qi vec_abs
79dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner#define __builtin_altivec_abs_v8hi  vec_abs
80dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner#define __builtin_altivec_abs_v4si  vec_abs
81dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
83dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_abs(vector signed char a)
84dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
85dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vmaxsb(a, -a);
86dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
87dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed short __ATTRS_o_ai
89dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_abs(vector signed short a)
90dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
91dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vmaxsh(a, -a);
92dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
93dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed int __ATTRS_o_ai
95dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_abs(vector signed int a)
96dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
97dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vmaxsw(a, -a);
98dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
99dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
1004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
101dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_abs(vector float a)
102dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
1033ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  vector unsigned int res = (vector unsigned int)a
1043ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                            & (vector unsigned int)(0x7FFFFFFF);
105ab866b46f3f626ac2da42d2b16ec3b5c04105e38Chris Lattner  return (vector float)res;
106dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
107dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
108dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_abss */
109dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
110dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner#define __builtin_altivec_abss_v16qi vec_abss
111dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner#define __builtin_altivec_abss_v8hi  vec_abss
112dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner#define __builtin_altivec_abss_v4si  vec_abss
113dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
1144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
115dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_abss(vector signed char a)
116dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
1173ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vmaxsb
1183ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           (a, __builtin_altivec_vsubsbs((vector signed char)(0), a));
119dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
120dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
1214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed short __ATTRS_o_ai
122dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_abss(vector signed short a)
123dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
1243ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vmaxsh
1253ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           (a, __builtin_altivec_vsubshs((vector signed short)(0), a));
126dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
127dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
1284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed int __ATTRS_o_ai
129dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_abss(vector signed int a)
130dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
1313ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vmaxsw
1323ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           (a, __builtin_altivec_vsubsws((vector signed int)(0), a));
133dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
134dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
135dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_add */
136dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
1374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
138dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_add(vector signed char a, vector signed char b)
139dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
140dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return a + b;
141dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
142dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
14305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector signed char __ATTRS_o_ai
14405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_add(vector bool char a, vector signed char b)
14505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
14605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector signed char)a + b;
14705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
14805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
14905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector signed char __ATTRS_o_ai
15005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_add(vector signed char a, vector bool char b)
15105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
15205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a + (vector signed char)b;
15305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
15405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
1554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
156dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_add(vector unsigned char a, vector unsigned char b)
157dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
158dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return a + b;
159dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
160dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
16105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned char __ATTRS_o_ai
16205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_add(vector bool char a, vector unsigned char b)
16305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
16405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector unsigned char)a + b;
16505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
16605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
16705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned char __ATTRS_o_ai
16805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_add(vector unsigned char a, vector bool char b)
16905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
17005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a + (vector unsigned char)b;
17105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
17205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
1734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
1744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_add(vector short a, vector short b)
1754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a + b;
1774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
1784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
17905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector short __ATTRS_o_ai
18005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_add(vector bool short a, vector short b)
18105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
18205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector short)a + b;
18305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
18405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
18505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector short __ATTRS_o_ai
18605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_add(vector short a, vector bool short b)
18705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
18805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a + (vector short)b;
18905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
19005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
1914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
1924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_add(vector unsigned short a, vector unsigned short b)
1934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a + b;
1954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
1964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned short __ATTRS_o_ai
19805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_add(vector bool short a, vector unsigned short b)
19905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
20005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector unsigned short)a + b;
20105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
20205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
20305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned short __ATTRS_o_ai
20405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_add(vector unsigned short a, vector bool short b)
20505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
20605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a + (vector unsigned short)b;
20705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
20805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
2094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
2104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_add(vector int a, vector int b)
2114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
2124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a + b;
2134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
2144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
21505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector int __ATTRS_o_ai
21605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_add(vector bool int a, vector int b)
21705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
21805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector int)a + b;
21905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
22005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
22105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector int __ATTRS_o_ai
22205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_add(vector int a, vector bool int b)
22305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
22405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a + (vector int)b;
22505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
22605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
2274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
2284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_add(vector unsigned int a, vector unsigned int b)
2294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
2304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a + b;
2314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
2324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
23305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned int __ATTRS_o_ai
23405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_add(vector bool int a, vector unsigned int b)
23505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
23605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector unsigned int)a + b;
23705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
23805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
23905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned int __ATTRS_o_ai
24005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_add(vector unsigned int a, vector bool int b)
24105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
24205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a + (vector unsigned int)b;
24305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
24405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
2454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
2464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_add(vector float a, vector float b)
2474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
2484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a + b;
2494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
2504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vaddubm */
2524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vaddubm vec_vaddubm
2544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
2564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vaddubm(vector signed char a, vector signed char b)
2574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
2584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a + b;
2594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
2604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
26105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector signed char __ATTRS_o_ai
26205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vaddubm(vector bool char a, vector signed char b)
26305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
26405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector signed char)a + b;
26505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
26605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
26705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector signed char __ATTRS_o_ai
26805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vaddubm(vector signed char a, vector bool char b)
26905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
27005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a + (vector signed char)b;
27105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
27205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
2734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
2744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vaddubm(vector unsigned char a, vector unsigned char b)
2754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
2764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a + b;
2774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
2784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
27905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned char __ATTRS_o_ai
28005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vaddubm(vector bool char a, vector unsigned char b)
28105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
28205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector unsigned char)a + b;
28305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
28405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
28505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned char __ATTRS_o_ai
28605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vaddubm(vector unsigned char a, vector bool char b)
28705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
28805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a + (vector unsigned char)b;
28905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
29005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
2914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vadduhm */
2924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vadduhm vec_vadduhm
2944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
2964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vadduhm(vector short a, vector short b)
2974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
2984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a + b;
2994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
3004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
30105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector short __ATTRS_o_ai
30205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vadduhm(vector bool short a, vector short b)
30305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
30405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector short)a + b;
30505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
30605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
30705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector short __ATTRS_o_ai
30805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vadduhm(vector short a, vector bool short b)
30905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
31005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a + (vector short)b;
31105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
31205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
3134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
3144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vadduhm(vector unsigned short a, vector unsigned short b)
3154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
3164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a + b;
3174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
3184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
31905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned short __ATTRS_o_ai
32005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vadduhm(vector bool short a, vector unsigned short b)
32105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
32205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector unsigned short)a + b;
32305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
32405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
32505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned short __ATTRS_o_ai
32605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vadduhm(vector unsigned short a, vector bool short b)
32705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
32805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a + (vector unsigned short)b;
32905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
33005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
3314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vadduwm */
3324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vadduwm vec_vadduwm
3344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
3364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vadduwm(vector int a, vector int b)
3374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
3384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a + b;
3394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
3404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
34105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector int __ATTRS_o_ai
34205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vadduwm(vector bool int a, vector int b)
34305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
34405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector int)a + b;
34505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
34605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
34705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector int __ATTRS_o_ai
34805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vadduwm(vector int a, vector bool int b)
34905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
35005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a + (vector int)b;
35105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
35205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
3534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
3544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vadduwm(vector unsigned int a, vector unsigned int b)
3554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
3564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a + b;
3574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
3584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned int __ATTRS_o_ai
36005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vadduwm(vector bool int a, vector unsigned int b)
36105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
36205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector unsigned int)a + b;
36305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
36405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
36505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned int __ATTRS_o_ai
36605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vadduwm(vector unsigned int a, vector bool int b)
36705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
36805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a + (vector unsigned int)b;
36905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
37005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
3714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vaddfp */
3724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vaddfp  vec_vaddfp
3744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
3764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vaddfp(vector float a, vector float b)
3774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
3784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a + b;
3794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
3804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_addc */
3824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __attribute__((__always_inline__))
3844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_addc(vector unsigned int a, vector unsigned int b)
3854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
3864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vaddcuw(a, b);
3874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
3884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vaddcuw */
3904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __attribute__((__always_inline__))
3924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vaddcuw(vector unsigned int a, vector unsigned int b)
3934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
3944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vaddcuw(a, b);
3954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
3964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_adds */
3984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
4004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_adds(vector signed char a, vector signed char b)
4014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
4024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vaddsbs(a, b);
4034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
4044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
40505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector signed char __ATTRS_o_ai
40605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_adds(vector bool char a, vector signed char b)
40705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
40805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return __builtin_altivec_vaddsbs((vector signed char)a, b);
40905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
41005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
41105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector signed char __ATTRS_o_ai
41205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_adds(vector signed char a, vector bool char b)
41305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
41405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return __builtin_altivec_vaddsbs(a, (vector signed char)b);
41505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
41605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
4174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
4184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_adds(vector unsigned char a, vector unsigned char b)
4194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
4204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vaddubs(a, b);
4214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
4224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned char __ATTRS_o_ai
42405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_adds(vector bool char a, vector unsigned char b)
42505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
42605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return __builtin_altivec_vaddubs((vector unsigned char)a, b);
42705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
42805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
42905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned char __ATTRS_o_ai
43005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_adds(vector unsigned char a, vector bool char b)
43105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
43205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return __builtin_altivec_vaddubs(a, (vector unsigned char)b);
43305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
43405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
4354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
4364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_adds(vector short a, vector short b)
4374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
4384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vaddshs(a, b);
4394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
4404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
44105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector short __ATTRS_o_ai
44205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_adds(vector bool short a, vector short b)
44305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
44405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return __builtin_altivec_vaddshs((vector short)a, b);
44505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
44605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
44705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector short __ATTRS_o_ai
44805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_adds(vector short a, vector bool short b)
44905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
45005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return __builtin_altivec_vaddshs(a, (vector short)b);
45105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
45205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
4534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
4544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_adds(vector unsigned short a, vector unsigned short b)
4554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
4564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vadduhs(a, b);
4574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
4584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
45905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned short __ATTRS_o_ai
46005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_adds(vector bool short a, vector unsigned short b)
46105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
46205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return __builtin_altivec_vadduhs((vector unsigned short)a, b);
46305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
46405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
46505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned short __ATTRS_o_ai
46605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_adds(vector unsigned short a, vector bool short b)
46705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
46805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return __builtin_altivec_vadduhs(a, (vector unsigned short)b);
46905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
47005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
4714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
4724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_adds(vector int a, vector int b)
4734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
4744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vaddsws(a, b);
4754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
4764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
47705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector int __ATTRS_o_ai
47805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_adds(vector bool int a, vector int b)
47905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
48005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return __builtin_altivec_vaddsws((vector int)a, b);
48105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
48205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
48305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector int __ATTRS_o_ai
48405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_adds(vector int a, vector bool int b)
48505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
48605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return __builtin_altivec_vaddsws(a, (vector int)b);
48705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
48805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
4894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
4904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_adds(vector unsigned int a, vector unsigned int b)
4914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
4924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vadduws(a, b);
4934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
4944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
49505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned int __ATTRS_o_ai
49605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_adds(vector bool int a, vector unsigned int b)
49705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
49805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return __builtin_altivec_vadduws((vector unsigned int)a, b);
49905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
50005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
50105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned int __ATTRS_o_ai
50205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_adds(vector unsigned int a, vector bool int b)
50305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
50405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return __builtin_altivec_vadduws(a, (vector unsigned int)b);
50505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
50605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
5074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vaddsbs */
5084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
50905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector signed char __ATTRS_o_ai
5104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vaddsbs(vector signed char a, vector signed char b)
5114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
5124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vaddsbs(a, b);
5134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
5144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
51505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector signed char __ATTRS_o_ai
51605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vaddsbs(vector bool char a, vector signed char b)
51705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
51805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return __builtin_altivec_vaddsbs((vector signed char)a, b);
51905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
52005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
52105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector signed char __ATTRS_o_ai
52205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vaddsbs(vector signed char a, vector bool char b)
52305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
52405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return __builtin_altivec_vaddsbs(a, (vector signed char)b);
52505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
52605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
5274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vaddubs */
5284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
52905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned char __ATTRS_o_ai
5304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vaddubs(vector unsigned char a, vector unsigned char b)
5314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
5324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vaddubs(a, b);
5334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
5344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
53505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned char __ATTRS_o_ai
53605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vaddubs(vector bool char a, vector unsigned char b)
53705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
53805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return __builtin_altivec_vaddubs((vector unsigned char)a, b);
53905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
54005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
54105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned char __ATTRS_o_ai
54205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vaddubs(vector unsigned char a, vector bool char b)
54305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
54405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return __builtin_altivec_vaddubs(a, (vector unsigned char)b);
54505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
54605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
5474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vaddshs */
5484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
54905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector short __ATTRS_o_ai
5504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vaddshs(vector short a, vector short b)
5514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
5524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vaddshs(a, b);
5534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
5544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
55505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector short __ATTRS_o_ai
55605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vaddshs(vector bool short a, vector short b)
55705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
55805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return __builtin_altivec_vaddshs((vector short)a, b);
55905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
56005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
56105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector short __ATTRS_o_ai
56205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vaddshs(vector short a, vector bool short b)
56305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
56405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return __builtin_altivec_vaddshs(a, (vector short)b);
56505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
56605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
5674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vadduhs */
5684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
56905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned short __ATTRS_o_ai
5704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vadduhs(vector unsigned short a, vector unsigned short b)
5714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
5724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vadduhs(a, b);
5734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
5744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
57505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned short __ATTRS_o_ai
57605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vadduhs(vector bool short a, vector unsigned short b)
57705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
57805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return __builtin_altivec_vadduhs((vector unsigned short)a, b);
57905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
58005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
58105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned short __ATTRS_o_ai
58205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vadduhs(vector unsigned short a, vector bool short b)
58305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
58405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return __builtin_altivec_vadduhs(a, (vector unsigned short)b);
58505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
58605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
5874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vaddsws */
5884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
58905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector int __ATTRS_o_ai
5904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vaddsws(vector int a, vector int b)
5914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
5924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vaddsws(a, b);
5934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
5944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
59505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector int __ATTRS_o_ai
59605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vaddsws(vector bool int a, vector int b)
59705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
59805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return __builtin_altivec_vaddsws((vector int)a, b);
59905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
60005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
60105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector int __ATTRS_o_ai
60205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vaddsws(vector int a, vector bool int b)
60305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
60405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return __builtin_altivec_vaddsws(a, (vector int)b);
60505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
60605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
6074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vadduws */
6084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
60905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned int __ATTRS_o_ai
6104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vadduws(vector unsigned int a, vector unsigned int b)
6114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vadduws(a, b);
6134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
6144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
61505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned int __ATTRS_o_ai
61605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vadduws(vector bool int a, vector unsigned int b)
61705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
61805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return __builtin_altivec_vadduws((vector unsigned int)a, b);
61905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
62005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
62105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned int __ATTRS_o_ai
62205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vadduws(vector unsigned int a, vector bool int b)
62305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
62405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return __builtin_altivec_vadduws(a, (vector unsigned int)b);
62505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
62605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
6274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_and */
6284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
6294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vand vec_and
6304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
6314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
6324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_and(vector signed char a, vector signed char b)
6334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & b;
6354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
6364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
63705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector signed char __ATTRS_o_ai
63805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_and(vector bool char a, vector signed char b)
63905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
64005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector signed char)a & b;
64105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
64205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
64305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector signed char __ATTRS_o_ai
64405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_and(vector signed char a, vector bool char b)
64505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
64605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a & (vector signed char)b;
64705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
64805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
6494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
6504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_and(vector unsigned char a, vector unsigned char b)
6514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & b;
6534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
6544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
65505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned char __ATTRS_o_ai
65605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_and(vector bool char a, vector unsigned char b)
65705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
65805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector unsigned char)a & b;
65905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
66005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
66105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned char __ATTRS_o_ai
66205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_and(vector unsigned char a, vector bool char b)
66305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
66405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a & (vector unsigned char)b;
66505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
66605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
66705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector bool char __ATTRS_o_ai
66805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_and(vector bool char a, vector bool char b)
66905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
67005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a & b;
67105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
67205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
6734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
6744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_and(vector short a, vector short b)
6754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & b;
6774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
6784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
67905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector short __ATTRS_o_ai
68005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_and(vector bool short a, vector short b)
68105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
68205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector short)a & b;
68305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
68405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
68505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector short __ATTRS_o_ai
68605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_and(vector short a, vector bool short b)
68705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
68805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a & (vector short)b;
68905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
69005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
6914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
6924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_and(vector unsigned short a, vector unsigned short b)
6934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & b;
6954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
6964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
69705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned short __ATTRS_o_ai
69805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_and(vector bool short a, vector unsigned short b)
69905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
70005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector unsigned short)a & b;
70105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
70205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
70305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned short __ATTRS_o_ai
70405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_and(vector unsigned short a, vector bool short b)
70505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
70605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a & (vector unsigned short)b;
70705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
70805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
70905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector bool short __ATTRS_o_ai
71005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_and(vector bool short a, vector bool short b)
71105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
71205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a & b;
71305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
71405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
7154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
7164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_and(vector int a, vector int b)
7174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
7184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & b;
7194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
7204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
72105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector int __ATTRS_o_ai
72205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_and(vector bool int a, vector int b)
72305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
72405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector int)a & b;
72505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
72605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
72705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector int __ATTRS_o_ai
72805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_and(vector int a, vector bool int b)
72905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
73005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a & (vector int)b;
73105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
73205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
7334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
7344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_and(vector unsigned int a, vector unsigned int b)
7354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
7364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & b;
7374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
7384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
73905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned int __ATTRS_o_ai
74005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_and(vector bool int a, vector unsigned int b)
74105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
74205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector unsigned int)a & b;
74305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
74405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
74505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned int __ATTRS_o_ai
74605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_and(vector unsigned int a, vector bool int b)
74705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
74805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a & (vector unsigned int)b;
74905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
75005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
75105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector bool int __ATTRS_o_ai
75205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_and(vector bool int a, vector bool int b)
75305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
75405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a & b;
75505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
75605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
7574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
7584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_and(vector float a, vector float b)
7594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
7604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  vector unsigned int res = (vector unsigned int)a & (vector unsigned int)b;
7614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)res;
7624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
7634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
76405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector float __ATTRS_o_ai
76505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_and(vector bool int a, vector float b)
76605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
76705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  vector unsigned int res = (vector unsigned int)a & (vector unsigned int)b;
76805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector float)res;
76905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
77005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
77105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector float __ATTRS_o_ai
77205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_and(vector float a, vector bool int b)
77305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
77405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  vector unsigned int res = (vector unsigned int)a & (vector unsigned int)b;
77505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector float)res;
77605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
77705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
7784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vand */
7794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
7804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
7814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vand(vector signed char a, vector signed char b)
7824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
7834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & b;
7844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
7854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
78605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector signed char __ATTRS_o_ai
78705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vand(vector bool char a, vector signed char b)
78805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
78905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector signed char)a & b;
79005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
79105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
79205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector signed char __ATTRS_o_ai
79305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vand(vector signed char a, vector bool char b)
79405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
79505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a & (vector signed char)b;
79605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
79705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
7984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
7994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vand(vector unsigned char a, vector unsigned char b)
8004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
8014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & b;
8024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
8034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
80405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned char __ATTRS_o_ai
80505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vand(vector bool char a, vector unsigned char b)
80605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
80705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector unsigned char)a & b;
80805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
80905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
81005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned char __ATTRS_o_ai
81105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vand(vector unsigned char a, vector bool char b)
81205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
81305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a & (vector unsigned char)b;
81405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
81505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
81605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector bool char __ATTRS_o_ai
81705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vand(vector bool char a, vector bool char b)
81805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
81905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a & b;
82005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
82105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
8224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
8234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vand(vector short a, vector short b)
8244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
8254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & b;
8264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
8274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
82805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector short __ATTRS_o_ai
82905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vand(vector bool short a, vector short b)
83005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
83105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector short)a & b;
83205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
83305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
83405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector short __ATTRS_o_ai
83505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vand(vector short a, vector bool short b)
83605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
83705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a & (vector short)b;
83805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
83905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
8404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
8414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vand(vector unsigned short a, vector unsigned short b)
8424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
8434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & b;
8444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
8454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
84605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned short __ATTRS_o_ai
84705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vand(vector bool short a, vector unsigned short b)
84805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
84905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector unsigned short)a & b;
85005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
85105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
85205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned short __ATTRS_o_ai
85305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vand(vector unsigned short a, vector bool short b)
85405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
85505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a & (vector unsigned short)b;
85605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
85705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
85805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector bool short __ATTRS_o_ai
85905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vand(vector bool short a, vector bool short b)
86005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
86105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a & b;
86205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
86305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
8644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
8654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vand(vector int a, vector int b)
8664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
8674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & b;
8684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
8694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
87005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector int __ATTRS_o_ai
87105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vand(vector bool int a, vector int b)
87205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
87305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector int)a & b;
87405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
87505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
87605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector int __ATTRS_o_ai
87705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vand(vector int a, vector bool int b)
87805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
87905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a & (vector int)b;
88005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
88105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
8824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
8834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vand(vector unsigned int a, vector unsigned int b)
8844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
8854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & b;
8864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
8874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
88805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned int __ATTRS_o_ai
88905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vand(vector bool int a, vector unsigned int b)
89005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
89105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector unsigned int)a & b;
89205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
89305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
89405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned int __ATTRS_o_ai
89505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vand(vector unsigned int a, vector bool int b)
89605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
89705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a & (vector unsigned int)b;
89805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
89905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
90005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector bool int __ATTRS_o_ai
90105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vand(vector bool int a, vector bool int b)
90205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
90305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a & b;
90405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
90505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
9064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
9074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vand(vector float a, vector float b)
9084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
9094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  vector unsigned int res = (vector unsigned int)a & (vector unsigned int)b;
9104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)res;
9114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
9124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
91305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector float __ATTRS_o_ai
91405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vand(vector bool int a, vector float b)
91505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
91605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  vector unsigned int res = (vector unsigned int)a & (vector unsigned int)b;
91705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector float)res;
91805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
91905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
92005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector float __ATTRS_o_ai
92105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vand(vector float a, vector bool int b)
92205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
92305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  vector unsigned int res = (vector unsigned int)a & (vector unsigned int)b;
92405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector float)res;
92505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
92605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
9274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_andc */
9284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
9294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vandc vec_andc
9304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
9314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
9324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_andc(vector signed char a, vector signed char b)
9334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
9344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & ~b;
9354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
9364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
93705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector signed char __ATTRS_o_ai
93805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_andc(vector bool char a, vector signed char b)
93905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
94005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector signed char)a & ~b;
94105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
94205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
94305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector signed char __ATTRS_o_ai
94405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_andc(vector signed char a, vector bool char b)
94505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
94605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a & ~(vector signed char)b;
94705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
94805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
9494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
9504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_andc(vector unsigned char a, vector unsigned char b)
9514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
9524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & ~b;
9534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
9544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
95505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned char __ATTRS_o_ai
95605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_andc(vector bool char a, vector unsigned char b)
95705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
95805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector unsigned char)a & ~b;
95905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
96005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
96105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned char __ATTRS_o_ai
96205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_andc(vector unsigned char a, vector bool char b)
96305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
96405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a & ~(vector unsigned char)b;
96505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
96605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
96705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector bool char __ATTRS_o_ai
96805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_andc(vector bool char a, vector bool char b)
96905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
97005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a & ~b;
97105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
97205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
9734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
9744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_andc(vector short a, vector short b)
9754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
9764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & ~b;
9774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
9784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
97905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector short __ATTRS_o_ai
98005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_andc(vector bool short a, vector short b)
98105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
98205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector short)a & ~b;
98305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
98405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
98505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector short __ATTRS_o_ai
98605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_andc(vector short a, vector bool short b)
98705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
98805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a & ~(vector short)b;
98905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
99005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
9914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
9924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_andc(vector unsigned short a, vector unsigned short b)
9934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
9944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & ~b;
9954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
9964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
99705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned short __ATTRS_o_ai
99805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_andc(vector bool short a, vector unsigned short b)
99905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
100005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector unsigned short)a & ~b;
100105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
100205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
100305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned short __ATTRS_o_ai
100405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_andc(vector unsigned short a, vector bool short b)
100505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
100605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a & ~(vector unsigned short)b;
100705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
100805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
100905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector bool short __ATTRS_o_ai
101005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_andc(vector bool short a, vector bool short b)
101105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
101205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a & ~b;
101305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
101405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
10154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
10164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_andc(vector int a, vector int b)
10174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
10184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & ~b;
10194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
10204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
102105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector int __ATTRS_o_ai
102205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_andc(vector bool int a, vector int b)
102305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
102405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector int)a & ~b;
102505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
102605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
102705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector int __ATTRS_o_ai
102805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_andc(vector int a, vector bool int b)
102905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
103005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a & ~(vector int)b;
103105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
103205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
10334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
10344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_andc(vector unsigned int a, vector unsigned int b)
10354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
10364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & ~b;
10374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
10384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
103905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned int __ATTRS_o_ai
104005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_andc(vector bool int a, vector unsigned int b)
104105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
104205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector unsigned int)a & ~b;
104305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
104405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
104505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned int __ATTRS_o_ai
104605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_andc(vector unsigned int a, vector bool int b)
104705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
104805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a & ~(vector unsigned int)b;
104905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
105005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
105105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector bool int __ATTRS_o_ai
105205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_andc(vector bool int a, vector bool int b)
105305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
105405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a & ~b;
105505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
105605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
10574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
10584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_andc(vector float a, vector float b)
10594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
10604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  vector unsigned int res = (vector unsigned int)a & ~(vector unsigned int)b;
10614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)res;
10624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
10634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
106405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector float __ATTRS_o_ai
106505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_andc(vector bool int a, vector float b)
106605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
106705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  vector unsigned int res = (vector unsigned int)a & ~(vector unsigned int)b;
106805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector float)res;
106905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
107005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
107105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector float __ATTRS_o_ai
107205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_andc(vector float a, vector bool int b)
107305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
107405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  vector unsigned int res = (vector unsigned int)a & ~(vector unsigned int)b;
107505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector float)res;
107605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
107705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
10784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vandc */
10794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
10804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
10814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vandc(vector signed char a, vector signed char b)
10824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
10834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & ~b;
10844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
10854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
108605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector signed char __ATTRS_o_ai
108705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vandc(vector bool char a, vector signed char b)
108805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
108905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector signed char)a & ~b;
109005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
109105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
109205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector signed char __ATTRS_o_ai
109305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vandc(vector signed char a, vector bool char b)
109405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
109505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a & ~(vector signed char)b;
109605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
109705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
10984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
10994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vandc(vector unsigned char a, vector unsigned char b)
11004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
11014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & ~b;
11024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
11034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
110405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned char __ATTRS_o_ai
110505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vandc(vector bool char a, vector unsigned char b)
110605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
110705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector unsigned char)a & ~b;
110805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
110905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
111005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned char __ATTRS_o_ai
111105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vandc(vector unsigned char a, vector bool char b)
111205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
111305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a & ~(vector unsigned char)b;
111405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
111505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
111605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector bool char __ATTRS_o_ai
111705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vandc(vector bool char a, vector bool char b)
111805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
111905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a & ~b;
112005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
112105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
11224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
11234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vandc(vector short a, vector short b)
11244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
11254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & ~b;
11264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
11274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
112805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector short __ATTRS_o_ai
112905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vandc(vector bool short a, vector short b)
113005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
113105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector short)a & ~b;
113205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
113305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
113405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector short __ATTRS_o_ai
113505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vandc(vector short a, vector bool short b)
113605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
113705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a & ~(vector short)b;
113805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
113905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
11404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
11414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vandc(vector unsigned short a, vector unsigned short b)
11424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
11434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & ~b;
11444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
11454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
114605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned short __ATTRS_o_ai
114705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vandc(vector bool short a, vector unsigned short b)
114805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
114905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector unsigned short)a & ~b;
115005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
115105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
115205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned short __ATTRS_o_ai
115305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vandc(vector unsigned short a, vector bool short b)
115405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
115505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a & ~(vector unsigned short)b;
115605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
115705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
115805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector bool short __ATTRS_o_ai
115905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vandc(vector bool short a, vector bool short b)
116005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
116105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a & ~b;
116205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
116305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
11644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
11654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vandc(vector int a, vector int b)
11664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
11674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & ~b;
11684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
11694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
117005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector int __ATTRS_o_ai
117105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vandc(vector bool int a, vector int b)
117205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
117305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector int)a & ~b;
117405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
117505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
117605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector int __ATTRS_o_ai
117705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vandc(vector int a, vector bool int b)
117805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
117905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a & ~(vector int)b;
118005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
118105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
11824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
11834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vandc(vector unsigned int a, vector unsigned int b)
11844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
11854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & ~b;
11864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
11874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
118805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned int __ATTRS_o_ai
118905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vandc(vector bool int a, vector unsigned int b)
119005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
119105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector unsigned int)a & ~b;
119205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
119305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
119405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector unsigned int __ATTRS_o_ai
119505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vandc(vector unsigned int a, vector bool int b)
119605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
119705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a & ~(vector unsigned int)b;
119805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
119905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
120005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector bool int __ATTRS_o_ai
120105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vandc(vector bool int a, vector bool int b)
120205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
120305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return a & ~b;
120405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
120505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
12064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
12074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vandc(vector float a, vector float b)
12084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
12094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  vector unsigned int res = (vector unsigned int)a & ~(vector unsigned int)b;
12104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)res;
12114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
12124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
121305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector float __ATTRS_o_ai
121405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vandc(vector bool int a, vector float b)
121505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
121605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  vector unsigned int res = (vector unsigned int)a & ~(vector unsigned int)b;
121705e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector float)res;
121805e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
121905e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
122005e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevstatic vector float __ATTRS_o_ai
122105e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsevvec_vandc(vector float a, vector bool int b)
122205e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev{
122305e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  vector unsigned int res = (vector unsigned int)a & ~(vector unsigned int)b;
122405e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev  return (vector float)res;
122505e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev}
122605e3555b21d7fe123a57de5b26dbf4600376e776Anton Yartsev
12274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_avg */
12284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
12294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
12304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_avg(vector signed char a, vector signed char b)
12314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
12324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vavgsb(a, b);
12334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
12344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
12354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
12364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_avg(vector unsigned char a, vector unsigned char b)
12374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
12384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vavgub(a, b);
12394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
12404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
12414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
12424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_avg(vector short a, vector short b)
12434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
12444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vavgsh(a, b);
12454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
12464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
12474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
12484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_avg(vector unsigned short a, vector unsigned short b)
12494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
12504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vavguh(a, b);
12514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
12524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
12534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
12544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_avg(vector int a, vector int b)
12554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
12564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vavgsw(a, b);
12574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
12584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
12594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
12604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_avg(vector unsigned int a, vector unsigned int b)
12614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
12624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vavguw(a, b);
12634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
12644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
12654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vavgsb */
12664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
12674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __attribute__((__always_inline__))
12684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vavgsb(vector signed char a, vector signed char b)
12694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
12704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vavgsb(a, b);
12714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
12724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
12734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vavgub */
12744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
12754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __attribute__((__always_inline__))
12764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vavgub(vector unsigned char a, vector unsigned char b)
12774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
12784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vavgub(a, b);
12794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
12804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
12814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vavgsh */
12824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
12834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __attribute__((__always_inline__))
12844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vavgsh(vector short a, vector short b)
12854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
12864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vavgsh(a, b);
12874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
12884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
12894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vavguh */
12904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
12914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __attribute__((__always_inline__))
12924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vavguh(vector unsigned short a, vector unsigned short b)
12934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
12944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vavguh(a, b);
12954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
12964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
12974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vavgsw */
12984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
12994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __attribute__((__always_inline__))
13004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vavgsw(vector int a, vector int b)
13014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
13024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vavgsw(a, b);
13034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
13044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
13054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vavguw */
13064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
13074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __attribute__((__always_inline__))
13084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vavguw(vector unsigned int a, vector unsigned int b)
13094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
13104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vavguw(a, b);
13114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
13124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
13134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_ceil */
13144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
13154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
13164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ceil(vector float a)
13174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
13184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vrfip(a);
13194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
13204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
13214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vrfip */
13224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
13234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
13244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vrfip(vector float a)
13254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
13264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vrfip(a);
13274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
13284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
13294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_cmpb */
13304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
13314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __attribute__((__always_inline__))
13324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmpb(vector float a, vector float b)
13334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
13344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpbfp(a, b);
13354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
13364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
13374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vcmpbfp */
13384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
13394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __attribute__((__always_inline__))
13404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vcmpbfp(vector float a, vector float b)
13414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
13424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpbfp(a, b);
13434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
13444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
13454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_cmpeq */
13464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1347a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool char __ATTRS_o_ai
13484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmpeq(vector signed char a, vector signed char b)
13494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1350a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool char)
1351a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev    __builtin_altivec_vcmpequb((vector char)a, (vector char)b);
13524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
13534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1354a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool char __ATTRS_o_ai
13554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmpeq(vector unsigned char a, vector unsigned char b)
13564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1357a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool char)
1358a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev    __builtin_altivec_vcmpequb((vector char)a, (vector char)b);
13594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
13604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1361a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool short __ATTRS_o_ai
13624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmpeq(vector short a, vector short b)
13634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1364a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool short)__builtin_altivec_vcmpequh(a, b);
13654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
13664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1367a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool short __ATTRS_o_ai
13684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmpeq(vector unsigned short a, vector unsigned short b)
13694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1370a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool short)
1371a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev    __builtin_altivec_vcmpequh((vector short)a, (vector short)b);
13724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
13734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1374a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
13754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmpeq(vector int a, vector int b)
13764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1377a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool int)__builtin_altivec_vcmpequw(a, b);
13784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
13794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1380a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
13814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmpeq(vector unsigned int a, vector unsigned int b)
13824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1383a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool int)
1384a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev    __builtin_altivec_vcmpequw((vector int)a, (vector int)b);
13854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
13864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1387a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
13884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmpeq(vector float a, vector float b)
13894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1390a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool int)__builtin_altivec_vcmpeqfp(a, b);
13914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
13924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
13934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_cmpge */
13944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1395a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __attribute__((__always_inline__))
13964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmpge(vector float a, vector float b)
13974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1398a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool int)__builtin_altivec_vcmpgefp(a, b);
13994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
14004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
14014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vcmpgefp */
14024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1403a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __attribute__((__always_inline__))
14044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vcmpgefp(vector float a, vector float b)
14054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1406a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool int)__builtin_altivec_vcmpgefp(a, b);
14074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
14084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
14094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_cmpgt */
14104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1411a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool char __ATTRS_o_ai
14124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmpgt(vector signed char a, vector signed char b)
14134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1414a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool char)__builtin_altivec_vcmpgtsb(a, b);
14154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
14164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1417a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool char __ATTRS_o_ai
14184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmpgt(vector unsigned char a, vector unsigned char b)
14194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1420a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool char)__builtin_altivec_vcmpgtub(a, b);
14214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
14224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1423a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool short __ATTRS_o_ai
14244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmpgt(vector short a, vector short b)
14254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1426a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool short)__builtin_altivec_vcmpgtsh(a, b);
14274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
14284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1429a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool short __ATTRS_o_ai
14304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmpgt(vector unsigned short a, vector unsigned short b)
14314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1432a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool short)__builtin_altivec_vcmpgtuh(a, b);
14334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
14344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1435a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
14364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmpgt(vector int a, vector int b)
14374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1438a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool int)__builtin_altivec_vcmpgtsw(a, b);
14394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
14404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1441a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
14424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmpgt(vector unsigned int a, vector unsigned int b)
14434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1444a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool int)__builtin_altivec_vcmpgtuw(a, b);
14454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
14464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1447a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
14484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmpgt(vector float a, vector float b)
14494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1450a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool int)__builtin_altivec_vcmpgtfp(a, b);
14514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
14524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
14534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vcmpgtsb */
14544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1455a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool char __attribute__((__always_inline__))
14564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vcmpgtsb(vector signed char a, vector signed char b)
14574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1458a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool char)__builtin_altivec_vcmpgtsb(a, b);
14594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
14604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
14614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vcmpgtub */
14624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1463a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool char __attribute__((__always_inline__))
14644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vcmpgtub(vector unsigned char a, vector unsigned char b)
14654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1466a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool char)__builtin_altivec_vcmpgtub(a, b);
14674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
14684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
14694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vcmpgtsh */
14704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1471a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool short __attribute__((__always_inline__))
14724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vcmpgtsh(vector short a, vector short b)
14734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1474a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool short)__builtin_altivec_vcmpgtsh(a, b);
14754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
14764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
14774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vcmpgtuh */
14784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1479a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool short __attribute__((__always_inline__))
14804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vcmpgtuh(vector unsigned short a, vector unsigned short b)
14814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1482a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool short)__builtin_altivec_vcmpgtuh(a, b);
14834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
14844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
14854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vcmpgtsw */
14864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1487a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __attribute__((__always_inline__))
14884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vcmpgtsw(vector int a, vector int b)
14894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1490a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool int)__builtin_altivec_vcmpgtsw(a, b);
14914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
14924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
14934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vcmpgtuw */
14944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1495a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __attribute__((__always_inline__))
14964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vcmpgtuw(vector unsigned int a, vector unsigned int b)
14974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1498a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool int)__builtin_altivec_vcmpgtuw(a, b);
14994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
15004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
15014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vcmpgtfp */
15024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1503a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __attribute__((__always_inline__))
15044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vcmpgtfp(vector float a, vector float b)
15054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1506a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool int)__builtin_altivec_vcmpgtfp(a, b);
15074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
15084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
15094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_cmple */
15104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1511a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __attribute__((__always_inline__))
15124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmple(vector float a, vector float b)
15134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1514a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool int)__builtin_altivec_vcmpgefp(b, a);
15154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
15164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
15174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_cmplt */
15184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1519a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool char __ATTRS_o_ai
15204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmplt(vector signed char a, vector signed char b)
15214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1522a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool char)__builtin_altivec_vcmpgtsb(b, a);
15234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
15244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1525a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool char __ATTRS_o_ai
15264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmplt(vector unsigned char a, vector unsigned char b)
15274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1528a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool char)__builtin_altivec_vcmpgtub(b, a);
15294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
15304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1531a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool short __ATTRS_o_ai
15324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmplt(vector short a, vector short b)
15334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1534a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool short)__builtin_altivec_vcmpgtsh(b, a);
15354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
15364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1537a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool short __ATTRS_o_ai
15384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmplt(vector unsigned short a, vector unsigned short b)
15394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1540a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool short)__builtin_altivec_vcmpgtuh(b, a);
15414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
15424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1543a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
15444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmplt(vector int a, vector int b)
15454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1546a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool int)__builtin_altivec_vcmpgtsw(b, a);
15474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
15484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1549a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
15504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmplt(vector unsigned int a, vector unsigned int b)
15514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1552a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool int)__builtin_altivec_vcmpgtuw(b, a);
15534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
15544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1555a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
15564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmplt(vector float a, vector float b)
15574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1558a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool int)__builtin_altivec_vcmpgtfp(b, a);
15594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
15604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
15614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_ctf */
15624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
15634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
15644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ctf(vector int a, int b)
15654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
15664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcfsx(a, b);
15674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
15684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
15694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
15704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ctf(vector unsigned int a, int b)
15714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
15724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcfux((vector int)a, b);
15734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
15744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
15754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vcfsx */
15764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
15774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
15784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vcfsx(vector int a, int b)
15794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
15804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcfsx(a, b);
15814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
15824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
15834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vcfux */
15844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
15854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
15864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vcfux(vector unsigned int a, int b)
15874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
15884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcfux((vector int)a, b);
15894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
15904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
15914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_cts */
15924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
15934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __attribute__((__always_inline__))
15944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cts(vector float a, int b)
15954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
15964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vctsxs(a, b);
15974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
15984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
15994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vctsxs */
16004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __attribute__((__always_inline__))
16024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vctsxs(vector float a, int b)
16034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
16044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vctsxs(a, b);
16054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
16064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_ctu */
16084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __attribute__((__always_inline__))
16104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ctu(vector float a, int b)
16114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
16124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vctuxs(a, b);
16134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
16144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vctuxs */
16164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __attribute__((__always_inline__))
16184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vctuxs(vector float a, int b)
16194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
16204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vctuxs(a, b);
16214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
16224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_dss */
16244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __attribute__((__always_inline__))
16264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_dss(int a)
16274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
16284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_dss(a);
16294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
16304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_dssall */
16324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __attribute__((__always_inline__))
16344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_dssall(void)
16354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
16364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_dssall();
16374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
16384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_dst */
16404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __attribute__((__always_inline__))
1642e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_dst(const void *a, int b, int c)
16434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
16444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_dst(a, b, c);
16454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
16464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_dstst */
16484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __attribute__((__always_inline__))
1650e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_dstst(const void *a, int b, int c)
16514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
16524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_dstst(a, b, c);
16534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
16544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_dststt */
16564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __attribute__((__always_inline__))
1658e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_dststt(const void *a, int b, int c)
16594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
16604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_dststt(a, b, c);
16614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
16624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_dstt */
16644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __attribute__((__always_inline__))
1666e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_dstt(const void *a, int b, int c)
16674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
16684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_dstt(a, b, c);
16694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
16704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_expte */
16724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
16744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_expte(vector float a)
16754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
16764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vexptefp(a);
16774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
16784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vexptefp */
16804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
16824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vexptefp(vector float a)
16834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
16844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vexptefp(a);
16854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
16864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_floor */
16884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
16904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_floor(vector float a)
16914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
16924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vrfim(a);
16934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
16944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vrfim */
16964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
16984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vrfim(vector float a)
16994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
17004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vrfim(a);
17014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
17024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
17034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_ld */
17044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
17054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
1706e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_ld(int a, const vector signed char *b)
17074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
17084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_lvx(a, b);
17094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
17104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
17114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
1712e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_ld(int a, const signed char *b)
17134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
17144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_lvx(a, b);
17154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
17164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
17174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
1718e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_ld(int a, const vector unsigned char *b)
17194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
17204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvx(a, b);
17214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
17224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
17234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
1724e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_ld(int a, const unsigned char *b)
17254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
17264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvx(a, b);
17274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
17284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1729a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool char __ATTRS_o_ai
1730e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_ld(int a, const vector bool char *b)
1731a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
1732a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool char)__builtin_altivec_lvx(a, b);
1733a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
1734a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
17354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
1736e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_ld(int a, const vector short *b)
17374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
17384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_lvx(a, b);
17394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
17404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
17414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
1742e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_ld(int a, const short *b)
17434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
17444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_lvx(a, b);
17454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
17464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
17474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
1748e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_ld(int a, const vector unsigned short *b)
17494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
17504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_lvx(a, b);
17514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
17524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
17534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
1754e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_ld(int a, const unsigned short *b)
17554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
17564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_lvx(a, b);
17574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
17584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1759a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool short __ATTRS_o_ai
1760e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_ld(int a, const vector bool short *b)
1761a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
1762a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool short)__builtin_altivec_lvx(a, b);
1763a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
1764a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
1765a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector pixel __ATTRS_o_ai
1766e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_ld(int a, const vector pixel *b)
1767a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
1768a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector pixel)__builtin_altivec_lvx(a, b);
1769a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
1770a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
17714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
1772e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_ld(int a, const vector int *b)
17734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
17744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_lvx(a, b);
17754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
17764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
17774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
1778e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_ld(int a, const int *b)
17794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
17804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_lvx(a, b);
17814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
17824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
17834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
1784e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_ld(int a, const vector unsigned int *b)
17854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
17864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_lvx(a, b);
17874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
17884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
17894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
1790e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_ld(int a, const unsigned int *b)
17914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
17924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_lvx(a, b);
17934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
17944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1795a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
1796e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_ld(int a, const vector bool int *b)
1797a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
1798a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool int)__builtin_altivec_lvx(a, b);
1799a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
1800a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
18014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
1802e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_ld(int a, const vector float *b)
18034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
18044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)__builtin_altivec_lvx(a, b);
18054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
18064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
18074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
1808e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_ld(int a, const float *b)
18094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
18104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)__builtin_altivec_lvx(a, b);
18114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
18124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
18134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_lvx */
18144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
18154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
1816e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvx(int a, const vector signed char *b)
18174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
18184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_lvx(a, b);
18194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
18204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
18214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
1822e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvx(int a, const signed char *b)
18234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
18244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_lvx(a, b);
18254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
18264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
18274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
1828e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvx(int a, const vector unsigned char *b)
18294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
18304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvx(a, b);
18314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
18324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
18334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
1834e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvx(int a, const unsigned char *b)
18354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
18364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvx(a, b);
18374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
18384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1839a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool char __ATTRS_o_ai
1840e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvx(int a, const vector bool char *b)
1841a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
1842a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool char)__builtin_altivec_lvx(a, b);
1843a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
1844a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
18454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
1846e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvx(int a, const vector short *b)
18474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
18484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_lvx(a, b);
18494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
18504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
18514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
1852e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvx(int a, const short *b)
18534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
18544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_lvx(a, b);
18554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
18564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
18574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
1858e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvx(int a, const vector unsigned short *b)
18594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
18604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_lvx(a, b);
18614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
18624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
18634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
1864e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvx(int a, const unsigned short *b)
18654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
18664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_lvx(a, b);
18674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
18684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1869a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool short __ATTRS_o_ai
1870e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvx(int a, const vector bool short *b)
1871a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
1872a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool short)__builtin_altivec_lvx(a, b);
1873a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
1874a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
1875a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector pixel __ATTRS_o_ai
1876e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvx(int a, const vector pixel *b)
1877a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
1878a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector pixel)__builtin_altivec_lvx(a, b);
1879a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
1880a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
18814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
1882e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvx(int a, const vector int *b)
18834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
18844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_lvx(a, b);
18854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
18864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
18874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
1888e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvx(int a, const int *b)
18894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
18904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_lvx(a, b);
18914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
18924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
18934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
1894e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvx(int a, const vector unsigned int *b)
18954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
18964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_lvx(a, b);
18974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
18984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
18994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
1900e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvx(int a, const unsigned int *b)
19014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
19024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_lvx(a, b);
19034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
19044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1905a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
1906e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvx(int a, const vector bool int *b)
1907a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
1908a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool int)__builtin_altivec_lvx(a, b);
1909a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
1910a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
19114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
1912e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvx(int a, const vector float *b)
19134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
19144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)__builtin_altivec_lvx(a, b);
19154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
19164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
1918e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvx(int a, const float *b)
19194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
19204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)__builtin_altivec_lvx(a, b);
19214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
19224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_lde */
19244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
1926e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lde(int a, const vector signed char *b)
19274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
19284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_lvebx(a, b);
19294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
19304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
1932e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lde(int a, const vector unsigned char *b)
19334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
19344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvebx(a, b);
19354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
19364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
1938e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lde(int a, const vector short *b)
19394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
19404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_lvehx(a, b);
19414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
19424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
1944e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lde(int a, const vector unsigned short *b)
19454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
19464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_lvehx(a, b);
19474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
19484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
1950e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lde(int a, const vector int *b)
19514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
19524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_lvewx(a, b);
19534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
19544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
1956e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lde(int a, const vector unsigned int *b)
19574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
19584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_lvewx(a, b);
19594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
19604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
1962e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lde(int a, const vector float *b)
19634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
19644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)__builtin_altivec_lvewx(a, b);
19654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
19664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_lvebx */
19684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
1970e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvebx(int a, const vector signed char *b)
19714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
19724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_lvebx(a, b);
19734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
19744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
1976e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvebx(int a, const vector unsigned char *b)
19774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
19784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvebx(a, b);
19794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
19804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_lvehx */
19824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
1984e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvehx(int a, const vector short *b)
19854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
19864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_lvehx(a, b);
19874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
19884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
1990e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvehx(int a, const vector unsigned short *b)
19914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
19924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_lvehx(a, b);
19934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
19944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_lvewx */
19964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
1998e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvewx(int a, const vector int *b)
19994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
20004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_lvewx(a, b);
20014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
20024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
20034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
2004e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvewx(int a, const vector unsigned int *b)
20054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
20064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_lvewx(a, b);
20074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
20084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
20094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
2010e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvewx(int a, const vector float *b)
20114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
20124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)__builtin_altivec_lvewx(a, b);
20134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
20144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
20154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_ldl */
20164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
20174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
2018e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_ldl(int a, const vector signed char *b)
20194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
20204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_lvxl(a, b);
20214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
20224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
20234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
2024e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_ldl(int a, const signed char *b)
20254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
20264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_lvxl(a, b);
20274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
20284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
20294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
2030e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_ldl(int a, const vector unsigned char *b)
20314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
20324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvxl(a, b);
20334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
20344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
20354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
2036e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_ldl(int a, const unsigned char *b)
20374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
20384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvxl(a, b);
20394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
20404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2041a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool char __ATTRS_o_ai
2042e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_ldl(int a, const vector bool char *b)
2043a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
2044a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool char)__builtin_altivec_lvxl(a, b);
2045a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
2046a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
20474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
2048e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_ldl(int a, const vector short *b)
20494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
20504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_lvxl(a, b);
20514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
20524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
20534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
2054e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_ldl(int a, const short *b)
20554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
20564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_lvxl(a, b);
20574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
20584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
20594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
2060e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_ldl(int a, const vector unsigned short *b)
20614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
20624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_lvxl(a, b);
20634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
20644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
20654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
2066e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_ldl(int a, const unsigned short *b)
20674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
20684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_lvxl(a, b);
20694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
20704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2071a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool short __ATTRS_o_ai
2072e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_ldl(int a, const vector bool short *b)
2073a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
2074a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool short)__builtin_altivec_lvxl(a, b);
2075a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
2076a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
2077a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector pixel __ATTRS_o_ai
2078e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_ldl(int a, const vector pixel *b)
2079a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
2080a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector pixel short)__builtin_altivec_lvxl(a, b);
2081a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
2082a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
20834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
2084e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_ldl(int a, const vector int *b)
20854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
20864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_lvxl(a, b);
20874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
20884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
20894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
2090e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_ldl(int a, const int *b)
20914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
20924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_lvxl(a, b);
20934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
20944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
20954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
2096e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_ldl(int a, const vector unsigned int *b)
20974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
20984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_lvxl(a, b);
20994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
21004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
21014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
2102e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_ldl(int a, const unsigned int *b)
21034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
21044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_lvxl(a, b);
21054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
21064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2107a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
2108e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_ldl(int a, const vector bool int *b)
2109a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
2110a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool int)__builtin_altivec_lvxl(a, b);
2111a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
2112a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
21134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
2114e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_ldl(int a, const vector float *b)
21154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
21164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)__builtin_altivec_lvxl(a, b);
21174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
21184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
21194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
2120e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_ldl(int a, const float *b)
21214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
21224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)__builtin_altivec_lvxl(a, b);
21234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
21244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
21254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_lvxl */
21264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
21274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
2128e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvxl(int a, const vector signed char *b)
21294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
21304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_lvxl(a, b);
21314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
21324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
21334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
2134e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvxl(int a, const signed char *b)
21354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
21364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_lvxl(a, b);
21374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
21384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
21394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
2140e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvxl(int a, const vector unsigned char *b)
21414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
21424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvxl(a, b);
21434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
21444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
21454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
2146e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvxl(int a, const unsigned char *b)
21474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
21484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvxl(a, b);
21494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
21504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2151a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool char __ATTRS_o_ai
2152e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvxl(int a, const vector bool char *b)
2153a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
2154a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool char)__builtin_altivec_lvxl(a, b);
2155a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
2156a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
21574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
2158e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvxl(int a, const vector short *b)
21594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
21604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_lvxl(a, b);
21614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
21624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
21634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
2164e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvxl(int a, const short *b)
21654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
21664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_lvxl(a, b);
21674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
21684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
21694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
2170e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvxl(int a, const vector unsigned short *b)
21714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
21724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_lvxl(a, b);
21734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
21744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
21754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
2176e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvxl(int a, const unsigned short *b)
21774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
21784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_lvxl(a, b);
21794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
21804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2181a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool short __ATTRS_o_ai
2182e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvxl(int a, const vector bool short *b)
2183a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
2184a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool short)__builtin_altivec_lvxl(a, b);
2185a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
2186a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
2187a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector pixel __ATTRS_o_ai
2188e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvxl(int a, const vector pixel *b)
2189a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
2190a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector pixel)__builtin_altivec_lvxl(a, b);
2191a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
2192a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
21934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
2194e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvxl(int a, const vector int *b)
21954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
21964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_lvxl(a, b);
21974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
21984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
21994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
2200e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvxl(int a, const int *b)
22014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
22024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_lvxl(a, b);
22034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
22044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
22054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
2206e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvxl(int a, const vector unsigned int *b)
22074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
22084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_lvxl(a, b);
22094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
22104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
22114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
2212e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvxl(int a, const unsigned int *b)
22134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
22144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_lvxl(a, b);
22154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
22164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2217a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
2218e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvxl(int a, const vector bool int *b)
2219a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
2220a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool int)__builtin_altivec_lvxl(a, b);
2221a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
2222a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
22234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
2224e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvxl(int a, const vector float *b)
22254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
22264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)__builtin_altivec_lvxl(a, b);
22274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
22284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
22294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
2230e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvxl(int a, const float *b)
22314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
22324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)__builtin_altivec_lvxl(a, b);
22334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
22344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
22354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_loge */
22364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
22374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
22384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_loge(vector float a)
22394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
22404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vlogefp(a);
22414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
22424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
22434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vlogefp */
22444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
22454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
22464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vlogefp(vector float a)
22474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
22484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vlogefp(a);
22494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
22504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
22514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_lvsl */
22524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
22534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
2254e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvsl(int a, const signed char *b)
22554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
22564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvsl(a, b);
22574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
22584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
22594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
2260e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvsl(int a, const unsigned char *b)
22614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
22624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvsl(a, b);
22634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
22644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
22654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
2266e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvsl(int a, const short *b)
22674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
22684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvsl(a, b);
22694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
22704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
22714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
2272e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvsl(int a, const unsigned short *b)
22734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
22744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvsl(a, b);
22754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
22764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
22774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
2278e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvsl(int a, const int *b)
22794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
22804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvsl(a, b);
22814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
22824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
22834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
2284e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvsl(int a, const unsigned int *b)
22854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
22864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvsl(a, b);
22874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
22884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
22894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
2290e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvsl(int a, const float *b)
22914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
22924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvsl(a, b);
22934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
22944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
22954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_lvsr */
22964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
22974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
2298e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvsr(int a, const signed char *b)
22994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
23004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvsr(a, b);
23014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
23024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
23034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
2304e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvsr(int a, const unsigned char *b)
23054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
23064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvsr(a, b);
23074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
23084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
23094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
2310e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvsr(int a, const short *b)
23114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
23124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvsr(a, b);
23134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
23144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
23154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
2316e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvsr(int a, const unsigned short *b)
23174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
23184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvsr(a, b);
23194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
23204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
23214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
2322e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvsr(int a, const int *b)
23234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
23244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvsr(a, b);
23254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
23264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
23274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
2328e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvsr(int a, const unsigned int *b)
23294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
23304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvsr(a, b);
23314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
23324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
23334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
2334e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvsr(int a, const float *b)
23354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
23364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvsr(a, b);
23374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
23384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
23394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_madd */
23404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
23414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
23424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_madd(vector float a, vector float b, vector float c)
23434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
23444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmaddfp(a, b, c);
23454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
23464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
23474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmaddfp */
23484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
23494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
23504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmaddfp(vector float a, vector float b, vector float c)
23514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
23524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmaddfp(a, b, c);
23534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
23544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
23554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_madds */
23564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
23574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed short __attribute__((__always_inline__))
23584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_madds(vector signed short a, vector signed short b, vector signed short c)
23594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
23604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmhaddshs(a, b, c);
23614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
23624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
23634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmhaddshs */
23644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed short __attribute__((__always_inline__))
23653ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsevvec_vmhaddshs(vector signed short a,
23663ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev              vector signed short b,
23673ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev              vector signed short c)
23684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
23694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmhaddshs(a, b, c);
23704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
23714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
23724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_max */
23734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
23744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
2375a816ec833869eab267b7cf6e2c662552d814d768Anton Yartsevvec_max(vector signed char a, vector signed char b)
23764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
23774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmaxsb(a, b);
23784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
23794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2380a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector signed char __ATTRS_o_ai
2381a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_max(vector bool char a, vector signed char b)
2382a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
2383a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vmaxsb((vector signed char)a, b);
2384a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
2385a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
2386a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector signed char __ATTRS_o_ai
2387a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_max(vector signed char a, vector bool char b)
2388a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
2389a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vmaxsb(a, (vector signed char)b);
2390a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
2391a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
23924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
2393a816ec833869eab267b7cf6e2c662552d814d768Anton Yartsevvec_max(vector unsigned char a, vector unsigned char b)
23944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
23954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmaxub(a, b);
23964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
23974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2398a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
2399a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_max(vector bool char a, vector unsigned char b)
2400a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
2401a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vmaxub((vector unsigned char)a, b);
2402a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
2403a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
2404a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
2405a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_max(vector unsigned char a, vector bool char b)
2406a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
2407a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vmaxub(a, (vector unsigned char)b);
2408a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
2409a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
24104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
24114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_max(vector short a, vector short b)
24124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
24134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmaxsh(a, b);
24144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
24154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2416a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector short __ATTRS_o_ai
2417a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_max(vector bool short a, vector short b)
2418a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
2419a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vmaxsh((vector short)a, b);
2420a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
2421a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
2422a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector short __ATTRS_o_ai
2423a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_max(vector short a, vector bool short b)
2424a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
2425a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vmaxsh(a, (vector short)b);
2426a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
2427a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
24284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
24294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_max(vector unsigned short a, vector unsigned short b)
24304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
24314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmaxuh(a, b);
24324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
24334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2434a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
2435a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_max(vector bool short a, vector unsigned short b)
2436a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
2437a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vmaxuh((vector unsigned short)a, b);
2438a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
2439a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
2440a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
2441a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_max(vector unsigned short a, vector bool short b)
2442a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
2443a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vmaxuh(a, (vector unsigned short)b);
2444a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
2445a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
24464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
24474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_max(vector int a, vector int b)
24484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
24494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmaxsw(a, b);
24504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
24514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2452a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector int __ATTRS_o_ai
2453a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_max(vector bool int a, vector int b)
2454a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
2455a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vmaxsw((vector int)a, b);
2456a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
2457a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
2458a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector int __ATTRS_o_ai
2459a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_max(vector int a, vector bool int b)
2460a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
2461a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vmaxsw(a, (vector int)b);
2462a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
2463a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
24644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
24654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_max(vector unsigned int a, vector unsigned int b)
24664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
24674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmaxuw(a, b);
24684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
24694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2470a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
2471a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_max(vector bool int a, vector unsigned int b)
2472a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
2473a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vmaxuw((vector unsigned int)a, b);
2474a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
2475a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
2476a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
2477a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_max(vector unsigned int a, vector bool int b)
2478a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
2479a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vmaxuw(a, (vector unsigned int)b);
2480a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
2481a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
24824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
24834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_max(vector float a, vector float b)
24844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
24854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmaxfp(a, b);
24864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
24874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
24884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmaxsb */
24894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2490a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector signed char __ATTRS_o_ai
2491a816ec833869eab267b7cf6e2c662552d814d768Anton Yartsevvec_vmaxsb(vector signed char a, vector signed char b)
24924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
24934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmaxsb(a, b);
24944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
24954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2496a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector signed char __ATTRS_o_ai
2497a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vmaxsb(vector bool char a, vector signed char b)
2498a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
2499a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vmaxsb((vector signed char)a, b);
2500a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
2501a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
2502a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector signed char __ATTRS_o_ai
2503a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vmaxsb(vector signed char a, vector bool char b)
2504a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
2505a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vmaxsb(a, (vector signed char)b);
2506a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
2507a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
25084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmaxub */
25094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2510a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
2511a816ec833869eab267b7cf6e2c662552d814d768Anton Yartsevvec_vmaxub(vector unsigned char a, vector unsigned char b)
25124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
25134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmaxub(a, b);
25144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
25154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2516a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
2517a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vmaxub(vector bool char a, vector unsigned char b)
2518a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
2519a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vmaxub((vector unsigned char)a, b);
2520a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
2521a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
2522a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
2523a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vmaxub(vector unsigned char a, vector bool char b)
2524a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
2525a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vmaxub(a, (vector unsigned char)b);
2526a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
2527a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
25284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmaxsh */
25294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2530a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector short __ATTRS_o_ai
25314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmaxsh(vector short a, vector short b)
25324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
25334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmaxsh(a, b);
25344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
25354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2536a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector short __ATTRS_o_ai
2537a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vmaxsh(vector bool short a, vector short b)
2538a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
2539a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vmaxsh((vector short)a, b);
2540a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
2541a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
2542a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector short __ATTRS_o_ai
2543a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vmaxsh(vector short a, vector bool short b)
2544a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
2545a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vmaxsh(a, (vector short)b);
2546a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
2547a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
25484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmaxuh */
25494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2550a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
25514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmaxuh(vector unsigned short a, vector unsigned short b)
25524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
25534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmaxuh(a, b);
25544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
25554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2556a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
2557a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vmaxuh(vector bool short a, vector unsigned short b)
2558a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
2559a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vmaxuh((vector unsigned short)a, b);
2560a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
2561a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
2562a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
2563a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vmaxuh(vector unsigned short a, vector bool short b)
2564a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
2565a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vmaxuh(a, (vector unsigned short)b);
2566a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
2567a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
25684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmaxsw */
25694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2570a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector int __ATTRS_o_ai
25714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmaxsw(vector int a, vector int b)
25724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
25734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmaxsw(a, b);
25744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
25754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2576a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector int __ATTRS_o_ai
2577a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vmaxsw(vector bool int a, vector int b)
2578a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
2579a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vmaxsw((vector int)a, b);
2580a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
2581a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
2582a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector int __ATTRS_o_ai
2583a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vmaxsw(vector int a, vector bool int b)
2584a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
2585a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vmaxsw(a, (vector int)b);
2586a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
2587a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
25884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmaxuw */
25894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2590a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
25914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmaxuw(vector unsigned int a, vector unsigned int b)
25924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
25934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmaxuw(a, b);
25944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
25954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2596a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
2597a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vmaxuw(vector bool int a, vector unsigned int b)
2598a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
2599a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vmaxuw((vector unsigned int)a, b);
2600a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
2601a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
2602a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
2603a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vmaxuw(vector unsigned int a, vector bool int b)
2604a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
2605a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vmaxuw(a, (vector unsigned int)b);
2606a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
2607a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
26084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmaxfp */
26094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
26104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
26114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmaxfp(vector float a, vector float b)
26124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
26134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmaxfp(a, b);
26144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
26154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
26164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_mergeh */
26174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
26184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
26194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mergeh(vector signed char a, vector signed char b)
26204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
26214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
26224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x00, 0x10, 0x01, 0x11, 0x02, 0x12, 0x03, 0x13,
26234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x04, 0x14, 0x05, 0x15, 0x06, 0x16, 0x07, 0x17));
26244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
26254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
26264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
26274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mergeh(vector unsigned char a, vector unsigned char b)
26284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
26294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
26304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x00, 0x10, 0x01, 0x11, 0x02, 0x12, 0x03, 0x13,
26314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x04, 0x14, 0x05, 0x15, 0x06, 0x16, 0x07, 0x17));
26324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
26334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2634f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevstatic vector bool char __ATTRS_o_ai
2635f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_mergeh(vector bool char a, vector bool char b)
2636f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev{
2637f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, b, (vector unsigned char)
2638f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev    (0x00, 0x10, 0x01, 0x11, 0x02, 0x12, 0x03, 0x13,
2639f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev     0x04, 0x14, 0x05, 0x15, 0x06, 0x16, 0x07, 0x17));
2640f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev}
2641f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
26424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
26434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mergeh(vector short a, vector short b)
26444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
26454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
26464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x00, 0x01, 0x10, 0x11, 0x02, 0x03, 0x12, 0x13,
26474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x04, 0x05, 0x14, 0x15, 0x06, 0x07, 0x16, 0x17));
26484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
26494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
26504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
26514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mergeh(vector unsigned short a, vector unsigned short b)
26524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
26534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
26544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x00, 0x01, 0x10, 0x11, 0x02, 0x03, 0x12, 0x13,
26554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x04, 0x05, 0x14, 0x15, 0x06, 0x07, 0x16, 0x17));
26564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
26574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2658f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevstatic vector bool short __ATTRS_o_ai
2659f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_mergeh(vector bool short a, vector bool short b)
2660f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev{
2661f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, b, (vector unsigned char)
2662f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev    (0x00, 0x01, 0x10, 0x11, 0x02, 0x03, 0x12, 0x13,
2663f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev     0x04, 0x05, 0x14, 0x15, 0x06, 0x07, 0x16, 0x17));
2664f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev}
2665f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
2666f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevstatic vector pixel __ATTRS_o_ai
2667f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_mergeh(vector pixel a, vector pixel b)
2668f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev{
2669f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, b, (vector unsigned char)
2670f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev    (0x00, 0x01, 0x10, 0x11, 0x02, 0x03, 0x12, 0x13,
2671f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev     0x04, 0x05, 0x14, 0x15, 0x06, 0x07, 0x16, 0x17));
2672f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev}
2673f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
26744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
26754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mergeh(vector int a, vector int b)
26764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
26774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
26784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
26794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17));
26804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
26814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
26824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
26834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mergeh(vector unsigned int a, vector unsigned int b)
26844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
26854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
26864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
26874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17));
26884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
26894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2690f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevstatic vector bool int __ATTRS_o_ai
2691f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_mergeh(vector bool int a, vector bool int b)
2692f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev{
2693f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, b, (vector unsigned char)
2694f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev    (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
2695f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev     0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17));
2696f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev}
2697f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
26984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
26994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mergeh(vector float a, vector float b)
27004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
27014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
27024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
27034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17));
27044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
27054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
27064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmrghb */
27074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
27084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vmrghb vec_vmrghb
27094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
27104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
27114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmrghb(vector signed char a, vector signed char b)
27124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
27134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
27144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x00, 0x10, 0x01, 0x11, 0x02, 0x12, 0x03, 0x13,
27154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x04, 0x14, 0x05, 0x15, 0x06, 0x16, 0x07, 0x17));
27164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
27174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
27184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
27194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmrghb(vector unsigned char a, vector unsigned char b)
27204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
27214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
27224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x00, 0x10, 0x01, 0x11, 0x02, 0x12, 0x03, 0x13,
27234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x04, 0x14, 0x05, 0x15, 0x06, 0x16, 0x07, 0x17));
27244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
27254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2726f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevstatic vector bool char __ATTRS_o_ai
2727f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_vmrghb(vector bool char a, vector bool char b)
2728f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev{
2729f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, b, (vector unsigned char)
2730f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev    (0x00, 0x10, 0x01, 0x11, 0x02, 0x12, 0x03, 0x13,
2731f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev     0x04, 0x14, 0x05, 0x15, 0x06, 0x16, 0x07, 0x17));
2732f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev}
2733f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
27344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmrghh */
27354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
27364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vmrghh vec_vmrghh
27374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
27384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
27394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmrghh(vector short a, vector short b)
27404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
27414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
27424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x00, 0x01, 0x10, 0x11, 0x02, 0x03, 0x12, 0x13,
27434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x04, 0x05, 0x14, 0x15, 0x06, 0x07, 0x16, 0x17));
27444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
27454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
27464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
27474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmrghh(vector unsigned short a, vector unsigned short b)
27484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
27494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
27504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x00, 0x01, 0x10, 0x11, 0x02, 0x03, 0x12, 0x13,
27514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x04, 0x05, 0x14, 0x15, 0x06, 0x07, 0x16, 0x17));
27524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
27534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2754f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevstatic vector bool short __ATTRS_o_ai
2755f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_vmrghh(vector bool short a, vector bool short b)
2756f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev{
2757f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, b, (vector unsigned char)
2758f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev    (0x00, 0x01, 0x10, 0x11, 0x02, 0x03, 0x12, 0x13,
2759f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev     0x04, 0x05, 0x14, 0x15, 0x06, 0x07, 0x16, 0x17));
2760f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev}
2761f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
2762f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevstatic vector pixel __ATTRS_o_ai
2763f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_vmrghh(vector pixel a, vector pixel b)
2764f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev{
2765f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, b, (vector unsigned char)
2766f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev    (0x00, 0x01, 0x10, 0x11, 0x02, 0x03, 0x12, 0x13,
2767f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev     0x04, 0x05, 0x14, 0x15, 0x06, 0x07, 0x16, 0x17));
2768f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev}
2769f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
27704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmrghw */
27714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
27724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vmrghw vec_vmrghw
27734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
27744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
27754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmrghw(vector int a, vector int b)
27764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
27774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
27784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
27794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17));
27804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
27814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
27824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
27834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmrghw(vector unsigned int a, vector unsigned int b)
27844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
27854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
27864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
27874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17));
27884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
27894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2790f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevstatic vector bool int __ATTRS_o_ai
2791f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_vmrghw(vector bool int a, vector bool int b)
2792f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev{
2793f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, b, (vector unsigned char)
2794f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev    (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
2795f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev     0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17));
2796f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev}
2797f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
27984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
27994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmrghw(vector float a, vector float b)
28004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
28014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
28024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
28034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17));
28044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
28054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
28064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_mergel */
28074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
28084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
28094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mergel(vector signed char a, vector signed char b)
28104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
28114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
28124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A, 0x0B, 0x1B,
28134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x0C, 0x1C, 0x0D, 0x1D, 0x0E, 0x1E, 0x0F, 0x1F));
28144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
28154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
28164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
28174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mergel(vector unsigned char a, vector unsigned char b)
28184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
28194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
28204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A, 0x0B, 0x1B,
28214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x0C, 0x1C, 0x0D, 0x1D, 0x0E, 0x1E, 0x0F, 0x1F));
28224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
28234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2824f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevstatic vector bool char __ATTRS_o_ai
2825f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_mergel(vector bool char a, vector bool char b)
2826f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev{
2827f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, b, (vector unsigned char)
2828f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev    (0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A, 0x0B, 0x1B,
2829f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev     0x0C, 0x1C, 0x0D, 0x1D, 0x0E, 0x1E, 0x0F, 0x1F));
2830f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev}
2831f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
28324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
28334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mergel(vector short a, vector short b)
28344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
28354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
28364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, 0x1A, 0x1B,
28374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x0C, 0x0D, 0x1C, 0x1D, 0x0E, 0x0F, 0x1E, 0x1F));
28384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
28394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
28404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
28414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mergel(vector unsigned short a, vector unsigned short b)
28424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
28434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
28444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, 0x1A, 0x1B,
28454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x0C, 0x0D, 0x1C, 0x1D, 0x0E, 0x0F, 0x1E, 0x1F));
28464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
28474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2848f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevstatic vector bool short __ATTRS_o_ai
2849f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_mergel(vector bool short a, vector bool short b)
2850f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev{
2851f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, b, (vector unsigned char)
2852f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev    (0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, 0x1A, 0x1B,
2853f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev     0x0C, 0x0D, 0x1C, 0x1D, 0x0E, 0x0F, 0x1E, 0x1F));
2854f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev}
2855f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
2856f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevstatic vector pixel __ATTRS_o_ai
2857f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_mergel(vector pixel a, vector pixel b)
2858f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev{
2859f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, b, (vector unsigned char)
2860f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev    (0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, 0x1A, 0x1B,
2861f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev     0x0C, 0x0D, 0x1C, 0x1D, 0x0E, 0x0F, 0x1E, 0x1F));
2862f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev}
2863f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
28644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
28654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mergel(vector int a, vector int b)
28664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
28674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
28684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B,
28694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
28704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
28714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
28724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
28734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mergel(vector unsigned int a, vector unsigned int b)
28744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
28754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
28764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B,
28774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
28784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
28794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2880f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevstatic vector bool int __ATTRS_o_ai
2881f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_mergel(vector bool int a, vector bool int b)
2882f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev{
2883f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, b, (vector unsigned char)
2884f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev    (0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B,
2885f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev     0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
2886f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev}
2887f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
28884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
28894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mergel(vector float a, vector float b)
28904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
28914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
28924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B,
28934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
28944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
28954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
28964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmrglb */
28974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
28984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vmrglb vec_vmrglb
28994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
29004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
29014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmrglb(vector signed char a, vector signed char b)
29024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
29034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
29044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A, 0x0B, 0x1B,
29054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x0C, 0x1C, 0x0D, 0x1D, 0x0E, 0x1E, 0x0F, 0x1F));
29064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
29074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
29084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
29094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmrglb(vector unsigned char a, vector unsigned char b)
29104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
29114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
29124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A, 0x0B, 0x1B,
29134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x0C, 0x1C, 0x0D, 0x1D, 0x0E, 0x1E, 0x0F, 0x1F));
29144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
29154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2916f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevstatic vector bool char __ATTRS_o_ai
2917f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_vmrglb(vector bool char a, vector bool char b)
2918f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev{
2919f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, b, (vector unsigned char)
2920f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev    (0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A, 0x0B, 0x1B,
2921f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev     0x0C, 0x1C, 0x0D, 0x1D, 0x0E, 0x1E, 0x0F, 0x1F));
2922f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev}
2923f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
29244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmrglh */
29254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
29264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vmrglh vec_vmrglh
29274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
29284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
29294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmrglh(vector short a, vector short b)
29304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
29314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
29324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, 0x1A, 0x1B,
29334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x0C, 0x0D, 0x1C, 0x1D, 0x0E, 0x0F, 0x1E, 0x1F));
29344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
29354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
29364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
29374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmrglh(vector unsigned short a, vector unsigned short b)
29384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
29394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
29404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, 0x1A, 0x1B,
29414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x0C, 0x0D, 0x1C, 0x1D, 0x0E, 0x0F, 0x1E, 0x1F));
29424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
29434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2944f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevstatic vector bool short __ATTRS_o_ai
2945f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_vmrglh(vector bool short a, vector bool short b)
2946f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev{
2947f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, b, (vector unsigned char)
2948f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev    (0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, 0x1A, 0x1B,
2949f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev     0x0C, 0x0D, 0x1C, 0x1D, 0x0E, 0x0F, 0x1E, 0x1F));
2950f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev}
2951f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
2952f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevstatic vector pixel __ATTRS_o_ai
2953f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_vmrglh(vector pixel a, vector pixel b)
2954f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev{
2955f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, b, (vector unsigned char)
2956f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev    (0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, 0x1A, 0x1B,
2957f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev     0x0C, 0x0D, 0x1C, 0x1D, 0x0E, 0x0F, 0x1E, 0x1F));
2958f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev}
2959f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
29604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmrglw */
29614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
29624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vmrglw vec_vmrglw
29634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
29644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
29654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmrglw(vector int a, vector int b)
29664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
29674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
29684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B,
29694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
29704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
29714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
29724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
29734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmrglw(vector unsigned int a, vector unsigned int b)
29744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
29754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
29764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B,
29774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
29784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
29794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2980f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevstatic vector bool int __ATTRS_o_ai
2981f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_vmrglw(vector bool int a, vector bool int b)
2982f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev{
2983f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, b, (vector unsigned char)
2984f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev    (0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B,
2985f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev     0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
2986f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev}
2987f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
29884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
29894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmrglw(vector float a, vector float b)
29904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
29914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
29924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B,
29934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
29944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
29954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
29964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_mfvscr */
29974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
29984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __attribute__((__always_inline__))
29994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mfvscr(void)
30004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
30014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_mfvscr();
30024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
30034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
30044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_min */
30054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
30064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
3007a816ec833869eab267b7cf6e2c662552d814d768Anton Yartsevvec_min(vector signed char a, vector signed char b)
30084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
30094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vminsb(a, b);
30104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
30114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3012a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector signed char __ATTRS_o_ai
3013a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_min(vector bool char a, vector signed char b)
3014a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3015a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vminsb((vector signed char)a, b);
3016a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3017a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
3018a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector signed char __ATTRS_o_ai
3019a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_min(vector signed char a, vector bool char b)
3020a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3021a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vminsb(a, (vector signed char)b);
3022a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3023a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
30244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
3025a816ec833869eab267b7cf6e2c662552d814d768Anton Yartsevvec_min(vector unsigned char a, vector unsigned char b)
30264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
30274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vminub(a, b);
30284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
30294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3030a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
3031a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_min(vector bool char a, vector unsigned char b)
3032a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3033a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vminub((vector unsigned char)a, b);
3034a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3035a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
3036a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
3037a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_min(vector unsigned char a, vector bool char b)
3038a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3039a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vminub(a, (vector unsigned char)b);
3040a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3041a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
30424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
30434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_min(vector short a, vector short b)
30444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
30454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vminsh(a, b);
30464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
30474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3048a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector short __ATTRS_o_ai
3049a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_min(vector bool short a, vector short b)
3050a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3051a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vminsh((vector short)a, b);
3052a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3053a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
3054a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector short __ATTRS_o_ai
3055a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_min(vector short a, vector bool short b)
3056a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3057a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vminsh(a, (vector short)b);
3058a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3059a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
30604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
30614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_min(vector unsigned short a, vector unsigned short b)
30624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
30634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vminuh(a, b);
30644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
30654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3066a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
3067a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_min(vector bool short a, vector unsigned short b)
3068a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3069a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vminuh((vector unsigned short)a, b);
3070a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3071a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
3072a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
3073a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_min(vector unsigned short a, vector bool short b)
3074a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3075a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vminuh(a, (vector unsigned short)b);
3076a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3077a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
30784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
30794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_min(vector int a, vector int b)
30804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
30814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vminsw(a, b);
30824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
30834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3084a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector int __ATTRS_o_ai
3085a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_min(vector bool int a, vector int b)
3086a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3087a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vminsw((vector int)a, b);
3088a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3089a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
3090a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector int __ATTRS_o_ai
3091a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_min(vector int a, vector bool int b)
3092a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3093a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vminsw(a, (vector int)b);
3094a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3095a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
30964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
30974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_min(vector unsigned int a, vector unsigned int b)
30984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
30994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vminuw(a, b);
31004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
31014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3102a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
3103a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_min(vector bool int a, vector unsigned int b)
3104a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3105a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vminuw((vector unsigned int)a, b);
3106a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3107a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
3108a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
3109a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_min(vector unsigned int a, vector bool int b)
3110a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3111a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vminuw(a, (vector unsigned int)b);
3112a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3113a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
31144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
31154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_min(vector float a, vector float b)
31164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
31174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vminfp(a, b);
31184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
31194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
31204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vminsb */
31214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3122a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector signed char __ATTRS_o_ai
3123a816ec833869eab267b7cf6e2c662552d814d768Anton Yartsevvec_vminsb(vector signed char a, vector signed char b)
31244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
31254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vminsb(a, b);
31264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
31274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3128a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector signed char __ATTRS_o_ai
3129a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vminsb(vector bool char a, vector signed char b)
3130a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3131a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vminsb((vector signed char)a, b);
3132a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3133a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
3134a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector signed char __ATTRS_o_ai
3135a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vminsb(vector signed char a, vector bool char b)
3136a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3137a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vminsb(a, (vector signed char)b);
3138a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3139a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
31404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vminub */
31414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3142a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
3143a816ec833869eab267b7cf6e2c662552d814d768Anton Yartsevvec_vminub(vector unsigned char a, vector unsigned char b)
31444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
31454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vminub(a, b);
31464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
31474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3148a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
3149a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vminub(vector bool char a, vector unsigned char b)
3150a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3151a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vminub((vector unsigned char)a, b);
3152a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3153a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
3154a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
3155a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vminub(vector unsigned char a, vector bool char b)
3156a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3157a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vminub(a, (vector unsigned char)b);
3158a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3159a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
3160a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev/* vec_vminsh */
3161a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
3162a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector short __ATTRS_o_ai
31634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vminsh(vector short a, vector short b)
31644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
31654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vminsh(a, b);
31664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
31674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3168a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector short __ATTRS_o_ai
3169a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vminsh(vector bool short a, vector short b)
3170a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3171a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vminsh((vector short)a, b);
3172a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3173a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
3174a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector short __ATTRS_o_ai
3175a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vminsh(vector short a, vector bool short b)
3176a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3177a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vminsh(a, (vector short)b);
3178a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3179a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
31804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vminuh */
31814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3182a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
31834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vminuh(vector unsigned short a, vector unsigned short b)
31844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
31854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vminuh(a, b);
31864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
31874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3188a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
3189a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vminuh(vector bool short a, vector unsigned short b)
3190a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3191a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vminuh((vector unsigned short)a, b);
3192a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3193a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
3194a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
3195a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vminuh(vector unsigned short a, vector bool short b)
3196a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3197a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vminuh(a, (vector unsigned short)b);
3198a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3199a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
32004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vminsw */
32014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3202a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector int __ATTRS_o_ai
32034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vminsw(vector int a, vector int b)
32044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
32054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vminsw(a, b);
32064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
32074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3208a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector int __ATTRS_o_ai
3209a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vminsw(vector bool int a, vector int b)
3210a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3211a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vminsw((vector int)a, b);
3212a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3213a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
3214a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector int __ATTRS_o_ai
3215a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vminsw(vector int a, vector bool int b)
3216a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3217a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vminsw(a, (vector int)b);
3218a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3219a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
32204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vminuw */
32214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3222a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
32234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vminuw(vector unsigned int a, vector unsigned int b)
32244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
32254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vminuw(a, b);
32264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
32274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3228a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
3229a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vminuw(vector bool int a, vector unsigned int b)
3230a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3231a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vminuw((vector unsigned int)a, b);
3232a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3233a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
3234a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
3235a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vminuw(vector unsigned int a, vector bool int b)
3236a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3237a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vminuw(a, (vector unsigned int)b);
3238a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3239a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
32404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vminfp */
32414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
32424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
32434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vminfp(vector float a, vector float b)
32444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
32454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vminfp(a, b);
32464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
32474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
32484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_mladd */
32494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
32504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vmladduhm vec_mladd
32514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
32524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
32534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mladd(vector short a, vector short b, vector short c)
32544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
32554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a * b + c;
32564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
32574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
32584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
32594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mladd(vector short a, vector unsigned short b, vector unsigned short c)
32604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
32614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a * (vector short)b + (vector short)c;
32624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
32634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
32644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
32654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mladd(vector unsigned short a, vector short b, vector short c)
32664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
32674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)a * b + c;
32684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
32694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
32704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
32713ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsevvec_mladd(vector unsigned short a,
32723ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev          vector unsigned short b,
32733ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev          vector unsigned short c)
32744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
32754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a * b + c;
32764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
32774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
32784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmladduhm */
32794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
32804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
32814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmladduhm(vector short a, vector short b, vector short c)
32824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
32834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a * b + c;
32844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
32854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
32864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
32874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmladduhm(vector short a, vector unsigned short b, vector unsigned short c)
32884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
32894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a * (vector short)b + (vector short)c;
32904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
32914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
32924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
32934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmladduhm(vector unsigned short a, vector short b, vector short c)
32944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
32954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)a * b + c;
32964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
32974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
32984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
32993ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsevvec_vmladduhm(vector unsigned short a,
33003ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev              vector unsigned short b,
33013ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev              vector unsigned short c)
33024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
33034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a * b + c;
33044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
33054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
33064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_mradds */
33074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
33084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __attribute__((__always_inline__))
33094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mradds(vector short a, vector short b, vector short c)
33104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
33114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmhraddshs(a, b, c);
33124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
33134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
33144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmhraddshs */
33154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
33164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __attribute__((__always_inline__))
33174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmhraddshs(vector short a, vector short b, vector short c)
33184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
33194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmhraddshs(a, b, c);
33204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
33214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
33224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_msum */
33234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
33244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
33254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_msum(vector signed char a, vector unsigned char b, vector int c)
33264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
33274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmsummbm(a, b, c);
33284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
33294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
33304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
33314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_msum(vector unsigned char a, vector unsigned char b, vector unsigned int c)
33324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
33334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmsumubm(a, b, c);
33344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
33354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
33364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
33374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_msum(vector short a, vector short b, vector int c)
33384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
33394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmsumshm(a, b, c);
33404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
33414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
33424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
33433ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsevvec_msum(vector unsigned short a,
33443ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev         vector unsigned short b,
33453ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev         vector unsigned int c)
33464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
33474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmsumuhm(a, b, c);
33484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
33494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
33504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmsummbm */
33514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
33524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __attribute__((__always_inline__))
33534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmsummbm(vector signed char a, vector unsigned char b, vector int c)
33544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
33554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmsummbm(a, b, c);
33564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
33574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
33584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmsumubm */
33594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
33604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __attribute__((__always_inline__))
33613ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsevvec_vmsumubm(vector unsigned char a,
33623ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev             vector unsigned char b,
33633ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev             vector unsigned int c)
33644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
33654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmsumubm(a, b, c);
33664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
33674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
33684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmsumshm */
33694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
33704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __attribute__((__always_inline__))
33714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmsumshm(vector short a, vector short b, vector int c)
33724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
33734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmsumshm(a, b, c);
33744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
33754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
33764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmsumuhm */
33774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
33784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __attribute__((__always_inline__))
33793ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsevvec_vmsumuhm(vector unsigned short a,
33803ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev             vector unsigned short b,
33813ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev             vector unsigned int c)
33824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
33834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmsumuhm(a, b, c);
33844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
33854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
33864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_msums */
33874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
33884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
33894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_msums(vector short a, vector short b, vector int c)
33904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
33914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmsumshs(a, b, c);
33924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
33934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
33944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
33953ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsevvec_msums(vector unsigned short a,
33963ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev          vector unsigned short b,
33973ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev          vector unsigned int c)
33984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
33994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmsumuhs(a, b, c);
34004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
34014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
34024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmsumshs */
34034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
34044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __attribute__((__always_inline__))
34054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmsumshs(vector short a, vector short b, vector int c)
34064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
34074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmsumshs(a, b, c);
34084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
34094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
34104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmsumuhs */
34114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
34124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __attribute__((__always_inline__))
34133ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsevvec_vmsumuhs(vector unsigned short a,
34143ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev             vector unsigned short b,
34153ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev             vector unsigned int c)
34164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
34174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmsumuhs(a, b, c);
34184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
34194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
34204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_mtvscr */
34214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
34224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
34234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mtvscr(vector signed char a)
34244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
34254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_mtvscr((vector int)a);
34264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
34274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
34284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
34294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mtvscr(vector unsigned char a)
34304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
34314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_mtvscr((vector int)a);
34324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
34334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
34344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
3435a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_mtvscr(vector bool char a)
3436a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3437a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_mtvscr((vector int)a);
3438a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3439a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
3440a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
34414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mtvscr(vector short a)
34424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
34434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_mtvscr((vector int)a);
34444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
34454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
34464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
34474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mtvscr(vector unsigned short a)
34484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
34494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_mtvscr((vector int)a);
34504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
34514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
34524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
3453a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_mtvscr(vector bool short a)
3454a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3455a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_mtvscr((vector int)a);
3456a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3457a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
3458a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
3459a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_mtvscr(vector pixel a)
3460a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3461a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_mtvscr((vector int)a);
3462a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3463a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
3464a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
34654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mtvscr(vector int a)
34664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
34674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_mtvscr((vector int)a);
34684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
34694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
34704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
34714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mtvscr(vector unsigned int a)
34724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
34734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_mtvscr((vector int)a);
34744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
34754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
34764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
3477a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_mtvscr(vector bool int a)
3478a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3479a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_mtvscr((vector int)a);
3480a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3481a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
3482a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
34834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mtvscr(vector float a)
34844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
34854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_mtvscr((vector int)a);
34864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
34874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
34884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_mule */
34894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
34904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
34914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mule(vector signed char a, vector signed char b)
34924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
34934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmulesb(a, b);
34944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
34954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
34964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
34974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mule(vector unsigned char a, vector unsigned char b)
34984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
34994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmuleub(a, b);
35004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
35014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
35034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mule(vector short a, vector short b)
35044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
35054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmulesh(a, b);
35064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
35074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
35094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mule(vector unsigned short a, vector unsigned short b)
35104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
35114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmuleuh(a, b);
35124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
35134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmulesb */
35154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __attribute__((__always_inline__))
35174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmulesb(vector signed char a, vector signed char b)
35184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
35194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmulesb(a, b);
35204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
35214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmuleub */
35234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __attribute__((__always_inline__))
35254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmuleub(vector unsigned char a, vector unsigned char b)
35264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
35274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmuleub(a, b);
35284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
35294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmulesh */
35314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __attribute__((__always_inline__))
35334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmulesh(vector short a, vector short b)
35344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
35354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmulesh(a, b);
35364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
35374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmuleuh */
35394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __attribute__((__always_inline__))
35414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmuleuh(vector unsigned short a, vector unsigned short b)
35424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
35434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmuleuh(a, b);
35444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
35454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_mulo */
35474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
35494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mulo(vector signed char a, vector signed char b)
35504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
35514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmulosb(a, b);
35524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
35534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
35554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mulo(vector unsigned char a, vector unsigned char b)
35564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
35574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmuloub(a, b);
35584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
35594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
35614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mulo(vector short a, vector short b)
35624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
35634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmulosh(a, b);
35644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
35654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
35674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mulo(vector unsigned short a, vector unsigned short b)
35684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
35694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmulouh(a, b);
35704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
35714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmulosb */
35734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __attribute__((__always_inline__))
35754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmulosb(vector signed char a, vector signed char b)
35764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
35774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmulosb(a, b);
35784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
35794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmuloub */
35814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __attribute__((__always_inline__))
35834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmuloub(vector unsigned char a, vector unsigned char b)
35844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
35854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmuloub(a, b);
35864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
35874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmulosh */
35894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __attribute__((__always_inline__))
35914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmulosh(vector short a, vector short b)
35924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
35934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmulosh(a, b);
35944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
35954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmulouh */
35974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __attribute__((__always_inline__))
35994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmulouh(vector unsigned short a, vector unsigned short b)
36004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
36014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmulouh(a, b);
36024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
36034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
36044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_nmsub */
36054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
36064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
36074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_nmsub(vector float a, vector float b, vector float c)
36084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
36094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vnmsubfp(a, b, c);
36104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
36114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
36124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vnmsubfp */
36134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
36144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
36154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vnmsubfp(vector float a, vector float b, vector float c)
36164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
36174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vnmsubfp(a, b, c);
36184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
36194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
36204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_nor */
36214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
36224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vnor vec_nor
36234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
36244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
36254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_nor(vector signed char a, vector signed char b)
36264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
36274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return ~(a | b);
36284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
36294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
36304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
36314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_nor(vector unsigned char a, vector unsigned char b)
36324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
36334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return ~(a | b);
36344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
36354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3636a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool char __ATTRS_o_ai
3637a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_nor(vector bool char a, vector bool char b)
3638a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3639a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return ~(a | b);
3640a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3641a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
36424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
36434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_nor(vector short a, vector short b)
36444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
36454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return ~(a | b);
36464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
36474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
36484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
36494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_nor(vector unsigned short a, vector unsigned short b)
36504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
36514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return ~(a | b);
36524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
36534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3654a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool short __ATTRS_o_ai
3655a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_nor(vector bool short a, vector bool short b)
3656a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3657a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return ~(a | b);
3658a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3659a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
36604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
36614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_nor(vector int a, vector int b)
36624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
36634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return ~(a | b);
36644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
36654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
36664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
36674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_nor(vector unsigned int a, vector unsigned int b)
36684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
36694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return ~(a | b);
36704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
36714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3672a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
3673a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_nor(vector bool int a, vector bool int b)
3674a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3675a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return ~(a | b);
3676a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3677a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
36784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
36794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_nor(vector float a, vector float b)
36804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
36814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  vector unsigned int res = ~((vector unsigned int)a | (vector unsigned int)b);
36824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)res;
36834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
36844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
36854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vnor */
36864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
36874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
36884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vnor(vector signed char a, vector signed char b)
36894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
36904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return ~(a | b);
36914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
36924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
36934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
36944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vnor(vector unsigned char a, vector unsigned char b)
36954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
36964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return ~(a | b);
36974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
36984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3699a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool char __ATTRS_o_ai
3700a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vnor(vector bool char a, vector bool char b)
3701a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3702a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return ~(a | b);
3703a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3704a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
37054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
37064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vnor(vector short a, vector short b)
37074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
37084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return ~(a | b);
37094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
37104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
37114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
37124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vnor(vector unsigned short a, vector unsigned short b)
37134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
37144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return ~(a | b);
37154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
37164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3717a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool short __ATTRS_o_ai
3718a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vnor(vector bool short a, vector bool short b)
3719a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3720a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return ~(a | b);
3721a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3722a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
37234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
37244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vnor(vector int a, vector int b)
37254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
37264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return ~(a | b);
37274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
37284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
37294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
37304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vnor(vector unsigned int a, vector unsigned int b)
37314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
37324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return ~(a | b);
37334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
37344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3735a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
3736a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vnor(vector bool int a, vector bool int b)
3737a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3738a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return ~(a | b);
3739a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3740a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
37414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
37424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vnor(vector float a, vector float b)
37434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
37444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  vector unsigned int res = ~((vector unsigned int)a | (vector unsigned int)b);
37454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)res;
37464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
37474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
37484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_or */
37494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
37504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vor vec_or
37514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
37524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
37534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_or(vector signed char a, vector signed char b)
37544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
37554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a | b;
37564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
37574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3758a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector signed char __ATTRS_o_ai
3759a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_or(vector bool char a, vector signed char b)
3760a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3761a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector signed char)a | b;
3762a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3763a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
3764a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector signed char __ATTRS_o_ai
3765a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_or(vector signed char a, vector bool char b)
3766a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3767a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a | (vector signed char)b;
3768a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3769a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
37704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
37714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_or(vector unsigned char a, vector unsigned char b)
37724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
37734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a | b;
37744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
37754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3776a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
3777a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_or(vector bool char a, vector unsigned char b)
3778a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3779a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector unsigned char)a | b;
3780a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3781a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
3782a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
3783a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_or(vector unsigned char a, vector bool char b)
3784a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3785a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a | (vector unsigned char)b;
3786a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3787a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
3788a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool char __ATTRS_o_ai
3789a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_or(vector bool char a, vector bool char b)
3790a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3791a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a | b;
3792a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3793a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
37944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
37954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_or(vector short a, vector short b)
37964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
37974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a | b;
37984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
37994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3800a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector short __ATTRS_o_ai
3801a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_or(vector bool short a, vector short b)
3802a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3803a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector short)a | b;
3804a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3805a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
3806a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector short __ATTRS_o_ai
3807a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_or(vector short a, vector bool short b)
3808a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3809a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a | (vector short)b;
3810a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3811a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
38124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
38134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_or(vector unsigned short a, vector unsigned short b)
38144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
38154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a | b;
38164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
38174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3818a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
3819a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_or(vector bool short a, vector unsigned short b)
3820a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3821a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector unsigned short)a | b;
3822a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3823a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
3824a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
3825a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_or(vector unsigned short a, vector bool short b)
3826a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3827a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a | (vector unsigned short)b;
3828a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3829a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
3830a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool short __ATTRS_o_ai
3831a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_or(vector bool short a, vector bool short b)
3832a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3833a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a | b;
3834a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3835a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
38364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
38374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_or(vector int a, vector int b)
38384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
38394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a | b;
38404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
38414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3842a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector int __ATTRS_o_ai
3843a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_or(vector bool int a, vector int b)
3844a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3845a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector int)a | b;
3846a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3847a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
3848a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector int __ATTRS_o_ai
3849a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_or(vector int a, vector bool int b)
3850a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3851a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a | (vector int)b;
3852a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3853a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
38544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
38554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_or(vector unsigned int a, vector unsigned int b)
38564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
38574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a | b;
38584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
38594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3860a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
3861a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_or(vector bool int a, vector unsigned int b)
3862a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3863a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector unsigned int)a | b;
3864a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3865a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
3866a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
3867a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_or(vector unsigned int a, vector bool int b)
3868a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3869a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a | (vector unsigned int)b;
3870a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3871a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
3872a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
3873a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_or(vector bool int a, vector bool int b)
3874a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3875a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a | b;
3876a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3877a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
38784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
38794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_or(vector float a, vector float b)
38804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
38814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  vector unsigned int res = (vector unsigned int)a | (vector unsigned int)b;
38824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)res;
38834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
38844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3885a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector float __ATTRS_o_ai
3886a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_or(vector bool int a, vector float b)
3887a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3888a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  vector unsigned int res = (vector unsigned int)a | (vector unsigned int)b;
3889a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector float)res;
3890a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3891a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
3892a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector float __ATTRS_o_ai
3893a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_or(vector float a, vector bool int b)
3894a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3895a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  vector unsigned int res = (vector unsigned int)a | (vector unsigned int)b;
3896a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector float)res;
3897a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3898a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
38994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vor */
39004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
39014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
39024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vor(vector signed char a, vector signed char b)
39034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
39044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a | b;
39054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
39064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3907a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector signed char __ATTRS_o_ai
3908a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vor(vector bool char a, vector signed char b)
3909a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3910a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector signed char)a | b;
3911a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3912a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
3913a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector signed char __ATTRS_o_ai
3914a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vor(vector signed char a, vector bool char b)
3915a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3916a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a | (vector signed char)b;
3917a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3918a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
39194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
39204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vor(vector unsigned char a, vector unsigned char b)
39214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
39224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a | b;
39234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
39244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3925a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
3926a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vor(vector bool char a, vector unsigned char b)
3927a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3928a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector unsigned char)a | b;
3929a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3930a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
3931a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
3932a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vor(vector unsigned char a, vector bool char b)
3933a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3934a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a | (vector unsigned char)b;
3935a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3936a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
3937a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool char __ATTRS_o_ai
3938a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vor(vector bool char a, vector bool char b)
3939a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3940a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a | b;
3941a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3942a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
39434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
39444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vor(vector short a, vector short b)
39454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
39464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a | b;
39474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
39484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3949a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector short __ATTRS_o_ai
3950a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vor(vector bool short a, vector short b)
3951a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3952a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector short)a | b;
3953a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3954a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
3955a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector short __ATTRS_o_ai
3956a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vor(vector short a, vector bool short b)
3957a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3958a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a | (vector short)b;
3959a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3960a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
39614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
39624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vor(vector unsigned short a, vector unsigned short b)
39634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
39644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a | b;
39654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
39664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3967a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
3968a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vor(vector bool short a, vector unsigned short b)
3969a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3970a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector unsigned short)a | b;
3971a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3972a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
3973a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
3974a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vor(vector unsigned short a, vector bool short b)
3975a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3976a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a | (vector unsigned short)b;
3977a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3978a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
3979a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool short __ATTRS_o_ai
3980a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vor(vector bool short a, vector bool short b)
3981a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3982a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a | b;
3983a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3984a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
39854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
39864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vor(vector int a, vector int b)
39874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
39884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a | b;
39894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
39904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3991a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector int __ATTRS_o_ai
3992a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vor(vector bool int a, vector int b)
3993a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
3994a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector int)a | b;
3995a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
3996a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
3997a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector int __ATTRS_o_ai
3998a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vor(vector int a, vector bool int b)
3999a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
4000a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a | (vector int)b;
4001a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
4002a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
40034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
40044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vor(vector unsigned int a, vector unsigned int b)
40054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
40064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a | b;
40074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
40084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4009a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
4010a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vor(vector bool int a, vector unsigned int b)
4011a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
4012a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector unsigned int)a | b;
4013a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
4014a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
4015a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
4016a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vor(vector unsigned int a, vector bool int b)
4017a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
4018a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a | (vector unsigned int)b;
4019a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
4020a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
4021a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
4022a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vor(vector bool int a, vector bool int b)
4023a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
4024a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a | b;
4025a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
4026a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
40274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
40284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vor(vector float a, vector float b)
40294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
40304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  vector unsigned int res = (vector unsigned int)a | (vector unsigned int)b;
40314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)res;
40324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
40334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4034a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector float __ATTRS_o_ai
4035a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vor(vector bool int a, vector float b)
4036a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
4037a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  vector unsigned int res = (vector unsigned int)a | (vector unsigned int)b;
4038a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector float)res;
4039a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
4040a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
4041a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector float __ATTRS_o_ai
4042a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vor(vector float a, vector bool int b)
4043a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
4044a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  vector unsigned int res = (vector unsigned int)a | (vector unsigned int)b;
4045a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector float)res;
4046a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
4047a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
40484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_pack */
40494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
40504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
40514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_pack(vector signed short a, vector signed short b)
40524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
40534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)vec_perm(a, b, (vector unsigned char)
40544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
40554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
40564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
40574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
40584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
40594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_pack(vector unsigned short a, vector unsigned short b)
40604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
40614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)vec_perm(a, b, (vector unsigned char)
40624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
40634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
40644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
40654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4066f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevstatic vector bool char __ATTRS_o_ai
4067f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_pack(vector bool short a, vector bool short b)
4068f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev{
4069f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return (vector bool char)vec_perm(a, b, (vector unsigned char)
4070f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev    (0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
4071f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev     0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
4072f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev}
4073f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
40744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
40754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_pack(vector int a, vector int b)
40764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
40774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)vec_perm(a, b, (vector unsigned char)
40784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
40794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
40804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
40814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
40824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
40834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_pack(vector unsigned int a, vector unsigned int b)
40844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
40854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)vec_perm(a, b, (vector unsigned char)
40864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
40874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
40884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
40894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4090f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevstatic vector bool short __ATTRS_o_ai
4091f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_pack(vector bool int a, vector bool int b)
4092f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev{
4093f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return (vector bool short)vec_perm(a, b, (vector unsigned char)
4094f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev    (0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
4095f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev     0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
4096f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev}
4097f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
40984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vpkuhum */
40994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
41004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vpkuhum vec_vpkuhum
41014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
41024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
41034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vpkuhum(vector signed short a, vector signed short b)
41044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
41054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)vec_perm(a, b, (vector unsigned char)
41064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
41074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
41084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
41094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
41104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
41114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vpkuhum(vector unsigned short a, vector unsigned short b)
41124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
41134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)vec_perm(a, b, (vector unsigned char)
41144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
41154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
41164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
41174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4118f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevstatic vector bool char __ATTRS_o_ai
4119f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_vpkuhum(vector bool short a, vector bool short b)
4120f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev{
4121f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return (vector bool char)vec_perm(a, b, (vector unsigned char)
4122f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev    (0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
4123f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev     0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
4124f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev}
4125f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
41264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vpkuwum */
41274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
41284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vpkuwum vec_vpkuwum
41294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
41304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
41314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vpkuwum(vector int a, vector int b)
41324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
41334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)vec_perm(a, b, (vector unsigned char)
41344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
41354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
41364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
41374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
41384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
41394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vpkuwum(vector unsigned int a, vector unsigned int b)
41404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
41414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)vec_perm(a, b, (vector unsigned char)
41424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
41434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
41444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
41454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4146f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevstatic vector bool short __ATTRS_o_ai
4147f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_vpkuwum(vector bool int a, vector bool int b)
4148f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev{
4149f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return (vector bool short)vec_perm(a, b, (vector unsigned char)
4150f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev    (0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
4151f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev     0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
4152f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev}
4153f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
41544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_packpx */
41554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
41564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector pixel __attribute__((__always_inline__))
41574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_packpx(vector unsigned int a, vector unsigned int b)
41584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
41594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector pixel)__builtin_altivec_vpkpx(a, b);
41604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
41614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
41624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vpkpx */
41634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
41644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector pixel __attribute__((__always_inline__))
41654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vpkpx(vector unsigned int a, vector unsigned int b)
41664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
41674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector pixel)__builtin_altivec_vpkpx(a, b);
41684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
41694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
41704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_packs */
41714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
41724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
41734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_packs(vector short a, vector short b)
41744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
41754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vpkshss(a, b);
41764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
41774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
41784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
41794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_packs(vector unsigned short a, vector unsigned short b)
41804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
41814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vpkuhus(a, b);
41824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
41834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
41844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed short __ATTRS_o_ai
41854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_packs(vector int a, vector int b)
41864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
41874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vpkswss(a, b);
41884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
41894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
41904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
41914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_packs(vector unsigned int a, vector unsigned int b)
41924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
41934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vpkuwus(a, b);
41944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
41954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
41964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vpkshss */
41974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
41984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __attribute__((__always_inline__))
41994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vpkshss(vector short a, vector short b)
42004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
42014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vpkshss(a, b);
42024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
42034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vpkuhus */
42054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __attribute__((__always_inline__))
42074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vpkuhus(vector unsigned short a, vector unsigned short b)
42084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
42094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vpkuhus(a, b);
42104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
42114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vpkswss */
42134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed short __attribute__((__always_inline__))
42154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vpkswss(vector int a, vector int b)
42164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
42174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vpkswss(a, b);
42184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
42194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vpkuwus */
42214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __attribute__((__always_inline__))
42234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vpkuwus(vector unsigned int a, vector unsigned int b)
42244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
42254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vpkuwus(a, b);
42264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
42274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_packsu */
42294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
42314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_packsu(vector short a, vector short b)
42324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
42334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vpkshus(a, b);
42344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
42354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
42374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_packsu(vector unsigned short a, vector unsigned short b)
42384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
42394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vpkuhus(a, b);
42404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
42414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
42434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_packsu(vector int a, vector int b)
42444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
42454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vpkswus(a, b);
42464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
42474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
42494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_packsu(vector unsigned int a, vector unsigned int b)
42504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
42514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vpkuwus(a, b);
42524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
42534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vpkshus */
42554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
42574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vpkshus(vector short a, vector short b)
42584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
42594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vpkshus(a, b);
42604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
42614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
42634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vpkshus(vector unsigned short a, vector unsigned short b)
42644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
42654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vpkuhus(a, b);
42664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
42674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vpkswus */
42694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
42714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vpkswus(vector int a, vector int b)
42724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
42734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vpkswus(a, b);
42744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
42754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
42774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vpkswus(vector unsigned int a, vector unsigned int b)
42784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
42794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vpkuwus(a, b);
42804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
42814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_perm */
42834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvector signed char __ATTRS_o_ai
42854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_perm(vector signed char a, vector signed char b, vector unsigned char c)
42864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
42873ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector signed char)
42883ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vperm_4si((vector int)a, (vector int)b, c);
42894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
42904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvector unsigned char __ATTRS_o_ai
42923ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsevvec_perm(vector unsigned char a,
42933ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev         vector unsigned char b,
42943ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev         vector unsigned char c)
42954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
42963ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned char)
42973ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vperm_4si((vector int)a, (vector int)b, c);
42984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
42994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4300f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvector bool char __ATTRS_o_ai
4301f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_perm(vector bool char a, vector bool char b, vector unsigned char c)
4302f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev{
43033ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector bool char)
43043ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vperm_4si((vector int)a, (vector int)b, c);
4305f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev}
4306f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
43074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvector short __ATTRS_o_ai
43084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_perm(vector short a, vector short b, vector unsigned char c)
43094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
43103ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector short)
43113ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vperm_4si((vector int)a, (vector int)b, c);
43124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
43134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
43144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvector unsigned short __ATTRS_o_ai
43153ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsevvec_perm(vector unsigned short a,
43163ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev         vector unsigned short b,
43173ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev         vector unsigned char c)
43184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
43193ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned short)
43203ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vperm_4si((vector int)a, (vector int)b, c);
43214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
43224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4323f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvector bool short __ATTRS_o_ai
4324f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_perm(vector bool short a, vector bool short b, vector unsigned char c)
4325f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev{
43263ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector bool short)
43273ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vperm_4si((vector int)a, (vector int)b, c);
4328f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev}
4329f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
4330f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvector pixel __ATTRS_o_ai
4331f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_perm(vector pixel a, vector pixel b, vector unsigned char c)
4332f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev{
43333ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector pixel)
43343ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vperm_4si((vector int)a, (vector int)b, c);
4335f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev}
4336f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
43374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvector int __ATTRS_o_ai
43384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_perm(vector int a, vector int b, vector unsigned char c)
43394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
43404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vperm_4si(a, b, c);
43414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
43424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
43434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvector unsigned int __ATTRS_o_ai
43444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_perm(vector unsigned int a, vector unsigned int b, vector unsigned char c)
43454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
43463ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned int)
43473ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vperm_4si((vector int)a, (vector int)b, c);
43484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
43494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4350f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvector bool int __ATTRS_o_ai
4351f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_perm(vector bool int a, vector bool int b, vector unsigned char c)
4352f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev{
43533ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector bool int)
43543ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vperm_4si((vector int)a, (vector int)b, c);
4355f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev}
4356f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
43574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvector float __ATTRS_o_ai
43584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_perm(vector float a, vector float b, vector unsigned char c)
43594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
43603ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector float)
43613ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vperm_4si((vector int)a, (vector int)b, c);
43624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
43634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
43644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vperm */
43654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
43664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvector signed char __ATTRS_o_ai
43674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vperm(vector signed char a, vector signed char b, vector unsigned char c)
43684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
43693ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector signed char)
43703ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vperm_4si((vector int)a, (vector int)b, c);
43714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
43724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
43734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvector unsigned char __ATTRS_o_ai
43743ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsevvec_vperm(vector unsigned char a,
43753ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev          vector unsigned char b,
43763ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev          vector unsigned char c)
43774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
43783ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned char)
43793ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vperm_4si((vector int)a, (vector int)b, c);
43804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
43814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4382f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvector bool char __ATTRS_o_ai
4383f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_vperm(vector bool char a, vector bool char b, vector unsigned char c)
4384f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev{
43853ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector bool char)
43863ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vperm_4si((vector int)a, (vector int)b, c);
4387f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev}
4388f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
43894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvector short __ATTRS_o_ai
43904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vperm(vector short a, vector short b, vector unsigned char c)
43914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
43923ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector short)
43933ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vperm_4si((vector int)a, (vector int)b, c);
43944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
43954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
43964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvector unsigned short __ATTRS_o_ai
43973ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsevvec_vperm(vector unsigned short a,
43983ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev          vector unsigned short b,
43993ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev          vector unsigned char c)
44004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
44013ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned short)
44023ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vperm_4si((vector int)a, (vector int)b, c);
44034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
44044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4405f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvector bool short __ATTRS_o_ai
4406f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_vperm(vector bool short a, vector bool short b, vector unsigned char c)
4407f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev{
44083ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector bool short)
44093ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vperm_4si((vector int)a, (vector int)b, c);
4410f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev}
4411f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
4412f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvector pixel __ATTRS_o_ai
4413f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_vperm(vector pixel a, vector pixel b, vector unsigned char c)
4414f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev{
44153ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector pixel)
44163ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vperm_4si((vector int)a, (vector int)b, c);
4417f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev}
4418f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
44194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvector int __ATTRS_o_ai
44204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vperm(vector int a, vector int b, vector unsigned char c)
44214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
44224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vperm_4si(a, b, c);
44234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
44244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
44254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvector unsigned int __ATTRS_o_ai
44264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vperm(vector unsigned int a, vector unsigned int b, vector unsigned char c)
44274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
44283ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned int)
44293ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vperm_4si((vector int)a, (vector int)b, c);
44304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
44314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4432f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvector bool int __ATTRS_o_ai
4433f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_vperm(vector bool int a, vector bool int b, vector unsigned char c)
4434f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev{
44353ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector bool int)
44363ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vperm_4si((vector int)a, (vector int)b, c);
4437f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev}
4438f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
44394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvector float __ATTRS_o_ai
44404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vperm(vector float a, vector float b, vector unsigned char c)
44414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
44423ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector float)
44433ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vperm_4si((vector int)a, (vector int)b, c);
44444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
44454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
44464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_re */
44474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
44484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvector float __attribute__((__always_inline__))
44494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_re(vector float a)
44504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
44514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vrefp(a);
44524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
44534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
44544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vrefp */
44554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
44564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvector float __attribute__((__always_inline__))
44574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vrefp(vector float a)
44584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
44594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vrefp(a);
44604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
44614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
44624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_rl */
44634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
44644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
44654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_rl(vector signed char a, vector unsigned char b)
44664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
44674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_vrlb((vector char)a, b);
44684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
44694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
44704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
44714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_rl(vector unsigned char a, vector unsigned char b)
44724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
44734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_vrlb((vector char)a, b);
44744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
44754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
44764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
44774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_rl(vector short a, vector unsigned short b)
44784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
44794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vrlh(a, b);
44804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
44814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
44824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
44834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_rl(vector unsigned short a, vector unsigned short b)
44844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
44854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_vrlh((vector short)a, b);
44864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
44874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
44884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
44894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_rl(vector int a, vector unsigned int b)
44904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
44914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vrlw(a, b);
44924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
44934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
44944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
44954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_rl(vector unsigned int a, vector unsigned int b)
44964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
44974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_vrlw((vector int)a, b);
44984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
44994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
45004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vrlb */
45014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
45024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
45034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vrlb(vector signed char a, vector unsigned char b)
45044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
45054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_vrlb((vector char)a, b);
45064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
45074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
45084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
45094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vrlb(vector unsigned char a, vector unsigned char b)
45104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
45114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_vrlb((vector char)a, b);
45124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
45134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
45144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vrlh */
45154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
45164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
45174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vrlh(vector short a, vector unsigned short b)
45184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
45194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vrlh(a, b);
45204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
45214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
45224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
45234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vrlh(vector unsigned short a, vector unsigned short b)
45244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
45254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_vrlh((vector short)a, b);
45264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
45274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
45284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vrlw */
45294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
45304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
45314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vrlw(vector int a, vector unsigned int b)
45324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
45334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vrlw(a, b);
45344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
45354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
45364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
45374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vrlw(vector unsigned int a, vector unsigned int b)
45384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
45394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_vrlw((vector int)a, b);
45404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
45414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
45424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_round */
45434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
45444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
45454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_round(vector float a)
45464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
45474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vrfin(a);
45484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
45494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
45504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vrfin */
45514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
45524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
45534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vrfin(vector float a)
45544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
45554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vrfin(a);
45564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
45574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
45584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_rsqrte */
45594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
45604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic __vector float __attribute__((__always_inline__))
45614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_rsqrte(vector float a)
45624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
45634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vrsqrtefp(a);
45644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
45654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
45664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vrsqrtefp */
45674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
45684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic __vector float __attribute__((__always_inline__))
45694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vrsqrtefp(vector float a)
45704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
45714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vrsqrtefp(a);
45724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
45734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
45744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_sel */
45754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
45764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vsel_4si vec_sel
45774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
45784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
45794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sel(vector signed char a, vector signed char b, vector unsigned char c)
45804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
45814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (a & ~(vector signed char)c) | (b & (vector signed char)c);
45824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
45834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4584a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector signed char __ATTRS_o_ai
4585a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sel(vector signed char a, vector signed char b, vector bool char c)
4586a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
4587a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (a & ~(vector signed char)c) | (b & (vector signed char)c);
4588a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
4589a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
45904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
45914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sel(vector unsigned char a, vector unsigned char b, vector unsigned char c)
45924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
45934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (a & ~c) | (b & c);
45944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
45954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4596a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
4597a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sel(vector unsigned char a, vector unsigned char b, vector bool char c)
4598a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
4599a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (a & ~(vector unsigned char)c) | (b & (vector unsigned char)c);
4600a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
4601a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
4602a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool char __ATTRS_o_ai
4603a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sel(vector bool char a, vector bool char b, vector unsigned char c)
4604a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
4605a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (a & ~(vector bool char)c) | (b & (vector bool char)c);
4606a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
4607a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
4608a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool char __ATTRS_o_ai
4609a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sel(vector bool char a, vector bool char b, vector bool char c)
4610a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
4611a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (a & ~c) | (b & c);
4612a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
4613a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
4614a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector short __ATTRS_o_ai
4615a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sel(vector short a, vector short b, vector unsigned short c)
4616a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
4617a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (a & ~(vector short)c) | (b & (vector short)c);
4618a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
4619a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
4620a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector short __ATTRS_o_ai
4621a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sel(vector short a, vector short b, vector bool short c)
46224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
46234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (a & ~(vector short)c) | (b & (vector short)c);
46244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
46254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
46264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
46273ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsevvec_sel(vector unsigned short a,
46283ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev        vector unsigned short b,
46293ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev        vector unsigned short c)
46304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
46314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (a & ~c) | (b & c);
46324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
46334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4634a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
4635a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sel(vector unsigned short a, vector unsigned short b, vector bool short c)
4636a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
4637a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (a & ~(vector unsigned short)c) | (b & (vector unsigned short)c);
4638a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
4639a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
4640a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool short __ATTRS_o_ai
4641a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sel(vector bool short a, vector bool short b, vector unsigned short c)
4642a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
4643a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (a & ~(vector bool short)c) | (b & (vector bool short)c);
4644a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
4645a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
4646a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool short __ATTRS_o_ai
4647a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sel(vector bool short a, vector bool short b, vector bool short c)
4648a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
4649a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (a & ~c) | (b & c);
4650a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
4651a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
46524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
46534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sel(vector int a, vector int b, vector unsigned int c)
46544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
46554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (a & ~(vector int)c) | (b & (vector int)c);
46564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
46574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4658a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector int __ATTRS_o_ai
4659a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sel(vector int a, vector int b, vector bool int c)
4660a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
4661a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (a & ~(vector int)c) | (b & (vector int)c);
4662a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
4663a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
46644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
46654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sel(vector unsigned int a, vector unsigned int b, vector unsigned int c)
46664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
46674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (a & ~c) | (b & c);
46684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
46694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4670a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
4671a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sel(vector unsigned int a, vector unsigned int b, vector bool int c)
4672a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
4673a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (a & ~(vector unsigned int)c) | (b & (vector unsigned int)c);
4674a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
4675a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
4676a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
4677a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sel(vector bool int a, vector bool int b, vector unsigned int c)
4678a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
4679a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (a & ~(vector bool int)c) | (b & (vector bool int)c);
4680a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
4681a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
4682a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
4683a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sel(vector bool int a, vector bool int b, vector bool int c)
4684a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
4685a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (a & ~c) | (b & c);
4686a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
4687a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
46884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
46894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sel(vector float a, vector float b, vector unsigned int c)
46904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
46913ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  vector int res = ((vector int)a & ~(vector int)c)
46923ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                   | ((vector int)b & (vector int)c);
46934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)res;
46944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
46954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4696a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector float __ATTRS_o_ai
4697a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sel(vector float a, vector float b, vector bool int c)
4698a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
46993ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  vector int res = ((vector int)a & ~(vector int)c)
47003ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                   | ((vector int)b & (vector int)c);
4701a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector float)res;
4702a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
4703a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
47044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsel */
47054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
47064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
47074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsel(vector signed char a, vector signed char b, vector unsigned char c)
47084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
47094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (a & ~(vector signed char)c) | (b & (vector signed char)c);
47104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
47114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4712a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector signed char __ATTRS_o_ai
4713a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsel(vector signed char a, vector signed char b, vector bool char c)
4714a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
4715a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (a & ~(vector signed char)c) | (b & (vector signed char)c);
4716a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
4717a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
47184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
47194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsel(vector unsigned char a, vector unsigned char b, vector unsigned char c)
47204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
47214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (a & ~c) | (b & c);
47224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
47234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4724a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
4725a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsel(vector unsigned char a, vector unsigned char b, vector bool char c)
4726a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
4727a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (a & ~(vector unsigned char)c) | (b & (vector unsigned char)c);
4728a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
4729a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
4730a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool char __ATTRS_o_ai
4731a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsel(vector bool char a, vector bool char b, vector unsigned char c)
4732a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
4733a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (a & ~(vector bool char)c) | (b & (vector bool char)c);
4734a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
4735a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
4736a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool char __ATTRS_o_ai
4737a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsel(vector bool char a, vector bool char b, vector bool char c)
4738a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
4739a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (a & ~c) | (b & c);
4740a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
4741a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
47424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
47434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsel(vector short a, vector short b, vector unsigned short c)
47444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
47454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (a & ~(vector short)c) | (b & (vector short)c);
47464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
47474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4748a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector short __ATTRS_o_ai
4749a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsel(vector short a, vector short b, vector bool short c)
4750a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
4751a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (a & ~(vector short)c) | (b & (vector short)c);
4752a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
4753a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
47544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
47553ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsevvec_vsel(vector unsigned short a,
47563ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev         vector unsigned short b,
47573ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev         vector unsigned short c)
47584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
47594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (a & ~c) | (b & c);
47604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
47614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4762a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
4763a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsel(vector unsigned short a, vector unsigned short b, vector bool short c)
4764a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
4765a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (a & ~(vector unsigned short)c) | (b & (vector unsigned short)c);
4766a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
4767a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
4768a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool short __ATTRS_o_ai
4769a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsel(vector bool short a, vector bool short b, vector unsigned short c)
4770a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
4771a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (a & ~(vector bool short)c) | (b & (vector bool short)c);
4772a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
4773a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
4774a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool short __ATTRS_o_ai
4775a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsel(vector bool short a, vector bool short b, vector bool short c)
4776a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
4777a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (a & ~c) | (b & c);
4778a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
4779a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
47804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
47814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsel(vector int a, vector int b, vector unsigned int c)
47824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
47834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (a & ~(vector int)c) | (b & (vector int)c);
47844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
47854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4786a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector int __ATTRS_o_ai
4787a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsel(vector int a, vector int b, vector bool int c)
4788a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
4789a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (a & ~(vector int)c) | (b & (vector int)c);
4790a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
4791a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
47924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
47934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsel(vector unsigned int a, vector unsigned int b, vector unsigned int c)
47944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
47954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (a & ~c) | (b & c);
47964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
47974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4798a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
4799a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsel(vector unsigned int a, vector unsigned int b, vector bool int c)
4800a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
4801a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (a & ~(vector unsigned int)c) | (b & (vector unsigned int)c);
4802a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
4803a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
4804a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
4805a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsel(vector bool int a, vector bool int b, vector unsigned int c)
4806a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
4807a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (a & ~(vector bool int)c) | (b & (vector bool int)c);
4808a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
4809a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
4810a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
4811a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsel(vector bool int a, vector bool int b, vector bool int c)
4812a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
4813a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (a & ~c) | (b & c);
4814a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
4815a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
48164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
48174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsel(vector float a, vector float b, vector unsigned int c)
48184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
48193ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  vector int res = ((vector int)a & ~(vector int)c)
48203ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                   | ((vector int)b & (vector int)c);
48214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)res;
48224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
48234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4824a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector float __ATTRS_o_ai
4825a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsel(vector float a, vector float b, vector bool int c)
4826a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
48273ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  vector int res = ((vector int)a & ~(vector int)c)
48283ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                   | ((vector int)b & (vector int)c);
4829a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector float)res;
4830a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
4831a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
48324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_sl */
48334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
48344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
48354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sl(vector signed char a, vector unsigned char b)
48364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
48374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a << (vector signed char)b;
48384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
48394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
48404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
48414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sl(vector unsigned char a, vector unsigned char b)
48424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
48434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a << b;
48444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
48454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
48464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
48474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sl(vector short a, vector unsigned short b)
48484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
48494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a << (vector short)b;
48504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
48514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
48524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
48534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sl(vector unsigned short a, vector unsigned short b)
48544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
48554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a << b;
48564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
48574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
48584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
48594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sl(vector int a, vector unsigned int b)
48604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
48614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a << (vector int)b;
48624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
48634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
48644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
48654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sl(vector unsigned int a, vector unsigned int b)
48664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
48674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a << b;
48684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
48694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
48704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vslb */
48714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
48724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vslb vec_vslb
48734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
48744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
48754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslb(vector signed char a, vector unsigned char b)
48764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
48774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_sl(a, b);
48784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
48794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
48804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
48814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslb(vector unsigned char a, vector unsigned char b)
48824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
48834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_sl(a, b);
48844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
48854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
48864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vslh */
48874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
48884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vslh vec_vslh
48894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
48904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
48914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslh(vector short a, vector unsigned short b)
48924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
48934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_sl(a, b);
48944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
48954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
48964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
48974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslh(vector unsigned short a, vector unsigned short b)
48984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
48994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_sl(a, b);
49004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
49014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
49024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vslw */
49034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
49044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vslw vec_vslw
49054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
49064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
49074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslw(vector int a, vector unsigned int b)
49084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
49094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_sl(a, b);
49104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
49114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
49124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
49134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslw(vector unsigned int a, vector unsigned int b)
49144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
49154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_sl(a, b);
49164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
49174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
49184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_sld */
49194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
49204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vsldoi_4si vec_sld
49214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
49224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
49234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sld(vector signed char a, vector signed char b, unsigned char c)
49244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
4925f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, b, (vector unsigned char)
49264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (c,   c+1, c+2,  c+3,  c+4,  c+5,  c+6,  c+7,
49274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     c+8, c+9, c+10, c+11, c+12, c+13, c+14, c+15));
49284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
49294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
49304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
49314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sld(vector unsigned char a, vector unsigned char b, unsigned char c)
49324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
4933f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, b, (vector unsigned char)
49344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (c,   c+1, c+2,  c+3,  c+4,  c+5,  c+6,  c+7,
49354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     c+8, c+9, c+10, c+11, c+12, c+13, c+14, c+15));
49364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
49374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
49384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
49394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sld(vector short a, vector short b, unsigned char c)
49404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
4941f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, b, (vector unsigned char)
49424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (c,   c+1, c+2,  c+3,  c+4,  c+5,  c+6,  c+7,
49434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     c+8, c+9, c+10, c+11, c+12, c+13, c+14, c+15));
49444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
49454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
49464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
49474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sld(vector unsigned short a, vector unsigned short b, unsigned char c)
49484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
4949f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, b, (vector unsigned char)
4950f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev    (c,   c+1, c+2,  c+3,  c+4,  c+5,  c+6,  c+7,
4951f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev     c+8, c+9, c+10, c+11, c+12, c+13, c+14, c+15));
4952f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev}
4953f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
4954f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevstatic vector pixel __ATTRS_o_ai
4955f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_sld(vector pixel a, vector pixel b, unsigned char c)
4956f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev{
4957f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, b, (vector unsigned char)
49584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (c,   c+1, c+2,  c+3,  c+4,  c+5,  c+6,  c+7,
49594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     c+8, c+9, c+10, c+11, c+12, c+13, c+14, c+15));
49604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
49614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
49624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
49634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sld(vector int a, vector int b, unsigned char c)
49644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
49654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
49664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (c,   c+1, c+2,  c+3,  c+4,  c+5,  c+6,  c+7,
49674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     c+8, c+9, c+10, c+11, c+12, c+13, c+14, c+15));
49684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
49694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
49704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
49714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sld(vector unsigned int a, vector unsigned int b, unsigned char c)
49724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
4973f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, b, (vector unsigned char)
49744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (c,   c+1, c+2,  c+3,  c+4,  c+5,  c+6,  c+7,
49754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     c+8, c+9, c+10, c+11, c+12, c+13, c+14, c+15));
49764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
49774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
49784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
49794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sld(vector float a, vector float b, unsigned char c)
49804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
4981f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, b, (vector unsigned char)
49824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (c,   c+1, c+2,  c+3,  c+4,  c+5,  c+6,  c+7,
49834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     c+8, c+9, c+10, c+11, c+12, c+13, c+14, c+15));
49844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
49854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
49864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsldoi */
49874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
49884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
49894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsldoi(vector signed char a, vector signed char b, unsigned char c)
49904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
4991f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, b, (vector unsigned char)
49924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (c,   c+1, c+2,  c+3,  c+4,  c+5,  c+6,  c+7,
49934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     c+8, c+9, c+10, c+11, c+12, c+13, c+14, c+15));
49944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
49954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
49964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
49974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsldoi(vector unsigned char a, vector unsigned char b, unsigned char c)
49984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
4999f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, b, (vector unsigned char)
50004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (c,   c+1, c+2,  c+3,  c+4,  c+5,  c+6,  c+7,
50014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     c+8, c+9, c+10, c+11, c+12, c+13, c+14, c+15));
50024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
50034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
50044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
50054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsldoi(vector short a, vector short b, unsigned char c)
50064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
5007f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, b, (vector unsigned char)
50084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (c,   c+1, c+2,  c+3,  c+4,  c+5,  c+6,  c+7,
50094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     c+8, c+9, c+10, c+11, c+12, c+13, c+14, c+15));
50104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
50114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
50124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
50134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsldoi(vector unsigned short a, vector unsigned short b, unsigned char c)
50144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
5015f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, b, (vector unsigned char)
5016f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev    (c,   c+1, c+2,  c+3,  c+4,  c+5,  c+6,  c+7,
5017f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev     c+8, c+9, c+10, c+11, c+12, c+13, c+14, c+15));
5018f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev}
5019f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
5020f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevstatic vector pixel __ATTRS_o_ai
5021f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_vsldoi(vector pixel a, vector pixel b, unsigned char c)
5022f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev{
5023f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, b, (vector unsigned char)
50244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (c,   c+1, c+2,  c+3,  c+4,  c+5,  c+6,  c+7,
50254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     c+8, c+9, c+10, c+11, c+12, c+13, c+14, c+15));
50264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
50274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
50284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
50294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsldoi(vector int a, vector int b, unsigned char c)
50304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
50314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
50324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (c,   c+1, c+2,  c+3,  c+4,  c+5,  c+6,  c+7,
50334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     c+8, c+9, c+10, c+11, c+12, c+13, c+14, c+15));
50344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
50354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
50364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
50374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsldoi(vector unsigned int a, vector unsigned int b, unsigned char c)
50384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
5039f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, b, (vector unsigned char)
50404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (c,   c+1, c+2,  c+3,  c+4,  c+5,  c+6,  c+7,
50414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     c+8, c+9, c+10, c+11, c+12, c+13, c+14, c+15));
50424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
50434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
50444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
50454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsldoi(vector float a, vector float b, unsigned char c)
50464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
5047f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, b, (vector unsigned char)
50484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (c,   c+1, c+2,  c+3,  c+4,  c+5,  c+6,  c+7,
50494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     c+8, c+9, c+10, c+11, c+12, c+13, c+14, c+15));
50504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
50514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
50524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_sll */
50534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
50544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
50554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sll(vector signed char a, vector unsigned char b)
50564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
50573ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector signed char)
50583ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsl((vector int)a, (vector int)b);
50594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
50604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
50614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
50624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sll(vector signed char a, vector unsigned short b)
50634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
50643ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector signed char)
50653ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsl((vector int)a, (vector int)b);
50664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
50674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
50684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
50694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sll(vector signed char a, vector unsigned int b)
50704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
50713ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector signed char)
50723ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsl((vector int)a, (vector int)b);
50734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
50744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
50754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
50764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sll(vector unsigned char a, vector unsigned char b)
50774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
50783ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned char)
50793ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsl((vector int)a, (vector int)b);
50804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
50814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
50824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
50834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sll(vector unsigned char a, vector unsigned short b)
50844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
50853ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned char)
50863ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsl((vector int)a, (vector int)b);
50874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
50884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
50894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
50904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sll(vector unsigned char a, vector unsigned int b)
50914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
50923ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned char)
50933ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsl((vector int)a, (vector int)b);
50944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
50954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
5096a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool char __ATTRS_o_ai
5097a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sll(vector bool char a, vector unsigned char b)
5098a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
5099a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool char)__builtin_altivec_vsl((vector int)a, (vector int)b);
5100a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
5101a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
5102a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool char __ATTRS_o_ai
5103a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sll(vector bool char a, vector unsigned short b)
5104a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
5105a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool char)__builtin_altivec_vsl((vector int)a, (vector int)b);
5106a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
5107a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
5108a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool char __ATTRS_o_ai
5109a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sll(vector bool char a, vector unsigned int b)
5110a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
5111a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool char)__builtin_altivec_vsl((vector int)a, (vector int)b);
5112a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
5113a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
51144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
51154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sll(vector short a, vector unsigned char b)
51164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
51174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vsl((vector int)a, (vector int)b);
51184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
51194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
51204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
51214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sll(vector short a, vector unsigned short b)
51224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
51234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vsl((vector int)a, (vector int)b);
51244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
51254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
51264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
51274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sll(vector short a, vector unsigned int b)
51284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
51294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vsl((vector int)a, (vector int)b);
51304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
51314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
51324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
51334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sll(vector unsigned short a, vector unsigned char b)
51344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
51353ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned short)
51363ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsl((vector int)a, (vector int)b);
51374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
51384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
51394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
51404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sll(vector unsigned short a, vector unsigned short b)
51414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
51423ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned short)
51433ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsl((vector int)a, (vector int)b);
51444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
51454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
51464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
51474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sll(vector unsigned short a, vector unsigned int b)
51484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
51493ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned short)
51503ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsl((vector int)a, (vector int)b);
51514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
51524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
5153a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool short __ATTRS_o_ai
5154a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sll(vector bool short a, vector unsigned char b)
5155a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
5156a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool short)__builtin_altivec_vsl((vector int)a, (vector int)b);
5157a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
5158a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
5159a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool short __ATTRS_o_ai
5160a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sll(vector bool short a, vector unsigned short b)
5161a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
5162a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool short)__builtin_altivec_vsl((vector int)a, (vector int)b);
5163a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
5164a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
5165a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool short __ATTRS_o_ai
5166a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sll(vector bool short a, vector unsigned int b)
5167a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
5168a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool short)__builtin_altivec_vsl((vector int)a, (vector int)b);
5169a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
5170a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
5171a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector pixel __ATTRS_o_ai
5172a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sll(vector pixel a, vector unsigned char b)
5173a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
5174a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector pixel)__builtin_altivec_vsl((vector int)a, (vector int)b);
5175a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
5176a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
5177a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector pixel __ATTRS_o_ai
5178a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sll(vector pixel a, vector unsigned short b)
5179a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
5180a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector pixel)__builtin_altivec_vsl((vector int)a, (vector int)b);
5181a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
5182a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
5183a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector pixel __ATTRS_o_ai
5184a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sll(vector pixel a, vector unsigned int b)
5185a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
5186a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector pixel)__builtin_altivec_vsl((vector int)a, (vector int)b);
5187a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
5188a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
51894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
51904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sll(vector int a, vector unsigned char b)
51914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
51924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vsl(a, (vector int)b);
51934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
51944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
51954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
51964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sll(vector int a, vector unsigned short b)
51974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
51984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vsl(a, (vector int)b);
51994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
52004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
52014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
52024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sll(vector int a, vector unsigned int b)
52034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
52044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vsl(a, (vector int)b);
52054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
52064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
52074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
52084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sll(vector unsigned int a, vector unsigned char b)
52094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
52103ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned int)
52113ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsl((vector int)a, (vector int)b);
52124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
52134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
52144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
52154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sll(vector unsigned int a, vector unsigned short b)
52164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
52173ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned int)
52183ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsl((vector int)a, (vector int)b);
52194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
52204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
52214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
52224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sll(vector unsigned int a, vector unsigned int b)
52234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
52243ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned int)
52253ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsl((vector int)a, (vector int)b);
52264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
52274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
5228a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
5229a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sll(vector bool int a, vector unsigned char b)
5230a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
5231a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool int)__builtin_altivec_vsl((vector int)a, (vector int)b);
5232a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
5233a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
5234a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
5235a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sll(vector bool int a, vector unsigned short b)
5236a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
5237a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool int)__builtin_altivec_vsl((vector int)a, (vector int)b);
5238a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
5239a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
5240a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
5241a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sll(vector bool int a, vector unsigned int b)
5242a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
5243a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool int)__builtin_altivec_vsl((vector int)a, (vector int)b);
5244a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
5245a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
52464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsl */
52474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
52484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
52494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsl(vector signed char a, vector unsigned char b)
52504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
52513ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector signed char)
52523ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsl((vector int)a, (vector int)b);
52534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
52544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
52554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
52564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsl(vector signed char a, vector unsigned short b)
52574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
52583ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector signed char)
52593ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsl((vector int)a, (vector int)b);
52604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
52614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
52624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
52634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsl(vector signed char a, vector unsigned int b)
52644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
52653ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector signed char)
52663ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsl((vector int)a, (vector int)b);
52674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
52684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
52694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
52704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsl(vector unsigned char a, vector unsigned char b)
52714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
52723ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned char)
52733ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsl((vector int)a, (vector int)b);
52744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
52754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
52764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
52774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsl(vector unsigned char a, vector unsigned short b)
52784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
52793ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned char)
52803ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsl((vector int)a, (vector int)b);
52814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
52824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
52834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
52844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsl(vector unsigned char a, vector unsigned int b)
52854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
52863ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned char)
52873ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsl((vector int)a, (vector int)b);
52884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
52894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
5290a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool char __ATTRS_o_ai
5291a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsl(vector bool char a, vector unsigned char b)
5292a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
5293a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool char)__builtin_altivec_vsl((vector int)a, (vector int)b);
5294a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
5295a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
5296a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool char __ATTRS_o_ai
5297a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsl(vector bool char a, vector unsigned short b)
5298a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
5299a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool char)__builtin_altivec_vsl((vector int)a, (vector int)b);
5300a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
5301a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
5302a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool char __ATTRS_o_ai
5303a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsl(vector bool char a, vector unsigned int b)
5304a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
5305a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool char)__builtin_altivec_vsl((vector int)a, (vector int)b);
5306a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
5307a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
53084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
53094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsl(vector short a, vector unsigned char b)
53104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
53114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vsl((vector int)a, (vector int)b);
53124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
53134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
53144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
53154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsl(vector short a, vector unsigned short b)
53164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
53174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vsl((vector int)a, (vector int)b);
53184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
53194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
53204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
53214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsl(vector short a, vector unsigned int b)
53224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
53234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vsl((vector int)a, (vector int)b);
53244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
53254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
53264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
53274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsl(vector unsigned short a, vector unsigned char b)
53284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
53293ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned short)
53303ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsl((vector int)a, (vector int)b);
53314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
53324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
53334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
53344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsl(vector unsigned short a, vector unsigned short b)
53354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
53363ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned short)
53373ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsl((vector int)a, (vector int)b);
53384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
53394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
53404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
53414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsl(vector unsigned short a, vector unsigned int b)
53424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
53433ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned short)
53443ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsl((vector int)a, (vector int)b);
53454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
53464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
5347a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool short __ATTRS_o_ai
5348a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsl(vector bool short a, vector unsigned char b)
5349a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
5350a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool short)__builtin_altivec_vsl((vector int)a, (vector int)b);
5351a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
5352a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
5353a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool short __ATTRS_o_ai
5354a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsl(vector bool short a, vector unsigned short b)
5355a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
5356a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool short)__builtin_altivec_vsl((vector int)a, (vector int)b);
5357a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
5358a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
5359a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool short __ATTRS_o_ai
5360a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsl(vector bool short a, vector unsigned int b)
5361a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
5362a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool short)__builtin_altivec_vsl((vector int)a, (vector int)b);
5363a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
5364a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
5365a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector pixel __ATTRS_o_ai
5366a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsl(vector pixel a, vector unsigned char b)
5367a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
5368a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector pixel)__builtin_altivec_vsl((vector int)a, (vector int)b);
5369a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
5370a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
5371a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector pixel __ATTRS_o_ai
5372a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsl(vector pixel a, vector unsigned short b)
5373a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
5374a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector pixel)__builtin_altivec_vsl((vector int)a, (vector int)b);
5375a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
5376a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
5377a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector pixel __ATTRS_o_ai
5378a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsl(vector pixel a, vector unsigned int b)
5379a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
5380a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector pixel)__builtin_altivec_vsl((vector int)a, (vector int)b);
5381a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
5382a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
53834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
53844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsl(vector int a, vector unsigned char b)
53854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
53864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vsl(a, (vector int)b);
53874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
53884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
53894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
53904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsl(vector int a, vector unsigned short b)
53914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
53924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vsl(a, (vector int)b);
53934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
53944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
53954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
53964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsl(vector int a, vector unsigned int b)
53974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
53984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vsl(a, (vector int)b);
53994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
54004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
54014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
54024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsl(vector unsigned int a, vector unsigned char b)
54034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
54043ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned int)
54053ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsl((vector int)a, (vector int)b);
54064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
54074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
54084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
54094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsl(vector unsigned int a, vector unsigned short b)
54104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
54113ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned int)
54123ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsl((vector int)a, (vector int)b);
54134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
54144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
54154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
54164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsl(vector unsigned int a, vector unsigned int b)
54174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
54183ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned int)
54193ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsl((vector int)a, (vector int)b);
54204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
54214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
5422a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
5423a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsl(vector bool int a, vector unsigned char b)
5424a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
5425a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool int)__builtin_altivec_vsl((vector int)a, (vector int)b);
5426a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
5427a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
5428a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
5429a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsl(vector bool int a, vector unsigned short b)
5430a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
5431a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool int)__builtin_altivec_vsl((vector int)a, (vector int)b);
5432a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
5433a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
5434a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
5435a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsl(vector bool int a, vector unsigned int b)
5436a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
5437a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool int)__builtin_altivec_vsl((vector int)a, (vector int)b);
5438a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
5439a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
54404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_slo */
54414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
54424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
54434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_slo(vector signed char a, vector signed char b)
54444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
54453ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector signed char)
54463ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vslo((vector int)a, (vector int)b);
54474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
54484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
54494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
54504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_slo(vector signed char a, vector unsigned char b)
54514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
54523ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector signed char)
54533ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vslo((vector int)a, (vector int)b);
54544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
54554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
54564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
54574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_slo(vector unsigned char a, vector signed char b)
54584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
54593ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned char)
54603ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vslo((vector int)a, (vector int)b);
54614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
54624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
54634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
54644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_slo(vector unsigned char a, vector unsigned char b)
54654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
54663ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned char)
54673ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vslo((vector int)a, (vector int)b);
54684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
54694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
54704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
54714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_slo(vector short a, vector signed char b)
54724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
54734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vslo((vector int)a, (vector int)b);
54744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
54754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
54764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
54774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_slo(vector short a, vector unsigned char b)
54784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
54794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vslo((vector int)a, (vector int)b);
54804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
54814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
54824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
54834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_slo(vector unsigned short a, vector signed char b)
54844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
54853ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned short)
54863ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vslo((vector int)a, (vector int)b);
54874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
54884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
54894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
54904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_slo(vector unsigned short a, vector unsigned char b)
54914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
54923ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned short)
54933ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vslo((vector int)a, (vector int)b);
54944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
54954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
5496a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector pixel __ATTRS_o_ai
5497a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_slo(vector pixel a, vector signed char b)
5498a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
5499a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector pixel)__builtin_altivec_vslo((vector int)a, (vector int)b);
5500a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
5501a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
5502a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector pixel __ATTRS_o_ai
5503a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_slo(vector pixel a, vector unsigned char b)
5504a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
5505a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector pixel)__builtin_altivec_vslo((vector int)a, (vector int)b);
5506a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
5507a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
55084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
55094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_slo(vector int a, vector signed char b)
55104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
55114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vslo(a, (vector int)b);
55124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
55134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
55144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
55154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_slo(vector int a, vector unsigned char b)
55164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
55174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vslo(a, (vector int)b);
55184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
55194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
55204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
55214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_slo(vector unsigned int a, vector signed char b)
55224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
55233ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned int)
55243ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vslo((vector int)a, (vector int)b);
55254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
55264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
55274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
55284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_slo(vector unsigned int a, vector unsigned char b)
55294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
55303ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned int)
55313ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vslo((vector int)a, (vector int)b);
55324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
55334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
55344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
55354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_slo(vector float a, vector signed char b)
55364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
55374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)__builtin_altivec_vslo((vector int)a, (vector int)b);
55384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
55394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
55404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
55414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_slo(vector float a, vector unsigned char b)
55424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
55434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)__builtin_altivec_vslo((vector int)a, (vector int)b);
55444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
55454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
55464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vslo */
55474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
55484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
55494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslo(vector signed char a, vector signed char b)
55504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
55513ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector signed char)
55523ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vslo((vector int)a, (vector int)b);
55534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
55544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
55554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
55564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslo(vector signed char a, vector unsigned char b)
55574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
55583ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector signed char)
55593ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vslo((vector int)a, (vector int)b);
55604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
55614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
55624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
55634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslo(vector unsigned char a, vector signed char b)
55644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
55653ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned char)
55663ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vslo((vector int)a, (vector int)b);
55674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
55684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
55694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
55704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslo(vector unsigned char a, vector unsigned char b)
55714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
55723ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned char)
55733ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vslo((vector int)a, (vector int)b);
55744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
55754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
55764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
55774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslo(vector short a, vector signed char b)
55784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
55794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vslo((vector int)a, (vector int)b);
55804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
55814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
55824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
55834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslo(vector short a, vector unsigned char b)
55844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
55854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vslo((vector int)a, (vector int)b);
55864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
55874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
55884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
55894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslo(vector unsigned short a, vector signed char b)
55904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
55913ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned short)
55923ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vslo((vector int)a, (vector int)b);
55934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
55944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
55954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
55964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslo(vector unsigned short a, vector unsigned char b)
55974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
55983ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned short)
55993ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vslo((vector int)a, (vector int)b);
56004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
56014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
5602a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector pixel __ATTRS_o_ai
5603a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vslo(vector pixel a, vector signed char b)
5604a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
5605a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector pixel)__builtin_altivec_vslo((vector int)a, (vector int)b);
5606a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
5607a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
5608a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector pixel __ATTRS_o_ai
5609a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vslo(vector pixel a, vector unsigned char b)
5610a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
5611a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector pixel)__builtin_altivec_vslo((vector int)a, (vector int)b);
5612a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
5613a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
56144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
56154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslo(vector int a, vector signed char b)
56164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
56174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vslo(a, (vector int)b);
56184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
56194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
56204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
56214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslo(vector int a, vector unsigned char b)
56224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
56234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vslo(a, (vector int)b);
56244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
56254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
56264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
56274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslo(vector unsigned int a, vector signed char b)
56284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
56293ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned int)
56303ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vslo((vector int)a, (vector int)b);
56314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
56324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
56334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
56344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslo(vector unsigned int a, vector unsigned char b)
56354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
56363ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned int)
56373ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vslo((vector int)a, (vector int)b);
56384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
56394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
56404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
56414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslo(vector float a, vector signed char b)
56424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
56434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)__builtin_altivec_vslo((vector int)a, (vector int)b);
56444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
56454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
56464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
56474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslo(vector float a, vector unsigned char b)
56484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
56494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)__builtin_altivec_vslo((vector int)a, (vector int)b);
56504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
56514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
56524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_splat */
56534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
56544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
56554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_splat(vector signed char a, unsigned char b)
56564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
5657f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, a, (vector unsigned char)(b));
56584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
56594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
56604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
56614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_splat(vector unsigned char a, unsigned char b)
56624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
5663f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, a, (vector unsigned char)(b));
5664f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev}
5665f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
5666f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevstatic vector bool char __ATTRS_o_ai
5667f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_splat(vector bool char a, unsigned char b)
5668f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev{
5669f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, a, (vector unsigned char)(b));
56704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
56714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
56724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
56734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_splat(vector short a, unsigned char b)
56744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
56754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  b *= 2;
567664ce733f60bb1523037e6b1bcea3509a9429bfdeAnton Yartsev  unsigned char b1=b+1;
5677f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, a, (vector unsigned char)
567864ce733f60bb1523037e6b1bcea3509a9429bfdeAnton Yartsev    (b, b1, b, b1, b, b1, b, b1, b, b1, b, b1, b, b1, b, b1));
56794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
56804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
56814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
56824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_splat(vector unsigned short a, unsigned char b)
56834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
56844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  b *= 2;
568564ce733f60bb1523037e6b1bcea3509a9429bfdeAnton Yartsev  unsigned char b1=b+1;
5686f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, a, (vector unsigned char)
568764ce733f60bb1523037e6b1bcea3509a9429bfdeAnton Yartsev    (b, b1, b, b1, b, b1, b, b1, b, b1, b, b1, b, b1, b, b1));
5688f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev}
5689f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
5690f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevstatic vector bool short __ATTRS_o_ai
5691f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_splat(vector bool short a, unsigned char b)
5692f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev{
5693f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  b *= 2;
569464ce733f60bb1523037e6b1bcea3509a9429bfdeAnton Yartsev  unsigned char b1=b+1;
5695f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, a, (vector unsigned char)
569664ce733f60bb1523037e6b1bcea3509a9429bfdeAnton Yartsev    (b, b1, b, b1, b, b1, b, b1, b, b1, b, b1, b, b1, b, b1));
5697f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev}
5698f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
5699f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevstatic vector pixel __ATTRS_o_ai
5700f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_splat(vector pixel a, unsigned char b)
5701f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev{
5702f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  b *= 2;
570364ce733f60bb1523037e6b1bcea3509a9429bfdeAnton Yartsev  unsigned char b1=b+1;
5704f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, a, (vector unsigned char)
570564ce733f60bb1523037e6b1bcea3509a9429bfdeAnton Yartsev    (b, b1, b, b1, b, b1, b, b1, b, b1, b, b1, b, b1, b, b1));
57064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
57074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
57084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
57094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_splat(vector int a, unsigned char b)
57104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
57114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  b *= 4;
571264ce733f60bb1523037e6b1bcea3509a9429bfdeAnton Yartsev  unsigned char b1=b+1, b2=b+2, b3=b+3;
57134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, a, (vector unsigned char)
571464ce733f60bb1523037e6b1bcea3509a9429bfdeAnton Yartsev    (b, b1, b2, b3, b, b1, b2, b3, b, b1, b2, b3, b, b1, b2, b3));
57154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
57164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
57174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
57184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_splat(vector unsigned int a, unsigned char b)
57194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
57204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  b *= 4;
572164ce733f60bb1523037e6b1bcea3509a9429bfdeAnton Yartsev  unsigned char b1=b+1, b2=b+2, b3=b+3;
5722f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, a, (vector unsigned char)
572364ce733f60bb1523037e6b1bcea3509a9429bfdeAnton Yartsev    (b, b1, b2, b3, b, b1, b2, b3, b, b1, b2, b3, b, b1, b2, b3));
5724f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev}
5725f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
5726f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevstatic vector bool int __ATTRS_o_ai
5727f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_splat(vector bool int a, unsigned char b)
5728f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev{
5729f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  b *= 4;
573064ce733f60bb1523037e6b1bcea3509a9429bfdeAnton Yartsev  unsigned char b1=b+1, b2=b+2, b3=b+3;
5731f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, a, (vector unsigned char)
573264ce733f60bb1523037e6b1bcea3509a9429bfdeAnton Yartsev    (b, b1, b2, b3, b, b1, b2, b3, b, b1, b2, b3, b, b1, b2, b3));
57334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
57344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
57354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
57364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_splat(vector float a, unsigned char b)
57374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
57384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  b *= 4;
573964ce733f60bb1523037e6b1bcea3509a9429bfdeAnton Yartsev  unsigned char b1=b+1, b2=b+2, b3=b+3;
5740f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, a, (vector unsigned char)
574164ce733f60bb1523037e6b1bcea3509a9429bfdeAnton Yartsev    (b, b1, b2, b3, b, b1, b2, b3, b, b1, b2, b3, b, b1, b2, b3));
57424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
57434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
57444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vspltb */
57454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
57464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vspltb vec_vspltb
57474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
57484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
57494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vspltb(vector signed char a, unsigned char b)
57504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
5751f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, a, (vector unsigned char)(b));
57524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
57534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
57544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
57554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vspltb(vector unsigned char a, unsigned char b)
57564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
5757f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, a, (vector unsigned char)(b));
5758f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev}
5759f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
5760f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevstatic vector bool char __ATTRS_o_ai
5761f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_vspltb(vector bool char a, unsigned char b)
5762f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev{
5763f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, a, (vector unsigned char)(b));
57644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
57654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
57664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsplth */
57674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
57684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vsplth vec_vsplth
57694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
57704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
57714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsplth(vector short a, unsigned char b)
57724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
57734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  b *= 2;
577464ce733f60bb1523037e6b1bcea3509a9429bfdeAnton Yartsev  unsigned char b1=b+1;
5775f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, a, (vector unsigned char)
577664ce733f60bb1523037e6b1bcea3509a9429bfdeAnton Yartsev    (b, b1, b, b1, b, b1, b, b1, b, b1, b, b1, b, b1, b, b1));
57774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
57784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
57794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
57804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsplth(vector unsigned short a, unsigned char b)
57814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
57824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  b *= 2;
578364ce733f60bb1523037e6b1bcea3509a9429bfdeAnton Yartsev  unsigned char b1=b+1;
5784f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, a, (vector unsigned char)
578564ce733f60bb1523037e6b1bcea3509a9429bfdeAnton Yartsev    (b, b1, b, b1, b, b1, b, b1, b, b1, b, b1, b, b1, b, b1));
5786f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev}
5787f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
5788f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevstatic vector bool short __ATTRS_o_ai
5789f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_vsplth(vector bool short a, unsigned char b)
5790f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev{
5791f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  b *= 2;
579264ce733f60bb1523037e6b1bcea3509a9429bfdeAnton Yartsev  unsigned char b1=b+1;
5793f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, a, (vector unsigned char)
579464ce733f60bb1523037e6b1bcea3509a9429bfdeAnton Yartsev    (b, b1, b, b1, b, b1, b, b1, b, b1, b, b1, b, b1, b, b1));
5795f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev}
5796f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
5797f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevstatic vector pixel __ATTRS_o_ai
5798f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_vsplth(vector pixel a, unsigned char b)
5799f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev{
5800f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  b *= 2;
580164ce733f60bb1523037e6b1bcea3509a9429bfdeAnton Yartsev  unsigned char b1=b+1;
5802f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, a, (vector unsigned char)
580364ce733f60bb1523037e6b1bcea3509a9429bfdeAnton Yartsev    (b, b1, b, b1, b, b1, b, b1, b, b1, b, b1, b, b1, b, b1));
58044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
58054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
58064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vspltw */
58074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
58084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vspltw vec_vspltw
58094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
58104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
58114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vspltw(vector int a, unsigned char b)
58124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
58134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  b *= 4;
581464ce733f60bb1523037e6b1bcea3509a9429bfdeAnton Yartsev  unsigned char b1=b+1, b2=b+2, b3=b+3;
5815f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, a, (vector unsigned char)
581664ce733f60bb1523037e6b1bcea3509a9429bfdeAnton Yartsev    (b, b1, b2, b3, b, b1, b2, b3, b, b1, b2, b3, b, b1, b2, b3));
58174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
58184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
58194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
58204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vspltw(vector unsigned int a, unsigned char b)
58214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
58224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  b *= 4;
582364ce733f60bb1523037e6b1bcea3509a9429bfdeAnton Yartsev  unsigned char b1=b+1, b2=b+2, b3=b+3;
5824f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, a, (vector unsigned char)
582564ce733f60bb1523037e6b1bcea3509a9429bfdeAnton Yartsev    (b, b1, b2, b3, b, b1, b2, b3, b, b1, b2, b3, b, b1, b2, b3));
5826f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev}
5827f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev
5828f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevstatic vector bool int __ATTRS_o_ai
5829f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsevvec_vspltw(vector bool int a, unsigned char b)
5830f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev{
5831f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  b *= 4;
583264ce733f60bb1523037e6b1bcea3509a9429bfdeAnton Yartsev  unsigned char b1=b+1, b2=b+2, b3=b+3;
5833f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, a, (vector unsigned char)
583464ce733f60bb1523037e6b1bcea3509a9429bfdeAnton Yartsev    (b, b1, b2, b3, b, b1, b2, b3, b, b1, b2, b3, b, b1, b2, b3));
58354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
58364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
58374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
58384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vspltw(vector float a, unsigned char b)
58394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
58404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  b *= 4;
584164ce733f60bb1523037e6b1bcea3509a9429bfdeAnton Yartsev  unsigned char b1=b+1, b2=b+2, b3=b+3;
5842f54dbfdd16c053d6f305a4c48cb5aba0fe168f2dAnton Yartsev  return vec_perm(a, a, (vector unsigned char)
584364ce733f60bb1523037e6b1bcea3509a9429bfdeAnton Yartsev    (b, b1, b2, b3, b, b1, b2, b3, b, b1, b2, b3, b, b1, b2, b3));
58444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
58454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
58464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_splat_s8 */
58474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
58484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vspltisb vec_splat_s8
58494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
58504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov// FIXME: parameter should be treated as 5-bit signed literal
58514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
58524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_splat_s8(signed char a)
58534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
58544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)(a);
58554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
58564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
58574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vspltisb */
58584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
58594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov// FIXME: parameter should be treated as 5-bit signed literal
58604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
58614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vspltisb(signed char a)
58624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
58634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)(a);
58644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
58654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
58664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_splat_s16 */
58674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
58684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vspltish vec_splat_s16
58694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
58704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov// FIXME: parameter should be treated as 5-bit signed literal
58714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
58724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_splat_s16(signed char a)
58734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
58744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)(a);
58754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
58764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
58774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vspltish */
58784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
58794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov// FIXME: parameter should be treated as 5-bit signed literal
58804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
58814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vspltish(signed char a)
58824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
58834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)(a);
58844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
58854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
58864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_splat_s32 */
58874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
58884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vspltisw vec_splat_s32
58894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
58904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov// FIXME: parameter should be treated as 5-bit signed literal
58914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
58924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_splat_s32(signed char a)
58934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
58944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)(a);
58954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
58964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
58974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vspltisw */
58984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
58994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov// FIXME: parameter should be treated as 5-bit signed literal
59004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
59014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vspltisw(signed char a)
59024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
59034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)(a);
59044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
59054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
59064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_splat_u8 */
59074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
59084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov// FIXME: parameter should be treated as 5-bit signed literal
59094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
59104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_splat_u8(unsigned char a)
59114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
59124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)(a);
59134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
59144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
59154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_splat_u16 */
59164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
59174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov// FIXME: parameter should be treated as 5-bit signed literal
59184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
59194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_splat_u16(signed char a)
59204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
59214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)(a);
59224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
59234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
59244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_splat_u32 */
59254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
59264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov// FIXME: parameter should be treated as 5-bit signed literal
59274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
59284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_splat_u32(signed char a)
59294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
59304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)(a);
59314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
59324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
59334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_sr */
59344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
59354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
59364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sr(vector signed char a, vector unsigned char b)
59374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
59384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a >> (vector signed char)b;
59394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
59404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
59414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
59424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sr(vector unsigned char a, vector unsigned char b)
59434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
59444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a >> b;
59454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
59464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
59474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
59484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sr(vector short a, vector unsigned short b)
59494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
59504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a >> (vector short)b;
59514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
59524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
59534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
59544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sr(vector unsigned short a, vector unsigned short b)
59554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
59564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a >> b;
59574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
59584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
59594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
59604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sr(vector int a, vector unsigned int b)
59614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
59624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a >> (vector int)b;
59634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
59644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
59654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
59664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sr(vector unsigned int a, vector unsigned int b)
59674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
59684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a >> b;
59694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
59704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
59714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsrb */
59724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
59734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vsrb vec_vsrb
59744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
59754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
59764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsrb(vector signed char a, vector unsigned char b)
59774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
59784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a >> (vector signed char)b;
59794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
59804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
59814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
59824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsrb(vector unsigned char a, vector unsigned char b)
59834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
59844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a >> b;
59854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
59864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
59874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsrh */
59884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
59894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vsrh vec_vsrh
59904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
59914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
59924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsrh(vector short a, vector unsigned short b)
59934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
59944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a >> (vector short)b;
59954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
59964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
59974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
59984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsrh(vector unsigned short a, vector unsigned short b)
59994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
60004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a >> b;
60014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
60024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
60034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsrw */
60044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
60054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vsrw vec_vsrw
60064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
60074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
60084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsrw(vector int a, vector unsigned int b)
60094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
60104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a >> (vector int)b;
60114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
60124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
60134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
60144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsrw(vector unsigned int a, vector unsigned int b)
60154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
60164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a >> b;
60174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
60184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
60194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_sra */
60204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
60214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
60224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sra(vector signed char a, vector unsigned char b)
60234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
60244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_vsrab((vector char)a, b);
60254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
60264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
60274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
60284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sra(vector unsigned char a, vector unsigned char b)
60294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
60304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_vsrab((vector char)a, b);
60314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
60324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
60334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
60344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sra(vector short a, vector unsigned short b)
60354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
60364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsrah(a, (vector unsigned short)b);
60374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
60384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
60394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
60404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sra(vector unsigned short a, vector unsigned short b)
60414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
60424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_vsrah((vector short)a, b);
60434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
60444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
60454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
60464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sra(vector int a, vector unsigned int b)
60474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
60484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsraw(a, b);
60494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
60504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
60514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
60524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sra(vector unsigned int a, vector unsigned int b)
60534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
60544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_vsraw((vector int)a, b);
60554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
60564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
60574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsrab */
60584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
60594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
60604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsrab(vector signed char a, vector unsigned char b)
60614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
60624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_vsrab((vector char)a, b);
60634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
60644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
60654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
60664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsrab(vector unsigned char a, vector unsigned char b)
60674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
60684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_vsrab((vector char)a, b);
60694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
60704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
60714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsrah */
60724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
60734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
60744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsrah(vector short a, vector unsigned short b)
60754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
60764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsrah(a, (vector unsigned short)b);
60774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
60784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
60794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
60804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsrah(vector unsigned short a, vector unsigned short b)
60814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
60824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_vsrah((vector short)a, b);
60834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
60844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
60854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsraw */
60864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
60874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
60884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsraw(vector int a, vector unsigned int b)
60894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
60904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsraw(a, b);
60914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
60924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
60934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
60944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsraw(vector unsigned int a, vector unsigned int b)
60954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
60964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_vsraw((vector int)a, b);
60974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
60984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
60994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_srl */
61004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
61014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
61024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_srl(vector signed char a, vector unsigned char b)
61034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
61043ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector signed char)
61053ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsr((vector int)a, (vector int)b);
61064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
61074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
61084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
61094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_srl(vector signed char a, vector unsigned short b)
61104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
61113ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector signed char)
61123ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsr((vector int)a, (vector int)b);
61134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
61144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
61154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
61164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_srl(vector signed char a, vector unsigned int b)
61174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
61183ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector signed char)
61193ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsr((vector int)a, (vector int)b);
61204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
61214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
61224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
61234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_srl(vector unsigned char a, vector unsigned char b)
61244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
61253ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned char)
61263ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsr((vector int)a, (vector int)b);
61274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
61284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
61294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
61304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_srl(vector unsigned char a, vector unsigned short b)
61314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
61323ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned char)
61333ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsr((vector int)a, (vector int)b);
61344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
61354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
61364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
61374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_srl(vector unsigned char a, vector unsigned int b)
61384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
61393ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned char)
61403ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsr((vector int)a, (vector int)b);
61414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
61424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
6143a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool char __ATTRS_o_ai
6144a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_srl(vector bool char a, vector unsigned char b)
6145a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
6146a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool char)__builtin_altivec_vsr((vector int)a, (vector int)b);
6147a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
6148a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
6149a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool char __ATTRS_o_ai
6150a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_srl(vector bool char a, vector unsigned short b)
6151a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
6152a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool char)__builtin_altivec_vsr((vector int)a, (vector int)b);
6153a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
6154a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
6155a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool char __ATTRS_o_ai
6156a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_srl(vector bool char a, vector unsigned int b)
6157a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
6158a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool char)__builtin_altivec_vsr((vector int)a, (vector int)b);
6159a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
6160a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
61614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
61624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_srl(vector short a, vector unsigned char b)
61634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
61644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vsr((vector int)a, (vector int)b);
61654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
61664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
61674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
61684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_srl(vector short a, vector unsigned short b)
61694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
61704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vsr((vector int)a, (vector int)b);
61714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
61724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
61734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
61744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_srl(vector short a, vector unsigned int b)
61754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
61764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vsr((vector int)a, (vector int)b);
61774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
61784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
61794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
61804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_srl(vector unsigned short a, vector unsigned char b)
61814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
61823ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned short)
61833ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsr((vector int)a, (vector int)b);
61844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
61854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
61864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
61874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_srl(vector unsigned short a, vector unsigned short b)
61884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
61893ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned short)
61903ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsr((vector int)a, (vector int)b);
61914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
61924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
61934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
61944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_srl(vector unsigned short a, vector unsigned int b)
61954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
61963ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned short)
61973ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsr((vector int)a, (vector int)b);
61984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
61994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
6200a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool short __ATTRS_o_ai
6201a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_srl(vector bool short a, vector unsigned char b)
62024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6203a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool short)__builtin_altivec_vsr((vector int)a, (vector int)b);
62044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
62054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
6206a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool short __ATTRS_o_ai
6207a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_srl(vector bool short a, vector unsigned short b)
62084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6209a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool short)__builtin_altivec_vsr((vector int)a, (vector int)b);
62104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
62114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
6212a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool short __ATTRS_o_ai
6213a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_srl(vector bool short a, vector unsigned int b)
62144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6215a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool short)__builtin_altivec_vsr((vector int)a, (vector int)b);
62164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
62174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
6218a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector pixel __ATTRS_o_ai
6219a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_srl(vector pixel a, vector unsigned char b)
6220a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
6221a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector pixel)__builtin_altivec_vsr((vector int)a, (vector int)b);
6222a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
6223a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
6224a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector pixel __ATTRS_o_ai
6225a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_srl(vector pixel a, vector unsigned short b)
6226a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
6227a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector pixel)__builtin_altivec_vsr((vector int)a, (vector int)b);
6228a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
6229a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
6230a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector pixel __ATTRS_o_ai
6231a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_srl(vector pixel a, vector unsigned int b)
6232a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
6233a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector pixel)__builtin_altivec_vsr((vector int)a, (vector int)b);
6234a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
6235a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
6236a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector int __ATTRS_o_ai
6237a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_srl(vector int a, vector unsigned char b)
6238a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
6239a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector int)__builtin_altivec_vsr(a, (vector int)b);
6240a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
6241a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
6242a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector int __ATTRS_o_ai
6243a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_srl(vector int a, vector unsigned short b)
6244a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
6245a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector int)__builtin_altivec_vsr(a, (vector int)b);
6246a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
6247a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
6248a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector int __ATTRS_o_ai
6249a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_srl(vector int a, vector unsigned int b)
6250a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
6251a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector int)__builtin_altivec_vsr(a, (vector int)b);
6252a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
6253a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
6254a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
6255a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_srl(vector unsigned int a, vector unsigned char b)
62564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
62573ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned int)
62583ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsr((vector int)a, (vector int)b);
62594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
62604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
62614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
62624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_srl(vector unsigned int a, vector unsigned short b)
62634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
62643ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned int)
62653ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsr((vector int)a, (vector int)b);
62664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
62674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
62684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
62694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_srl(vector unsigned int a, vector unsigned int b)
62704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
62713ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned int)
62723ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsr((vector int)a, (vector int)b);
62734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
62744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
6275a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
6276a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_srl(vector bool int a, vector unsigned char b)
6277a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
6278a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool int)__builtin_altivec_vsr((vector int)a, (vector int)b);
6279a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
6280a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
6281a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
6282a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_srl(vector bool int a, vector unsigned short b)
6283a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
6284a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool int)__builtin_altivec_vsr((vector int)a, (vector int)b);
6285a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
6286a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
6287a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
6288a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_srl(vector bool int a, vector unsigned int b)
6289a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
6290a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool int)__builtin_altivec_vsr((vector int)a, (vector int)b);
6291a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
6292a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
62934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsr */
62944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
62954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
62964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsr(vector signed char a, vector unsigned char b)
62974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
62983ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector signed char)
62993ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsr((vector int)a, (vector int)b);
63004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
63014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
63024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
63034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsr(vector signed char a, vector unsigned short b)
63044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
63053ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector signed char)
63063ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsr((vector int)a, (vector int)b);
63074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
63084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
63094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
63104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsr(vector signed char a, vector unsigned int b)
63114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
63123ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector signed char)
63133ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsr((vector int)a, (vector int)b);
63144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
63154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
63164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
63174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsr(vector unsigned char a, vector unsigned char b)
63184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
63193ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned char)
63203ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsr((vector int)a, (vector int)b);
63214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
63224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
63234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
63244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsr(vector unsigned char a, vector unsigned short b)
63254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
63263ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned char)
63273ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsr((vector int)a, (vector int)b);
63284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
63294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
63304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
63314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsr(vector unsigned char a, vector unsigned int b)
63324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
63333ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned char)
63343ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsr((vector int)a, (vector int)b);
63354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
63364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
6337a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool char __ATTRS_o_ai
6338a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsr(vector bool char a, vector unsigned char b)
6339a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
6340a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool char)__builtin_altivec_vsr((vector int)a, (vector int)b);
6341a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
6342a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
6343a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool char __ATTRS_o_ai
6344a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsr(vector bool char a, vector unsigned short b)
6345a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
6346a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool char)__builtin_altivec_vsr((vector int)a, (vector int)b);
6347a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
6348a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
6349a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool char __ATTRS_o_ai
6350a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsr(vector bool char a, vector unsigned int b)
6351a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
6352a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool char)__builtin_altivec_vsr((vector int)a, (vector int)b);
6353a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
6354a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
63554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
63564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsr(vector short a, vector unsigned char b)
63574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
63584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vsr((vector int)a, (vector int)b);
63594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
63604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
63614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
63624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsr(vector short a, vector unsigned short b)
63634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
63644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vsr((vector int)a, (vector int)b);
63654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
63664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
63674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
63684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsr(vector short a, vector unsigned int b)
63694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
63704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vsr((vector int)a, (vector int)b);
63714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
63724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
63734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
63744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsr(vector unsigned short a, vector unsigned char b)
63754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
63763ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned short)
63773ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsr((vector int)a, (vector int)b);
63784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
63794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
63804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
63814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsr(vector unsigned short a, vector unsigned short b)
63824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
63833ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned short)
63843ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsr((vector int)a, (vector int)b);
63854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
63864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
63874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
63884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsr(vector unsigned short a, vector unsigned int b)
63894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
63903ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned short)
63913ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsr((vector int)a, (vector int)b);
63924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
63934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
6394a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool short __ATTRS_o_ai
6395a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsr(vector bool short a, vector unsigned char b)
6396a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
6397a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool short)__builtin_altivec_vsr((vector int)a, (vector int)b);
6398a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
6399a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
6400a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool short __ATTRS_o_ai
6401a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsr(vector bool short a, vector unsigned short b)
6402a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
6403a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool short)__builtin_altivec_vsr((vector int)a, (vector int)b);
6404a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
6405a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
6406a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool short __ATTRS_o_ai
6407a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsr(vector bool short a, vector unsigned int b)
6408a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
6409a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool short)__builtin_altivec_vsr((vector int)a, (vector int)b);
6410a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
6411a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
6412a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector pixel __ATTRS_o_ai
6413a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsr(vector pixel a, vector unsigned char b)
6414a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
6415a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector pixel)__builtin_altivec_vsr((vector int)a, (vector int)b);
6416a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
6417a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
6418a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector pixel __ATTRS_o_ai
6419a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsr(vector pixel a, vector unsigned short b)
6420a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
6421a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector pixel)__builtin_altivec_vsr((vector int)a, (vector int)b);
6422a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
6423a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
6424a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector pixel __ATTRS_o_ai
6425a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsr(vector pixel a, vector unsigned int b)
6426a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
6427a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector pixel)__builtin_altivec_vsr((vector int)a, (vector int)b);
6428a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
6429a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
64304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
64314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsr(vector int a, vector unsigned char b)
64324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
64334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vsr(a, (vector int)b);
64344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
64354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
64364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
64374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsr(vector int a, vector unsigned short b)
64384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
64394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vsr(a, (vector int)b);
64404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
64414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
64424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
64434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsr(vector int a, vector unsigned int b)
64444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
64454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vsr(a, (vector int)b);
64464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
64474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
64484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
64494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsr(vector unsigned int a, vector unsigned char b)
64504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
64513ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned int)
64523ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsr((vector int)a, (vector int)b);
64534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
64544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
64554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
64564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsr(vector unsigned int a, vector unsigned short b)
64574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
64583ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned int)
64593ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsr((vector int)a, (vector int)b);
64604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
64614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
64624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
64634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsr(vector unsigned int a, vector unsigned int b)
64644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
64653ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned int)
64663ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsr((vector int)a, (vector int)b);
64674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
64684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
6469a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
6470a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsr(vector bool int a, vector unsigned char b)
6471a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
6472a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool int)__builtin_altivec_vsr((vector int)a, (vector int)b);
6473a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
6474a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
6475a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
6476a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsr(vector bool int a, vector unsigned short b)
6477a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
6478a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool int)__builtin_altivec_vsr((vector int)a, (vector int)b);
6479a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
6480a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
6481a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
6482a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsr(vector bool int a, vector unsigned int b)
6483a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
6484a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool int)__builtin_altivec_vsr((vector int)a, (vector int)b);
6485a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
6486a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
64874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_sro */
64884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
64894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
64904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sro(vector signed char a, vector signed char b)
64914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
64923ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector signed char)
64933ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsro((vector int)a, (vector int)b);
64944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
64954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
64964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
64974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sro(vector signed char a, vector unsigned char b)
64984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
64993ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector signed char)
65003ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsro((vector int)a, (vector int)b);
65014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
65024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
65034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
65044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sro(vector unsigned char a, vector signed char b)
65054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
65063ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned char)
65073ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsro((vector int)a, (vector int)b);
65084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
65094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
65104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
65114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sro(vector unsigned char a, vector unsigned char b)
65124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
65133ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned char)
65143ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsro((vector int)a, (vector int)b);
65154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
65164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
65174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
65184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sro(vector short a, vector signed char b)
65194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
65204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vsro((vector int)a, (vector int)b);
65214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
65224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
65234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
65244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sro(vector short a, vector unsigned char b)
65254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
65264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vsro((vector int)a, (vector int)b);
65274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
65284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
65294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
65304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sro(vector unsigned short a, vector signed char b)
65314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
65323ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned short)
65333ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsro((vector int)a, (vector int)b);
65344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
65354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
65364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
65374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sro(vector unsigned short a, vector unsigned char b)
65384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
65393ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned short)
65403ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsro((vector int)a, (vector int)b);
65414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
65424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
6543a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector pixel __ATTRS_o_ai
6544a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sro(vector pixel a, vector signed char b)
6545a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
6546a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector pixel)__builtin_altivec_vsro((vector int)a, (vector int)b);
6547a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
6548a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
6549a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector pixel __ATTRS_o_ai
6550a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sro(vector pixel a, vector unsigned char b)
6551a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
6552a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector pixel)__builtin_altivec_vsro((vector int)a, (vector int)b);
6553a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
6554a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
65554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
65564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sro(vector int a, vector signed char b)
65574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
65584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vsro(a, (vector int)b);
65594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
65604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
65614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
65624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sro(vector int a, vector unsigned char b)
65634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
65644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vsro(a, (vector int)b);
65654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
65664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
65674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
65684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sro(vector unsigned int a, vector signed char b)
65694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
65703ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned int)
65713ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsro((vector int)a, (vector int)b);
65724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
65734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
65744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
65754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sro(vector unsigned int a, vector unsigned char b)
65764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
65773ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned int)
65783ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsro((vector int)a, (vector int)b);
65794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
65804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
65814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
65824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sro(vector float a, vector signed char b)
65834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
65844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)__builtin_altivec_vsro((vector int)a, (vector int)b);
65854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
65864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
65874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
65884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sro(vector float a, vector unsigned char b)
65894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
65904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)__builtin_altivec_vsro((vector int)a, (vector int)b);
65914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
65924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
65934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsro */
65944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
65954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
65964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsro(vector signed char a, vector signed char b)
65974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
65983ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector signed char)
65993ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsro((vector int)a, (vector int)b);
66004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
66014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
66024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
66034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsro(vector signed char a, vector unsigned char b)
66044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
66053ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector signed char)
66063ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsro((vector int)a, (vector int)b);
66074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
66084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
66094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
66104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsro(vector unsigned char a, vector signed char b)
66114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
66123ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned char)
66133ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsro((vector int)a, (vector int)b);
66144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
66154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
66164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
66174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsro(vector unsigned char a, vector unsigned char b)
66184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
66193ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned char)
66203ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsro((vector int)a, (vector int)b);
66214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
66224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
66234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
66244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsro(vector short a, vector signed char b)
66254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
66264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vsro((vector int)a, (vector int)b);
66274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
66284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
66294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
66304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsro(vector short a, vector unsigned char b)
66314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
66324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vsro((vector int)a, (vector int)b);
66334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
66344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
66354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
66364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsro(vector unsigned short a, vector signed char b)
66374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
66383ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned short)
66393ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsro((vector int)a, (vector int)b);
66404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
66414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
66424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
66434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsro(vector unsigned short a, vector unsigned char b)
66444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
66453ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned short)
66463ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsro((vector int)a, (vector int)b);
66474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
66484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
6649a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector pixel __ATTRS_o_ai
6650a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsro(vector pixel a, vector signed char b)
6651a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
6652a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector pixel)__builtin_altivec_vsro((vector int)a, (vector int)b);
6653a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
6654a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
6655a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector pixel __ATTRS_o_ai
6656a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsro(vector pixel a, vector unsigned char b)
6657a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
6658a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector pixel)__builtin_altivec_vsro((vector int)a, (vector int)b);
6659a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
6660a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
66614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
66624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsro(vector int a, vector signed char b)
66634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
66644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vsro(a, (vector int)b);
66654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
66664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
66674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
66684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsro(vector int a, vector unsigned char b)
66694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
66704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vsro(a, (vector int)b);
66714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
66724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
66734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
66744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsro(vector unsigned int a, vector signed char b)
66754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
66763ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned int)
66773ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsro((vector int)a, (vector int)b);
66784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
66794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
66804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
66814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsro(vector unsigned int a, vector unsigned char b)
66824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
66833ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return (vector unsigned int)
66843ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev           __builtin_altivec_vsro((vector int)a, (vector int)b);
66854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
66864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
66874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
66884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsro(vector float a, vector signed char b)
66894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
66904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)__builtin_altivec_vsro((vector int)a, (vector int)b);
66914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
66924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
66934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
66944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsro(vector float a, vector unsigned char b)
66954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
66964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)__builtin_altivec_vsro((vector int)a, (vector int)b);
66974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
66984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
66994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_st */
67004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
67014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
67024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_st(vector signed char a, int b, vector signed char *c)
67034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
67044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
67054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
67064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
67074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
67084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_st(vector signed char a, int b, signed char *c)
67094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
67104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
67114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
67124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
67134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
67144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_st(vector unsigned char a, int b, vector unsigned char *c)
67154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
67164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
67174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
67184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
67194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
67204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_st(vector unsigned char a, int b, unsigned char *c)
67214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
67224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
67234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
67244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
67254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6726a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_st(vector bool char a, int b, signed char *c)
67274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
67284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
67294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
67304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
67314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6732a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_st(vector bool char a, int b, unsigned char *c)
67334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
67344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
67354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
67364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
67374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6738a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_st(vector bool char a, int b, vector bool char *c)
67394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
67404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
67414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
67424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
67434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6744a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_st(vector short a, int b, vector short *c)
67454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
67464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
67474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
67484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
67494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6750a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_st(vector short a, int b, short *c)
67514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6752a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvx((vector int)a, b, c);
67534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
67544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
67554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6756a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_st(vector unsigned short a, int b, vector unsigned short *c)
67574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6758a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvx((vector int)a, b, c);
67594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
67604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
67614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6762a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_st(vector unsigned short a, int b, unsigned short *c)
67634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
67644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
67654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
67664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
67674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6768a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_st(vector bool short a, int b, short *c)
67694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
67704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
67714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
67724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
67734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6774a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_st(vector bool short a, int b, unsigned short *c)
67754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
67764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
67774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
67784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
67794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6780a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_st(vector bool short a, int b, vector bool short *c)
67814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
67824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
67834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
67844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
67854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6786a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_st(vector pixel a, int b, short *c)
67874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
67884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
67894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
67904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
67914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6792a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_st(vector pixel a, int b, unsigned short *c)
67934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
67944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
67954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
67964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
67974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6798a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_st(vector pixel a, int b, vector pixel *c)
67994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
68004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
68014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
68024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
68034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6804a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_st(vector int a, int b, vector int *c)
68054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6806a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvx(a, b, c);
68074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
68084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
68094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6810a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_st(vector int a, int b, int *c)
68114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6812a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvx(a, b, c);
68134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
68144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
68154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6816a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_st(vector unsigned int a, int b, vector unsigned int *c)
68174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
68184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
68194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
68204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
68214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6822a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_st(vector unsigned int a, int b, unsigned int *c)
68234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
68244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
68254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
68264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
68274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6828a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_st(vector bool int a, int b, int *c)
68294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
68304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
68314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
68324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
68334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6834a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_st(vector bool int a, int b, unsigned int *c)
68354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6836a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvx((vector int)a, b, c);
68374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
68384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
68394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6840a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_st(vector bool int a, int b, vector bool int *c)
68414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6842a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvx((vector int)a, b, c);
68434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
68444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
68454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6846a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_st(vector float a, int b, vector float *c)
68474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
68484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
68494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
68504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
68514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6852a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_st(vector float a, int b, float *c)
68534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
68544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
68554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
68564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
6857a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev/* vec_stvx */
6858a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
68594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6860a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvx(vector signed char a, int b, vector signed char *c)
68614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
68624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
68634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
68644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
68654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6866a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvx(vector signed char a, int b, signed char *c)
68674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
68684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
68694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
68704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
68714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6872a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvx(vector unsigned char a, int b, vector unsigned char *c)
68734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6874a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvx((vector int)a, b, c);
68754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
68764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
68774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6878a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvx(vector unsigned char a, int b, unsigned char *c)
68794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6880a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvx((vector int)a, b, c);
68814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
68824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
68834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6884a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvx(vector bool char a, int b, signed char *c)
68854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6886a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvx((vector int)a, b, c);
68874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
68884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
68894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6890a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvx(vector bool char a, int b, unsigned char *c)
68914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6892a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvx((vector int)a, b, c);
68934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
68944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
68954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6896a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvx(vector bool char a, int b, vector bool char *c)
68974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6898a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvx((vector int)a, b, c);
68994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
69004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
69014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6902a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvx(vector short a, int b, vector short *c)
69034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6904a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvx((vector int)a, b, c);
69054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
69064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
69074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6908a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvx(vector short a, int b, short *c)
69094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6910a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvx((vector int)a, b, c);
69114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
69124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
69134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6914a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvx(vector unsigned short a, int b, vector unsigned short *c)
69154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6916a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvx((vector int)a, b, c);
69174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
69184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
69194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6920a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvx(vector unsigned short a, int b, unsigned short *c)
69214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6922a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvx((vector int)a, b, c);
69234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
69244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
69254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6926a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvx(vector bool short a, int b, short *c)
69274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6928a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvx((vector int)a, b, c);
69294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
69304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
69314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6932a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvx(vector bool short a, int b, unsigned short *c)
69334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6934a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvx((vector int)a, b, c);
69354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
69364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
69374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6938a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvx(vector bool short a, int b, vector bool short *c)
69394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6940a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvx((vector int)a, b, c);
69414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
69424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
69434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6944a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvx(vector pixel a, int b, short *c)
69454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6946a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvx((vector int)a, b, c);
69474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
69484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
69494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6950a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvx(vector pixel a, int b, unsigned short *c)
69514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6952a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvx((vector int)a, b, c);
69534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
69544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
69554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6956a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvx(vector pixel a, int b, vector pixel *c)
69574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6958a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvx((vector int)a, b, c);
69594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
69604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
69614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6962a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvx(vector int a, int b, vector int *c)
69634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6964a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvx(a, b, c);
69654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
69664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
69674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6968a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvx(vector int a, int b, int *c)
69694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6970a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvx(a, b, c);
69714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
69724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
69734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6974a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvx(vector unsigned int a, int b, vector unsigned int *c)
69754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6976a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvx((vector int)a, b, c);
69774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
69784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
69794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6980a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvx(vector unsigned int a, int b, unsigned int *c)
69814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6982a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvx((vector int)a, b, c);
69834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
69844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
69854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6986a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvx(vector bool int a, int b, int *c)
69874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6988a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvx((vector int)a, b, c);
69894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
69904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
69914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6992a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvx(vector bool int a, int b, unsigned int *c)
69934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6994a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvx((vector int)a, b, c);
69954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
69964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
69974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
6998a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvx(vector bool int a, int b, vector bool int *c)
69994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
7000a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvx((vector int)a, b, c);
70014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
70024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
70034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
7004a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvx(vector float a, int b, vector float *c)
70054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
7006a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvx((vector int)a, b, c);
70074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
70084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
70094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
7010a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvx(vector float a, int b, float *c)
70114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
7012a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvx((vector int)a, b, c);
70134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
70144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
7015a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev/* vec_ste */
7016a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
70174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
7018a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_ste(vector signed char a, int b, signed char *c)
7019a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7020a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvebx((vector char)a, b, c);
7021a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7022a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7023a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7024a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_ste(vector unsigned char a, int b, unsigned char *c)
7025a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7026a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvebx((vector char)a, b, c);
7027a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7028a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7029a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7030a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_ste(vector bool char a, int b, signed char *c)
7031a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7032a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvebx((vector char)a, b, c);
7033a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7034a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7035a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7036a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_ste(vector bool char a, int b, unsigned char *c)
7037a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7038a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvebx((vector char)a, b, c);
7039a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7040a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7041a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7042a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_ste(vector short a, int b, short *c)
7043a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7044a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvehx(a, b, c);
7045a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7046a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7047a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7048a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_ste(vector unsigned short a, int b, unsigned short *c)
7049a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7050a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvehx((vector short)a, b, c);
7051a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7052a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7053a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7054a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_ste(vector bool short a, int b, short *c)
7055a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7056a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvehx((vector short)a, b, c);
7057a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7058a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7059a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7060a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_ste(vector bool short a, int b, unsigned short *c)
7061a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7062a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvehx((vector short)a, b, c);
7063a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7064a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7065a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7066a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_ste(vector pixel a, int b, short *c)
7067a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7068a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvehx((vector short)a, b, c);
7069a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7070a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7071a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7072a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_ste(vector pixel a, int b, unsigned short *c)
7073a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7074a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvehx((vector short)a, b, c);
7075a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7076a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7077a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7078a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_ste(vector int a, int b, int *c)
7079a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7080a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvewx(a, b, c);
7081a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7082a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7083a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7084a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_ste(vector unsigned int a, int b, unsigned int *c)
7085a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7086a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvewx((vector int)a, b, c);
7087a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7088a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7089a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7090a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_ste(vector bool int a, int b, int *c)
7091a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7092a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvewx((vector int)a, b, c);
7093a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7094a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7095a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7096a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_ste(vector bool int a, int b, unsigned int *c)
7097a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7098a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvewx((vector int)a, b, c);
7099a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7100a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7101a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7102a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_ste(vector float a, int b, float *c)
7103a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7104a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvewx((vector int)a, b, c);
7105a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7106a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7107a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev/* vec_stvebx */
7108a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7109a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7110a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvebx(vector signed char a, int b, signed char *c)
7111a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7112a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvebx((vector char)a, b, c);
7113a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7114a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7115a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7116a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvebx(vector unsigned char a, int b, unsigned char *c)
7117a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7118a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvebx((vector char)a, b, c);
7119a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7120a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7121a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7122a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvebx(vector bool char a, int b, signed char *c)
7123a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7124a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvebx((vector char)a, b, c);
7125a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7126a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7127a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7128a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvebx(vector bool char a, int b, unsigned char *c)
7129a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7130a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvebx((vector char)a, b, c);
7131a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7132a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7133a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev/* vec_stvehx */
7134a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7135a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7136a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvehx(vector short a, int b, short *c)
7137a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7138a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvehx(a, b, c);
7139a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7140a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7141a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7142a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvehx(vector unsigned short a, int b, unsigned short *c)
7143a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7144a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvehx((vector short)a, b, c);
7145a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7146a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7147a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7148a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvehx(vector bool short a, int b, short *c)
7149a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7150a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvehx((vector short)a, b, c);
7151a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7152a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7153a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7154a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvehx(vector bool short a, int b, unsigned short *c)
7155a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7156a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvehx((vector short)a, b, c);
7157a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7158a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7159a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7160a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvehx(vector pixel a, int b, short *c)
7161a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7162a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvehx((vector short)a, b, c);
7163a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7164a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7165a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7166a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvehx(vector pixel a, int b, unsigned short *c)
7167a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7168a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvehx((vector short)a, b, c);
7169a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7170a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7171a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev/* vec_stvewx */
7172a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7173a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7174a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvewx(vector int a, int b, int *c)
7175a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7176a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvewx(a, b, c);
7177a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7178a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7179a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7180a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvewx(vector unsigned int a, int b, unsigned int *c)
7181a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7182a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvewx((vector int)a, b, c);
7183a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7184a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7185a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7186a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvewx(vector bool int a, int b, int *c)
7187a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7188a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvewx((vector int)a, b, c);
7189a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7190a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7191a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7192a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvewx(vector bool int a, int b, unsigned int *c)
7193a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7194a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvewx((vector int)a, b, c);
7195a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7196a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7197a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7198a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvewx(vector float a, int b, float *c)
7199a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7200a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvewx((vector int)a, b, c);
7201a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7202a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7203a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev/* vec_stl */
7204a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7205a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7206a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stl(vector signed char a, int b, vector signed char *c)
7207a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7208a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvxl((vector int)a, b, c);
7209a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7210a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7211a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7212a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stl(vector signed char a, int b, signed char *c)
7213a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7214a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvxl((vector int)a, b, c);
7215a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7216a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7217a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7218a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stl(vector unsigned char a, int b, vector unsigned char *c)
7219a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7220a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvxl((vector int)a, b, c);
7221a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7222a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7223a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7224a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stl(vector unsigned char a, int b, unsigned char *c)
7225a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7226a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvxl((vector int)a, b, c);
7227a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7228a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7229a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7230a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stl(vector bool char a, int b, signed char *c)
7231a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7232a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvxl((vector int)a, b, c);
7233a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7234a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7235a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7236a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stl(vector bool char a, int b, unsigned char *c)
7237a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7238a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvxl((vector int)a, b, c);
7239a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7240a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7241a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7242a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stl(vector bool char a, int b, vector bool char *c)
7243a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7244a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvxl((vector int)a, b, c);
7245a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7246a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7247a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7248a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stl(vector short a, int b, vector short *c)
7249a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7250a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvxl((vector int)a, b, c);
7251a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7252a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7253a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7254a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stl(vector short a, int b, short *c)
7255a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7256a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvxl((vector int)a, b, c);
7257a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7258a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7259a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7260a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stl(vector unsigned short a, int b, vector unsigned short *c)
7261a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7262a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvxl((vector int)a, b, c);
7263a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7264a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7265a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7266a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stl(vector unsigned short a, int b, unsigned short *c)
7267a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7268a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvxl((vector int)a, b, c);
7269a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7270a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7271a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7272a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stl(vector bool short a, int b, short *c)
7273a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7274a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvxl((vector int)a, b, c);
7275a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7276a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7277a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7278a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stl(vector bool short a, int b, unsigned short *c)
7279a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7280a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvxl((vector int)a, b, c);
7281a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7282a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7283a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7284a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stl(vector bool short a, int b, vector bool short *c)
7285a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7286a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvxl((vector int)a, b, c);
7287a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7288a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7289a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7290a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stl(vector pixel a, int b, short *c)
7291a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7292a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvxl((vector int)a, b, c);
7293a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7294a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7295a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7296a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stl(vector pixel a, int b, unsigned short *c)
7297a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7298a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvxl((vector int)a, b, c);
7299a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7300a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7301a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7302a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stl(vector pixel a, int b, vector pixel *c)
7303a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7304a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvxl((vector int)a, b, c);
7305a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7306a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7307a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7308a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stl(vector int a, int b, vector int *c)
7309a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7310a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvxl(a, b, c);
7311a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7312a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7313a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7314a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stl(vector int a, int b, int *c)
7315a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7316a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvxl(a, b, c);
7317a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7318a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7319a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7320a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stl(vector unsigned int a, int b, vector unsigned int *c)
73214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
73224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
73234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
73244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
73254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
73264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stl(vector unsigned int a, int b, unsigned int *c)
73274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
73284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
73294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
73304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
73314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
7332a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stl(vector bool int a, int b, int *c)
7333a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7334a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvxl((vector int)a, b, c);
7335a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7336a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7337a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7338a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stl(vector bool int a, int b, unsigned int *c)
7339a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7340a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvxl((vector int)a, b, c);
7341a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7342a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7343a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7344a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stl(vector bool int a, int b, vector bool int *c)
7345a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7346a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvxl((vector int)a, b, c);
7347a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7348a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7349a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
73504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stl(vector float a, int b, vector float *c)
73514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
73524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
73534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
73544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
73554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
73564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stl(vector float a, int b, float *c)
73574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
73584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
73594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
73604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
73614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_stvxl */
73624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
73634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
73644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvxl(vector signed char a, int b, vector signed char *c)
73654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
73664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
73674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
73684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
73694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
73704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvxl(vector signed char a, int b, signed char *c)
73714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
73724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
73734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
73744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
73754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
73764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvxl(vector unsigned char a, int b, vector unsigned char *c)
73774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
73784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
73794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
73804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
73814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
73824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvxl(vector unsigned char a, int b, unsigned char *c)
7383dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
73844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
7385dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7386dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
73874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
7388a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvxl(vector bool char a, int b, signed char *c)
7389a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7390a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvxl((vector int)a, b, c);
7391a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7392a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7393a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7394a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvxl(vector bool char a, int b, unsigned char *c)
7395a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7396a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvxl((vector int)a, b, c);
7397a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7398a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7399a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7400a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvxl(vector bool char a, int b, vector bool char *c)
7401a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7402a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvxl((vector int)a, b, c);
7403a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7404a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7405a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
74064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvxl(vector short a, int b, vector short *c)
7407dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
74084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
7409dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7410dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
74114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
74124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvxl(vector short a, int b, short *c)
7413dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
74144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
7415dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7416dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
74174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
74184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvxl(vector unsigned short a, int b, vector unsigned short *c)
7419dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
74204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
7421dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7422dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
74234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
74244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvxl(vector unsigned short a, int b, unsigned short *c)
7425dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
74264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
7427dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7428dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
74294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
7430a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvxl(vector bool short a, int b, short *c)
7431a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7432a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvxl((vector int)a, b, c);
7433a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7434a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7435a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7436a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvxl(vector bool short a, int b, unsigned short *c)
7437a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7438a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvxl((vector int)a, b, c);
7439a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7440a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7441a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7442a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvxl(vector bool short a, int b, vector bool short *c)
7443a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7444a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvxl((vector int)a, b, c);
7445a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7446a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7447a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7448a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvxl(vector pixel a, int b, short *c)
7449a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7450a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvxl((vector int)a, b, c);
7451a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7452a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7453a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7454a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvxl(vector pixel a, int b, unsigned short *c)
7455a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7456a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvxl((vector int)a, b, c);
7457a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7458a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7459a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7460a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvxl(vector pixel a, int b, vector pixel *c)
7461a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7462a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvxl((vector int)a, b, c);
7463a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7464a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7465a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
74664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvxl(vector int a, int b, vector int *c)
7467dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
74684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl(a, b, c);
7469dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7470dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
74714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
74724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvxl(vector int a, int b, int *c)
7473dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
74744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl(a, b, c);
7475dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7476dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
74774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
74784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvxl(vector unsigned int a, int b, vector unsigned int *c)
7479dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
74804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
7481dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7482dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
74834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
74844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvxl(vector unsigned int a, int b, unsigned int *c)
7485dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
74864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
7487dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7488dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
74894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
7490a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvxl(vector bool int a, int b, int *c)
7491a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7492a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvxl((vector int)a, b, c);
7493a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7494a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7495a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7496a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvxl(vector bool int a, int b, unsigned int *c)
7497a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7498a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvxl((vector int)a, b, c);
7499a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7500a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7501a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
7502a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_stvxl(vector bool int a, int b, vector bool int *c)
7503a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7504a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  __builtin_altivec_stvxl((vector int)a, b, c);
7505a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7506a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7507a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic void __ATTRS_o_ai
75084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvxl(vector float a, int b, vector float *c)
7509dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
75104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
7511dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7512dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
75134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
75144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvxl(vector float a, int b, float *c)
7515dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
75164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
7517dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7518dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
7519dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_sub */
7520dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
75214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
7522dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_sub(vector signed char a, vector signed char b)
7523dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
7524dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return a - b;
7525dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7526dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
7527a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector signed char __ATTRS_o_ai
7528a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sub(vector bool char a, vector signed char b)
7529a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7530a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector signed char)a - b;
7531a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7532a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7533a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector signed char __ATTRS_o_ai
7534a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sub(vector signed char a, vector bool char b)
7535a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7536a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a - (vector signed char)b;
7537a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7538a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
75394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
7540dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_sub(vector unsigned char a, vector unsigned char b)
7541dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
7542dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return a - b;
7543dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7544dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
7545a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
7546a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sub(vector bool char a, vector unsigned char b)
7547a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7548a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector unsigned char)a - b;
7549a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7550a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7551a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
7552a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sub(vector unsigned char a, vector bool char b)
7553a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7554a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a - (vector unsigned char)b;
7555a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7556a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
75574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
7558dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_sub(vector short a, vector short b)
7559dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
7560dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return a - b;
7561dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7562dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
7563a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector short __ATTRS_o_ai
7564a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sub(vector bool short a, vector short b)
7565a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7566a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector short)a - b;
7567a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7568a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7569a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector short __ATTRS_o_ai
7570a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sub(vector short a, vector bool short b)
7571a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7572a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a - (vector short)b;
7573a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7574a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
75754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
7576dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_sub(vector unsigned short a, vector unsigned short b)
7577dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
7578dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return a - b;
7579dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7580dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
7581a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
7582a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sub(vector bool short a, vector unsigned short b)
7583a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7584a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector unsigned short)a - b;
7585a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7586a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7587a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
7588a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sub(vector unsigned short a, vector bool short b)
7589a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7590a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a - (vector unsigned short)b;
7591a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7592a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
75934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
7594dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_sub(vector int a, vector int b)
7595dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
7596dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return a - b;
7597dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7598dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
7599a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector int __ATTRS_o_ai
7600a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sub(vector bool int a, vector int b)
7601a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7602a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector int)a - b;
7603a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7604a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7605a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector int __ATTRS_o_ai
7606a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sub(vector int a, vector bool int b)
7607a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7608a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a - (vector int)b;
7609a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7610a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
76114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
7612dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_sub(vector unsigned int a, vector unsigned int b)
7613dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
7614dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return a - b;
7615dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7616dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
7617a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
7618a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sub(vector bool int a, vector unsigned int b)
7619a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7620a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector unsigned int)a - b;
7621a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7622a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7623a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
7624a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_sub(vector unsigned int a, vector bool int b)
7625a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7626a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a - (vector unsigned int)b;
7627a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7628a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
76294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
7630dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_sub(vector float a, vector float b)
7631dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
7632dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return a - b;
7633dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7634dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
76354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsububm */
7636dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
76374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vsububm vec_vsububm
7638dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
76394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
76404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsububm(vector signed char a, vector signed char b)
7641dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
76424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a - b;
7643dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7644dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
7645a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector signed char __ATTRS_o_ai
7646a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsububm(vector bool char a, vector signed char b)
7647a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7648a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector signed char)a - b;
7649a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7650a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7651a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector signed char __ATTRS_o_ai
7652a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsububm(vector signed char a, vector bool char b)
7653a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7654a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a - (vector signed char)b;
7655a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7656a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
76574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
76584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsububm(vector unsigned char a, vector unsigned char b)
7659dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
76604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a - b;
7661dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7662dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
7663a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
7664a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsububm(vector bool char a, vector unsigned char b)
7665a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7666a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector unsigned char)a - b;
7667a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7668a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7669a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
7670a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsububm(vector unsigned char a, vector bool char b)
7671a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7672a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a - (vector unsigned char)b;
7673a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7674a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
76754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsubuhm */
7676dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
76774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vsubuhm vec_vsubuhm
76784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
76794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
76804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsubuhm(vector short a, vector short b)
7681dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
76824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a - b;
7683dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7684dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
7685a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector short __ATTRS_o_ai
7686a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsubuhm(vector bool short a, vector short b)
7687a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7688a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector short)a - b;
7689a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7690a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7691a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector short __ATTRS_o_ai
7692a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsubuhm(vector short a, vector bool short b)
7693a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7694a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a - (vector short)b;
7695a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7696a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
76974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
76984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsubuhm(vector unsigned short a, vector unsigned short b)
7699dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
77004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a - b;
7701dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7702dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
7703a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
7704a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsubuhm(vector bool short a, vector unsigned short b)
7705a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7706a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector unsigned short)a - b;
7707a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7708a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7709a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
7710a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsubuhm(vector unsigned short a, vector bool short b)
7711a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7712a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a - (vector unsigned short)b;
7713a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7714a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
77154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsubuwm */
7716dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
77174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vsubuwm vec_vsubuwm
7718dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
77194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
77204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsubuwm(vector int a, vector int b)
7721dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
77224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a - b;
7723dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7724dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
7725a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector int __ATTRS_o_ai
7726a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsubuwm(vector bool int a, vector int b)
7727a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7728a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector int)a - b;
7729a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7730a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7731a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector int __ATTRS_o_ai
7732a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsubuwm(vector int a, vector bool int b)
7733a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7734a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a - (vector int)b;
7735a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7736a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
77374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
77384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsubuwm(vector unsigned int a, vector unsigned int b)
7739dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
77404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a - b;
7741dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7742dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
7743a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
7744a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsubuwm(vector bool int a, vector unsigned int b)
7745a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7746a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector unsigned int)a - b;
7747a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7748a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7749a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
7750a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsubuwm(vector unsigned int a, vector bool int b)
7751a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7752a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a - (vector unsigned int)b;
7753a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7754a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
77554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsubfp */
7756dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
77574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vsubfp vec_vsubfp
77584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
77594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
77604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsubfp(vector float a, vector float b)
7761dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
77624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a - b;
7763dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7764dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
77654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_subc */
77664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
77674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __attribute__((__always_inline__))
77684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_subc(vector unsigned int a, vector unsigned int b)
7769dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
77704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsubcuw(a, b);
7771dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7772dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
77734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsubcuw */
7774dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
77754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __attribute__((__always_inline__))
77764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsubcuw(vector unsigned int a, vector unsigned int b)
7777dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
77784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsubcuw(a, b);
7779dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7780dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
77814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_subs */
77824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
77834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
77844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_subs(vector signed char a, vector signed char b)
7785dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
77864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsubsbs(a, b);
7787dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7788dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
7789a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector signed char __ATTRS_o_ai
7790a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_subs(vector bool char a, vector signed char b)
7791a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7792a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vsubsbs((vector signed char)a, b);
7793a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7794a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7795a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector signed char __ATTRS_o_ai
7796a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_subs(vector signed char a, vector bool char b)
7797a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7798a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vsubsbs(a, (vector signed char)b);
7799a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7800a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
78014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
78024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_subs(vector unsigned char a, vector unsigned char b)
7803dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
78044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsububs(a, b);
7805dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7806dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
7807a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
7808a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_subs(vector bool char a, vector unsigned char b)
7809a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7810a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vsububs((vector unsigned char)a, b);
7811a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7812a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7813a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
7814a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_subs(vector unsigned char a, vector bool char b)
7815a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7816a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vsububs(a, (vector unsigned char)b);
7817a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7818a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
78194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
78204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_subs(vector short a, vector short b)
7821dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
78224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsubshs(a, b);
7823dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7824dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
7825a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector short __ATTRS_o_ai
7826a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_subs(vector bool short a, vector short b)
7827a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7828a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vsubshs((vector short)a, b);
7829a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7830a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7831a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector short __ATTRS_o_ai
7832a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_subs(vector short a, vector bool short b)
7833a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7834a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vsubshs(a, (vector short)b);
7835a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7836a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
78374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
78384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_subs(vector unsigned short a, vector unsigned short b)
7839dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
78404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsubuhs(a, b);
7841dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7842dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
7843a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
7844a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_subs(vector bool short a, vector unsigned short b)
7845a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7846a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vsubuhs((vector unsigned short)a, b);
7847a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7848a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7849a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
7850a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_subs(vector unsigned short a, vector bool short b)
7851a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7852a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vsubuhs(a, (vector unsigned short)b);
7853a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7854a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
78554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
78564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_subs(vector int a, vector int b)
7857dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
78584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsubsws(a, b);
7859dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7860dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
7861a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector int __ATTRS_o_ai
7862a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_subs(vector bool int a, vector int b)
7863a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7864a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vsubsws((vector int)a, b);
7865a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7866a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7867a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector int __ATTRS_o_ai
7868a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_subs(vector int a, vector bool int b)
7869a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7870a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vsubsws(a, (vector int)b);
7871a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7872a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
78734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
78744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_subs(vector unsigned int a, vector unsigned int b)
7875dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
78764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsubuws(a, b);
7877dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7878dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
7879a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
7880a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_subs(vector bool int a, vector unsigned int b)
7881a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7882a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vsubuws((vector unsigned int)a, b);
7883a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7884a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7885a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
7886a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_subs(vector unsigned int a, vector bool int b)
7887a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7888a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vsubuws(a, (vector unsigned int)b);
7889a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7890a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
78914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsubsbs */
7892dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
7893a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector signed char __ATTRS_o_ai
78944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsubsbs(vector signed char a, vector signed char b)
7895dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
78964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsubsbs(a, b);
7897dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7898dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
7899a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector signed char __ATTRS_o_ai
7900a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsubsbs(vector bool char a, vector signed char b)
7901a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7902a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vsubsbs((vector signed char)a, b);
7903a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7904a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7905a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector signed char __ATTRS_o_ai
7906a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsubsbs(vector signed char a, vector bool char b)
7907a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7908a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vsubsbs(a, (vector signed char)b);
7909a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7910a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
79114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsububs */
7912dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
7913a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
79144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsububs(vector unsigned char a, vector unsigned char b)
7915dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
79164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsububs(a, b);
7917dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7918dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
7919a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
7920a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsububs(vector bool char a, vector unsigned char b)
7921a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7922a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vsububs((vector unsigned char)a, b);
7923a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7924a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7925a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
7926a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsububs(vector unsigned char a, vector bool char b)
7927a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7928a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vsububs(a, (vector unsigned char)b);
7929a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7930a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
79314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsubshs */
7932dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
7933a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector short __ATTRS_o_ai
79344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsubshs(vector short a, vector short b)
7935dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
79364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsubshs(a, b);
7937dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7938dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
7939a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector short __ATTRS_o_ai
7940a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsubshs(vector bool short a, vector short b)
7941a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7942a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vsubshs((vector short)a, b);
7943a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7944a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7945a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector short __ATTRS_o_ai
7946a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsubshs(vector short a, vector bool short b)
7947a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7948a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vsubshs(a, (vector short)b);
7949a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7950a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
79514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsubuhs */
7952dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
7953a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
79544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsubuhs(vector unsigned short a, vector unsigned short b)
7955dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
79564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsubuhs(a, b);
7957dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7958dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
7959a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
7960a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsubuhs(vector bool short a, vector unsigned short b)
7961a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7962a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vsubuhs((vector unsigned short)a, b);
7963a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7964a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7965a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
7966a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsubuhs(vector unsigned short a, vector bool short b)
7967a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7968a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vsubuhs(a, (vector unsigned short)b);
7969a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7970a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
79714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsubsws */
7972dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
7973a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector int __ATTRS_o_ai
79744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsubsws(vector int a, vector int b)
7975dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
79764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsubsws(a, b);
7977dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7978dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
7979a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector int __ATTRS_o_ai
7980a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsubsws(vector bool int a, vector int b)
7981a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7982a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vsubsws((vector int)a, b);
7983a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7984a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
7985a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector int __ATTRS_o_ai
7986a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsubsws(vector int a, vector bool int b)
7987a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
7988a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vsubsws(a, (vector int)b);
7989a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
7990a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
79914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsubuws */
7992dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
7993a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
79944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsubuws(vector unsigned int a, vector unsigned int b)
7995dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
79964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsubuws(a, b);
7997dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
7998dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
7999a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
8000a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsubuws(vector bool int a, vector unsigned int b)
8001a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8002a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vsubuws((vector unsigned int)a, b);
8003a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8004a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
8005a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
8006a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vsubuws(vector unsigned int a, vector bool int b)
8007a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8008a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return __builtin_altivec_vsubuws(a, (vector unsigned int)b);
8009a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8010a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
80114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_sum4s */
8012dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
80134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
80144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sum4s(vector signed char a, vector int b)
8015dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
80164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsum4sbs(a, b);
8017dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
8018dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
80194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
80204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sum4s(vector unsigned char a, vector unsigned int b)
8021dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
80224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsum4ubs(a, b);
8023dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
8024dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
80254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
80264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sum4s(vector signed short a, vector int b)
8027dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
80284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsum4shs(a, b);
8029dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
8030dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
80314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsum4sbs */
8032dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
80334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __attribute__((__always_inline__))
80344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsum4sbs(vector signed char a, vector int b)
8035dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
80364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsum4sbs(a, b);
8037dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
8038dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
80394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsum4ubs */
8040dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
80414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __attribute__((__always_inline__))
80424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsum4ubs(vector unsigned char a, vector unsigned int b)
8043dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
80444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsum4ubs(a, b);
8045dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
8046dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
80474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsum4shs */
8048dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
80494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __attribute__((__always_inline__))
80504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsum4shs(vector signed short a, vector int b)
8051dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
80524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsum4shs(a, b);
8053dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
8054dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
80554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_sum2s */
8056dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
80574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed int __attribute__((__always_inline__))
80584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sum2s(vector int a, vector int b)
8059dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
80604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsum2sws(a, b);
8061dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
8062dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
80634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsum2sws */
8064dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
80654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed int __attribute__((__always_inline__))
80664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsum2sws(vector int a, vector int b)
8067dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
80684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsum2sws(a, b);
8069dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
8070dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
80714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_sums */
8072dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
80734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed int __attribute__((__always_inline__))
80744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sums(vector signed int a, vector signed int b)
8075dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
80764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsumsws(a, b);
8077dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
8078dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
80794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsumsws */
8080dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
80814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed int __attribute__((__always_inline__))
80824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsumsws(vector signed int a, vector signed int b)
8083dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
80844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsumsws(a, b);
8085dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
8086dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
80874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_trunc */
8088dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
80894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
80904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_trunc(vector float a)
8091dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
80924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vrfiz(a);
8093dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
8094dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
80954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vrfiz */
8096dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
80974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
80984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vrfiz(vector float a)
8099dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
81004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vrfiz(a);
8101dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
8102dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
81034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_unpackh */
8104dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
81054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
81064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_unpackh(vector signed char a)
8107dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
81084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vupkhsb((vector char)a);
8109dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
8110dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
8111a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool short __ATTRS_o_ai
8112a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_unpackh(vector bool char a)
8113a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8114a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool short)__builtin_altivec_vupkhsb((vector char)a);
8115a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8116a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
81174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
81184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_unpackh(vector short a)
8119dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
81204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vupkhsh(a);
8121dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
8122dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
8123a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
8124a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_unpackh(vector bool short a)
8125a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8126a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool int)__builtin_altivec_vupkhsh((vector short)a);
8127a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8128a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
8129a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
8130a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_unpackh(vector pixel a)
8131a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8132a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector unsigned int)__builtin_altivec_vupkhsh((vector short)a);
8133a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8134a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
81354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vupkhsb */
8136dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
8137a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector short __ATTRS_o_ai
81384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vupkhsb(vector signed char a)
8139dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
81404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vupkhsb((vector char)a);
8141dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
8142dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
8143a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool short __ATTRS_o_ai
8144a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vupkhsb(vector bool char a)
8145a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8146a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool short)__builtin_altivec_vupkhsb((vector char)a);
8147a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8148a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
81494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vupkhsh */
81504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
8151a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector int __ATTRS_o_ai
81524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vupkhsh(vector short a)
8153dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
81544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vupkhsh(a);
8155dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
8156dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
8157a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
8158a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vupkhsh(vector bool short a)
8159a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8160a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool int)__builtin_altivec_vupkhsh((vector short)a);
8161a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8162a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
8163a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
8164a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vupkhsh(vector pixel a)
8165a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8166a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector unsigned int)__builtin_altivec_vupkhsh((vector short)a);
8167a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8168a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
81694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_unpackl */
81704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
81714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
81724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_unpackl(vector signed char a)
8173dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
81744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vupklsb((vector char)a);
8175dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
8176dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
8177a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool short __ATTRS_o_ai
8178a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_unpackl(vector bool char a)
8179a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8180a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool short)__builtin_altivec_vupklsb((vector char)a);
8181a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8182a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
81834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
81844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_unpackl(vector short a)
8185dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
81864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vupklsh(a);
8187dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
8188dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
8189a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
8190a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_unpackl(vector bool short a)
8191a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8192a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool int)__builtin_altivec_vupklsh((vector short)a);
8193a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8194a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
8195a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
8196a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_unpackl(vector pixel a)
8197a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8198a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector unsigned int)__builtin_altivec_vupklsh((vector short)a);
8199a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8200a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
82014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vupklsb */
8202dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
8203a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector short __ATTRS_o_ai
82044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vupklsb(vector signed char a)
8205dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
82064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vupklsb((vector char)a);
8207dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
8208dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
8209a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool short __ATTRS_o_ai
8210a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vupklsb(vector bool char a)
8211a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8212a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool short)__builtin_altivec_vupklsb((vector char)a);
8213a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8214a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
82154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vupklsh */
8216dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
8217a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector int __ATTRS_o_ai
82184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vupklsh(vector short a)
8219dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
82204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vupklsh(a);
8221dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
8222dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
8223a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
8224a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vupklsh(vector bool short a)
8225a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8226a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector bool int)__builtin_altivec_vupklsh((vector short)a);
8227a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8228a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
8229a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
8230a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vupklsh(vector pixel a)
8231a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8232a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector unsigned int)__builtin_altivec_vupklsh((vector short)a);
8233a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8234a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
82354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_xor */
82364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
82374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vxor vec_xor
82384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
82394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
82404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_xor(vector signed char a, vector signed char b)
8241dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
82424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a ^ b;
8243dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
8244dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
8245a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector signed char __ATTRS_o_ai
8246a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_xor(vector bool char a, vector signed char b)
8247a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8248a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector signed char)a ^ b;
8249a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8250a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
8251a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector signed char __ATTRS_o_ai
8252a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_xor(vector signed char a, vector bool char b)
8253a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8254a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a ^ (vector signed char)b;
8255a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8256a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
82574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
82584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_xor(vector unsigned char a, vector unsigned char b)
8259dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
82604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a ^ b;
8261dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
8262dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
8263a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
8264a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_xor(vector bool char a, vector unsigned char b)
8265a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8266a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector unsigned char)a ^ b;
8267a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8268a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
8269a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
8270a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_xor(vector unsigned char a, vector bool char b)
8271a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8272a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a ^ (vector unsigned char)b;
8273a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8274a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
8275a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool char __ATTRS_o_ai
8276a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_xor(vector bool char a, vector bool char b)
8277a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8278a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a ^ b;
8279a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8280a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
82814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
82824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_xor(vector short a, vector short b)
8283dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
82844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a ^ b;
8285dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
8286dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
8287a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector short __ATTRS_o_ai
8288a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_xor(vector bool short a, vector short b)
8289a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8290a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector short)a ^ b;
8291a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8292a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
8293a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector short __ATTRS_o_ai
8294a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_xor(vector short a, vector bool short b)
8295a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8296a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a ^ (vector short)b;
8297a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8298a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
82994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
83004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_xor(vector unsigned short a, vector unsigned short b)
8301dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
83024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a ^ b;
8303dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
8304dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
8305a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
8306a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_xor(vector bool short a, vector unsigned short b)
8307a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8308a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector unsigned short)a ^ b;
8309a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8310a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
8311a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
8312a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_xor(vector unsigned short a, vector bool short b)
8313a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8314a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a ^ (vector unsigned short)b;
8315a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8316a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
8317a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool short __ATTRS_o_ai
8318a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_xor(vector bool short a, vector bool short b)
8319a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8320a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a ^ b;
8321a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8322a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
83234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
83244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_xor(vector int a, vector int b)
8325dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
83264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a ^ b;
8327dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
8328dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
8329a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector int __ATTRS_o_ai
8330a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_xor(vector bool int a, vector int b)
8331a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8332a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector int)a ^ b;
8333a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8334a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
8335a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector int __ATTRS_o_ai
8336a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_xor(vector int a, vector bool int b)
8337a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8338a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a ^ (vector int)b;
8339a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8340a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
83414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
83424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_xor(vector unsigned int a, vector unsigned int b)
8343dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
83444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a ^ b;
8345dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
8346dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
8347a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
8348a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_xor(vector bool int a, vector unsigned int b)
8349a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8350a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector unsigned int)a ^ b;
8351a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8352a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
8353a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
8354a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_xor(vector unsigned int a, vector bool int b)
8355a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8356a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a ^ (vector unsigned int)b;
8357a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8358a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
8359a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
8360a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_xor(vector bool int a, vector bool int b)
8361a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8362a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a ^ b;
8363a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8364a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
83654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
83664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_xor(vector float a, vector float b)
8367dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
83684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  vector unsigned int res = (vector unsigned int)a ^ (vector unsigned int)b;
83694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)res;
8370dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
8371dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
8372a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector float __ATTRS_o_ai
8373a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_xor(vector bool int a, vector float b)
8374a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8375a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  vector unsigned int res = (vector unsigned int)a ^ (vector unsigned int)b;
8376a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector float)res;
8377a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8378a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
8379a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector float __ATTRS_o_ai
8380a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_xor(vector float a, vector bool int b)
8381a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8382a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  vector unsigned int res = (vector unsigned int)a ^ (vector unsigned int)b;
8383a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector float)res;
8384a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8385a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
83864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vxor */
83874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
83884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
83894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vxor(vector signed char a, vector signed char b)
8390dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
83914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a ^ b;
8392dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
8393dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
8394a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector signed char __ATTRS_o_ai
8395a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vxor(vector bool char a, vector signed char b)
8396a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8397a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector signed char)a ^ b;
8398a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8399a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
8400a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector signed char __ATTRS_o_ai
8401a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vxor(vector signed char a, vector bool char b)
8402a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8403a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a ^ (vector signed char)b;
8404a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8405a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
84064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
84074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vxor(vector unsigned char a, vector unsigned char b)
8408dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
84094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a ^ b;
8410dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
8411dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
8412a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
8413a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vxor(vector bool char a, vector unsigned char b)
8414a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8415a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector unsigned char)a ^ b;
8416a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8417a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
8418a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
8419a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vxor(vector unsigned char a, vector bool char b)
8420a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8421a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a ^ (vector unsigned char)b;
8422a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8423a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
8424a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool char __ATTRS_o_ai
8425a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vxor(vector bool char a, vector bool char b)
8426a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8427a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a ^ b;
8428a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8429a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
84304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
84314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vxor(vector short a, vector short b)
8432dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
84334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a ^ b;
8434dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
8435dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
8436a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector short __ATTRS_o_ai
8437a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vxor(vector bool short a, vector short b)
8438a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8439a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector short)a ^ b;
8440a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8441a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
8442a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector short __ATTRS_o_ai
8443a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vxor(vector short a, vector bool short b)
8444a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8445a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a ^ (vector short)b;
8446a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8447a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
84484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
84494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vxor(vector unsigned short a, vector unsigned short b)
8450dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
84514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a ^ b;
8452dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
8453dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
8454a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
8455a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vxor(vector bool short a, vector unsigned short b)
8456a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8457a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector unsigned short)a ^ b;
8458a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8459a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
8460a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
8461a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vxor(vector unsigned short a, vector bool short b)
8462a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8463a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a ^ (vector unsigned short)b;
8464a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8465a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
8466a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool short __ATTRS_o_ai
8467a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vxor(vector bool short a, vector bool short b)
8468a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8469a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a ^ b;
8470a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8471a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
84724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
84734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vxor(vector int a, vector int b)
8474dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
84754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a ^ b;
8476dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
8477dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
8478a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector int __ATTRS_o_ai
8479a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vxor(vector bool int a, vector int b)
8480a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8481a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector int)a ^ b;
8482a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8483a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
8484a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector int __ATTRS_o_ai
8485a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vxor(vector int a, vector bool int b)
8486a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8487a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a ^ (vector int)b;
8488a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8489a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
84904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
84914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vxor(vector unsigned int a, vector unsigned int b)
8492dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
84934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a ^ b;
8494dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
8495dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
8496a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
8497a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vxor(vector bool int a, vector unsigned int b)
8498a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8499a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector unsigned int)a ^ b;
8500a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8501a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
8502a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
8503a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vxor(vector unsigned int a, vector bool int b)
8504a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8505a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a ^ (vector unsigned int)b;
8506a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8507a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
8508a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector bool int __ATTRS_o_ai
8509a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vxor(vector bool int a, vector bool int b)
8510a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8511a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return a ^ b;
8512a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8513a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
85144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
85154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vxor(vector float a, vector float b)
8516dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
85174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  vector unsigned int res = (vector unsigned int)a ^ (vector unsigned int)b;
85184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)res;
8519dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
8520dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
8521a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector float __ATTRS_o_ai
8522a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vxor(vector bool int a, vector float b)
8523a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8524a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  vector unsigned int res = (vector unsigned int)a ^ (vector unsigned int)b;
8525a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector float)res;
8526a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8527a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
8528a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevstatic vector float __ATTRS_o_ai
8529a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsevvec_vxor(vector float a, vector bool int b)
8530a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev{
8531a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  vector unsigned int res = (vector unsigned int)a ^ (vector unsigned int)b;
8532a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev  return (vector float)res;
8533a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev}
8534a2fc0f54d69461795433d42c46de337850be15cdAnton Yartsev
85353ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev/* ------------------------ extensions for CBEA ----------------------------- */
853644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
853744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev/* vec_extract */
853844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
853944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic signed char __ATTRS_o_ai
854044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_extract(vector signed char a, int b)
854144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
854244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return a[b];
854344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
854444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
854544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic unsigned char __ATTRS_o_ai
854644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_extract(vector unsigned char a, int b)
854744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
854844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return a[b];
854944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
855044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
855144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic short __ATTRS_o_ai
855244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_extract(vector short a, int b)
855344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
855444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return a[b];
855544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
855644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
855744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic unsigned short __ATTRS_o_ai
855844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_extract(vector unsigned short a, int b)
855944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
856044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return a[b];
856144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
856244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
856344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic int __ATTRS_o_ai
856444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_extract(vector int a, int b)
856544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
856644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return a[b];
856744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
856844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
856944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic unsigned int __ATTRS_o_ai
857044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_extract(vector unsigned int a, int b)
857144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
857244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return a[b];
857344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
857444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
857544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic float __ATTRS_o_ai
857644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_extract(vector float a, int b)
857744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
857844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return a[b];
857944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
858044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
858144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev/* vec_insert */
858244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
858344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector signed char __ATTRS_o_ai
858444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_insert(signed char a, vector signed char b, int c)
858544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
858644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  b[c] = a;
858744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return b;
858844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
858944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
859044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
859144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_insert(unsigned char a, vector unsigned char b, int c)
859244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
859344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  b[c] = a;
859444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return b;
859544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
859644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
859744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector short __ATTRS_o_ai
859844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_insert(short a, vector short b, int c)
859944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
860044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  b[c] = a;
860144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return b;
860244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
860344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
860444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
860544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_insert(unsigned short a, vector unsigned short b, int c)
860644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
860744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  b[c] = a;
860844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return b;
860944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
861044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
861144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector int __ATTRS_o_ai
861244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_insert(int a, vector int b, int c)
861344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
861444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  b[c] = a;
861544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return b;
861644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
861744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
861844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
861944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_insert(unsigned int a, vector unsigned int b, int c)
862044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
862144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  b[c] = a;
862244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return b;
862344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
862444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
862544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector float __ATTRS_o_ai
862644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_insert(float a, vector float b, int c)
862744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
862844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  b[c] = a;
862944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return b;
863044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
863144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
863244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev/* vec_lvlx */
863344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
863444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector signed char __ATTRS_o_ai
8635e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvlx(int a, const signed char *b)
863644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
863744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm(vec_ld(a, b),
863844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  (vector signed char)(0),
863944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, b));
864044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
864144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
864244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector signed char __ATTRS_o_ai
8643e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvlx(int a, const vector signed char *b)
864444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
864544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm(vec_ld(a, b),
864644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  (vector signed char)(0),
864744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
864844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
864944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
865044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
8651e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvlx(int a, const unsigned char *b)
865244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
865344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm(vec_ld(a, b),
865444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  (vector unsigned char)(0),
865544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, b));
865644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
865744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
865844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
8659e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvlx(int a, const vector unsigned char *b)
866044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
866144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm(vec_ld(a, b),
866244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  (vector unsigned char)(0),
866344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
866444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
866544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
866644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector bool char __ATTRS_o_ai
8667e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvlx(int a, const vector bool char *b)
866844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
866944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm(vec_ld(a, b),
867044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  (vector bool char)(0),
867144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
867244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
867344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
867444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector short __ATTRS_o_ai
8675e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvlx(int a, const short *b)
867644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
867744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm(vec_ld(a, b),
867844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  (vector short)(0),
867944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, b));
868044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
868144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
868244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector short __ATTRS_o_ai
8683e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvlx(int a, const vector short *b)
868444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
868544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm(vec_ld(a, b),
868644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  (vector short)(0),
868744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
868844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
868944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
869044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
8691e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvlx(int a, const unsigned short *b)
869244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
869344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm(vec_ld(a, b),
869444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  (vector unsigned short)(0),
869544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, b));
869644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
869744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
869844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
8699e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvlx(int a, const vector unsigned short *b)
870044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
870144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm(vec_ld(a, b),
870244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  (vector unsigned short)(0),
870344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
870444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
870544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
870644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector bool short __ATTRS_o_ai
8707e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvlx(int a, const vector bool short *b)
870844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
870944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm(vec_ld(a, b),
871044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  (vector bool short)(0),
871144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
871244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
871344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
871444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector pixel __ATTRS_o_ai
8715e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvlx(int a, const vector pixel *b)
871644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
871744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm(vec_ld(a, b),
871844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  (vector pixel)(0),
871944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
872044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
872144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
872244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector int __ATTRS_o_ai
8723e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvlx(int a, const int *b)
872444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
872544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm(vec_ld(a, b),
872644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  (vector int)(0),
872744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, b));
872844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
872944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
873044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector int __ATTRS_o_ai
8731e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvlx(int a, const vector int *b)
873244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
873344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm(vec_ld(a, b),
873444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  (vector int)(0),
873544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
873644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
873744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
873844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
8739e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvlx(int a, const unsigned int *b)
874044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
874144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm(vec_ld(a, b),
874244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  (vector unsigned int)(0),
874344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, b));
874444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
874544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
874644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
8747e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvlx(int a, const vector unsigned int *b)
874844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
874944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm(vec_ld(a, b),
875044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  (vector unsigned int)(0),
875144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
875244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
875344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
875444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector bool int __ATTRS_o_ai
8755e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvlx(int a, const vector bool int *b)
875644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
875744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm(vec_ld(a, b),
875844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  (vector bool int)(0),
875944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
876044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
876144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
876244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector float __ATTRS_o_ai
8763e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvlx(int a, const float *b)
876444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
876544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm(vec_ld(a, b),
876644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  (vector float)(0),
876744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, b));
876844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
876944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
877044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector float __ATTRS_o_ai
8771e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvlx(int a, const vector float *b)
877244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
877344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm(vec_ld(a, b),
877444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  (vector float)(0),
877544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
877644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
877744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
877844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev/* vec_lvlxl */
877944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
878044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector signed char __ATTRS_o_ai
8781e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvlxl(int a, const signed char *b)
878244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
878344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm(vec_ldl(a, b),
878444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  (vector signed char)(0),
878544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, b));
878644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
878744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
878844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector signed char __ATTRS_o_ai
8789e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvlxl(int a, const vector signed char *b)
879044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
879144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm(vec_ldl(a, b),
879244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  (vector signed char)(0),
879344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
879444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
879544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
879644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
8797e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvlxl(int a, const unsigned char *b)
879844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
879944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm(vec_ldl(a, b),
880044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  (vector unsigned char)(0),
880144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, b));
880244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
880344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
880444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
8805e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvlxl(int a, const vector unsigned char *b)
880644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
880744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm(vec_ldl(a, b),
880844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  (vector unsigned char)(0),
880944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
881044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
881144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
881244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector bool char __ATTRS_o_ai
8813e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvlxl(int a, const vector bool char *b)
881444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
881544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm(vec_ldl(a, b),
881644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  (vector bool char)(0),
881744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
881844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
881944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
882044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector short __ATTRS_o_ai
8821e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvlxl(int a, const short *b)
882244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
882344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm(vec_ldl(a, b),
882444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  (vector short)(0),
882544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, b));
882644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
882744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
882844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector short __ATTRS_o_ai
8829e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvlxl(int a, const vector short *b)
883044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
883144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm(vec_ldl(a, b),
883244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  (vector short)(0),
883344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
883444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
883544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
883644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
8837e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvlxl(int a, const unsigned short *b)
883844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
883944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm(vec_ldl(a, b),
884044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  (vector unsigned short)(0),
884144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, b));
884244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
884344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
884444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
8845e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvlxl(int a, const vector unsigned short *b)
884644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
884744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm(vec_ldl(a, b),
884844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  (vector unsigned short)(0),
884944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
885044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
885144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
885244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector bool short __ATTRS_o_ai
8853e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvlxl(int a, const vector bool short *b)
885444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
885544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm(vec_ldl(a, b),
885644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  (vector bool short)(0),
885744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
885844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
885944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
886044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector pixel __ATTRS_o_ai
8861e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvlxl(int a, const vector pixel *b)
886244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
886344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm(vec_ldl(a, b),
886444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  (vector pixel)(0),
886544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
886644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
886744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
886844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector int __ATTRS_o_ai
8869e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvlxl(int a, const int *b)
887044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
887144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm(vec_ldl(a, b),
887244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  (vector int)(0),
887344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, b));
887444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
887544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
887644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector int __ATTRS_o_ai
8877e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvlxl(int a, const vector int *b)
887844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
887944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm(vec_ldl(a, b),
888044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  (vector int)(0),
888144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
888244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
888344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
888444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
8885e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvlxl(int a, const unsigned int *b)
888644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
888744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm(vec_ldl(a, b),
888844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  (vector unsigned int)(0),
888944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, b));
889044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
889144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
889244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
8893e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvlxl(int a, const vector unsigned int *b)
889444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
889544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm(vec_ldl(a, b),
889644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  (vector unsigned int)(0),
889744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
889844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
889944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
890044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector bool int __ATTRS_o_ai
8901e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvlxl(int a, const vector bool int *b)
890244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
890344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm(vec_ldl(a, b),
890444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  (vector bool int)(0),
890544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
890644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
890744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
890844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector float __ATTRS_o_ai
8909e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvlxl(int a, const float *b)
891044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
891144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm(vec_ldl(a, b),
891244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  (vector float)(0),
891344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, b));
891444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
891544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
891644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector float __ATTRS_o_ai
891744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_lvlxl(int a, vector float *b)
891844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
891944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm(vec_ldl(a, b),
892044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  (vector float)(0),
892144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
892244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
892344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
892444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev/* vec_lvrx */
892544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
892644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector signed char __ATTRS_o_ai
8927e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvrx(int a, const signed char *b)
892844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
892944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm((vector signed char)(0),
893044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_ld(a, b),
893144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, b));
893244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
893344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
893444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector signed char __ATTRS_o_ai
8935e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvrx(int a, const vector signed char *b)
893644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
893744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm((vector signed char)(0),
893844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_ld(a, b),
893944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
894044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
894144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
894244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
8943e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvrx(int a, const unsigned char *b)
894444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
894544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm((vector unsigned char)(0),
894644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_ld(a, b),
894744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, b));
894844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
894944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
895044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
8951e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvrx(int a, const vector unsigned char *b)
895244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
895344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm((vector unsigned char)(0),
895444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_ld(a, b),
895544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
895644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
895744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
895844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector bool char __ATTRS_o_ai
8959e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvrx(int a, const vector bool char *b)
896044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
896144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm((vector bool char)(0),
896244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_ld(a, b),
896344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
896444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
896544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
896644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector short __ATTRS_o_ai
8967e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvrx(int a, const short *b)
896844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
896944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm((vector short)(0),
897044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_ld(a, b),
897144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, b));
897244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
897344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
897444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector short __ATTRS_o_ai
8975e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvrx(int a, const vector short *b)
897644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
897744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm((vector short)(0),
897844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_ld(a, b),
897944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
898044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
898144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
898244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
8983e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvrx(int a, const unsigned short *b)
898444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
898544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm((vector unsigned short)(0),
898644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_ld(a, b),
898744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, b));
898844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
898944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
899044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
8991e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvrx(int a, const vector unsigned short *b)
899244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
899344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm((vector unsigned short)(0),
899444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_ld(a, b),
899544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
899644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
899744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
899844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector bool short __ATTRS_o_ai
8999e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvrx(int a, const vector bool short *b)
900044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
900144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm((vector bool short)(0),
900244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_ld(a, b),
900344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
900444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
900544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
900644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector pixel __ATTRS_o_ai
9007e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvrx(int a, const vector pixel *b)
900844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
900944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm((vector pixel)(0),
901044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_ld(a, b),
901144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
901244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
901344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
901444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector int __ATTRS_o_ai
9015e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvrx(int a, const int *b)
901644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
901744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm((vector int)(0),
901844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_ld(a, b),
901944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, b));
902044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
902144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
902244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector int __ATTRS_o_ai
9023e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvrx(int a, const vector int *b)
902444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
902544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm((vector int)(0),
902644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_ld(a, b),
902744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
902844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
902944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
903044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
9031e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvrx(int a, const unsigned int *b)
903244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
903344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm((vector unsigned int)(0),
903444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_ld(a, b),
903544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, b));
903644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
903744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
903844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
9039e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvrx(int a, const vector unsigned int *b)
904044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
904144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm((vector unsigned int)(0),
904244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_ld(a, b),
904344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
904444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
904544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
904644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector bool int __ATTRS_o_ai
9047e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvrx(int a, const vector bool int *b)
904844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
904944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm((vector bool int)(0),
905044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_ld(a, b),
905144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
905244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
905344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
905444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector float __ATTRS_o_ai
9055e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvrx(int a, const float *b)
905644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
905744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm((vector float)(0),
905844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_ld(a, b),
905944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, b));
906044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
906144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
906244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector float __ATTRS_o_ai
9063e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvrx(int a, const vector float *b)
906444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
906544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm((vector float)(0),
906644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_ld(a, b),
906744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
906844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
906944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
907044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev/* vec_lvrxl */
907144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
907244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector signed char __ATTRS_o_ai
9073e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvrxl(int a, const signed char *b)
907444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
907544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm((vector signed char)(0),
907644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_ldl(a, b),
907744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, b));
907844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
907944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
908044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector signed char __ATTRS_o_ai
9081e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvrxl(int a, const vector signed char *b)
908244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
908344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm((vector signed char)(0),
908444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_ldl(a, b),
908544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
908644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
908744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
908844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
9089e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvrxl(int a, const unsigned char *b)
909044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
909144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm((vector unsigned char)(0),
909244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_ldl(a, b),
909344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, b));
909444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
909544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
909644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
9097e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvrxl(int a, const vector unsigned char *b)
909844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
909944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm((vector unsigned char)(0),
910044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_ldl(a, b),
910144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
910244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
910344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
910444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector bool char __ATTRS_o_ai
9105e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvrxl(int a, const vector bool char *b)
910644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
910744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm((vector bool char)(0),
910844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_ldl(a, b),
910944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
911044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
911144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
911244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector short __ATTRS_o_ai
9113e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvrxl(int a, const short *b)
911444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
911544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm((vector short)(0),
911644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_ldl(a, b),
911744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, b));
911844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
911944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
912044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector short __ATTRS_o_ai
9121e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvrxl(int a, const vector short *b)
912244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
912344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm((vector short)(0),
912444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_ldl(a, b),
912544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
912644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
912744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
912844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
9129e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvrxl(int a, const unsigned short *b)
913044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
913144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm((vector unsigned short)(0),
913244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_ldl(a, b),
913344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, b));
913444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
913544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
913644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
9137e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvrxl(int a, const vector unsigned short *b)
913844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
913944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm((vector unsigned short)(0),
914044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_ldl(a, b),
914144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
914244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
914344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
914444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector bool short __ATTRS_o_ai
9145e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvrxl(int a, const vector bool short *b)
914644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
914744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm((vector bool short)(0),
914844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_ldl(a, b),
914944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
915044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
915144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
915244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector pixel __ATTRS_o_ai
9153e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvrxl(int a, const vector pixel *b)
915444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
915544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm((vector pixel)(0),
915644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_ldl(a, b),
915744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
915844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
915944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
916044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector int __ATTRS_o_ai
9161e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvrxl(int a, const int *b)
916244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
916344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm((vector int)(0),
916444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_ldl(a, b),
916544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, b));
916644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
916744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
916844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector int __ATTRS_o_ai
9169e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvrxl(int a, const vector int *b)
917044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
917144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm((vector int)(0),
917244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_ldl(a, b),
917344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
917444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
917544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
917644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
9177e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvrxl(int a, const unsigned int *b)
917844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
917944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm((vector unsigned int)(0),
918044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_ldl(a, b),
918144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, b));
918244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
918344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
918444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
9185e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvrxl(int a, const vector unsigned int *b)
918644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
918744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm((vector unsigned int)(0),
918844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_ldl(a, b),
918944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
919044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
919144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
919244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector bool int __ATTRS_o_ai
9193e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvrxl(int a, const vector bool int *b)
919444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
919544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm((vector bool int)(0),
919644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_ldl(a, b),
919744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
919844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
919944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
920044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector float __ATTRS_o_ai
9201e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvrxl(int a, const float *b)
920244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
920344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm((vector float)(0),
920444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_ldl(a, b),
920544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, b));
920644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
920744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
920844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector float __ATTRS_o_ai
9209e19df1839992d54d37624e617f410ac7dda87f07Anton Yartsevvec_lvrxl(int a, const vector float *b)
921044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
921144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_perm((vector float)(0),
921244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_ldl(a, b),
921344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                  vec_lvsl(a, (unsigned char *)b));
921444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
921544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
921644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev/* vec_stvlx */
921744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
921844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
921944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvlx(vector signed char a, int b, signed char *c)
922044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
922144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_st(vec_perm(vec_lvrx(b, c),
922244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         a,
922344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvsr(b, c)),
922444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                b, c);
922544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
922644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
922744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
922844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvlx(vector signed char a, int b, vector signed char *c)
922944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
923044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_st(vec_perm(vec_lvrx(b, c),
923144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         a,
923244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvsr(b, (unsigned char *)c)),
923344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                b, c);
923444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
923544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
923644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
923744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvlx(vector unsigned char a, int b, unsigned char *c)
923844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
923944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_st(vec_perm(vec_lvrx(b, c),
924044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         a,
924144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvsr(b, c)),
924244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                b, c);
924344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
924444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
924544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
924644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvlx(vector unsigned char a, int b, vector unsigned char *c)
924744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
924844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_st(vec_perm(vec_lvrx(b, c),
924944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         a,
925044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvsr(b, (unsigned char *)c)),
925144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                b, c);
925244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
925344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
925444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
925544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvlx(vector bool char a, int b, vector bool char *c)
925644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
925744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_st(vec_perm(vec_lvrx(b, c),
925844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         a,
925944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvsr(b, (unsigned char *)c)),
926044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                b, c);
926144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
926244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
926344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
926444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvlx(vector short a, int b, short *c)
926544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
926644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_st(vec_perm(vec_lvrx(b, c),
926744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         a,
926844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvsr(b, c)),
926944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                b, c);
927044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
927144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
927244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
927344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvlx(vector short a, int b, vector short *c)
927444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
927544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_st(vec_perm(vec_lvrx(b, c),
927644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         a,
927744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvsr(b, (unsigned char *)c)),
927844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                b, c);
927944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
928044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
928144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
928244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvlx(vector unsigned short a, int b, unsigned short *c)
928344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
928444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_st(vec_perm(vec_lvrx(b, c),
928544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         a,
928644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvsr(b, c)),
928744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                b, c);
928844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
928944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
929044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
929144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvlx(vector unsigned short a, int b, vector unsigned short *c)
929244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
929344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_st(vec_perm(vec_lvrx(b, c),
929444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         a,
929544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvsr(b, (unsigned char *)c)),
929644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                b, c);
929744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
929844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
929944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
930044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvlx(vector bool short a, int b, vector bool short *c)
930144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
930244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_st(vec_perm(vec_lvrx(b, c),
930344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         a,
930444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvsr(b, (unsigned char *)c)),
930544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                b, c);
930644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
930744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
930844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
930944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvlx(vector pixel a, int b, vector pixel *c)
931044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
931144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_st(vec_perm(vec_lvrx(b, c),
931244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         a,
931344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvsr(b, (unsigned char *)c)),
931444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                b, c);
931544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
931644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
931744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
931844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvlx(vector int a, int b, int *c)
931944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
932044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_st(vec_perm(vec_lvrx(b, c),
932144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         a,
932244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvsr(b, c)),
932344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                b, c);
932444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
932544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
932644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
932744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvlx(vector int a, int b, vector int *c)
932844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
932944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_st(vec_perm(vec_lvrx(b, c),
933044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         a,
933144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvsr(b, (unsigned char *)c)),
933244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                b, c);
933344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
933444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
933544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
933644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvlx(vector unsigned int a, int b, unsigned int *c)
933744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
933844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_st(vec_perm(vec_lvrx(b, c),
933944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         a,
934044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvsr(b, c)),
934144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                b, c);
934244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
934344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
934444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
934544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvlx(vector unsigned int a, int b, vector unsigned int *c)
934644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
934744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_st(vec_perm(vec_lvrx(b, c),
934844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         a,
934944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvsr(b, (unsigned char *)c)),
935044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                b, c);
935144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
935244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
935344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
935444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvlx(vector bool int a, int b, vector bool int *c)
935544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
935644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_st(vec_perm(vec_lvrx(b, c),
935744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         a,
935844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvsr(b, (unsigned char *)c)),
935944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                b, c);
936044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
936144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
936244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
936344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvlx(vector float a, int b, vector float *c)
936444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
936544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_st(vec_perm(vec_lvrx(b, c),
936644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         a,
936744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvsr(b, (unsigned char *)c)),
936844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                b, c);
936944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
937044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
937144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev/* vec_stvlxl */
937244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
937344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
937444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvlxl(vector signed char a, int b, signed char *c)
937544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
937644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_stl(vec_perm(vec_lvrx(b, c),
937744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          a,
937844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvsr(b, c)),
937944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                 b, c);
938044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
938144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
938244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
938344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvlxl(vector signed char a, int b, vector signed char *c)
938444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
938544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_stl(vec_perm(vec_lvrx(b, c),
938644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          a,
938744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvsr(b, (unsigned char *)c)),
938844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                 b, c);
938944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
939044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
939144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
939244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvlxl(vector unsigned char a, int b, unsigned char *c)
939344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
939444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_stl(vec_perm(vec_lvrx(b, c),
939544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          a,
939644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvsr(b, c)),
939744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                 b, c);
939844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
939944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
940044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
940144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvlxl(vector unsigned char a, int b, vector unsigned char *c)
940244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
940344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_stl(vec_perm(vec_lvrx(b, c),
940444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          a,
940544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvsr(b, (unsigned char *)c)),
940644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                 b, c);
940744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
940844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
940944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
941044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvlxl(vector bool char a, int b, vector bool char *c)
941144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
941244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_stl(vec_perm(vec_lvrx(b, c),
941344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          a,
941444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvsr(b, (unsigned char *)c)),
941544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                 b, c);
941644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
941744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
941844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
941944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvlxl(vector short a, int b, short *c)
942044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
942144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_stl(vec_perm(vec_lvrx(b, c),
942244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          a,
942344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvsr(b, c)),
942444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                 b, c);
942544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
942644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
942744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
942844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvlxl(vector short a, int b, vector short *c)
942944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
943044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_stl(vec_perm(vec_lvrx(b, c),
943144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          a,
943244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvsr(b, (unsigned char *)c)),
943344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                 b, c);
943444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
943544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
943644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
943744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvlxl(vector unsigned short a, int b, unsigned short *c)
943844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
943944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_stl(vec_perm(vec_lvrx(b, c),
944044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          a,
944144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvsr(b, c)),
944244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                 b, c);
944344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
944444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
944544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
944644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvlxl(vector unsigned short a, int b, vector unsigned short *c)
944744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
944844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_stl(vec_perm(vec_lvrx(b, c),
944944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          a,
945044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvsr(b, (unsigned char *)c)),
945144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                 b, c);
945244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
945344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
945444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
945544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvlxl(vector bool short a, int b, vector bool short *c)
945644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
945744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_stl(vec_perm(vec_lvrx(b, c),
945844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          a,
945944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvsr(b, (unsigned char *)c)),
946044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                 b, c);
946144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
946244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
946344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
946444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvlxl(vector pixel a, int b, vector pixel *c)
946544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
946644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_stl(vec_perm(vec_lvrx(b, c),
946744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          a,
946844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvsr(b, (unsigned char *)c)),
946944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                 b, c);
947044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
947144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
947244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
947344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvlxl(vector int a, int b, int *c)
947444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
947544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_stl(vec_perm(vec_lvrx(b, c),
947644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          a,
947744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvsr(b, c)),
947844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                 b, c);
947944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
948044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
948144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
948244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvlxl(vector int a, int b, vector int *c)
948344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
948444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_stl(vec_perm(vec_lvrx(b, c),
948544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          a,
948644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvsr(b, (unsigned char *)c)),
948744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                 b, c);
948844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
948944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
949044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
949144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvlxl(vector unsigned int a, int b, unsigned int *c)
949244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
949344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_stl(vec_perm(vec_lvrx(b, c),
949444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          a,
949544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvsr(b, c)),
949644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                 b, c);
949744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
949844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
949944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
950044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvlxl(vector unsigned int a, int b, vector unsigned int *c)
950144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
950244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_stl(vec_perm(vec_lvrx(b, c),
950344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          a,
950444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvsr(b, (unsigned char *)c)),
950544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                 b, c);
950644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
950744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
950844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
950944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvlxl(vector bool int a, int b, vector bool int *c)
951044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
951144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_stl(vec_perm(vec_lvrx(b, c),
951244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          a,
951344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvsr(b, (unsigned char *)c)),
951444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                 b, c);
951544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
951644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
951744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
951844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvlxl(vector float a, int b, vector float *c)
951944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
952044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_stl(vec_perm(vec_lvrx(b, c),
952144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          a,
952244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvsr(b, (unsigned char *)c)),
952344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                 b, c);
952444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
952544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
952644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev/* vec_stvrx */
952744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
952844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
952944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvrx(vector signed char a, int b, signed char *c)
953044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
953144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_st(vec_perm(a,
953244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvlx(b, c),
953344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvsr(b, c)),
953444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                b, c);
953544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
953644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
953744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
953844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvrx(vector signed char a, int b, vector signed char *c)
953944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
954044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_st(vec_perm(a,
954144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvlx(b, c),
954244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvsr(b, (unsigned char *)c)),
954344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                b, c);
954444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
954544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
954644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
954744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvrx(vector unsigned char a, int b, unsigned char *c)
954844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
954944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_st(vec_perm(a,
955044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvlx(b, c),
955144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvsr(b, c)),
955244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                b, c);
955344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
955444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
955544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
955644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvrx(vector unsigned char a, int b, vector unsigned char *c)
955744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
955844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_st(vec_perm(a,
955944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvlx(b, c),
956044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvsr(b, (unsigned char *)c)),
956144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                b, c);
956244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
956344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
956444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
956544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvrx(vector bool char a, int b, vector bool char *c)
956644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
956744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_st(vec_perm(a,
956844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvlx(b, c),
956944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvsr(b, (unsigned char *)c)),
957044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                b, c);
957144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
957244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
957344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
957444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvrx(vector short a, int b, short *c)
957544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
957644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_st(vec_perm(a,
957744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvlx(b, c),
957844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvsr(b, c)),
957944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                b, c);
958044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
958144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
958244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
958344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvrx(vector short a, int b, vector short *c)
958444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
958544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_st(vec_perm(a,
958644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvlx(b, c),
958744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvsr(b, (unsigned char *)c)),
958844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                b, c);
958944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
959044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
959144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
959244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvrx(vector unsigned short a, int b, unsigned short *c)
959344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
959444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_st(vec_perm(a,
959544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvlx(b, c),
959644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvsr(b, c)),
959744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                b, c);
959844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
959944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
960044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
960144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvrx(vector unsigned short a, int b, vector unsigned short *c)
960244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
960344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_st(vec_perm(a,
960444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvlx(b, c),
960544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvsr(b, (unsigned char *)c)),
960644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                b, c);
960744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
960844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
960944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
961044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvrx(vector bool short a, int b, vector bool short *c)
961144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
961244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_st(vec_perm(a,
961344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvlx(b, c),
961444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvsr(b, (unsigned char *)c)),
961544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                b, c);
961644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
961744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
961844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
961944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvrx(vector pixel a, int b, vector pixel *c)
962044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
962144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_st(vec_perm(a,
962244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvlx(b, c),
962344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvsr(b, (unsigned char *)c)),
962444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                b, c);
962544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
962644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
962744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
962844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvrx(vector int a, int b, int *c)
962944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
963044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_st(vec_perm(a,
963144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvlx(b, c),
963244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvsr(b, c)),
963344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                b, c);
963444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
963544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
963644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
963744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvrx(vector int a, int b, vector int *c)
963844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
963944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_st(vec_perm(a,
964044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvlx(b, c),
964144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvsr(b, (unsigned char *)c)),
964244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                b, c);
964344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
964444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
964544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
964644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvrx(vector unsigned int a, int b, unsigned int *c)
964744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
964844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_st(vec_perm(a,
964944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvlx(b, c),
965044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvsr(b, c)),
965144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                b, c);
965244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
965344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
965444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
965544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvrx(vector unsigned int a, int b, vector unsigned int *c)
965644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
965744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_st(vec_perm(a,
965844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvlx(b, c),
965944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvsr(b, (unsigned char *)c)),
966044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                b, c);
966144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
966244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
966344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
966444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvrx(vector bool int a, int b, vector bool int *c)
966544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
966644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_st(vec_perm(a,
966744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvlx(b, c),
966844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvsr(b, (unsigned char *)c)),
966944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                b, c);
967044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
967144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
967244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
967344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvrx(vector float a, int b, vector float *c)
967444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
967544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_st(vec_perm(a,
967644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvlx(b, c),
967744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                         vec_lvsr(b, (unsigned char *)c)),
967844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                b, c);
967944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
968044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
968144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev/* vec_stvrxl */
968244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
968344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
968444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvrxl(vector signed char a, int b, signed char *c)
968544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
968644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_stl(vec_perm(a,
968744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvlx(b, c),
968844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvsr(b, c)),
968944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                 b, c);
969044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
969144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
969244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
969344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvrxl(vector signed char a, int b, vector signed char *c)
969444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
969544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_stl(vec_perm(a,
969644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvlx(b, c),
969744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvsr(b, (unsigned char *)c)),
969844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                 b, c);
969944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
970044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
970144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
970244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvrxl(vector unsigned char a, int b, unsigned char *c)
970344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
970444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_stl(vec_perm(a,
970544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvlx(b, c),
970644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvsr(b, c)),
970744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                 b, c);
970844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
970944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
971044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
971144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvrxl(vector unsigned char a, int b, vector unsigned char *c)
971244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
971344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_stl(vec_perm(a,
971444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvlx(b, c),
971544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvsr(b, (unsigned char *)c)),
971644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                 b, c);
971744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
971844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
971944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
972044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvrxl(vector bool char a, int b, vector bool char *c)
972144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
972244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_stl(vec_perm(a,
972344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvlx(b, c),
972444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvsr(b, (unsigned char *)c)),
972544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                 b, c);
972644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
972744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
972844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
972944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvrxl(vector short a, int b, short *c)
973044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
973144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_stl(vec_perm(a,
973244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvlx(b, c),
973344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvsr(b, c)),
973444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                 b, c);
973544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
973644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
973744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
973844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvrxl(vector short a, int b, vector short *c)
973944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
974044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_stl(vec_perm(a,
974144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvlx(b, c),
974244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvsr(b, (unsigned char *)c)),
974344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                 b, c);
974444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
974544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
974644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
974744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvrxl(vector unsigned short a, int b, unsigned short *c)
974844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
974944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_stl(vec_perm(a,
975044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvlx(b, c),
975144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvsr(b, c)),
975244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                 b, c);
975344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
975444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
975544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
975644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvrxl(vector unsigned short a, int b, vector unsigned short *c)
975744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
975844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_stl(vec_perm(a,
975944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvlx(b, c),
976044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvsr(b, (unsigned char *)c)),
976144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                 b, c);
976244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
976344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
976444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
976544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvrxl(vector bool short a, int b, vector bool short *c)
976644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
976744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_stl(vec_perm(a,
976844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvlx(b, c),
976944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvsr(b, (unsigned char *)c)),
977044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                 b, c);
977144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
977244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
977344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
977444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvrxl(vector pixel a, int b, vector pixel *c)
977544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
977644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_stl(vec_perm(a,
977744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvlx(b, c),
977844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvsr(b, (unsigned char *)c)),
977944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                 b, c);
978044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
978144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
978244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
978344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvrxl(vector int a, int b, int *c)
978444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
978544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_stl(vec_perm(a,
978644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvlx(b, c),
978744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvsr(b, c)),
978844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                 b, c);
978944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
979044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
979144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
979244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvrxl(vector int a, int b, vector int *c)
979344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
979444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_stl(vec_perm(a,
979544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvlx(b, c),
979644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvsr(b, (unsigned char *)c)),
979744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                 b, c);
979844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
979944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
980044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
980144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvrxl(vector unsigned int a, int b, unsigned int *c)
980244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
980344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_stl(vec_perm(a,
980444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvlx(b, c),
980544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvsr(b, c)),
980644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                 b, c);
980744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
980844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
980944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
981044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvrxl(vector unsigned int a, int b, vector unsigned int *c)
981144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
981244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_stl(vec_perm(a,
981344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvlx(b, c),
981444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvsr(b, (unsigned char *)c)),
981544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                 b, c);
981644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
981744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
981844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
981944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvrxl(vector bool int a, int b, vector bool int *c)
982044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
982144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_stl(vec_perm(a,
982244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvlx(b, c),
982344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvsr(b, (unsigned char *)c)),
982444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                 b, c);
982544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
982644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
982744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic void __ATTRS_o_ai
982844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_stvrxl(vector float a, int b, vector float *c)
982944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
983044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return vec_stl(vec_perm(a,
983144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvlx(b, c),
983244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                          vec_lvsr(b, (unsigned char *)c)),
983344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev                 b, c);
983444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
983544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
983644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev/* vec_promote */
983744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
983844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector signed char __ATTRS_o_ai
983944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_promote(signed char a, int b)
984044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
984144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  vector signed char res = (vector signed char)(0);
984244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  res[b] = a;
984344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return res;
984444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
984544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
984644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
984744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_promote(unsigned char a, int b)
984844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
984944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  vector unsigned char res = (vector unsigned char)(0);
985044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  res[b] = a;
985144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return res;
985244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
985344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
985444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector short __ATTRS_o_ai
985544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_promote(short a, int b)
985644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
985744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  vector short res = (vector short)(0);
985844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  res[b] = a;
985944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return res;
986044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
986144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
986244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
986344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_promote(unsigned short a, int b)
986444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
986544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  vector unsigned short res = (vector unsigned short)(0);
986644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  res[b] = a;
986744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return res;
986844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
986944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
987044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector int __ATTRS_o_ai
987144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_promote(int a, int b)
987244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
987344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  vector int res = (vector int)(0);
987444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  res[b] = a;
987544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return res;
987644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
987744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
987844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
987944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_promote(unsigned int a, int b)
988044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
988144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  vector unsigned int res = (vector unsigned int)(0);
988244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  res[b] = a;
988344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return res;
988444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
988544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
988644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector float __ATTRS_o_ai
988744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_promote(float a, int b)
988844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
988944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  vector float res = (vector float)(0);
989044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  res[b] = a;
989144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return res;
989244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
989344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
989444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev/* vec_splats */
989544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
989644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector signed char __ATTRS_o_ai
989744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_splats(signed char a)
989844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
989944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return (vector signed char)(a);
990044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
990144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
990244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector unsigned char __ATTRS_o_ai
990344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_splats(unsigned char a)
990444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
990544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return (vector unsigned char)(a);
990644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
990744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
990844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector short __ATTRS_o_ai
990944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_splats(short a)
991044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
991144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return (vector short)(a);
991244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
991344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
991444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector unsigned short __ATTRS_o_ai
991544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_splats(unsigned short a)
991644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
991744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return (vector unsigned short)(a);
991844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
991944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
992044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector int __ATTRS_o_ai
992144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_splats(int a)
992244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
992344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return (vector int)(a);
992444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
992544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
992644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector unsigned int __ATTRS_o_ai
992744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_splats(unsigned int a)
992844270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
992944270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return (vector unsigned int)(a);
993044270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
993144270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
993244270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevstatic vector float __ATTRS_o_ai
993344270d6abff30415cdd873164823f48a45be7f8cAnton Yartsevvec_splats(float a)
993444270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev{
993544270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev  return (vector float)(a);
993644270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev}
993744270d6abff30415cdd873164823f48a45be7f8cAnton Yartsev
99383ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev/* ----------------------------- predicates --------------------------------- */
99394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
9940dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_all_eq */
9941dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
99424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
9943dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_eq(vector signed char a, vector signed char b)
9944dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
9945ab866b46f3f626ac2da42d2b16ec3b5c04105e38Chris Lattner  return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)a, (vector char)b);
9946dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
9947dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
99484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
9949a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_eq(vector signed char a, vector bool char b)
9950dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
9951ab866b46f3f626ac2da42d2b16ec3b5c04105e38Chris Lattner  return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)a, (vector char)b);
9952dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
9953dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
99544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
9955a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_eq(vector unsigned char a, vector unsigned char b)
9956dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
9957a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)a, (vector char)b);
9958dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
9959dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
99604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
9961a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_eq(vector unsigned char a, vector bool char b)
9962dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
9963a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)a, (vector char)b);
9964dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
9965dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
99664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
9967a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_eq(vector bool char a, vector signed char b)
9968dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
9969a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)a, (vector char)b);
9970dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
9971dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
99724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
9973a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_eq(vector bool char a, vector unsigned char b)
9974dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
9975a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)a, (vector char)b);
9976dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
9977dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
99784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
9979a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_eq(vector bool char a, vector bool char b)
9980dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
9981a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)a, (vector char)b);
9982dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
9983dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
99844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
9985a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_eq(vector short a, vector short b)
9986dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
9987a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpequh_p(__CR6_LT, a, b);
9988dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
9989dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
99904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
9991a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_eq(vector short a, vector bool short b)
9992dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
9993a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpequh_p(__CR6_LT, a, (vector short)b);
9994dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
9995dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
99964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
9997a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_eq(vector unsigned short a, vector unsigned short b)
9998dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
99993ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return
100003ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev    __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)a, (vector short)b);
10001dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10002dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
100034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10004a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_eq(vector unsigned short a, vector bool short b)
10005dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
100063ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return
100073ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev    __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)a, (vector short)b);
10008dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10009dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
100104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10011a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_eq(vector bool short a, vector short b)
10012dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
100133ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return
100143ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev    __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)a, (vector short)b);
10015dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10016dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
100174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10018a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_eq(vector bool short a, vector unsigned short b)
10019dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
100203ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return
100213ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev    __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)a, (vector short)b);
10022dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10023dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
100244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10025a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_eq(vector bool short a, vector bool short b)
10026dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
100273ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return
100283ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev    __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)a, (vector short)b);
10029dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10030dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
100314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10032a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_eq(vector pixel a, vector pixel b)
10033dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
100343ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return
100353ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev    __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)a, (vector short)b);
10036dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10037dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
100384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10039a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_eq(vector int a, vector int b)
10040dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10041a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpequw_p(__CR6_LT, a, b);
10042dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10043dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
100444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10045a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_eq(vector int a, vector bool int b)
10046dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10047a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpequw_p(__CR6_LT, a, (vector int)b);
10048dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10049dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
100504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10051a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_eq(vector unsigned int a, vector unsigned int b)
10052dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10053a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpequw_p(__CR6_LT, (vector int)a, (vector int)b);
10054dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10055dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
100564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10057a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_eq(vector unsigned int a, vector bool int b)
10058dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10059a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpequw_p(__CR6_LT, (vector int)a, (vector int)b);
10060dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10061dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
100624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10063a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_eq(vector bool int a, vector int b)
10064dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10065a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpequw_p(__CR6_LT, (vector int)a, (vector int)b);
10066dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10067dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
100684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10069a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_eq(vector bool int a, vector unsigned int b)
10070dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10071a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpequw_p(__CR6_LT, (vector int)a, (vector int)b);
10072dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10073dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
10074a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10075a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_eq(vector bool int a, vector bool int b)
10076a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10077a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpequw_p(__CR6_LT, (vector int)a, (vector int)b);
10078a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10079dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
10080a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10081a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_eq(vector float a, vector float b)
10082dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10083a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpeqfp_p(__CR6_LT, a, b);
10084dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10085dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
10086a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev/* vec_all_ge */
10087dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
100884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10089a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ge(vector signed char a, vector signed char b)
10090dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10091a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsb_p(__CR6_EQ, b, a);
10092dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10093dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
100944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10095a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ge(vector signed char a, vector bool char b)
10096dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10097a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsb_p(__CR6_EQ, (vector signed char)b, a);
10098dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10099dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
101004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10101a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ge(vector unsigned char a, vector unsigned char b)
10102dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10103a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtub_p(__CR6_EQ, b, a);
10104dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10105dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
101064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10107a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ge(vector unsigned char a, vector bool char b)
10108dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10109a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtub_p(__CR6_EQ, (vector unsigned char)b, a);
10110dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10111dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
101124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10113a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ge(vector bool char a, vector signed char b)
10114dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
101153ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtub_p(__CR6_EQ,
101163ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned char)b,
101173ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned char)a);
10118dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10119dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
101204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10121a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ge(vector bool char a, vector unsigned char b)
10122dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10123a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtub_p(__CR6_EQ, b, (vector unsigned char)a);
10124dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10125dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
101264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10127a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ge(vector bool char a, vector bool char b)
10128dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
101293ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtub_p(__CR6_EQ,
101303ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned char)b,
101313ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned char)a);
10132dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10133dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
101344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10135a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ge(vector short a, vector short b)
10136dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10137a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsh_p(__CR6_EQ, b, a);
10138dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10139dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
101404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10141a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ge(vector short a, vector bool short b)
10142dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10143a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsh_p(__CR6_EQ, (vector short)b, a);
10144dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10145dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
101464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10147a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ge(vector unsigned short a, vector unsigned short b)
10148dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10149a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, b, a);
10150dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10151dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
101524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10153a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ge(vector unsigned short a, vector bool short b)
10154dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10155a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, (vector unsigned short)b, a);
10156dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10157dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
101584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10159a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ge(vector bool short a, vector short b)
10160dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
101613ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtuh_p(__CR6_EQ,
101623ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned short)b,
101633ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned short)a);
10164dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10165dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
101664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10167a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ge(vector bool short a, vector unsigned short b)
10168dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10169a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, b, (vector unsigned short)a);
10170dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10171dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
101724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10173a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ge(vector bool short a, vector bool short b)
10174dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
101753ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtuh_p(__CR6_EQ,
101763ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned short)b,
101773ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned short)a);
10178dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10179dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
10180a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10181a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ge(vector int a, vector int b)
10182dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10183a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsw_p(__CR6_EQ, b, a);
10184dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10185dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
101864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10187a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ge(vector int a, vector bool int b)
10188dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10189a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsw_p(__CR6_EQ, (vector int)b, a);
10190dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10191dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
101924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10193a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ge(vector unsigned int a, vector unsigned int b)
10194dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10195a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, b, a);
10196dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10197dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
101984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10199a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ge(vector unsigned int a, vector bool int b)
10200dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10201a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, (vector unsigned int)b, a);
10202dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10203dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
102044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10205a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ge(vector bool int a, vector int b)
10206dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
102073ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ,
102083ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned int)b,
102093ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned int)a);
10210dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10211dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
102124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10213a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ge(vector bool int a, vector unsigned int b)
10214dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10215a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, b, (vector unsigned int)a);
10216dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10217dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
102184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10219a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ge(vector bool int a, vector bool int b)
10220dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
102213ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ,
102223ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned int)b,
102233ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned int)a);
10224dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10225dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
102264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10227a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ge(vector float a, vector float b)
10228dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10229a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgefp_p(__CR6_LT, a, b);
10230dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10231dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
10232a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev/* vec_all_gt */
10233dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
10234a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10235a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_gt(vector signed char a, vector signed char b)
10236dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10237a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsb_p(__CR6_LT, a, b);
10238dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10239dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
10240a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10241a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_gt(vector signed char a, vector bool char b)
10242dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10243a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsb_p(__CR6_LT, a, (vector signed char)b);
10244dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10245dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
10246a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10247a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_gt(vector unsigned char a, vector unsigned char b)
10248dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10249a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtub_p(__CR6_LT, a, b);
10250dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10251dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
10252a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10253a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_gt(vector unsigned char a, vector bool char b)
10254dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10255a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtub_p(__CR6_LT, a, (vector unsigned char)b);
10256dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10257dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
10258a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10259a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_gt(vector bool char a, vector signed char b)
10260dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
102613ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtub_p(__CR6_LT,
102623ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned char)a,
102633ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned char)b);
10264dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10265dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
102664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10267a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_gt(vector bool char a, vector unsigned char b)
10268dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10269a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtub_p(__CR6_LT, (vector unsigned char)a, b);
10270dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10271dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
102724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10273a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_gt(vector bool char a, vector bool char b)
10274dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
102753ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtub_p(__CR6_LT,
102763ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned char)a,
102773ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned char)b);
10278dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10279dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
102804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10281a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_gt(vector short a, vector short b)
10282dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10283a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsh_p(__CR6_LT, a, b);
10284dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10285dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
102864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10287a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_gt(vector short a, vector bool short b)
10288dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10289a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsh_p(__CR6_LT, a, (vector short)b);
10290dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10291dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
102924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10293a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_gt(vector unsigned short a, vector unsigned short b)
10294dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10295a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtuh_p(__CR6_LT, a, b);
10296dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10297dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
102984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10299a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_gt(vector unsigned short a, vector bool short b)
10300dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10301a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtuh_p(__CR6_LT, a, (vector unsigned short)b);
10302dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10303dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
103044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10305a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_gt(vector bool short a, vector short b)
10306dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
103073ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtuh_p(__CR6_LT,
103083ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned short)a,
103093ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned short)b);
10310dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10311dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
103124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10313a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_gt(vector bool short a, vector unsigned short b)
10314dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10315a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtuh_p(__CR6_LT, (vector unsigned short)a, b);
10316dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10317dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
103184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10319a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_gt(vector bool short a, vector bool short b)
10320dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
103213ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtuh_p(__CR6_LT,
103223ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned short)a,
103233ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned short)b);
10324dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10325dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
103264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10327a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_gt(vector int a, vector int b)
10328dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10329a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsw_p(__CR6_LT, a, b);
10330dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10331dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
103324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10333a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_gt(vector int a, vector bool int b)
10334dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10335a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsw_p(__CR6_LT, a, (vector int)b);
10336dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10337dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
103384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10339a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_gt(vector unsigned int a, vector unsigned int b)
10340dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10341a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtuw_p(__CR6_LT, a, b);
10342dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10343dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
103444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10345a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_gt(vector unsigned int a, vector bool int b)
10346dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10347a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtuw_p(__CR6_LT, a, (vector unsigned int)b);
10348dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10349dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
103504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10351a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_gt(vector bool int a, vector int b)
10352dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
103533ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtuw_p(__CR6_LT,
103543ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned int)a,
103553ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned int)b);
10356dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10357dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
103584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10359a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_gt(vector bool int a, vector unsigned int b)
10360dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10361a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtuw_p(__CR6_LT, (vector unsigned int)a, b);
10362dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10363dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
103644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10365a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_gt(vector bool int a, vector bool int b)
10366dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
103673ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtuw_p(__CR6_LT,
103683ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned int)a,
103693ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned int)b);
10370dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10371dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
103724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10373a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_gt(vector float a, vector float b)
10374dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10375a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtfp_p(__CR6_LT, a, b);
10376dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10377dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
10378a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev/* vec_all_in */
10379a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10380a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __attribute__((__always_inline__))
10381a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_in(vector float a, vector float b)
10382dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10383a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpbfp_p(__CR6_EQ, a, b);
10384dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10385dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
10386a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev/* vec_all_le */
10387a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
103884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10389a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_le(vector signed char a, vector signed char b)
10390dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10391a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsb_p(__CR6_EQ, a, b);
10392dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10393dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
103944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10395a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_le(vector signed char a, vector bool char b)
10396dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10397a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsb_p(__CR6_EQ, a, (vector signed char)b);
10398dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10399dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
104004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10401a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_le(vector unsigned char a, vector unsigned char b)
10402dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10403a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtub_p(__CR6_EQ, a, b);
10404dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10405dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
104064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10407a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_le(vector unsigned char a, vector bool char b)
10408dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10409a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtub_p(__CR6_EQ, a, (vector unsigned char)b);
10410dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10411dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
104124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10413a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_le(vector bool char a, vector signed char b)
10414dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
104153ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtub_p(__CR6_EQ,
104163ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned char)a,
104173ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned char)b);
10418dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
10419dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
104204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
10421a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_le(vector bool char a, vector unsigned char b)
10422dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
10423a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtub_p(__CR6_EQ, (vector unsigned char)a, b);
10424a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10425a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10426a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10427a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_le(vector bool char a, vector bool char b)
10428a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
104293ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtub_p(__CR6_EQ,
104303ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned char)a,
104313ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned char)b);
10432a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10433a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10434a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10435a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_le(vector short a, vector short b)
10436a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10437a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsh_p(__CR6_EQ, a, b);
10438a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10439a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10440a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10441a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_le(vector short a, vector bool short b)
10442a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10443a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsh_p(__CR6_EQ, a, (vector short)b);
10444a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10445a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10446a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10447a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_le(vector unsigned short a, vector unsigned short b)
10448a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10449a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, a, b);
10450a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10451a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10452a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10453a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_le(vector unsigned short a, vector bool short b)
10454a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10455a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, a, (vector unsigned short)b);
10456a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10457a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10458a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10459a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_le(vector bool short a, vector short b)
10460a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
104613ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtuh_p(__CR6_EQ,
104623ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned short)a,
104633ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned short)b);
10464a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10465a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10466a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10467a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_le(vector bool short a, vector unsigned short b)
10468a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10469a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, (vector unsigned short)a, b);
10470a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10471a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10472a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10473a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_le(vector bool short a, vector bool short b)
10474a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
104753ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtuh_p(__CR6_EQ,
104763ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned short)a,
104773ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned short)b);
10478a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10479a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10480a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10481a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_le(vector int a, vector int b)
10482a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10483a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsw_p(__CR6_EQ, a, b);
10484a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10485a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10486a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10487a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_le(vector int a, vector bool int b)
10488a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10489a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsw_p(__CR6_EQ, a, (vector int)b);
10490a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10491a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10492a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10493a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_le(vector unsigned int a, vector unsigned int b)
10494a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10495a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, a, b);
10496a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10497a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10498a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10499a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_le(vector unsigned int a, vector bool int b)
10500a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10501a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, a, (vector unsigned int)b);
10502a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10503a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10504a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10505a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_le(vector bool int a, vector int b)
10506a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
105073ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ,
105083ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned int)a,
105093ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned int)b);
10510a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10511a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10512a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10513a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_le(vector bool int a, vector unsigned int b)
10514a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10515a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, (vector unsigned int)a, b);
10516a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10517a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10518a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10519a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_le(vector bool int a, vector bool int b)
10520a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
105213ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ,
105223ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned int)a,
105233ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned int)b);
10524a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10525a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10526a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10527a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_le(vector float a, vector float b)
10528a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10529a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgefp_p(__CR6_LT, b, a);
10530a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10531a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10532a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev/* vec_all_lt */
10533a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10534a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10535a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_lt(vector signed char a, vector signed char b)
10536a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10537a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsb_p(__CR6_LT, b, a);
10538a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10539a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10540a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10541a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_lt(vector signed char a, vector bool char b)
10542a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10543a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsb_p(__CR6_LT, (vector signed char)b, a);
10544a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10545a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10546a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10547a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_lt(vector unsigned char a, vector unsigned char b)
10548a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10549a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtub_p(__CR6_LT, b, a);
10550a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10551a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10552a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10553a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_lt(vector unsigned char a, vector bool char b)
10554a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10555a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtub_p(__CR6_LT, (vector unsigned char)b, a);
10556a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10557a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10558a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10559a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_lt(vector bool char a, vector signed char b)
10560a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
105613ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtub_p(__CR6_LT,
105623ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned char)b,
105633ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned char)a);
10564a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10565a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10566a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10567a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_lt(vector bool char a, vector unsigned char b)
10568a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10569a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtub_p(__CR6_LT, b, (vector unsigned char)a);
10570a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10571a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10572a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10573a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_lt(vector bool char a, vector bool char b)
10574a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
105753ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtub_p(__CR6_LT,
105763ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned char)b,
105773ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned char)a);
10578a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10579a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10580a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10581a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_lt(vector short a, vector short b)
10582a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10583a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsh_p(__CR6_LT, b, a);
10584a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10585a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10586a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10587a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_lt(vector short a, vector bool short b)
10588a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10589a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsh_p(__CR6_LT, (vector short)b, a);
10590a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10591a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10592a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10593a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_lt(vector unsigned short a, vector unsigned short b)
10594a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10595a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtuh_p(__CR6_LT, b, a);
10596a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10597a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10598a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10599a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_lt(vector unsigned short a, vector bool short b)
10600a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10601a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtuh_p(__CR6_LT, (vector unsigned short)b, a);
10602a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10603a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10604a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10605a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_lt(vector bool short a, vector short b)
10606a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
106073ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtuh_p(__CR6_LT,
106083ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned short)b,
106093ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned short)a);
10610a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10611a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10612a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10613a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_lt(vector bool short a, vector unsigned short b)
10614a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10615a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtuh_p(__CR6_LT, b, (vector unsigned short)a);
10616a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10617a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10618a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10619a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_lt(vector bool short a, vector bool short b)
10620a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
106213ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtuh_p(__CR6_LT,
106223ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned short)b,
106233ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned short)a);
10624a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10625a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10626a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10627a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_lt(vector int a, vector int b)
10628a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10629a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsw_p(__CR6_LT, b, a);
10630a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10631a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10632a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10633a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_lt(vector int a, vector bool int b)
10634a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10635a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsw_p(__CR6_LT, (vector int)b, a);
10636a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10637a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10638a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10639a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_lt(vector unsigned int a, vector unsigned int b)
10640a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10641a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtuw_p(__CR6_LT, b, a);
10642a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10643a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10644a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10645a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_lt(vector unsigned int a, vector bool int b)
10646a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10647a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtuw_p(__CR6_LT, (vector unsigned int)b, a);
10648a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10649a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10650a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10651a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_lt(vector bool int a, vector int b)
10652a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
106533ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtuw_p(__CR6_LT,
106543ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned int)b,
106553ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned int)a);
10656a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10657a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10658a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10659a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_lt(vector bool int a, vector unsigned int b)
10660a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10661a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtuw_p(__CR6_LT, b, (vector unsigned int)a);
10662a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10663a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10664a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10665a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_lt(vector bool int a, vector bool int b)
10666a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
106673ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtuw_p(__CR6_LT,
106683ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned int)b,
106693ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned int)a);
10670a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10671a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10672a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10673a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_lt(vector float a, vector float b)
10674a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10675a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtfp_p(__CR6_LT, b, a);
10676a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10677a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10678a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev/* vec_all_nan */
10679a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10680a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __attribute__((__always_inline__))
10681a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_nan(vector float a)
10682a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10683a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpeqfp_p(__CR6_EQ, a, a);
10684a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10685a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10686a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev/* vec_all_ne */
10687a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10688a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10689a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ne(vector signed char a, vector signed char b)
10690a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10691a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)a, (vector char)b);
10692a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10693a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10694a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10695a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ne(vector signed char a, vector bool char b)
10696a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10697a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)a, (vector char)b);
10698a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10699a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10700a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10701a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ne(vector unsigned char a, vector unsigned char b)
10702a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10703a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)a, (vector char)b);
10704a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10705a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10706a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10707a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ne(vector unsigned char a, vector bool char b)
10708a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10709a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)a, (vector char)b);
10710a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10711a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10712a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10713a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ne(vector bool char a, vector signed char b)
10714a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10715a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)a, (vector char)b);
10716a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10717a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10718a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10719a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ne(vector bool char a, vector unsigned char b)
10720a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10721a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)a, (vector char)b);
10722a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10723a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10724a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10725a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ne(vector bool char a, vector bool char b)
10726a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10727a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)a, (vector char)b);
10728a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10729a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10730a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10731a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ne(vector short a, vector short b)
10732a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10733a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpequh_p(__CR6_EQ, a, b);
10734a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10735a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10736a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10737a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ne(vector short a, vector bool short b)
10738a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10739a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpequh_p(__CR6_EQ, a, (vector short)b);
10740a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10741a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10742a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10743a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ne(vector unsigned short a, vector unsigned short b)
10744a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
107453ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return
107463ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev    __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)a, (vector short)b);
10747a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10748a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10749a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10750a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ne(vector unsigned short a, vector bool short b)
10751a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
107523ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return
107533ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev    __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)a, (vector short)b);
10754a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10755a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10756a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10757a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ne(vector bool short a, vector short b)
10758a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
107593ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return
107603ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev    __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)a, (vector short)b);
10761a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10762a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10763a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10764a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ne(vector bool short a, vector unsigned short b)
10765a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
107663ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return
107673ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev    __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)a, (vector short)b);
10768a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10769a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10770a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10771a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ne(vector bool short a, vector bool short b)
10772a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
107733ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return
107743ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev    __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)a, (vector short)b);
10775a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10776a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10777a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10778a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ne(vector pixel a, vector pixel b)
10779a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
107803ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return
107813ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev    __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)a, (vector short)b);
10782a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10783a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10784a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10785a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ne(vector int a, vector int b)
10786a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10787a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpequw_p(__CR6_EQ, a, b);
10788a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10789a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10790a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10791a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ne(vector int a, vector bool int b)
10792a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10793a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpequw_p(__CR6_EQ, a, (vector int)b);
10794a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10795a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10796a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10797a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ne(vector unsigned int a, vector unsigned int b)
10798a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10799a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpequw_p(__CR6_EQ, (vector int)a, (vector int)b);
10800a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10801a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10802a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10803a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ne(vector unsigned int a, vector bool int b)
10804a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10805a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpequw_p(__CR6_EQ, (vector int)a, (vector int)b);
10806a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10807a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10808a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10809a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ne(vector bool int a, vector int b)
10810a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10811a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpequw_p(__CR6_EQ, (vector int)a, (vector int)b);
10812a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10813a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10814a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10815a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ne(vector bool int a, vector unsigned int b)
10816a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10817a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpequw_p(__CR6_EQ, (vector int)a, (vector int)b);
10818a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10819a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10820a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10821a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ne(vector bool int a, vector bool int b)
10822a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10823a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpequw_p(__CR6_EQ, (vector int)a, (vector int)b);
10824a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10825a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10826a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10827a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ne(vector float a, vector float b)
10828a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10829a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpeqfp_p(__CR6_EQ, a, b);
10830a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10831a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10832a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev/* vec_all_nge */
10833a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10834a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __attribute__((__always_inline__))
10835a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_nge(vector float a, vector float b)
10836a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10837a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgefp_p(__CR6_EQ, a, b);
10838a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10839a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10840a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev/* vec_all_ngt */
10841a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10842a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __attribute__((__always_inline__))
10843a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_ngt(vector float a, vector float b)
10844a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10845a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtfp_p(__CR6_EQ, a, b);
10846a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10847a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10848a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev/* vec_all_nle */
10849a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10850a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __attribute__((__always_inline__))
10851a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_nle(vector float a, vector float b)
10852a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10853a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgefp_p(__CR6_EQ, b, a);
10854a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10855a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10856a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev/* vec_all_nlt */
10857a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10858a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __attribute__((__always_inline__))
10859a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_nlt(vector float a, vector float b)
10860a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10861a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtfp_p(__CR6_EQ, b, a);
10862a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10863a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10864a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev/* vec_all_numeric */
10865a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10866a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __attribute__((__always_inline__))
10867a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_all_numeric(vector float a)
10868a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10869a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpeqfp_p(__CR6_LT, a, a);
10870a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10871a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10872a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev/* vec_any_eq */
10873a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10874a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10875a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_eq(vector signed char a, vector signed char b)
10876a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
108773ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return
108783ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev    __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)a, (vector char)b);
10879a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10880a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10881a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10882a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_eq(vector signed char a, vector bool char b)
10883a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
108843ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return
108853ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev    __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)a, (vector char)b);
10886a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10887a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10888a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10889a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_eq(vector unsigned char a, vector unsigned char b)
10890a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
108913ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return
108923ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev    __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)a, (vector char)b);
10893a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10894a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10895a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10896a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_eq(vector unsigned char a, vector bool char b)
10897a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
108983ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return
108993ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev    __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)a, (vector char)b);
10900a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10901a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10902a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10903a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_eq(vector bool char a, vector signed char b)
10904a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
109053ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return
109063ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev    __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)a, (vector char)b);
10907a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10908a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10909a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10910a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_eq(vector bool char a, vector unsigned char b)
10911a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
109123ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return
109133ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev    __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)a, (vector char)b);
10914a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10915a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10916a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10917a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_eq(vector bool char a, vector bool char b)
10918a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
109193ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return
109203ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev    __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)a, (vector char)b);
10921a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10922a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10923a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10924a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_eq(vector short a, vector short b)
10925a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10926a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV, a, b);
10927a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10928a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10929a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10930a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_eq(vector short a, vector bool short b)
10931a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10932a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV, a, (vector short)b);
10933a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10934a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10935a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10936a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_eq(vector unsigned short a, vector unsigned short b)
10937a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
109383ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV,
109393ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector short)a,
109403ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector short)b);
10941a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10942a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10943a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10944a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_eq(vector unsigned short a, vector bool short b)
10945a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
109463ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV,
109473ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector short)a,
109483ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector short)b);
10949a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10950a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10951a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10952a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_eq(vector bool short a, vector short b)
10953a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
109543ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV,
109553ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector short)a,
109563ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector short)b);
10957a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10958a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10959a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10960a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_eq(vector bool short a, vector unsigned short b)
10961a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
109623ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV,
109633ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector short)a,
109643ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector short)b);
10965a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10966a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10967a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10968a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_eq(vector bool short a, vector bool short b)
10969a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
109703ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV,
109713ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector short)a,
109723ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector short)b);
10973a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10974a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10975a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10976a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_eq(vector pixel a, vector pixel b)
10977a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
109783ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV,
109793ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector short)a,
109803ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector short)b);
10981a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10982a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10983a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10984a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_eq(vector int a, vector int b)
10985a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10986a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, a, b);
10987a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10988a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10989a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10990a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_eq(vector int a, vector bool int b)
10991a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
10992a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, a, (vector int)b);
10993a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
10994a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
10995a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
10996a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_eq(vector unsigned int a, vector unsigned int b)
10997a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
109983ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return
109993ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev    __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, (vector int)a, (vector int)b);
11000a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11001a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11002a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11003a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_eq(vector unsigned int a, vector bool int b)
11004a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
110053ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return
110063ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev    __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, (vector int)a, (vector int)b);
11007a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11008a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11009a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11010a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_eq(vector bool int a, vector int b)
11011a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
110123ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return
110133ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev    __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, (vector int)a, (vector int)b);
11014a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11015a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11016a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11017a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_eq(vector bool int a, vector unsigned int b)
11018a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
110193ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return
110203ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev    __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, (vector int)a, (vector int)b);
11021a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11022a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11023a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11024a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_eq(vector bool int a, vector bool int b)
11025a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
110263ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return
110273ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev    __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, (vector int)a, (vector int)b);
11028a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11029a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11030a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11031a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_eq(vector float a, vector float b)
11032a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11033a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpeqfp_p(__CR6_EQ_REV, a, b);
11034a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11035a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11036a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev/* vec_any_ge */
11037a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11038a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11039a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_ge(vector signed char a, vector signed char b)
11040a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11041a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsb_p(__CR6_LT_REV, b, a);
11042a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11043a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11044a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11045a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_ge(vector signed char a, vector bool char b)
11046a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11047a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsb_p(__CR6_LT_REV, (vector signed char)b, a);
11048a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11049a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11050a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11051a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_ge(vector unsigned char a, vector unsigned char b)
11052a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11053a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, b, a);
11054a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11055a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11056a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11057a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_ge(vector unsigned char a, vector bool char b)
11058a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11059a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, (vector unsigned char)b, a);
11060a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11061a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11062a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11063a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_ge(vector bool char a, vector signed char b)
11064a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
110653ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV,
110663ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned char)b,
110673ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned char)a);
11068a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11069a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11070a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11071a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_ge(vector bool char a, vector unsigned char b)
11072a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11073a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, b, (vector unsigned char)a);
11074a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11075a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11076a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11077a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_ge(vector bool char a, vector bool char b)
11078a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
110793ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV,
110803ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned char)b,
110813ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned char)a);
11082a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11083a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11084a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11085a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_ge(vector short a, vector short b)
11086a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11087a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsh_p(__CR6_LT_REV, b, a);
11088a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11089a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11090a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11091a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_ge(vector short a, vector bool short b)
11092a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11093a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsh_p(__CR6_LT_REV, (vector short)b, a);
11094a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11095a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11096a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11097a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_ge(vector unsigned short a, vector unsigned short b)
11098a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11099a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, b, a);
11100a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11101a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11102a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11103a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_ge(vector unsigned short a, vector bool short b)
11104a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
111053ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return
111063ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev    __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, (vector unsigned short)b, a);
11107a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11108a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11109a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11110a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_ge(vector bool short a, vector short b)
11111a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
111123ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV,
111133ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned short)b,
111143ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned short)a);
11115a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11116a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11117a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11118a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_ge(vector bool short a, vector unsigned short b)
11119a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11120a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return
11121a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev    __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, b, (vector unsigned short)a);
11122a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11123a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11124a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11125a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_ge(vector bool short a, vector bool short b)
11126a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
111273ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV,
111283ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned short)b,
111293ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned short)a);
11130a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11131a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11132a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11133a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_ge(vector int a, vector int b)
11134a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11135a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsw_p(__CR6_LT_REV, b, a);
11136a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11137a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11138a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11139a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_ge(vector int a, vector bool int b)
11140a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11141a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsw_p(__CR6_LT_REV, (vector int)b, a);
11142a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11143a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11144a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11145a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_ge(vector unsigned int a, vector unsigned int b)
11146a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11147a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, b, a);
11148a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11149a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11150a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11151a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_ge(vector unsigned int a, vector bool int b)
11152a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11153a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, (vector unsigned int)b, a);
11154a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11155a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11156a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11157a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_ge(vector bool int a, vector int b)
11158a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
111593ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV,
111603ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned int)b,
111613ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned int)a);
11162a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11163a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11164a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11165a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_ge(vector bool int a, vector unsigned int b)
11166a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11167a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, b, (vector unsigned int)a);
11168a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11169a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11170a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11171a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_ge(vector bool int a, vector bool int b)
11172a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
111733ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV,
111743ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned int)b,
111753ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned int)a);
11176a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11177a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11178a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11179a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_ge(vector float a, vector float b)
11180a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11181a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgefp_p(__CR6_EQ_REV, a, b);
11182a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11183a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11184a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev/* vec_any_gt */
11185a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11186a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11187a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_gt(vector signed char a, vector signed char b)
11188a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11189a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsb_p(__CR6_EQ_REV, a, b);
11190a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11191a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11192a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11193a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_gt(vector signed char a, vector bool char b)
11194a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11195a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsb_p(__CR6_EQ_REV, a, (vector signed char)b);
11196a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11197a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11198a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11199a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_gt(vector unsigned char a, vector unsigned char b)
11200a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11201a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, a, b);
11202a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11203a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11204a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11205a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_gt(vector unsigned char a, vector bool char b)
11206a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11207a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return
11208a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev    __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, a, (vector unsigned char)b);
11209a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11210a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11211a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11212a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_gt(vector bool char a, vector signed char b)
11213a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
112143ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV,
112153ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned char)a,
112163ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned char)b);
11217a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11218a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11219a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11220a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_gt(vector bool char a, vector unsigned char b)
11221a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11222a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return
11223a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev    __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, (vector unsigned char)a, b);
11224a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11225a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11226a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11227a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_gt(vector bool char a, vector bool char b)
11228a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
112293ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV,
112303ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned char)a,
112313ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned char)b);
11232a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11233a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11234a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11235a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_gt(vector short a, vector short b)
11236a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11237a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsh_p(__CR6_EQ_REV, a, b);
11238a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11239a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11240a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11241a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_gt(vector short a, vector bool short b)
11242a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11243a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsh_p(__CR6_EQ_REV, a, (vector short)b);
11244a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11245a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11246a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11247a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_gt(vector unsigned short a, vector unsigned short b)
11248a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11249a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, a, b);
11250a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11251a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11252a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11253a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_gt(vector unsigned short a, vector bool short b)
11254a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11255a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return
11256a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev    __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, a, (vector unsigned short)b);
11257a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11258a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11259a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11260a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_gt(vector bool short a, vector short b)
11261a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
112623ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV,
112633ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned short)a,
112643ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned short)b);
11265a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11266a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11267a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11268a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_gt(vector bool short a, vector unsigned short b)
11269a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
112703ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return
112713ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev    __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, (vector unsigned short)a, b);
11272a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11273a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11274a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11275a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_gt(vector bool short a, vector bool short b)
11276a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
112773ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV,
112783ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned short)a,
112793ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned short)b);
11280a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11281a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11282a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11283a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_gt(vector int a, vector int b)
11284a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11285a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsw_p(__CR6_EQ_REV, a, b);
11286a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11287a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11288a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11289a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_gt(vector int a, vector bool int b)
11290a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11291a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsw_p(__CR6_EQ_REV, a, (vector int)b);
11292a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11293a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11294a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11295a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_gt(vector unsigned int a, vector unsigned int b)
11296a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11297a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, a, b);
11298a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11299a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11300a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11301a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_gt(vector unsigned int a, vector bool int b)
11302a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11303a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, a, (vector unsigned int)b);
11304a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11305a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11306a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11307a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_gt(vector bool int a, vector int b)
11308a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
113093ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV,
113103ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned int)a,
113113ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned int)b);
11312a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11313a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11314a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11315a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_gt(vector bool int a, vector unsigned int b)
11316a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11317a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, (vector unsigned int)a, b);
11318a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11319a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11320a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11321a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_gt(vector bool int a, vector bool int b)
11322a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
113233ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV,
113243ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned int)a,
113253ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned int)b);
11326a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11327a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11328a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11329a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_gt(vector float a, vector float b)
11330a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11331a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtfp_p(__CR6_EQ_REV, a, b);
11332a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11333a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11334a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev/* vec_any_le */
11335a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11336a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11337a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_le(vector signed char a, vector signed char b)
11338a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11339a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsb_p(__CR6_LT_REV, a, b);
11340a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11341a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11342a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11343a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_le(vector signed char a, vector bool char b)
11344a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11345a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsb_p(__CR6_LT_REV, a, (vector signed char)b);
11346a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11347a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11348a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11349a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_le(vector unsigned char a, vector unsigned char b)
11350a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11351a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, a, b);
11352a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11353a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11354a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11355a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_le(vector unsigned char a, vector bool char b)
11356a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11357a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return
11358a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev    __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, a, (vector unsigned char)b);
11359a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11360a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11361a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11362a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_le(vector bool char a, vector signed char b)
11363a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
113643ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV,
113653ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned char)a,
113663ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned char)b);
11367a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11368a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11369a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11370a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_le(vector bool char a, vector unsigned char b)
11371a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11372a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return
11373a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev    __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, (vector unsigned char)a, b);
11374a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11375a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11376a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11377a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_le(vector bool char a, vector bool char b)
11378a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
113793ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV,
113803ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned char)a,
113813ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned char)b);
11382a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11383a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11384a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11385a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_le(vector short a, vector short b)
11386a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11387a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsh_p(__CR6_LT_REV, a, b);
11388a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11389a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11390a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11391a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_le(vector short a, vector bool short b)
11392a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11393a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsh_p(__CR6_LT_REV, a, (vector short)b);
11394dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
11395dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
113964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
11397dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_le(vector unsigned short a, vector unsigned short b)
11398dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
11399dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, a, b);
11400dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
11401dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
114024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
11403a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_le(vector unsigned short a, vector bool short b)
11404a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11405a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return
11406a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev    __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, a, (vector unsigned short)b);
11407a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11408a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11409a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11410a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_le(vector bool short a, vector short b)
11411a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
114123ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV,
114133ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned short)a,
114143ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned short)b);
11415a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11416a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11417a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11418a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_le(vector bool short a, vector unsigned short b)
11419a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11420a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return
11421a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev    __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, (vector unsigned short)a, b);
11422a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11423a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11424a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11425a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_le(vector bool short a, vector bool short b)
11426a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
114273ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV,
114283ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned short)a,
114293ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned short)b);
11430a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11431a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11432a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11433dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_le(vector int a, vector int b)
11434dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
11435dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtsw_p(__CR6_LT_REV, a, b);
11436dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
11437dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
114384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
11439a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_le(vector int a, vector bool int b)
11440a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11441a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsw_p(__CR6_LT_REV, a, (vector int)b);
11442a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11443a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11444a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11445dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_le(vector unsigned int a, vector unsigned int b)
11446dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
11447dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, a, b);
11448dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
11449dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
114504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
11451a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_le(vector unsigned int a, vector bool int b)
11452a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11453a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, a, (vector unsigned int)b);
11454a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11455a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11456a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11457a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_le(vector bool int a, vector int b)
11458a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
114593ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV,
114603ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned int)a,
114613ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned int)b);
11462a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11463a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11464a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11465a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_le(vector bool int a, vector unsigned int b)
11466a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11467a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, (vector unsigned int)a, b);
11468a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11469a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11470a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11471a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_le(vector bool int a, vector bool int b)
11472a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
114733ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV,
114743ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned int)a,
114753ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned int)b);
11476a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11477a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11478a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11479dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_le(vector float a, vector float b)
11480dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
114814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpgefp_p(__CR6_EQ_REV, b, a);
11482dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
11483dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
11484dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_any_lt */
11485dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
114864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
11487dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_lt(vector signed char a, vector signed char b)
11488dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
11489dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtsb_p(__CR6_EQ_REV, b, a);
11490dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
11491dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
114924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
11493a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_lt(vector signed char a, vector bool char b)
11494a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11495a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsb_p(__CR6_EQ_REV, (vector signed char)b, a);
11496a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11497a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11498a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11499dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_lt(vector unsigned char a, vector unsigned char b)
11500dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
11501dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, b, a);
11502dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
11503dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
115044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
11505a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_lt(vector unsigned char a, vector bool char b)
11506a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11507a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return
11508a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev    __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, (vector unsigned char)b, a);
11509a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11510a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11511a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11512a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_lt(vector bool char a, vector signed char b)
11513a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
115143ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV,
115153ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned char)b,
115163ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned char)a);
11517a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11518a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11519a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11520a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_lt(vector bool char a, vector unsigned char b)
11521a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11522a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return
11523a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev    __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, b, (vector unsigned char)a);
11524a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11525a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11526a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11527a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_lt(vector bool char a, vector bool char b)
11528a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
115293ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV,
115303ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned char)b,
115313ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned char)a);
11532a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11533a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11534a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11535dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_lt(vector short a, vector short b)
11536dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
11537dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtsh_p(__CR6_EQ_REV, b, a);
11538dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
11539dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
115404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
11541a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_lt(vector short a, vector bool short b)
11542a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11543a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsh_p(__CR6_EQ_REV, (vector short)b, a);
11544a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11545a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11546a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11547dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_lt(vector unsigned short a, vector unsigned short b)
11548dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
11549dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, b, a);
11550dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
11551dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
115524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
11553a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_lt(vector unsigned short a, vector bool short b)
11554a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11555a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return
11556a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev    __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, (vector unsigned short)b, a);
11557a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11558a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11559a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11560a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_lt(vector bool short a, vector short b)
11561a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
115623ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV,
115633ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned short)b,
115643ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned short)a);
11565a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11566a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11567a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11568a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_lt(vector bool short a, vector unsigned short b)
11569a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11570a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return
11571a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev    __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, b, (vector unsigned short)a);
11572a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11573a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11574a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11575a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_lt(vector bool short a, vector bool short b)
11576a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
115773ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV,
115783ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned short)b,
115793ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned short)a);
11580a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11581a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11582a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11583dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_lt(vector int a, vector int b)
11584dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
11585dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtsw_p(__CR6_EQ_REV, b, a);
11586dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
11587dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
115884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
11589a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_lt(vector int a, vector bool int b)
11590a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11591a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtsw_p(__CR6_EQ_REV, (vector int)b, a);
11592a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11593a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11594a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11595dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_lt(vector unsigned int a, vector unsigned int b)
11596dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
11597dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, b, a);
11598dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
11599dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
116004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
11601a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_lt(vector unsigned int a, vector bool int b)
11602a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11603a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, (vector unsigned int)b, a);
11604a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11605a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11606a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11607a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_lt(vector bool int a, vector int b)
11608a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
116093ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV,
116103ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned int)b,
116113ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned int)a);
11612a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11613a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11614a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11615a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_lt(vector bool int a, vector unsigned int b)
11616a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11617a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, b, (vector unsigned int)a);
11618a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11619a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11620a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11621a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_lt(vector bool int a, vector bool int b)
11622a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
116233ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV,
116243ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned int)b,
116253ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector unsigned int)a);
11626a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11627a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11628a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11629dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_lt(vector float a, vector float b)
11630dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
11631dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtfp_p(__CR6_EQ_REV, b, a);
11632dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
11633dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
11634dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_any_nan */
11635dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
11636dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnerstatic int __attribute__((__always_inline__))
11637dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_nan(vector float a)
11638dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
11639dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpeqfp_p(__CR6_LT_REV, a, a);
11640dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
11641dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
11642dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_any_ne */
11643dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
116444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
11645dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_ne(vector signed char a, vector signed char b)
11646dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
116473ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return
116483ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev    __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)a, (vector char)b);
11649dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
11650dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
116514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
11652a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_ne(vector signed char a, vector bool char b)
11653a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
116543ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return
116553ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev    __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)a, (vector char)b);
11656a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11657a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11658a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11659dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_ne(vector unsigned char a, vector unsigned char b)
11660dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
116613ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return
116623ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev    __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)a, (vector char)b);
11663dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
11664dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
116654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
11666a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_ne(vector unsigned char a, vector bool char b)
11667a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
116683ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return
116693ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev    __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)a, (vector char)b);
11670a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11671a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11672a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11673a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_ne(vector bool char a, vector signed char b)
11674a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
116753ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return
116763ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev    __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)a, (vector char)b);
11677a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11678a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11679a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11680a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_ne(vector bool char a, vector unsigned char b)
11681a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
116823ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return
116833ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev    __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)a, (vector char)b);
11684a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11685a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11686a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11687a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_ne(vector bool char a, vector bool char b)
11688a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
116893ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return
116903ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev    __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)a, (vector char)b);
11691a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11692a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11693a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11694dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_ne(vector short a, vector short b)
11695dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
11696dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpequh_p(__CR6_LT_REV, a, b);
11697dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
11698dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
116994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
11700a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_ne(vector short a, vector bool short b)
11701a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11702a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpequh_p(__CR6_LT_REV, a, (vector short)b);
11703a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11704a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11705a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11706dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_ne(vector unsigned short a, vector unsigned short b)
11707dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
117083ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpequh_p(__CR6_LT_REV,
117093ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector short)a,
117103ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector short)b);
11711dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
11712dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
117134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
11714a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_ne(vector unsigned short a, vector bool short b)
11715a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
117163ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpequh_p(__CR6_LT_REV,
117173ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector short)a,
117183ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector short)b);
11719a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11720a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11721a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11722a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_ne(vector bool short a, vector short b)
11723a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
117243ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpequh_p(__CR6_LT_REV,
117253ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector short)a,
117263ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector short)b);
11727a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11728a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11729a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11730a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_ne(vector bool short a, vector unsigned short b)
11731a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
117323ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpequh_p(__CR6_LT_REV,
117333ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector short)a,
117343ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector short)b);
11735a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11736a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11737a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11738a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_ne(vector bool short a, vector bool short b)
11739a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
117403ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpequh_p(__CR6_LT_REV,
117413ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector short)a,
117423ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector short)b);
11743a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11744a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11745a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11746a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_ne(vector pixel a, vector pixel b)
11747a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
117483ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return __builtin_altivec_vcmpequh_p(__CR6_LT_REV,
117493ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector short)a,
117503ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev                                      (vector short)b);
11751a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11752a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11753a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11754dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_ne(vector int a, vector int b)
11755dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
11756dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpequw_p(__CR6_LT_REV, a, b);
11757dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
11758dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
117594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
11760a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_ne(vector int a, vector bool int b)
11761a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
11762a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev  return __builtin_altivec_vcmpequw_p(__CR6_LT_REV, a, (vector int)b);
11763a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11764a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11765a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11766dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_ne(vector unsigned int a, vector unsigned int b)
11767dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
117683ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return
117693ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev    __builtin_altivec_vcmpequw_p(__CR6_LT_REV, (vector int)a, (vector int)b);
11770dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
11771dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
117724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
11773a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_ne(vector unsigned int a, vector bool int b)
11774a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
117753ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return
117763ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev    __builtin_altivec_vcmpequw_p(__CR6_LT_REV, (vector int)a, (vector int)b);
11777a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11778a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11779a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11780a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_ne(vector bool int a, vector int b)
11781a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
117823ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return
117833ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev    __builtin_altivec_vcmpequw_p(__CR6_LT_REV, (vector int)a, (vector int)b);
11784a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11785a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11786a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11787a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_ne(vector bool int a, vector unsigned int b)
11788a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
117893ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return
117903ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev    __builtin_altivec_vcmpequw_p(__CR6_LT_REV, (vector int)a, (vector int)b);
11791a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11792a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11793a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11794a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevvec_any_ne(vector bool int a, vector bool int b)
11795a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev{
117963ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev  return
117973ed3272a54d6736b9f25d9993f4424ba7f4249d1Anton Yartsev    __builtin_altivec_vcmpequw_p(__CR6_LT_REV, (vector int)a, (vector int)b);
11798a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev}
11799a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsev
11800a4f235b7cab8ca3132b353470ad0fbbce5b5499aAnton Yartsevstatic int __ATTRS_o_ai
11801dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_ne(vector float a, vector float b)
11802dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
11803dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpeqfp_p(__CR6_LT_REV, a, b);
11804dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
11805dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
11806dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_any_nge */
11807dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
11808dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnerstatic int __attribute__((__always_inline__))
11809dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_nge(vector float a, vector float b)
11810dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
11811dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgefp_p(__CR6_LT_REV, a, b);
11812dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
11813dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
11814dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_any_ngt */
11815dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
11816dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnerstatic int __attribute__((__always_inline__))
11817dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_ngt(vector float a, vector float b)
11818dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
11819dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtfp_p(__CR6_LT_REV, a, b);
11820dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
11821dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
11822dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_any_nle */
11823dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
11824dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnerstatic int __attribute__((__always_inline__))
11825dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_nle(vector float a, vector float b)
11826dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
11827dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgefp_p(__CR6_LT_REV, b, a);
11828dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
11829dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
11830dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_any_nlt */
11831dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
11832dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnerstatic int __attribute__((__always_inline__))
11833dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_nlt(vector float a, vector float b)
11834dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
11835dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtfp_p(__CR6_LT_REV, b, a);
11836dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
11837dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
11838dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_any_numeric */
11839dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
11840dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnerstatic int __attribute__((__always_inline__))
11841dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_numeric(vector float a)
11842dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
11843dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpeqfp_p(__CR6_EQ_REV, a, a);
11844dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
11845dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
11846dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_any_out */
11847dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
11848dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnerstatic int __attribute__((__always_inline__))
11849dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_out(vector float a, vector float b)
11850dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
11851dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpbfp_p(__CR6_EQ_REV, a, b);
11852dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
11853dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
118544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#undef __ATTRS_o_ai
11855dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
11856dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner#endif /* __ALTIVEC_H */
11857