altivec.h revision a816ec833869eab267b7cf6e2c662552d814d768
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
234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov// TODO: add functions for 'vector bool ..' and 'vector pixel' argument types according to
244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov// the 'AltiVec Technology Programming Interface Manual'
254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
26dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner#ifndef __ALTIVEC_H
27dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner#define __ALTIVEC_H
28dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
29dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner#ifndef __ALTIVEC__
30dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner#error "AltiVec support not enabled"
31dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner#endif
32dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
33dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* constants for mapping CR6 bits to predicate result. */
34dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
35dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner#define __CR6_EQ     0
36dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner#define __CR6_EQ_REV 1
37dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner#define __CR6_LT     2
38dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner#define __CR6_LT_REV 3
39dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __ATTRS_o_ai __attribute__((__overloadable__, __always_inline__))
414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_perm(vector signed char a, vector signed char b, vector unsigned char c);
444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_perm(vector unsigned char a, vector unsigned char b, vector unsigned char c);
474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_perm(vector short a, vector short b, vector unsigned char c);
504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_perm(vector unsigned short a, vector unsigned short b, vector unsigned char c);
534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_perm(vector int a, vector int b, vector unsigned char c);
564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_perm(vector unsigned int a, vector unsigned int b, vector unsigned char c);
594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_perm(vector float a, vector float b, vector unsigned char c);
62dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
63dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_abs */
64dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
65dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner#define __builtin_altivec_abs_v16qi vec_abs
66dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner#define __builtin_altivec_abs_v8hi  vec_abs
67dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner#define __builtin_altivec_abs_v4si  vec_abs
68dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
70dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_abs(vector signed char a)
71dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
72dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vmaxsb(a, -a);
73dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
74dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed short __ATTRS_o_ai
76dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_abs(vector signed short a)
77dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
78dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vmaxsh(a, -a);
79dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
80dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed int __ATTRS_o_ai
82dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_abs(vector signed int a)
83dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
84dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vmaxsw(a, -a);
85dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
86dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
88dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_abs(vector float a)
89dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  vector unsigned int res = (vector unsigned int)a & (vector unsigned int)(0x7FFFFFFF);
91ab866b46f3f626ac2da42d2b16ec3b5c04105e38Chris Lattner  return (vector float)res;
92dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
93dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
94dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_abss */
95dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
96dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner#define __builtin_altivec_abss_v16qi vec_abss
97dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner#define __builtin_altivec_abss_v8hi  vec_abss
98dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner#define __builtin_altivec_abss_v4si  vec_abss
99dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
1004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
101dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_abss(vector signed char a)
102dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
1034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmaxsb(a, __builtin_altivec_vsubsbs((vector signed char)(0), a));
104dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
105dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
1064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed short __ATTRS_o_ai
107dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_abss(vector signed short a)
108dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
1094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmaxsh(a, __builtin_altivec_vsubshs((vector signed short)(0), a));
110dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
111dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
1124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed int __ATTRS_o_ai
113dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_abss(vector signed int a)
114dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
1154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmaxsw(a, __builtin_altivec_vsubsws((vector signed int)(0), a));
116dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
117dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
118dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_add */
119dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
1204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
121dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_add(vector signed char a, vector signed char b)
122dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
123dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return a + b;
124dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
125dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
1264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
127dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_add(vector unsigned char a, vector unsigned char b)
128dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
129dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return a + b;
130dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
131dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
1324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
1334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_add(vector short a, vector short b)
1344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a + b;
1364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
1374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
1394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_add(vector unsigned short a, vector unsigned short b)
1404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a + b;
1424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
1434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
1454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_add(vector int a, vector int b)
1464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a + b;
1484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
1494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
1514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_add(vector unsigned int a, vector unsigned int b)
1524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a + b;
1544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
1554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
1574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_add(vector float a, vector float b)
1584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a + b;
1604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
1614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vaddubm */
1634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vaddubm vec_vaddubm
1654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
1674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vaddubm(vector signed char a, vector signed char b)
1684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a + b;
1704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
1714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
1734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vaddubm(vector unsigned char a, vector unsigned char b)
1744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a + b;
1764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
1774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vadduhm */
1794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vadduhm vec_vadduhm
1814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
1834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vadduhm(vector short a, vector short b)
1844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a + b;
1864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
1874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
1894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vadduhm(vector unsigned short a, vector unsigned short b)
1904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
1914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a + b;
1924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
1934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vadduwm */
1954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vadduwm vec_vadduwm
1974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
1984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
1994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vadduwm(vector int a, vector int b)
2004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
2014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a + b;
2024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
2034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
2054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vadduwm(vector unsigned int a, vector unsigned int b)
2064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
2074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a + b;
2084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
2094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vaddfp */
2114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vaddfp  vec_vaddfp
2134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
2154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vaddfp(vector float a, vector float b)
2164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
2174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a + b;
2184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
2194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_addc */
2214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __attribute__((__always_inline__))
2234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_addc(vector unsigned int a, vector unsigned int b)
2244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
2254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vaddcuw(a, b);
2264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
2274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vaddcuw */
2294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __attribute__((__always_inline__))
2314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vaddcuw(vector unsigned int a, vector unsigned int b)
2324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
2334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vaddcuw(a, b);
2344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
2354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_adds */
2374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
2394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_adds(vector signed char a, vector signed char b)
2404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
2414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vaddsbs(a, b);
2424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
2434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
2454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_adds(vector unsigned char a, vector unsigned char b)
2464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
2474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vaddubs(a, b);
2484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
2494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
2514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_adds(vector short a, vector short b)
2524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
2534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vaddshs(a, b);
2544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
2554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
2574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_adds(vector unsigned short a, vector unsigned short b)
2584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
2594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vadduhs(a, b);
2604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
2614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
2634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_adds(vector int a, vector int b)
2644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
2654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vaddsws(a, b);
2664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
2674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
2694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_adds(vector unsigned int a, vector unsigned int b)
2704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
2714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vadduws(a, b);
2724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
2734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vaddsbs */
2754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __attribute__((__always_inline__))
2774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vaddsbs(vector signed char a, vector signed char b)
2784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
2794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vaddsbs(a, b);
2804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
2814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vaddubs */
2834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __attribute__((__always_inline__))
2854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vaddubs(vector unsigned char a, vector unsigned char b)
2864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
2874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vaddubs(a, b);
2884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
2894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vaddshs */
2914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __attribute__((__always_inline__))
2934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vaddshs(vector short a, vector short b)
2944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
2954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vaddshs(a, b);
2964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
2974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
2984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vadduhs */
2994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __attribute__((__always_inline__))
3014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vadduhs(vector unsigned short a, vector unsigned short b)
3024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
3034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vadduhs(a, b);
3044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
3054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vaddsws */
3074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __attribute__((__always_inline__))
3094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vaddsws(vector int a, vector int b)
3104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
3114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vaddsws(a, b);
3124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
3134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vadduws */
3154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __attribute__((__always_inline__))
3174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vadduws(vector unsigned int a, vector unsigned int b)
3184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
3194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vadduws(a, b);
3204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
3214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_and */
3234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vand vec_and
3254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
3274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_and(vector signed char a, vector signed char b)
3284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
3294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & b;
3304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
3314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
3334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_and(vector unsigned char a, vector unsigned char b)
3344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
3354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & b;
3364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
3374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
3394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_and(vector short a, vector short b)
3404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
3414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & b;
3424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
3434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
3454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_and(vector unsigned short a, vector unsigned short b)
3464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
3474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & b;
3484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
3494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
3514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_and(vector int a, vector int b)
3524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
3534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & b;
3544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
3554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
3574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_and(vector unsigned int a, vector unsigned int b)
3584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
3594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & b;
3604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
3614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
3634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_and(vector float a, vector float b)
3644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
3654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  vector unsigned int res = (vector unsigned int)a & (vector unsigned int)b;
3664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)res;
3674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
3684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vand */
3704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
3724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vand(vector signed char a, vector signed char b)
3734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
3744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & b;
3754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
3764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
3784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vand(vector unsigned char a, vector unsigned char b)
3794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
3804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & b;
3814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
3824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
3844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vand(vector short a, vector short b)
3854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
3864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & b;
3874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
3884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
3904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vand(vector unsigned short a, vector unsigned short b)
3914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
3924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & b;
3934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
3944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
3954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
3964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vand(vector int a, vector int b)
3974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
3984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & b;
3994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
4004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
4024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vand(vector unsigned int a, vector unsigned int b)
4034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
4044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & b;
4054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
4064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
4084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vand(vector float a, vector float b)
4094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
4104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  vector unsigned int res = (vector unsigned int)a & (vector unsigned int)b;
4114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)res;
4124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
4134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_andc */
4154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vandc vec_andc
4174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
4194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_andc(vector signed char a, vector signed char b)
4204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
4214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & ~b;
4224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
4234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
4254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_andc(vector unsigned char a, vector unsigned char b)
4264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
4274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & ~b;
4284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
4294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
4314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_andc(vector short a, vector short b)
4324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
4334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & ~b;
4344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
4354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
4374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_andc(vector unsigned short a, vector unsigned short b)
4384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
4394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & ~b;
4404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
4414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
4434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_andc(vector int a, vector int b)
4444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
4454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & ~b;
4464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
4474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
4494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_andc(vector unsigned int a, vector unsigned int b)
4504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
4514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & ~b;
4524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
4534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
4554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_andc(vector float a, vector float b)
4564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
4574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  vector unsigned int res = (vector unsigned int)a & ~(vector unsigned int)b;
4584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)res;
4594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
4604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vandc */
4624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
4644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vandc(vector signed char a, vector signed char b)
4654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
4664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & ~b;
4674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
4684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
4704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vandc(vector unsigned char a, vector unsigned char b)
4714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
4724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & ~b;
4734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
4744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
4764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vandc(vector short a, vector short b)
4774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
4784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & ~b;
4794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
4804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
4824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vandc(vector unsigned short a, vector unsigned short b)
4834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
4844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & ~b;
4854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
4864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
4884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vandc(vector int a, vector int b)
4894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
4904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & ~b;
4914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
4924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
4944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vandc(vector unsigned int a, vector unsigned int b)
4954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
4964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a & ~b;
4974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
4984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
4994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
5004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vandc(vector float a, vector float b)
5014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
5024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  vector unsigned int res = (vector unsigned int)a & ~(vector unsigned int)b;
5034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)res;
5044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
5054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
5064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_avg */
5074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
5084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
5094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_avg(vector signed char a, vector signed char b)
5104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
5114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vavgsb(a, b);
5124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
5134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
5144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
5154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_avg(vector unsigned char a, vector unsigned char b)
5164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
5174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vavgub(a, b);
5184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
5194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
5204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
5214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_avg(vector short a, vector short b)
5224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
5234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vavgsh(a, b);
5244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
5254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
5264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
5274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_avg(vector unsigned short a, vector unsigned short b)
5284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
5294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vavguh(a, b);
5304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
5314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
5324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
5334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_avg(vector int a, vector int b)
5344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
5354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vavgsw(a, b);
5364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
5374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
5384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
5394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_avg(vector unsigned int a, vector unsigned int b)
5404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
5414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vavguw(a, b);
5424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
5434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
5444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vavgsb */
5454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
5464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __attribute__((__always_inline__))
5474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vavgsb(vector signed char a, vector signed char b)
5484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
5494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vavgsb(a, b);
5504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
5514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
5524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vavgub */
5534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
5544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __attribute__((__always_inline__))
5554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vavgub(vector unsigned char a, vector unsigned char b)
5564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
5574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vavgub(a, b);
5584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
5594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
5604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vavgsh */
5614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
5624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __attribute__((__always_inline__))
5634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vavgsh(vector short a, vector short b)
5644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
5654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vavgsh(a, b);
5664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
5674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
5684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vavguh */
5694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
5704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __attribute__((__always_inline__))
5714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vavguh(vector unsigned short a, vector unsigned short b)
5724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
5734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vavguh(a, b);
5744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
5754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
5764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vavgsw */
5774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
5784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __attribute__((__always_inline__))
5794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vavgsw(vector int a, vector int b)
5804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
5814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vavgsw(a, b);
5824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
5834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
5844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vavguw */
5854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
5864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __attribute__((__always_inline__))
5874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vavguw(vector unsigned int a, vector unsigned int b)
5884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
5894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vavguw(a, b);
5904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
5914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
5924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_ceil */
5934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
5944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
5954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ceil(vector float a)
5964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
5974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vrfip(a);
5984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
5994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
6004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vrfip */
6014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
6024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
6034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vrfip(vector float a)
6044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vrfip(a);
6064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
6074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
6084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_cmpb */
6094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
6104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __attribute__((__always_inline__))
6114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmpb(vector float a, vector float b)
6124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpbfp(a, b);
6144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
6154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
6164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vcmpbfp */
6174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
6184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __attribute__((__always_inline__))
6194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vcmpbfp(vector float a, vector float b)
6204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpbfp(a, b);
6224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
6234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
6244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_cmpeq */
6254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
6264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector /*bool*/ char __ATTRS_o_ai
6274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmpeq(vector signed char a, vector signed char b)
6284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpequb((vector char)a, (vector char)b);
6304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
6314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
6324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector /*bool*/ char __ATTRS_o_ai
6334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmpeq(vector unsigned char a, vector unsigned char b)
6344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpequb((vector char)a, (vector char)b);
6364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
6374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
6384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector /*bool*/ short __ATTRS_o_ai
6394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmpeq(vector short a, vector short b)
6404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpequh(a, b);
6424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
6434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
6444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector /*bool*/ short __ATTRS_o_ai
6454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmpeq(vector unsigned short a, vector unsigned short b)
6464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpequh((vector short)a, (vector short)b);
6484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
6494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
6504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector /*bool*/ int __ATTRS_o_ai
6514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmpeq(vector int a, vector int b)
6524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpequw(a, b);
6544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
6554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
6564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector /*bool*/ int __ATTRS_o_ai
6574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmpeq(vector unsigned int a, vector unsigned int b)
6584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpequw((vector int)a, (vector int)b);
6604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
6614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
6624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector /*bool*/ int __ATTRS_o_ai
6634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmpeq(vector float a, vector float b)
6644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpeqfp(a, b);
6664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
6674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
6684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_cmpge */
6694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
6704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector /*bool*/ int __attribute__((__always_inline__))
6714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmpge(vector float a, vector float b)
6724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpgefp(a, b);
6744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
6754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
6764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vcmpgefp */
6774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
6784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector /*bool*/ int __attribute__((__always_inline__))
6794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vcmpgefp(vector float a, vector float b)
6804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpgefp(a, b);
6824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
6834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
6844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_cmpgt */
6854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
6864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector /*bool*/ char __ATTRS_o_ai
6874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmpgt(vector signed char a, vector signed char b)
6884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpgtsb(a, b);
6904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
6914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
6924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector /*bool*/ char __ATTRS_o_ai
6934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmpgt(vector unsigned char a, vector unsigned char b)
6944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
6954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpgtub(a, b);
6964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
6974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
6984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector /*bool*/ short __ATTRS_o_ai
6994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmpgt(vector short a, vector short b)
7004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
7014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpgtsh(a, b);
7024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
7034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
7044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector /*bool*/ short __ATTRS_o_ai
7054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmpgt(vector unsigned short a, vector unsigned short b)
7064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
7074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpgtuh(a, b);
7084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
7094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
7104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector /*bool*/ int __ATTRS_o_ai
7114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmpgt(vector int a, vector int b)
7124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
7134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpgtsw(a, b);
7144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
7154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
7164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector /*bool*/ int __ATTRS_o_ai
7174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmpgt(vector unsigned int a, vector unsigned int b)
7184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
7194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpgtuw(a, b);
7204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
7214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
7224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector /*bool*/ int __ATTRS_o_ai
7234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmpgt(vector float a, vector float b)
7244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
7254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpgtfp(a, b);
7264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
7274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
7284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vcmpgtsb */
7294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
7304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector /*bool*/ char __attribute__((__always_inline__))
7314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vcmpgtsb(vector signed char a, vector signed char b)
7324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
7334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpgtsb(a, b);
7344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
7354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
7364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vcmpgtub */
7374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
7384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector /*bool*/ char __attribute__((__always_inline__))
7394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vcmpgtub(vector unsigned char a, vector unsigned char b)
7404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
7414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpgtub(a, b);
7424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
7434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
7444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vcmpgtsh */
7454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
7464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector /*bool*/ short __attribute__((__always_inline__))
7474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vcmpgtsh(vector short a, vector short b)
7484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
7494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpgtsh(a, b);
7504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
7514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
7524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vcmpgtuh */
7534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
7544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector /*bool*/ short __attribute__((__always_inline__))
7554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vcmpgtuh(vector unsigned short a, vector unsigned short b)
7564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
7574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpgtuh(a, b);
7584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
7594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
7604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vcmpgtsw */
7614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
7624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector /*bool*/ int __attribute__((__always_inline__))
7634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vcmpgtsw(vector int a, vector int b)
7644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
7654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpgtsw(a, b);
7664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
7674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
7684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vcmpgtuw */
7694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
7704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector /*bool*/ int __attribute__((__always_inline__))
7714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vcmpgtuw(vector unsigned int a, vector unsigned int b)
7724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
7734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpgtuw(a, b);
7744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
7754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
7764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vcmpgtfp */
7774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
7784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector /*bool*/ int __attribute__((__always_inline__))
7794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vcmpgtfp(vector float a, vector float b)
7804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
7814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpgtfp(a, b);
7824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
7834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
7844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_cmple */
7854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
7864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector /*bool*/ int __attribute__((__always_inline__))
7874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmple(vector float a, vector float b)
7884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
7894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpgefp(b, a);
7904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
7914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
7924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_cmplt */
7934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
7944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector /*bool*/ char __ATTRS_o_ai
7954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmplt(vector signed char a, vector signed char b)
7964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
7974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpgtsb(b, a);
7984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
7994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
8004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector /*bool*/ char __ATTRS_o_ai
8014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmplt(vector unsigned char a, vector unsigned char b)
8024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
8034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpgtub(b, a);
8044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
8054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
8064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector /*bool*/ short __ATTRS_o_ai
8074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmplt(vector short a, vector short b)
8084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
8094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpgtsh(b, a);
8104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
8114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
8124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector /*bool*/ short __ATTRS_o_ai
8134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmplt(vector unsigned short a, vector unsigned short b)
8144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
8154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpgtuh(b, a);
8164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
8174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
8184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector /*bool*/ int __ATTRS_o_ai
8194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmplt(vector int a, vector int b)
8204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
8214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpgtsw(b, a);
8224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
8234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
8244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector /*bool*/ int __ATTRS_o_ai
8254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmplt(vector unsigned int a, vector unsigned int b)
8264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
8274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpgtuw(b, a);
8284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
8294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
8304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector /*bool*/ int __ATTRS_o_ai
8314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cmplt(vector float a, vector float b)
8324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
8334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpgtfp(b, a);
8344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
8354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
8364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_ctf */
8374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
8384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
8394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ctf(vector int a, int b)
8404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
8414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcfsx(a, b);
8424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
8434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
8444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
8454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ctf(vector unsigned int a, int b)
8464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
8474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcfux((vector int)a, b);
8484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
8494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
8504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vcfsx */
8514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
8524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
8534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vcfsx(vector int a, int b)
8544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
8554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcfsx(a, b);
8564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
8574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
8584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vcfux */
8594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
8604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
8614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vcfux(vector unsigned int a, int b)
8624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
8634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcfux((vector int)a, b);
8644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
8654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
8664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_cts */
8674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
8684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __attribute__((__always_inline__))
8694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_cts(vector float a, int b)
8704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
8714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vctsxs(a, b);
8724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
8734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
8744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vctsxs */
8754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
8764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __attribute__((__always_inline__))
8774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vctsxs(vector float a, int b)
8784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
8794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vctsxs(a, b);
8804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
8814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
8824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_ctu */
8834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
8844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __attribute__((__always_inline__))
8854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ctu(vector float a, int b)
8864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
8874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vctuxs(a, b);
8884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
8894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
8904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vctuxs */
8914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
8924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __attribute__((__always_inline__))
8934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vctuxs(vector float a, int b)
8944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
8954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vctuxs(a, b);
8964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
8974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
8984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_dss */
8994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
9004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __attribute__((__always_inline__))
9014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_dss(int a)
9024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
9034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_dss(a);
9044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
9054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
9064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_dssall */
9074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
9084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __attribute__((__always_inline__))
9094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_dssall(void)
9104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
9114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_dssall();
9124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
9134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
9144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_dst */
9154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
9164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __attribute__((__always_inline__))
9174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_dst(void *a, int b, int c)
9184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
9194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_dst(a, b, c);
9204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
9214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
9224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_dstst */
9234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
9244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __attribute__((__always_inline__))
9254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_dstst(void *a, int b, int c)
9264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
9274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_dstst(a, b, c);
9284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
9294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
9304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_dststt */
9314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
9324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __attribute__((__always_inline__))
9334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_dststt(void *a, int b, int c)
9344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
9354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_dststt(a, b, c);
9364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
9374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
9384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_dstt */
9394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
9404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __attribute__((__always_inline__))
9414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_dstt(void *a, int b, int c)
9424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
9434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_dstt(a, b, c);
9444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
9454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
9464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_expte */
9474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
9484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
9494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_expte(vector float a)
9504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
9514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vexptefp(a);
9524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
9534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
9544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vexptefp */
9554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
9564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
9574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vexptefp(vector float a)
9584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
9594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vexptefp(a);
9604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
9614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
9624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_floor */
9634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
9644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
9654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_floor(vector float a)
9664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
9674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vrfim(a);
9684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
9694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
9704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vrfim */
9714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
9724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
9734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vrfim(vector float a)
9744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
9754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vrfim(a);
9764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
9774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
9784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_ld */
9794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
9804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
9814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ld(int a, vector signed char *b)
9824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
9834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_lvx(a, b);
9844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
9854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
9864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
9874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ld(int a, signed char *b)
9884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
9894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_lvx(a, b);
9904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
9914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
9924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
9934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ld(int a, vector unsigned char *b)
9944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
9954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvx(a, b);
9964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
9974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
9984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
9994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ld(int a, unsigned char *b)
10004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
10014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvx(a, b);
10024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
10034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
10044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
10054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ld(int a, vector short *b)
10064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
10074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_lvx(a, b);
10084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
10094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
10104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
10114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ld(int a, short *b)
10124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
10134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_lvx(a, b);
10144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
10154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
10164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
10174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ld(int a, vector unsigned short *b)
10184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
10194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_lvx(a, b);
10204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
10214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
10224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
10234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ld(int a, unsigned short *b)
10244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
10254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_lvx(a, b);
10264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
10274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
10284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
10294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ld(int a, vector int *b)
10304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
10314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_lvx(a, b);
10324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
10334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
10344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
10354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ld(int a, int *b)
10364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
10374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_lvx(a, b);
10384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
10394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
10404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
10414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ld(int a, vector unsigned int *b)
10424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
10434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_lvx(a, b);
10444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
10454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
10464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
10474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ld(int a, unsigned int *b)
10484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
10494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_lvx(a, b);
10504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
10514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
10524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
10534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ld(int a, vector float *b)
10544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
10554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)__builtin_altivec_lvx(a, b);
10564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
10574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
10584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
10594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ld(int a, float *b)
10604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
10614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)__builtin_altivec_lvx(a, b);
10624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
10634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
10644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_lvx */
10654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
10664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
10674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvx(int a, vector signed char *b)
10684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
10694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_lvx(a, b);
10704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
10714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
10724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
10734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvx(int a, signed char *b)
10744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
10754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_lvx(a, b);
10764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
10774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
10784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
10794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvx(int a, vector unsigned char *b)
10804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
10814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvx(a, b);
10824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
10834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
10844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
10854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvx(int a, unsigned char *b)
10864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
10874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvx(a, b);
10884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
10894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
10904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
10914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvx(int a, vector short *b)
10924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
10934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_lvx(a, b);
10944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
10954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
10964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
10974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvx(int a, short *b)
10984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
10994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_lvx(a, b);
11004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
11014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
11024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
11034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvx(int a, vector unsigned short *b)
11044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
11054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_lvx(a, b);
11064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
11074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
11084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
11094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvx(int a, unsigned short *b)
11104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
11114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_lvx(a, b);
11124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
11134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
11144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
11154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvx(int a, vector int *b)
11164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
11174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_lvx(a, b);
11184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
11194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
11204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
11214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvx(int a, int *b)
11224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
11234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_lvx(a, b);
11244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
11254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
11264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
11274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvx(int a, vector unsigned int *b)
11284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
11294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_lvx(a, b);
11304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
11314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
11324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
11334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvx(int a, unsigned int *b)
11344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
11354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_lvx(a, b);
11364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
11374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
11384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
11394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvx(int a, vector float *b)
11404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
11414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)__builtin_altivec_lvx(a, b);
11424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
11434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
11444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
11454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvx(int a, float *b)
11464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
11474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)__builtin_altivec_lvx(a, b);
11484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
11494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
11504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_lde */
11514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
11524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
11534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lde(int a, vector signed char *b)
11544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
11554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_lvebx(a, b);
11564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
11574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
11584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
11594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lde(int a, vector unsigned char *b)
11604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
11614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvebx(a, b);
11624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
11634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
11644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
11654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lde(int a, vector short *b)
11664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
11674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_lvehx(a, b);
11684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
11694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
11704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
11714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lde(int a, vector unsigned short *b)
11724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
11734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_lvehx(a, b);
11744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
11754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
11764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
11774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lde(int a, vector int *b)
11784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
11794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_lvewx(a, b);
11804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
11814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
11824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
11834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lde(int a, vector unsigned int *b)
11844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
11854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_lvewx(a, b);
11864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
11874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
11884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
11894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lde(int a, vector float *b)
11904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
11914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)__builtin_altivec_lvewx(a, b);
11924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
11934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
11944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_lvebx */
11954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
11964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
11974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvebx(int a, vector signed char *b)
11984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
11994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_lvebx(a, b);
12004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
12014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
12024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
12034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvebx(int a, vector unsigned char *b)
12044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
12054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvebx(a, b);
12064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
12074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
12084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_lvehx */
12094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
12104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
12114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvehx(int a, vector short *b)
12124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
12134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_lvehx(a, b);
12144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
12154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
12164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
12174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvehx(int a, vector unsigned short *b)
12184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
12194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_lvehx(a, b);
12204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
12214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
12224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_lvewx */
12234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
12244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
12254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvewx(int a, vector int *b)
12264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
12274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_lvewx(a, b);
12284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
12294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
12304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
12314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvewx(int a, vector unsigned int *b)
12324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
12334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_lvewx(a, b);
12344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
12354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
12364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
12374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvewx(int a, vector float *b)
12384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
12394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)__builtin_altivec_lvewx(a, b);
12404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
12414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
12424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_ldl */
12434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
12444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
12454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ldl(int a, vector signed char *b)
12464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
12474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_lvxl(a, b);
12484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
12494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
12504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
12514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ldl(int a, signed char *b)
12524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
12534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_lvxl(a, b);
12544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
12554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
12564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
12574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ldl(int a, vector unsigned char *b)
12584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
12594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvxl(a, b);
12604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
12614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
12624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
12634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ldl(int a, unsigned char *b)
12644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
12654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvxl(a, b);
12664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
12674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
12684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
12694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ldl(int a, vector short *b)
12704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
12714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_lvxl(a, b);
12724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
12734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
12744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
12754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ldl(int a, short *b)
12764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
12774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_lvxl(a, b);
12784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
12794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
12804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
12814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ldl(int a, vector unsigned short *b)
12824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
12834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_lvxl(a, b);
12844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
12854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
12864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
12874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ldl(int a, unsigned short *b)
12884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
12894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_lvxl(a, b);
12904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
12914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
12924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
12934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ldl(int a, vector int *b)
12944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
12954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_lvxl(a, b);
12964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
12974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
12984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
12994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ldl(int a, int *b)
13004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
13014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_lvxl(a, b);
13024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
13034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
13044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
13054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ldl(int a, vector unsigned int *b)
13064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
13074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_lvxl(a, b);
13084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
13094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
13104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
13114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ldl(int a, unsigned int *b)
13124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
13134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_lvxl(a, b);
13144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
13154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
13164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
13174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ldl(int a, vector float *b)
13184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
13194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)__builtin_altivec_lvxl(a, b);
13204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
13214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
13224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
13234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ldl(int a, float *b)
13244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
13254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)__builtin_altivec_lvxl(a, b);
13264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
13274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
13284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_lvxl */
13294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
13304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
13314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvxl(int a, vector signed char *b)
13324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
13334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_lvxl(a, b);
13344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
13354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
13364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
13374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvxl(int a, signed char *b)
13384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
13394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_lvxl(a, b);
13404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
13414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
13424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
13434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvxl(int a, vector unsigned char *b)
13444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
13454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvxl(a, b);
13464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
13474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
13484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
13494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvxl(int a, unsigned char *b)
13504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
13514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvxl(a, b);
13524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
13534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
13544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
13554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvxl(int a, vector short *b)
13564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
13574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_lvxl(a, b);
13584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
13594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
13604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
13614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvxl(int a, short *b)
13624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
13634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_lvxl(a, b);
13644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
13654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
13664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
13674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvxl(int a, vector unsigned short *b)
13684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
13694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_lvxl(a, b);
13704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
13714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
13724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
13734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvxl(int a, unsigned short *b)
13744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
13754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_lvxl(a, b);
13764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
13774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
13784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
13794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvxl(int a, vector int *b)
13804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
13814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_lvxl(a, b);
13824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
13834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
13844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
13854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvxl(int a, int *b)
13864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
13874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_lvxl(a, b);
13884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
13894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
13904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
13914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvxl(int a, vector unsigned int *b)
13924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
13934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_lvxl(a, b);
13944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
13954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
13964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
13974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvxl(int a, unsigned int *b)
13984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
13994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_lvxl(a, b);
14004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
14014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
14024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
14034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvxl(int a, vector float *b)
14044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
14054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)__builtin_altivec_lvxl(a, b);
14064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
14074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
14084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
14094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvxl(int a, float *b)
14104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
14114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)__builtin_altivec_lvxl(a, b);
14124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
14134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
14144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_loge */
14154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
14164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
14174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_loge(vector float a)
14184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
14194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vlogefp(a);
14204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
14214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
14224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vlogefp */
14234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
14244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
14254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vlogefp(vector float a)
14264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
14274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vlogefp(a);
14284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
14294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
14304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_lvsl */
14314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
14324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
14334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvsl(int a, signed char *b)
14344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
14354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvsl(a, b);
14364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
14374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
14384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
14394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvsl(int a, unsigned char *b)
14404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
14414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvsl(a, b);
14424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
14434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
14444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
14454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvsl(int a, short *b)
14464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
14474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvsl(a, b);
14484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
14494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
14504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
14514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvsl(int a, unsigned short *b)
14524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
14534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvsl(a, b);
14544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
14554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
14564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
14574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvsl(int a, int *b)
14584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
14594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvsl(a, b);
14604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
14614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
14624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
14634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvsl(int a, unsigned int *b)
14644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
14654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvsl(a, b);
14664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
14674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
14684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
14694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvsl(int a, float *b)
14704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
14714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvsl(a, b);
14724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
14734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
14744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_lvsr */
14754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
14764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
14774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvsr(int a, signed char *b)
14784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
14794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvsr(a, b);
14804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
14814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
14824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
14834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvsr(int a, unsigned char *b)
14844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
14854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvsr(a, b);
14864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
14874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
14884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
14894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvsr(int a, short *b)
14904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
14914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvsr(a, b);
14924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
14934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
14944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
14954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvsr(int a, unsigned short *b)
14964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
14974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvsr(a, b);
14984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
14994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
15004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
15014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvsr(int a, int *b)
15024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
15034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvsr(a, b);
15044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
15054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
15064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
15074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvsr(int a, unsigned int *b)
15084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
15094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvsr(a, b);
15104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
15114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
15124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
15134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_lvsr(int a, float *b)
15144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
15154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_lvsr(a, b);
15164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
15174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
15184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_madd */
15194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
15204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
15214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_madd(vector float a, vector float b, vector float c)
15224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
15234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmaddfp(a, b, c);
15244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
15254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
15264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmaddfp */
15274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
15284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
15294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmaddfp(vector float a, vector float b, vector float c)
15304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
15314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmaddfp(a, b, c);
15324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
15334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
15344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_madds */
15354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
15364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed short __attribute__((__always_inline__))
15374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_madds(vector signed short a, vector signed short b, vector signed short c)
15384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
15394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmhaddshs(a, b, c);
15404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
15414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
15424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmhaddshs */
15434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed short __attribute__((__always_inline__))
15444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmhaddshs(vector signed short a, vector signed short b, vector signed short c)
15454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
15464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmhaddshs(a, b, c);
15474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
15484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
15494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_max */
15504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
15514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
1552a816ec833869eab267b7cf6e2c662552d814d768Anton Yartsevvec_max(vector signed char a, vector signed char b)
15534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
15544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmaxsb(a, b);
15554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
15564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
15574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
1558a816ec833869eab267b7cf6e2c662552d814d768Anton Yartsevvec_max(vector unsigned char a, vector unsigned char b)
15594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
15604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmaxub(a, b);
15614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
15624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
15634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
15644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_max(vector short a, vector short b)
15654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
15664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmaxsh(a, b);
15674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
15684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
15694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
15704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_max(vector unsigned short a, vector unsigned short b)
15714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
15724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmaxuh(a, b);
15734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
15744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
15754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
15764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_max(vector int a, vector int b)
15774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
15784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmaxsw(a, b);
15794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
15804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
15814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
15824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_max(vector unsigned int a, vector unsigned int b)
15834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
15844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmaxuw(a, b);
15854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
15864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
15874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
15884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_max(vector float a, vector float b)
15894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
15904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmaxfp(a, b);
15914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
15924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
15934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmaxsb */
15944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
15954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __attribute__((__always_inline__))
1596a816ec833869eab267b7cf6e2c662552d814d768Anton Yartsevvec_vmaxsb(vector signed char a, vector signed char b)
15974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
15984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmaxsb(a, b);
15994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
16004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmaxub */
16024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __attribute__((__always_inline__))
1604a816ec833869eab267b7cf6e2c662552d814d768Anton Yartsevvec_vmaxub(vector unsigned char a, vector unsigned char b)
16054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
16064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmaxub(a, b);
16074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
16084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmaxsh */
16104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __attribute__((__always_inline__))
16124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmaxsh(vector short a, vector short b)
16134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
16144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmaxsh(a, b);
16154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
16164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmaxuh */
16184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __attribute__((__always_inline__))
16204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmaxuh(vector unsigned short a, vector unsigned short b)
16214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
16224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmaxuh(a, b);
16234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
16244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmaxsw */
16264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __attribute__((__always_inline__))
16284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmaxsw(vector int a, vector int b)
16294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
16304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmaxsw(a, b);
16314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
16324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmaxuw */
16344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __attribute__((__always_inline__))
16364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmaxuw(vector unsigned int a, vector unsigned int b)
16374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
16384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmaxuw(a, b);
16394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
16404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmaxfp */
16424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
16444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmaxfp(vector float a, vector float b)
16454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
16464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmaxfp(a, b);
16474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
16484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_mergeh */
16504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
16524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mergeh(vector signed char a, vector signed char b)
16534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
16544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
16554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x00, 0x10, 0x01, 0x11, 0x02, 0x12, 0x03, 0x13,
16564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x04, 0x14, 0x05, 0x15, 0x06, 0x16, 0x07, 0x17));
16574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
16584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
16604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mergeh(vector unsigned char a, vector unsigned char b)
16614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
16624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
16634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x00, 0x10, 0x01, 0x11, 0x02, 0x12, 0x03, 0x13,
16644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x04, 0x14, 0x05, 0x15, 0x06, 0x16, 0x07, 0x17));
16654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
16664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
16684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mergeh(vector short a, vector short b)
16694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
16704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
16714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x00, 0x01, 0x10, 0x11, 0x02, 0x03, 0x12, 0x13,
16724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x04, 0x05, 0x14, 0x15, 0x06, 0x07, 0x16, 0x17));
16734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
16744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
16764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mergeh(vector unsigned short a, vector unsigned short b)
16774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
16784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
16794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x00, 0x01, 0x10, 0x11, 0x02, 0x03, 0x12, 0x13,
16804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x04, 0x05, 0x14, 0x15, 0x06, 0x07, 0x16, 0x17));
16814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
16824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
16844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mergeh(vector int a, vector int b)
16854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
16864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
16874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
16884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17));
16894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
16904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
16924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mergeh(vector unsigned int a, vector unsigned int b)
16934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
16944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
16954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
16964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17));
16974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
16984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
16994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
17004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mergeh(vector float a, vector float b)
17014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
17024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
17034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
17044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17));
17054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
17064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
17074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmrghb */
17084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
17094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vmrghb vec_vmrghb
17104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
17114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
17124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmrghb(vector signed char a, vector signed char b)
17134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
17144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
17154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x00, 0x10, 0x01, 0x11, 0x02, 0x12, 0x03, 0x13,
17164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x04, 0x14, 0x05, 0x15, 0x06, 0x16, 0x07, 0x17));
17174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
17184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
17194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
17204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmrghb(vector unsigned char a, vector unsigned char b)
17214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
17224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
17234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x00, 0x10, 0x01, 0x11, 0x02, 0x12, 0x03, 0x13,
17244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x04, 0x14, 0x05, 0x15, 0x06, 0x16, 0x07, 0x17));
17254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
17264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
17274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmrghh */
17284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
17294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vmrghh vec_vmrghh
17304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
17314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
17324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmrghh(vector short a, vector short b)
17334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
17344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
17354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x00, 0x01, 0x10, 0x11, 0x02, 0x03, 0x12, 0x13,
17364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x04, 0x05, 0x14, 0x15, 0x06, 0x07, 0x16, 0x17));
17374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
17384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
17394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
17404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmrghh(vector unsigned short a, vector unsigned short b)
17414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
17424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
17434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x00, 0x01, 0x10, 0x11, 0x02, 0x03, 0x12, 0x13,
17444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x04, 0x05, 0x14, 0x15, 0x06, 0x07, 0x16, 0x17));
17454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
17464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
17474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmrghw */
17484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
17494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vmrghw vec_vmrghw
17504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
17514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
17524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmrghw(vector int a, vector int b)
17534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
17544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
17554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
17564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17));
17574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
17584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
17594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
17604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmrghw(vector unsigned int a, vector unsigned int b)
17614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
17624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
17634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
17644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17));
17654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
17664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
17674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
17684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmrghw(vector float a, vector float b)
17694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
17704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
17714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x00, 0x01, 0x02, 0x03, 0x10, 0x11, 0x12, 0x13,
17724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x04, 0x05, 0x06, 0x07, 0x14, 0x15, 0x16, 0x17));
17734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
17744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
17754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_mergel */
17764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
17774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
17784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mergel(vector signed char a, vector signed char b)
17794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
17804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
17814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A, 0x0B, 0x1B,
17824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x0C, 0x1C, 0x0D, 0x1D, 0x0E, 0x1E, 0x0F, 0x1F));
17834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
17844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
17854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
17864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mergel(vector unsigned char a, vector unsigned char b)
17874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
17884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
17894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A, 0x0B, 0x1B,
17904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x0C, 0x1C, 0x0D, 0x1D, 0x0E, 0x1E, 0x0F, 0x1F));
17914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
17924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
17934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
17944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mergel(vector short a, vector short b)
17954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
17964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
17974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, 0x1A, 0x1B,
17984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x0C, 0x0D, 0x1C, 0x1D, 0x0E, 0x0F, 0x1E, 0x1F));
17994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
18004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
18014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
18024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mergel(vector unsigned short a, vector unsigned short b)
18034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
18044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
18054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, 0x1A, 0x1B,
18064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x0C, 0x0D, 0x1C, 0x1D, 0x0E, 0x0F, 0x1E, 0x1F));
18074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
18084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
18094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
18104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mergel(vector int a, vector int b)
18114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
18124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
18134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B,
18144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
18154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
18164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
18174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
18184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mergel(vector unsigned int a, vector unsigned int b)
18194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
18204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
18214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B,
18224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
18234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
18244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
18254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
18264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mergel(vector float a, vector float b)
18274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
18284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
18294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B,
18304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
18314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
18324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
18334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmrglb */
18344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
18354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vmrglb vec_vmrglb
18364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
18374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
18384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmrglb(vector signed char a, vector signed char b)
18394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
18404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
18414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A, 0x0B, 0x1B,
18424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x0C, 0x1C, 0x0D, 0x1D, 0x0E, 0x1E, 0x0F, 0x1F));
18434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
18444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
18454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
18464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmrglb(vector unsigned char a, vector unsigned char b)
18474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
18484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
18494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x08, 0x18, 0x09, 0x19, 0x0A, 0x1A, 0x0B, 0x1B,
18504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x0C, 0x1C, 0x0D, 0x1D, 0x0E, 0x1E, 0x0F, 0x1F));
18514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
18524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
18534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmrglh */
18544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
18554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vmrglh vec_vmrglh
18564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
18574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
18584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmrglh(vector short a, vector short b)
18594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
18604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
18614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, 0x1A, 0x1B,
18624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x0C, 0x0D, 0x1C, 0x1D, 0x0E, 0x0F, 0x1E, 0x1F));
18634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
18644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
18654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
18664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmrglh(vector unsigned short a, vector unsigned short b)
18674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
18684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
18694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x08, 0x09, 0x18, 0x19, 0x0A, 0x0B, 0x1A, 0x1B,
18704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x0C, 0x0D, 0x1C, 0x1D, 0x0E, 0x0F, 0x1E, 0x1F));
18714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
18724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
18734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmrglw */
18744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
18754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vmrglw vec_vmrglw
18764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
18774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
18784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmrglw(vector int a, vector int b)
18794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
18804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
18814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B,
18824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
18834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
18844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
18854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
18864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmrglw(vector unsigned int a, vector unsigned int b)
18874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
18884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
18894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B,
18904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
18914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
18924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
18934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
18944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmrglw(vector float a, vector float b)
18954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
18964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
18974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x08, 0x09, 0x0A, 0x0B, 0x18, 0x19, 0x1A, 0x1B,
18984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x0C, 0x0D, 0x0E, 0x0F, 0x1C, 0x1D, 0x1E, 0x1F));
18994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
19004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_mfvscr */
19024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __attribute__((__always_inline__))
19044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mfvscr(void)
19054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
19064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_mfvscr();
19074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
19084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_min */
19104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
1912a816ec833869eab267b7cf6e2c662552d814d768Anton Yartsevvec_min(vector signed char a, vector signed char b)
19134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
19144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vminsb(a, b);
19154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
19164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
1918a816ec833869eab267b7cf6e2c662552d814d768Anton Yartsevvec_min(vector unsigned char a, vector unsigned char b)
19194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
19204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vminub(a, b);
19214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
19224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
19244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_min(vector short a, vector short b)
19254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
19264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vminsh(a, b);
19274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
19284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
19304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_min(vector unsigned short a, vector unsigned short b)
19314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
19324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vminuh(a, b);
19334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
19344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
19364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_min(vector int a, vector int b)
19374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
19384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vminsw(a, b);
19394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
19404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
19424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_min(vector unsigned int a, vector unsigned int b)
19434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
19444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vminuw(a, b);
19454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
19464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
19484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_min(vector float a, vector float b)
19494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
19504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vminfp(a, b);
19514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
19524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vminsb */
19544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __attribute__((__always_inline__))
1956a816ec833869eab267b7cf6e2c662552d814d768Anton Yartsevvec_vminsb(vector signed char a, vector signed char b)
19574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
19584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vminsb(a, b);
19594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
19604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vminub */
19624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __attribute__((__always_inline__))
1964a816ec833869eab267b7cf6e2c662552d814d768Anton Yartsevvec_vminub(vector unsigned char a, vector unsigned char b)
19654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
19664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vminub(a, b);
19674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
19684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vminsh */
19704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __attribute__((__always_inline__))
19724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vminsh(vector short a, vector short b)
19734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
19744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vminsh(a, b);
19754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
19764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vminuh */
19784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __attribute__((__always_inline__))
19804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vminuh(vector unsigned short a, vector unsigned short b)
19814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
19824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vminuh(a, b);
19834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
19844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vminsw */
19864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __attribute__((__always_inline__))
19884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vminsw(vector int a, vector int b)
19894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
19904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vminsw(a, b);
19914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
19924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vminuw */
19944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
19954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __attribute__((__always_inline__))
19964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vminuw(vector unsigned int a, vector unsigned int b)
19974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
19984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vminuw(a, b);
19994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
20004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
20014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vminfp */
20024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
20034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
20044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vminfp(vector float a, vector float b)
20054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
20064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vminfp(a, b);
20074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
20084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
20094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_mladd */
20104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
20114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vmladduhm vec_mladd
20124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
20134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
20144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mladd(vector short a, vector short b, vector short c)
20154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
20164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a * b + c;
20174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
20184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
20194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
20204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mladd(vector short a, vector unsigned short b, vector unsigned short c)
20214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
20224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a * (vector short)b + (vector short)c;
20234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
20244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
20254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
20264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mladd(vector unsigned short a, vector short b, vector short c)
20274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
20284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)a * b + c;
20294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
20304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
20314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
20324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mladd(vector unsigned short a, vector unsigned short b, vector unsigned short c)
20334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
20344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a * b + c;
20354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
20364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
20374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmladduhm */
20384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
20394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
20404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmladduhm(vector short a, vector short b, vector short c)
20414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
20424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a * b + c;
20434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
20444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
20454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
20464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmladduhm(vector short a, vector unsigned short b, vector unsigned short c)
20474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
20484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a * (vector short)b + (vector short)c;
20494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
20504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
20514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
20524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmladduhm(vector unsigned short a, vector short b, vector short c)
20534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
20544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)a * b + c;
20554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
20564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
20574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
20584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmladduhm(vector unsigned short a, vector unsigned short b, vector unsigned short c)
20594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
20604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a * b + c;
20614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
20624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
20634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_mradds */
20644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
20654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __attribute__((__always_inline__))
20664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mradds(vector short a, vector short b, vector short c)
20674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
20684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmhraddshs(a, b, c);
20694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
20704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
20714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmhraddshs */
20724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
20734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __attribute__((__always_inline__))
20744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmhraddshs(vector short a, vector short b, vector short c)
20754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
20764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmhraddshs(a, b, c);
20774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
20784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
20794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_msum */
20804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
20814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
20824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_msum(vector signed char a, vector unsigned char b, vector int c)
20834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
20844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmsummbm(a, b, c);
20854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
20864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
20874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
20884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_msum(vector unsigned char a, vector unsigned char b, vector unsigned int c)
20894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
20904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmsumubm(a, b, c);
20914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
20924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
20934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
20944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_msum(vector short a, vector short b, vector int c)
20954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
20964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmsumshm(a, b, c);
20974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
20984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
20994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
21004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_msum(vector unsigned short a, vector unsigned short b, vector unsigned int c)
21014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
21024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmsumuhm(a, b, c);
21034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
21044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
21054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmsummbm */
21064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
21074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __attribute__((__always_inline__))
21084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmsummbm(vector signed char a, vector unsigned char b, vector int c)
21094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
21104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmsummbm(a, b, c);
21114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
21124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
21134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmsumubm */
21144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
21154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __attribute__((__always_inline__))
21164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmsumubm(vector unsigned char a, vector unsigned char b, vector unsigned int c)
21174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
21184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmsumubm(a, b, c);
21194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
21204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
21214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmsumshm */
21224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
21234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __attribute__((__always_inline__))
21244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmsumshm(vector short a, vector short b, vector int c)
21254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
21264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmsumshm(a, b, c);
21274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
21284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
21294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmsumuhm */
21304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
21314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __attribute__((__always_inline__))
21324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmsumuhm(vector unsigned short a, vector unsigned short b, vector unsigned int c)
21334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
21344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmsumuhm(a, b, c);
21354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
21364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
21374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_msums */
21384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
21394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
21404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_msums(vector short a, vector short b, vector int c)
21414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
21424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmsumshs(a, b, c);
21434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
21444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
21454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
21464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_msums(vector unsigned short a, vector unsigned short b, vector unsigned int c)
21474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
21484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmsumuhs(a, b, c);
21494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
21504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
21514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmsumshs */
21524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
21534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __attribute__((__always_inline__))
21544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmsumshs(vector short a, vector short b, vector int c)
21554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
21564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmsumshs(a, b, c);
21574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
21584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
21594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmsumuhs */
21604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
21614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __attribute__((__always_inline__))
21624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmsumuhs(vector unsigned short a, vector unsigned short b, vector unsigned int c)
21634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
21644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmsumuhs(a, b, c);
21654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
21664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
21674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_mtvscr */
21684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
21694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
21704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mtvscr(vector signed char a)
21714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
21724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_mtvscr((vector int)a);
21734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
21744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
21754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
21764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mtvscr(vector unsigned char a)
21774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
21784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_mtvscr((vector int)a);
21794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
21804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
21814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
21824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mtvscr(vector short a)
21834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
21844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_mtvscr((vector int)a);
21854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
21864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
21874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
21884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mtvscr(vector unsigned short a)
21894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
21904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_mtvscr((vector int)a);
21914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
21924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
21934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
21944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mtvscr(vector int a)
21954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
21964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_mtvscr((vector int)a);
21974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
21984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
21994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
22004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mtvscr(vector unsigned int a)
22014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
22024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_mtvscr((vector int)a);
22034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
22044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
22054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
22064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mtvscr(vector float a)
22074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
22084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_mtvscr((vector int)a);
22094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
22104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
22114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_mule */
22124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
22134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
22144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mule(vector signed char a, vector signed char b)
22154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
22164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmulesb(a, b);
22174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
22184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
22194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
22204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mule(vector unsigned char a, vector unsigned char b)
22214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
22224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmuleub(a, b);
22234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
22244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
22254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
22264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mule(vector short a, vector short b)
22274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
22284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmulesh(a, b);
22294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
22304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
22314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
22324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mule(vector unsigned short a, vector unsigned short b)
22334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
22344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmuleuh(a, b);
22354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
22364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
22374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmulesb */
22384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
22394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __attribute__((__always_inline__))
22404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmulesb(vector signed char a, vector signed char b)
22414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
22424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmulesb(a, b);
22434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
22444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
22454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmuleub */
22464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
22474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __attribute__((__always_inline__))
22484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmuleub(vector unsigned char a, vector unsigned char b)
22494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
22504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmuleub(a, b);
22514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
22524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
22534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmulesh */
22544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
22554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __attribute__((__always_inline__))
22564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmulesh(vector short a, vector short b)
22574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
22584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmulesh(a, b);
22594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
22604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
22614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmuleuh */
22624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
22634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __attribute__((__always_inline__))
22644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmuleuh(vector unsigned short a, vector unsigned short b)
22654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
22664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmuleuh(a, b);
22674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
22684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
22694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_mulo */
22704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
22714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
22724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mulo(vector signed char a, vector signed char b)
22734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
22744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmulosb(a, b);
22754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
22764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
22774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
22784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mulo(vector unsigned char a, vector unsigned char b)
22794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
22804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmuloub(a, b);
22814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
22824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
22834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
22844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mulo(vector short a, vector short b)
22854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
22864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmulosh(a, b);
22874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
22884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
22894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
22904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_mulo(vector unsigned short a, vector unsigned short b)
22914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
22924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmulouh(a, b);
22934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
22944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
22954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmulosb */
22964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
22974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __attribute__((__always_inline__))
22984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmulosb(vector signed char a, vector signed char b)
22994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
23004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmulosb(a, b);
23014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
23024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
23034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmuloub */
23044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
23054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __attribute__((__always_inline__))
23064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmuloub(vector unsigned char a, vector unsigned char b)
23074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
23084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmuloub(a, b);
23094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
23104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
23114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmulosh */
23124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
23134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __attribute__((__always_inline__))
23144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmulosh(vector short a, vector short b)
23154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
23164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmulosh(a, b);
23174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
23184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
23194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vmulouh */
23204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
23214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __attribute__((__always_inline__))
23224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vmulouh(vector unsigned short a, vector unsigned short b)
23234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
23244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vmulouh(a, b);
23254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
23264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
23274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_nmsub */
23284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
23294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
23304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_nmsub(vector float a, vector float b, vector float c)
23314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
23324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vnmsubfp(a, b, c);
23334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
23344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
23354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vnmsubfp */
23364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
23374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
23384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vnmsubfp(vector float a, vector float b, vector float c)
23394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
23404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vnmsubfp(a, b, c);
23414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
23424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
23434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_nor */
23444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
23454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vnor vec_nor
23464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
23474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
23484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_nor(vector signed char a, vector signed char b)
23494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
23504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return ~(a | b);
23514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
23524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
23534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
23544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_nor(vector unsigned char a, vector unsigned char b)
23554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
23564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return ~(a | b);
23574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
23584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
23594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
23604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_nor(vector short a, vector short b)
23614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
23624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return ~(a | b);
23634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
23644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
23654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
23664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_nor(vector unsigned short a, vector unsigned short b)
23674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
23684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return ~(a | b);
23694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
23704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
23714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
23724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_nor(vector int a, vector int b)
23734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
23744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return ~(a | b);
23754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
23764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
23774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
23784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_nor(vector unsigned int a, vector unsigned int b)
23794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
23804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return ~(a | b);
23814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
23824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
23834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
23844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_nor(vector float a, vector float b)
23854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
23864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  vector unsigned int res = ~((vector unsigned int)a | (vector unsigned int)b);
23874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)res;
23884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
23894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
23904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vnor */
23914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
23924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
23934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vnor(vector signed char a, vector signed char b)
23944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
23954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return ~(a | b);
23964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
23974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
23984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
23994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vnor(vector unsigned char a, vector unsigned char b)
24004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
24014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return ~(a | b);
24024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
24034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
24044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
24054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vnor(vector short a, vector short b)
24064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
24074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return ~(a | b);
24084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
24094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
24104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
24114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vnor(vector unsigned short a, vector unsigned short b)
24124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
24134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return ~(a | b);
24144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
24154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
24164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
24174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vnor(vector int a, vector int b)
24184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
24194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return ~(a | b);
24204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
24214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
24224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
24234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vnor(vector unsigned int a, vector unsigned int b)
24244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
24254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return ~(a | b);
24264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
24274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
24284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
24294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vnor(vector float a, vector float b)
24304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
24314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  vector unsigned int res = ~((vector unsigned int)a | (vector unsigned int)b);
24324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)res;
24334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
24344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
24354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_or */
24364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
24374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vor vec_or
24384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
24394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
24404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_or(vector signed char a, vector signed char b)
24414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
24424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a | b;
24434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
24444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
24454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
24464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_or(vector unsigned char a, vector unsigned char b)
24474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
24484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a | b;
24494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
24504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
24514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
24524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_or(vector short a, vector short b)
24534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
24544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a | b;
24554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
24564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
24574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
24584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_or(vector unsigned short a, vector unsigned short b)
24594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
24604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a | b;
24614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
24624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
24634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
24644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_or(vector int a, vector int b)
24654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
24664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a | b;
24674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
24684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
24694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
24704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_or(vector unsigned int a, vector unsigned int b)
24714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
24724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a | b;
24734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
24744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
24754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
24764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_or(vector float a, vector float b)
24774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
24784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  vector unsigned int res = (vector unsigned int)a | (vector unsigned int)b;
24794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)res;
24804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
24814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
24824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vor */
24834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
24844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
24854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vor(vector signed char a, vector signed char b)
24864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
24874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a | b;
24884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
24894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
24904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
24914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vor(vector unsigned char a, vector unsigned char b)
24924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
24934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a | b;
24944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
24954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
24964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
24974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vor(vector short a, vector short b)
24984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
24994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a | b;
25004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
25014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
25024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
25034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vor(vector unsigned short a, vector unsigned short b)
25044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
25054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a | b;
25064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
25074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
25084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
25094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vor(vector int a, vector int b)
25104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
25114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a | b;
25124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
25134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
25144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
25154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vor(vector unsigned int a, vector unsigned int b)
25164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
25174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a | b;
25184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
25194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
25204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
25214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vor(vector float a, vector float b)
25224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
25234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  vector unsigned int res = (vector unsigned int)a | (vector unsigned int)b;
25244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)res;
25254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
25264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
25274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_pack */
25284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
25294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
25304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_pack(vector signed short a, vector signed short b)
25314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
25324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)vec_perm(a, b, (vector unsigned char)
25334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
25344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
25354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
25364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
25374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
25384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_pack(vector unsigned short a, vector unsigned short b)
25394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
25404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)vec_perm(a, b, (vector unsigned char)
25414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
25424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
25434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
25444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
25454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
25464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_pack(vector int a, vector int b)
25474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
25484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)vec_perm(a, b, (vector unsigned char)
25494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
25504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
25514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
25524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
25534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
25544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_pack(vector unsigned int a, vector unsigned int b)
25554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
25564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)vec_perm(a, b, (vector unsigned char)
25574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
25584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
25594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
25604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
25614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vpkuhum */
25624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
25634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vpkuhum vec_vpkuhum
25644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
25654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
25664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vpkuhum(vector signed short a, vector signed short b)
25674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
25684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)vec_perm(a, b, (vector unsigned char)
25694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
25704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
25714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
25724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
25734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
25744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vpkuhum(vector unsigned short a, vector unsigned short b)
25754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
25764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)vec_perm(a, b, (vector unsigned char)
25774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F,
25784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x11, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F));
25794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
25804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
25814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vpkuwum */
25824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
25834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vpkuwum vec_vpkuwum
25844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
25854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
25864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vpkuwum(vector int a, vector int b)
25874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
25884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)vec_perm(a, b, (vector unsigned char)
25894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
25904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
25914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
25924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
25934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
25944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vpkuwum(vector unsigned int a, vector unsigned int b)
25954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
25964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)vec_perm(a, b, (vector unsigned char)
25974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (0x02, 0x03, 0x06, 0x07, 0x0A, 0x0B, 0x0E, 0x0F,
25984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     0x12, 0x13, 0x16, 0x17, 0x1A, 0x1B, 0x1E, 0x1F));
25994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
26004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
26014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_packpx */
26024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
26034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector pixel __attribute__((__always_inline__))
26044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_packpx(vector unsigned int a, vector unsigned int b)
26054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
26064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector pixel)__builtin_altivec_vpkpx(a, b);
26074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
26084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
26094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vpkpx */
26104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
26114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector pixel __attribute__((__always_inline__))
26124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vpkpx(vector unsigned int a, vector unsigned int b)
26134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
26144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector pixel)__builtin_altivec_vpkpx(a, b);
26154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
26164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
26174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_packs */
26184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
26194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
26204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_packs(vector short a, vector short b)
26214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
26224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vpkshss(a, b);
26234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
26244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
26254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
26264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_packs(vector unsigned short a, vector unsigned short b)
26274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
26284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vpkuhus(a, b);
26294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
26304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
26314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed short __ATTRS_o_ai
26324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_packs(vector int a, vector int b)
26334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
26344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vpkswss(a, b);
26354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
26364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
26374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
26384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_packs(vector unsigned int a, vector unsigned int b)
26394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
26404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vpkuwus(a, b);
26414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
26424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
26434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vpkshss */
26444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
26454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __attribute__((__always_inline__))
26464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vpkshss(vector short a, vector short b)
26474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
26484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vpkshss(a, b);
26494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
26504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
26514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vpkuhus */
26524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
26534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __attribute__((__always_inline__))
26544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vpkuhus(vector unsigned short a, vector unsigned short b)
26554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
26564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vpkuhus(a, b);
26574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
26584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
26594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vpkswss */
26604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
26614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed short __attribute__((__always_inline__))
26624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vpkswss(vector int a, vector int b)
26634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
26644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vpkswss(a, b);
26654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
26664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
26674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vpkuwus */
26684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
26694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __attribute__((__always_inline__))
26704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vpkuwus(vector unsigned int a, vector unsigned int b)
26714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
26724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vpkuwus(a, b);
26734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
26744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
26754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_packsu */
26764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
26774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
26784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_packsu(vector short a, vector short b)
26794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
26804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vpkshus(a, b);
26814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
26824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
26834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
26844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_packsu(vector unsigned short a, vector unsigned short b)
26854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
26864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vpkuhus(a, b);
26874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
26884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
26894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
26904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_packsu(vector int a, vector int b)
26914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
26924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vpkswus(a, b);
26934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
26944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
26954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
26964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_packsu(vector unsigned int a, vector unsigned int b)
26974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
26984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vpkuwus(a, b);
26994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
27004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
27014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vpkshus */
27024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
27034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
27044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vpkshus(vector short a, vector short b)
27054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
27064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vpkshus(a, b);
27074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
27084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
27094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
27104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vpkshus(vector unsigned short a, vector unsigned short b)
27114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
27124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vpkuhus(a, b);
27134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
27144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
27154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vpkswus */
27164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
27174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
27184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vpkswus(vector int a, vector int b)
27194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
27204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vpkswus(a, b);
27214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
27224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
27234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
27244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vpkswus(vector unsigned int a, vector unsigned int b)
27254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
27264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vpkuwus(a, b);
27274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
27284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
27294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_perm */
27304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
27314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvector signed char __ATTRS_o_ai
27324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_perm(vector signed char a, vector signed char b, vector unsigned char c)
27334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
27344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_vperm_4si((vector int)a, (vector int)b, c);
27354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
27364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
27374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvector unsigned char __ATTRS_o_ai
27384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_perm(vector unsigned char a, vector unsigned char b, vector unsigned char c)
27394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
27404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_vperm_4si((vector int)a, (vector int)b, c);
27414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
27424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
27434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvector short __ATTRS_o_ai
27444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_perm(vector short a, vector short b, vector unsigned char c)
27454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
27464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vperm_4si((vector int)a, (vector int)b, c);
27474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
27484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
27494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvector unsigned short __ATTRS_o_ai
27504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_perm(vector unsigned short a, vector unsigned short b, vector unsigned char c)
27514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
27524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_vperm_4si((vector int)a, (vector int)b, c);
27534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
27544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
27554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvector int __ATTRS_o_ai
27564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_perm(vector int a, vector int b, vector unsigned char c)
27574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
27584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vperm_4si(a, b, c);
27594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
27604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
27614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvector unsigned int __ATTRS_o_ai
27624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_perm(vector unsigned int a, vector unsigned int b, vector unsigned char c)
27634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
27644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_vperm_4si((vector int)a, (vector int)b, c);
27654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
27664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
27674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvector float __ATTRS_o_ai
27684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_perm(vector float a, vector float b, vector unsigned char c)
27694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
27704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)__builtin_altivec_vperm_4si((vector int)a, (vector int)b, c);
27714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
27724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
27734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vperm */
27744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
27754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvector signed char __ATTRS_o_ai
27764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vperm(vector signed char a, vector signed char b, vector unsigned char c)
27774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
27784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_vperm_4si((vector int)a, (vector int)b, c);
27794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
27804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
27814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvector unsigned char __ATTRS_o_ai
27824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vperm(vector unsigned char a, vector unsigned char b, vector unsigned char c)
27834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
27844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_vperm_4si((vector int)a, (vector int)b, c);
27854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
27864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
27874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvector short __ATTRS_o_ai
27884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vperm(vector short a, vector short b, vector unsigned char c)
27894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
27904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vperm_4si((vector int)a, (vector int)b, c);
27914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
27924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
27934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvector unsigned short __ATTRS_o_ai
27944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vperm(vector unsigned short a, vector unsigned short b, vector unsigned char c)
27954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
27964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_vperm_4si((vector int)a, (vector int)b, c);
27974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
27984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
27994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvector int __ATTRS_o_ai
28004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vperm(vector int a, vector int b, vector unsigned char c)
28014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
28024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vperm_4si(a, b, c);
28034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
28044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
28054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvector unsigned int __ATTRS_o_ai
28064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vperm(vector unsigned int a, vector unsigned int b, vector unsigned char c)
28074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
28084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_vperm_4si((vector int)a, (vector int)b, c);
28094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
28104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
28114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvector float __ATTRS_o_ai
28124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vperm(vector float a, vector float b, vector unsigned char c)
28134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
28144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)__builtin_altivec_vperm_4si((vector int)a, (vector int)b, c);
28154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
28164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
28174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_re */
28184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
28194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvector float __attribute__((__always_inline__))
28204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_re(vector float a)
28214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
28224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vrefp(a);
28234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
28244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
28254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vrefp */
28264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
28274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvector float __attribute__((__always_inline__))
28284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vrefp(vector float a)
28294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
28304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vrefp(a);
28314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
28324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
28334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_rl */
28344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
28354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
28364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_rl(vector signed char a, vector unsigned char b)
28374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
28384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_vrlb((vector char)a, b);
28394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
28404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
28414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
28424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_rl(vector unsigned char a, vector unsigned char b)
28434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
28444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_vrlb((vector char)a, b);
28454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
28464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
28474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
28484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_rl(vector short a, vector unsigned short b)
28494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
28504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vrlh(a, b);
28514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
28524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
28534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
28544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_rl(vector unsigned short a, vector unsigned short b)
28554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
28564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_vrlh((vector short)a, b);
28574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
28584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
28594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
28604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_rl(vector int a, vector unsigned int b)
28614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
28624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vrlw(a, b);
28634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
28644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
28654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
28664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_rl(vector unsigned int a, vector unsigned int b)
28674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
28684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_vrlw((vector int)a, b);
28694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
28704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
28714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vrlb */
28724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
28734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
28744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vrlb(vector signed char a, vector unsigned char b)
28754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
28764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_vrlb((vector char)a, b);
28774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
28784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
28794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
28804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vrlb(vector unsigned char a, vector unsigned char b)
28814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
28824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_vrlb((vector char)a, b);
28834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
28844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
28854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vrlh */
28864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
28874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
28884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vrlh(vector short a, vector unsigned short b)
28894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
28904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vrlh(a, b);
28914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
28924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
28934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
28944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vrlh(vector unsigned short a, vector unsigned short b)
28954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
28964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_vrlh((vector short)a, b);
28974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
28984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
28994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vrlw */
29004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
29014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
29024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vrlw(vector int a, vector unsigned int b)
29034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
29044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vrlw(a, b);
29054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
29064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
29074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
29084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vrlw(vector unsigned int a, vector unsigned int b)
29094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
29104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_vrlw((vector int)a, b);
29114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
29124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
29134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_round */
29144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
29154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
29164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_round(vector float a)
29174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
29184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vrfin(a);
29194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
29204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
29214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vrfin */
29224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
29234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
29244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vrfin(vector float a)
29254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
29264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vrfin(a);
29274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
29284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
29294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_rsqrte */
29304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
29314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic __vector float __attribute__((__always_inline__))
29324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_rsqrte(vector float a)
29334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
29344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vrsqrtefp(a);
29354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
29364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
29374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vrsqrtefp */
29384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
29394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic __vector float __attribute__((__always_inline__))
29404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vrsqrtefp(vector float a)
29414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
29424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vrsqrtefp(a);
29434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
29444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
29454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_sel */
29464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
29474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vsel_4si vec_sel
29484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
29494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
29504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sel(vector signed char a, vector signed char b, vector unsigned char c)
29514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
29524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (a & ~(vector signed char)c) | (b & (vector signed char)c);
29534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
29544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
29554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
29564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sel(vector unsigned char a, vector unsigned char b, vector unsigned char c)
29574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
29584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (a & ~c) | (b & c);
29594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
29604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
29614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
29624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sel(vector short a, vector short b, vector unsigned short c)
29634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
29644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (a & ~(vector short)c) | (b & (vector short)c);
29654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
29664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
29674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
29684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sel(vector unsigned short a, vector unsigned short b, vector unsigned short c)
29694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
29704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (a & ~c) | (b & c);
29714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
29724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
29734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
29744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sel(vector int a, vector int b, vector unsigned int c)
29754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
29764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (a & ~(vector int)c) | (b & (vector int)c);
29774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
29784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
29794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
29804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sel(vector unsigned int a, vector unsigned int b, vector unsigned int c)
29814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
29824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (a & ~c) | (b & c);
29834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
29844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
29854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
29864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sel(vector float a, vector float b, vector unsigned int c)
29874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
29884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  vector int res = ((vector int)a & ~(vector int)c) | ((vector int)b & (vector int)c);
29894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)res;
29904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
29914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
29924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsel */
29934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
29944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
29954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsel(vector signed char a, vector signed char b, vector unsigned char c)
29964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
29974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (a & ~(vector signed char)c) | (b & (vector signed char)c);
29984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
29994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
30004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
30014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsel(vector unsigned char a, vector unsigned char b, vector unsigned char c)
30024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
30034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (a & ~c) | (b & c);
30044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
30054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
30064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
30074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsel(vector short a, vector short b, vector unsigned short c)
30084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
30094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (a & ~(vector short)c) | (b & (vector short)c);
30104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
30114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
30124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
30134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsel(vector unsigned short a, vector unsigned short b, vector unsigned short c)
30144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
30154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (a & ~c) | (b & c);
30164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
30174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
30184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
30194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsel(vector int a, vector int b, vector unsigned int c)
30204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
30214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (a & ~(vector int)c) | (b & (vector int)c);
30224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
30234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
30244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
30254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsel(vector unsigned int a, vector unsigned int b, vector unsigned int c)
30264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
30274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (a & ~c) | (b & c);
30284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
30294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
30304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
30314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsel(vector float a, vector float b, vector unsigned int c)
30324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
30334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  vector int res = ((vector int)a & ~(vector int)c) | ((vector int)b & (vector int)c);
30344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)res;
30354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
30364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
30374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_sl */
30384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
30394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
30404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sl(vector signed char a, vector unsigned char b)
30414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
30424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a << (vector signed char)b;
30434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
30444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
30454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
30464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sl(vector unsigned char a, vector unsigned char b)
30474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
30484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a << b;
30494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
30504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
30514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
30524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sl(vector short a, vector unsigned short b)
30534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
30544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a << (vector short)b;
30554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
30564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
30574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
30584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sl(vector unsigned short a, vector unsigned short b)
30594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
30604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a << b;
30614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
30624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
30634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
30644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sl(vector int a, vector unsigned int b)
30654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
30664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a << (vector int)b;
30674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
30684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
30694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
30704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sl(vector unsigned int a, vector unsigned int b)
30714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
30724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a << b;
30734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
30744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
30754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vslb */
30764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
30774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vslb vec_vslb
30784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
30794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
30804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslb(vector signed char a, vector unsigned char b)
30814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
30824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_sl(a, b);
30834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
30844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
30854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
30864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslb(vector unsigned char a, vector unsigned char b)
30874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
30884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_sl(a, b);
30894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
30904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
30914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vslh */
30924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
30934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vslh vec_vslh
30944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
30954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
30964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslh(vector short a, vector unsigned short b)
30974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
30984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_sl(a, b);
30994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
31004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
31014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
31024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslh(vector unsigned short a, vector unsigned short b)
31034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
31044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_sl(a, b);
31054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
31064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
31074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vslw */
31084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
31094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vslw vec_vslw
31104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
31114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
31124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslw(vector int a, vector unsigned int b)
31134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
31144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_sl(a, b);
31154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
31164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
31174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
31184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslw(vector unsigned int a, vector unsigned int b)
31194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
31204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_sl(a, b);
31214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
31224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
31234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_sld */
31244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
31254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vsldoi_4si vec_sld
31264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
31274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
31284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sld(vector signed char a, vector signed char b, unsigned char c)
31294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
31304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)vec_perm(a, b, (vector unsigned char)
31314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (c,   c+1, c+2,  c+3,  c+4,  c+5,  c+6,  c+7,
31324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     c+8, c+9, c+10, c+11, c+12, c+13, c+14, c+15));
31334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
31344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
31354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
31364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sld(vector unsigned char a, vector unsigned char b, unsigned char c)
31374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
31384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)vec_perm(a, b, (vector unsigned char)
31394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (c,   c+1, c+2,  c+3,  c+4,  c+5,  c+6,  c+7,
31404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     c+8, c+9, c+10, c+11, c+12, c+13, c+14, c+15));
31414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
31424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
31434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
31444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sld(vector short a, vector short b, unsigned char c)
31454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
31464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)vec_perm(a, b, (vector unsigned char)
31474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (c,   c+1, c+2,  c+3,  c+4,  c+5,  c+6,  c+7,
31484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     c+8, c+9, c+10, c+11, c+12, c+13, c+14, c+15));
31494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
31504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
31514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
31524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sld(vector unsigned short a, vector unsigned short b, unsigned char c)
31534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
31544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)vec_perm(a, b, (vector unsigned char)
31554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (c,   c+1, c+2,  c+3,  c+4,  c+5,  c+6,  c+7,
31564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     c+8, c+9, c+10, c+11, c+12, c+13, c+14, c+15));
31574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
31584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
31594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
31604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sld(vector int a, vector int b, unsigned char c)
31614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
31624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
31634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (c,   c+1, c+2,  c+3,  c+4,  c+5,  c+6,  c+7,
31644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     c+8, c+9, c+10, c+11, c+12, c+13, c+14, c+15));
31654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
31664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
31674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
31684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sld(vector unsigned int a, vector unsigned int b, unsigned char c)
31694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
31704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)vec_perm(a, b, (vector unsigned char)
31714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (c,   c+1, c+2,  c+3,  c+4,  c+5,  c+6,  c+7,
31724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     c+8, c+9, c+10, c+11, c+12, c+13, c+14, c+15));
31734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
31744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
31754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
31764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sld(vector float a, vector float b, unsigned char c)
31774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
31784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)vec_perm(a, b, (vector unsigned char)
31794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (c,   c+1, c+2,  c+3,  c+4,  c+5,  c+6,  c+7,
31804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     c+8, c+9, c+10, c+11, c+12, c+13, c+14, c+15));
31814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
31824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
31834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsldoi */
31844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
31854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
31864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsldoi(vector signed char a, vector signed char b, unsigned char c)
31874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
31884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)vec_perm(a, b, (vector unsigned char)
31894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (c,   c+1, c+2,  c+3,  c+4,  c+5,  c+6,  c+7,
31904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     c+8, c+9, c+10, c+11, c+12, c+13, c+14, c+15));
31914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
31924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
31934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
31944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsldoi(vector unsigned char a, vector unsigned char b, unsigned char c)
31954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
31964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)vec_perm(a, b, (vector unsigned char)
31974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (c,   c+1, c+2,  c+3,  c+4,  c+5,  c+6,  c+7,
31984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     c+8, c+9, c+10, c+11, c+12, c+13, c+14, c+15));
31994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
32004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
32014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
32024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsldoi(vector short a, vector short b, unsigned char c)
32034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
32044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)vec_perm(a, b, (vector unsigned char)
32054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (c,   c+1, c+2,  c+3,  c+4,  c+5,  c+6,  c+7,
32064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     c+8, c+9, c+10, c+11, c+12, c+13, c+14, c+15));
32074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
32084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
32094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
32104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsldoi(vector unsigned short a, vector unsigned short b, unsigned char c)
32114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
32124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)vec_perm(a, b, (vector unsigned char)
32134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (c,   c+1, c+2,  c+3,  c+4,  c+5,  c+6,  c+7,
32144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     c+8, c+9, c+10, c+11, c+12, c+13, c+14, c+15));
32154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
32164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
32174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
32184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsldoi(vector int a, vector int b, unsigned char c)
32194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
32204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, b, (vector unsigned char)
32214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (c,   c+1, c+2,  c+3,  c+4,  c+5,  c+6,  c+7,
32224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     c+8, c+9, c+10, c+11, c+12, c+13, c+14, c+15));
32234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
32244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
32254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
32264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsldoi(vector unsigned int a, vector unsigned int b, unsigned char c)
32274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
32284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)vec_perm(a, b, (vector unsigned char)
32294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (c,   c+1, c+2,  c+3,  c+4,  c+5,  c+6,  c+7,
32304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     c+8, c+9, c+10, c+11, c+12, c+13, c+14, c+15));
32314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
32324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
32334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
32344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsldoi(vector float a, vector float b, unsigned char c)
32354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
32364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)vec_perm(a, b, (vector unsigned char)
32374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (c,   c+1, c+2,  c+3,  c+4,  c+5,  c+6,  c+7,
32384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov     c+8, c+9, c+10, c+11, c+12, c+13, c+14, c+15));
32394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
32404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
32414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_sll */
32424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
32434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
32444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sll(vector signed char a, vector unsigned char b)
32454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
32464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_vsl((vector int)a, (vector int)b);
32474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
32484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
32494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
32504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sll(vector signed char a, vector unsigned short b)
32514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
32524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_vsl((vector int)a, (vector int)b);
32534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
32544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
32554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
32564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sll(vector signed char a, vector unsigned int b)
32574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
32584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_vsl((vector int)a, (vector int)b);
32594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
32604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
32614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
32624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sll(vector unsigned char a, vector unsigned char b)
32634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
32644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_vsl((vector int)a, (vector int)b);
32654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
32664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
32674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
32684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sll(vector unsigned char a, vector unsigned short b)
32694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
32704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_vsl((vector int)a, (vector int)b);
32714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
32724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
32734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
32744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sll(vector unsigned char a, vector unsigned int b)
32754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
32764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_vsl((vector int)a, (vector int)b);
32774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
32784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
32794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
32804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sll(vector short a, vector unsigned char b)
32814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
32824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vsl((vector int)a, (vector int)b);
32834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
32844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
32854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
32864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sll(vector short a, vector unsigned short b)
32874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
32884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vsl((vector int)a, (vector int)b);
32894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
32904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
32914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
32924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sll(vector short a, vector unsigned int b)
32934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
32944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vsl((vector int)a, (vector int)b);
32954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
32964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
32974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
32984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sll(vector unsigned short a, vector unsigned char b)
32994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
33004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_vsl((vector int)a, (vector int)b);
33014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
33024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
33034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
33044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sll(vector unsigned short a, vector unsigned short b)
33054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
33064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_vsl((vector int)a, (vector int)b);
33074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
33084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
33094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
33104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sll(vector unsigned short a, vector unsigned int b)
33114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
33124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_vsl((vector int)a, (vector int)b);
33134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
33144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
33154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
33164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sll(vector int a, vector unsigned char b)
33174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
33184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vsl(a, (vector int)b);
33194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
33204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
33214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
33224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sll(vector int a, vector unsigned short b)
33234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
33244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vsl(a, (vector int)b);
33254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
33264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
33274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
33284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sll(vector int a, vector unsigned int b)
33294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
33304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vsl(a, (vector int)b);
33314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
33324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
33334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
33344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sll(vector unsigned int a, vector unsigned char b)
33354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
33364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_vsl((vector int)a, (vector int)b);
33374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
33384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
33394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
33404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sll(vector unsigned int a, vector unsigned short b)
33414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
33424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_vsl((vector int)a, (vector int)b);
33434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
33444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
33454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
33464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sll(vector unsigned int a, vector unsigned int b)
33474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
33484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_vsl((vector int)a, (vector int)b);
33494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
33504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
33514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsl */
33524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
33534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
33544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsl(vector signed char a, vector unsigned char b)
33554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
33564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_vsl((vector int)a, (vector int)b);
33574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
33584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
33594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
33604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsl(vector signed char a, vector unsigned short b)
33614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
33624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_vsl((vector int)a, (vector int)b);
33634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
33644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
33654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
33664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsl(vector signed char a, vector unsigned int b)
33674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
33684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_vsl((vector int)a, (vector int)b);
33694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
33704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
33714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
33724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsl(vector unsigned char a, vector unsigned char b)
33734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
33744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_vsl((vector int)a, (vector int)b);
33754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
33764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
33774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
33784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsl(vector unsigned char a, vector unsigned short b)
33794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
33804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_vsl((vector int)a, (vector int)b);
33814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
33824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
33834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
33844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsl(vector unsigned char a, vector unsigned int b)
33854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
33864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_vsl((vector int)a, (vector int)b);
33874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
33884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
33894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
33904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsl(vector short a, vector unsigned char b)
33914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
33924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vsl((vector int)a, (vector int)b);
33934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
33944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
33954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
33964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsl(vector short a, vector unsigned short b)
33974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
33984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vsl((vector int)a, (vector int)b);
33994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
34004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
34014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
34024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsl(vector short a, vector unsigned int b)
34034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
34044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vsl((vector int)a, (vector int)b);
34054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
34064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
34074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
34084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsl(vector unsigned short a, vector unsigned char b)
34094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
34104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_vsl((vector int)a, (vector int)b);
34114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
34124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
34134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
34144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsl(vector unsigned short a, vector unsigned short b)
34154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
34164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_vsl((vector int)a, (vector int)b);
34174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
34184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
34194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
34204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsl(vector unsigned short a, vector unsigned int b)
34214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
34224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_vsl((vector int)a, (vector int)b);
34234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
34244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
34254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
34264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsl(vector int a, vector unsigned char b)
34274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
34284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vsl(a, (vector int)b);
34294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
34304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
34314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
34324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsl(vector int a, vector unsigned short b)
34334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
34344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vsl(a, (vector int)b);
34354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
34364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
34374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
34384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsl(vector int a, vector unsigned int b)
34394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
34404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vsl(a, (vector int)b);
34414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
34424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
34434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
34444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsl(vector unsigned int a, vector unsigned char b)
34454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
34464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_vsl((vector int)a, (vector int)b);
34474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
34484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
34494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
34504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsl(vector unsigned int a, vector unsigned short b)
34514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
34524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_vsl((vector int)a, (vector int)b);
34534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
34544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
34554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
34564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsl(vector unsigned int a, vector unsigned int b)
34574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
34584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_vsl((vector int)a, (vector int)b);
34594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
34604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
34614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_slo */
34624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
34634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
34644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_slo(vector signed char a, vector signed char b)
34654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
34664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_vslo((vector int)a, (vector int)b);
34674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
34684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
34694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
34704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_slo(vector signed char a, vector unsigned char b)
34714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
34724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_vslo((vector int)a, (vector int)b);
34734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
34744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
34754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
34764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_slo(vector unsigned char a, vector signed char b)
34774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
34784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_vslo((vector int)a, (vector int)b);
34794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
34804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
34814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
34824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_slo(vector unsigned char a, vector unsigned char b)
34834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
34844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_vslo((vector int)a, (vector int)b);
34854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
34864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
34874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
34884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_slo(vector short a, vector signed char b)
34894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
34904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vslo((vector int)a, (vector int)b);
34914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
34924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
34934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
34944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_slo(vector short a, vector unsigned char b)
34954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
34964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vslo((vector int)a, (vector int)b);
34974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
34984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
34994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
35004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_slo(vector unsigned short a, vector signed char b)
35014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
35024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_vslo((vector int)a, (vector int)b);
35034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
35044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
35064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_slo(vector unsigned short a, vector unsigned char b)
35074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
35084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_vslo((vector int)a, (vector int)b);
35094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
35104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
35124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_slo(vector int a, vector signed char b)
35134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
35144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vslo(a, (vector int)b);
35154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
35164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
35184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_slo(vector int a, vector unsigned char b)
35194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
35204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vslo(a, (vector int)b);
35214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
35224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
35244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_slo(vector unsigned int a, vector signed char b)
35254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
35264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_vslo((vector int)a, (vector int)b);
35274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
35284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
35304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_slo(vector unsigned int a, vector unsigned char b)
35314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
35324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_vslo((vector int)a, (vector int)b);
35334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
35344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
35364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_slo(vector float a, vector signed char b)
35374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
35384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)__builtin_altivec_vslo((vector int)a, (vector int)b);
35394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
35404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
35424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_slo(vector float a, vector unsigned char b)
35434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
35444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)__builtin_altivec_vslo((vector int)a, (vector int)b);
35454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
35464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vslo */
35484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
35504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslo(vector signed char a, vector signed char b)
35514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
35524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_vslo((vector int)a, (vector int)b);
35534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
35544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
35564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslo(vector signed char a, vector unsigned char b)
35574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
35584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_vslo((vector int)a, (vector int)b);
35594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
35604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
35624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslo(vector unsigned char a, vector signed char b)
35634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
35644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_vslo((vector int)a, (vector int)b);
35654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
35664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
35684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslo(vector unsigned char a, vector unsigned char b)
35694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
35704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_vslo((vector int)a, (vector int)b);
35714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
35724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
35744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslo(vector short a, vector signed char b)
35754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
35764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vslo((vector int)a, (vector int)b);
35774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
35784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
35804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslo(vector short a, vector unsigned char b)
35814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
35824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vslo((vector int)a, (vector int)b);
35834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
35844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
35864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslo(vector unsigned short a, vector signed char b)
35874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
35884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_vslo((vector int)a, (vector int)b);
35894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
35904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
35924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslo(vector unsigned short a, vector unsigned char b)
35934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
35944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_vslo((vector int)a, (vector int)b);
35954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
35964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
35974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
35984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslo(vector int a, vector signed char b)
35994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
36004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vslo(a, (vector int)b);
36014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
36024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
36034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
36044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslo(vector int a, vector unsigned char b)
36054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
36064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vslo(a, (vector int)b);
36074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
36084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
36094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
36104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslo(vector unsigned int a, vector signed char b)
36114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
36124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_vslo((vector int)a, (vector int)b);
36134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
36144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
36154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
36164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslo(vector unsigned int a, vector unsigned char b)
36174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
36184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_vslo((vector int)a, (vector int)b);
36194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
36204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
36214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
36224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslo(vector float a, vector signed char b)
36234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
36244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)__builtin_altivec_vslo((vector int)a, (vector int)b);
36254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
36264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
36274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
36284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vslo(vector float a, vector unsigned char b)
36294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
36304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)__builtin_altivec_vslo((vector int)a, (vector int)b);
36314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
36324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
36334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_splat */
36344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
36354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
36364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_splat(vector signed char a, unsigned char b)
36374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
36384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)vec_perm(a, a, (vector unsigned char)(b));
36394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
36404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
36414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
36424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_splat(vector unsigned char a, unsigned char b)
36434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
36444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)vec_perm(a, a, (vector unsigned char)(b));
36454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
36464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
36474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
36484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_splat(vector short a, unsigned char b)
36494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
36504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  b *= 2;
36514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)vec_perm(a, a, (vector unsigned char)
36524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (b, b+1, b, b+1, b, b+1, b, b+1, b, b+1, b, b+1, b, b+1, b, b+1));
36534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
36544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
36554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
36564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_splat(vector unsigned short a, unsigned char b)
36574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
36584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  b *= 2;
36594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)vec_perm(a, a, (vector unsigned char)
36604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (b, b+1, b, b+1, b, b+1, b, b+1, b, b+1, b, b+1, b, b+1, b, b+1));
36614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
36624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
36634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
36644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_splat(vector int a, unsigned char b)
36654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
36664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  b *= 4;
36674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return vec_perm(a, a, (vector unsigned char)
36684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (b, b+1, b+2, b+3, b, b+1, b+2, b+3, b, b+1, b+2, b+3, b, b+1, b+2, b+3));
36694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
36704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
36714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
36724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_splat(vector unsigned int a, unsigned char b)
36734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
36744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  b *= 4;
36754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)vec_perm(a, a, (vector unsigned char)
36764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (b, b+1, b+2, b+3, b, b+1, b+2, b+3, b, b+1, b+2, b+3, b, b+1, b+2, b+3));
36774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
36784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
36794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
36804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_splat(vector float a, unsigned char b)
36814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
36824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  b *= 4;
36834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)vec_perm(a, a, (vector unsigned char)
36844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (b, b+1, b+2, b+3, b, b+1, b+2, b+3, b, b+1, b+2, b+3, b, b+1, b+2, b+3));
36854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
36864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
36874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vspltb */
36884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
36894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vspltb vec_vspltb
36904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
36914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
36924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vspltb(vector signed char a, unsigned char b)
36934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
36944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)vec_perm(a, a, (vector unsigned char)(b));
36954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
36964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
36974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
36984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vspltb(vector unsigned char a, unsigned char b)
36994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
37004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)vec_perm(a, a, (vector unsigned char)(b));
37014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
37024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
37034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsplth */
37044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
37054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vsplth vec_vsplth
37064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
37074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
37084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsplth(vector short a, unsigned char b)
37094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
37104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  b *= 2;
37114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)vec_perm(a, a, (vector unsigned char)
37124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (b, b+1, b, b+1, b, b+1, b, b+1, b, b+1, b, b+1, b, b+1, b, b+1));
37134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
37144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
37154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
37164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsplth(vector unsigned short a, unsigned char b)
37174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
37184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  b *= 2;
37194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)vec_perm(a, a, (vector unsigned char)
37204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (b, b+1, b, b+1, b, b+1, b, b+1, b, b+1, b, b+1, b, b+1, b, b+1));
37214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
37224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
37234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vspltw */
37244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
37254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vspltw vec_vspltw
37264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
37274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
37284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vspltw(vector int a, unsigned char b)
37294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
37304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  b *= 4;
37314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)vec_perm(a, a, (vector unsigned char)
37324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (b, b+1, b+2, b+3, b, b+1, b+2, b+3, b, b+1, b+2, b+3, b, b+1, b+2, b+3));
37334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
37344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
37354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
37364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vspltw(vector unsigned int a, unsigned char b)
37374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
37384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  b *= 4;
37394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)vec_perm(a, a, (vector unsigned char)
37404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (b, b+1, b+2, b+3, b, b+1, b+2, b+3, b, b+1, b+2, b+3, b, b+1, b+2, b+3));
37414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
37424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
37434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
37444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vspltw(vector float a, unsigned char b)
37454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
37464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  b *= 4;
37474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)vec_perm(a, a, (vector unsigned char)
37484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov    (b, b+1, b+2, b+3, b, b+1, b+2, b+3, b, b+1, b+2, b+3, b, b+1, b+2, b+3));
37494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
37504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
37514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_splat_s8 */
37524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
37534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vspltisb vec_splat_s8
37544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
37554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov// FIXME: parameter should be treated as 5-bit signed literal
37564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
37574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_splat_s8(signed char a)
37584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
37594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)(a);
37604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
37614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
37624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vspltisb */
37634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
37644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov// FIXME: parameter should be treated as 5-bit signed literal
37654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
37664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vspltisb(signed char a)
37674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
37684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)(a);
37694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
37704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
37714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_splat_s16 */
37724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
37734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vspltish vec_splat_s16
37744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
37754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov// FIXME: parameter should be treated as 5-bit signed literal
37764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
37774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_splat_s16(signed char a)
37784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
37794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)(a);
37804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
37814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
37824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vspltish */
37834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
37844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov// FIXME: parameter should be treated as 5-bit signed literal
37854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
37864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vspltish(signed char a)
37874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
37884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)(a);
37894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
37904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
37914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_splat_s32 */
37924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
37934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vspltisw vec_splat_s32
37944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
37954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov// FIXME: parameter should be treated as 5-bit signed literal
37964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
37974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_splat_s32(signed char a)
37984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
37994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)(a);
38004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
38014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
38024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vspltisw */
38034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
38044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov// FIXME: parameter should be treated as 5-bit signed literal
38054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
38064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vspltisw(signed char a)
38074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
38084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)(a);
38094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
38104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
38114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_splat_u8 */
38124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
38134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov// FIXME: parameter should be treated as 5-bit signed literal
38144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
38154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_splat_u8(unsigned char a)
38164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
38174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)(a);
38184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
38194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
38204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_splat_u16 */
38214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
38224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov// FIXME: parameter should be treated as 5-bit signed literal
38234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
38244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_splat_u16(signed char a)
38254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
38264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)(a);
38274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
38284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
38294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_splat_u32 */
38304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
38314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov// FIXME: parameter should be treated as 5-bit signed literal
38324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
38334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_splat_u32(signed char a)
38344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
38354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)(a);
38364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
38374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
38384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_sr */
38394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
38404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
38414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sr(vector signed char a, vector unsigned char b)
38424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
38434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a >> (vector signed char)b;
38444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
38454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
38464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
38474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sr(vector unsigned char a, vector unsigned char b)
38484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
38494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a >> b;
38504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
38514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
38524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
38534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sr(vector short a, vector unsigned short b)
38544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
38554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a >> (vector short)b;
38564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
38574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
38584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
38594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sr(vector unsigned short a, vector unsigned short b)
38604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
38614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a >> b;
38624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
38634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
38644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
38654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sr(vector int a, vector unsigned int b)
38664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
38674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a >> (vector int)b;
38684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
38694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
38704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
38714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sr(vector unsigned int a, vector unsigned int b)
38724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
38734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a >> b;
38744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
38754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
38764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsrb */
38774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
38784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vsrb vec_vsrb
38794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
38804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
38814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsrb(vector signed char a, vector unsigned char b)
38824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
38834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a >> (vector signed char)b;
38844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
38854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
38864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
38874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsrb(vector unsigned char a, vector unsigned char b)
38884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
38894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a >> b;
38904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
38914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
38924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsrh */
38934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
38944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vsrh vec_vsrh
38954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
38964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
38974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsrh(vector short a, vector unsigned short b)
38984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
38994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a >> (vector short)b;
39004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
39014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
39024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
39034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsrh(vector unsigned short a, vector unsigned short b)
39044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
39054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a >> b;
39064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
39074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
39084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsrw */
39094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
39104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vsrw vec_vsrw
39114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
39124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
39134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsrw(vector int a, vector unsigned int b)
39144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
39154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a >> (vector int)b;
39164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
39174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
39184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
39194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsrw(vector unsigned int a, vector unsigned int b)
39204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
39214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a >> b;
39224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
39234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
39244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_sra */
39254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
39264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
39274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sra(vector signed char a, vector unsigned char b)
39284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
39294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_vsrab((vector char)a, b);
39304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
39314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
39324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
39334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sra(vector unsigned char a, vector unsigned char b)
39344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
39354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_vsrab((vector char)a, b);
39364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
39374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
39384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
39394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sra(vector short a, vector unsigned short b)
39404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
39414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsrah(a, (vector unsigned short)b);
39424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
39434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
39444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
39454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sra(vector unsigned short a, vector unsigned short b)
39464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
39474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_vsrah((vector short)a, b);
39484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
39494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
39504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
39514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sra(vector int a, vector unsigned int b)
39524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
39534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsraw(a, b);
39544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
39554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
39564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
39574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sra(vector unsigned int a, vector unsigned int b)
39584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
39594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_vsraw((vector int)a, b);
39604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
39614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
39624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsrab */
39634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
39644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
39654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsrab(vector signed char a, vector unsigned char b)
39664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
39674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_vsrab((vector char)a, b);
39684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
39694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
39704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
39714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsrab(vector unsigned char a, vector unsigned char b)
39724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
39734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_vsrab((vector char)a, b);
39744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
39754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
39764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsrah */
39774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
39784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
39794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsrah(vector short a, vector unsigned short b)
39804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
39814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsrah(a, (vector unsigned short)b);
39824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
39834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
39844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
39854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsrah(vector unsigned short a, vector unsigned short b)
39864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
39874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_vsrah((vector short)a, b);
39884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
39894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
39904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsraw */
39914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
39924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
39934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsraw(vector int a, vector unsigned int b)
39944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
39954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsraw(a, b);
39964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
39974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
39984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
39994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsraw(vector unsigned int a, vector unsigned int b)
40004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
40014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_vsraw((vector int)a, b);
40024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
40034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
40044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_srl */
40054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
40064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
40074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_srl(vector signed char a, vector unsigned char b)
40084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
40094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_vsr((vector int)a, (vector int)b);
40104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
40114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
40124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
40134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_srl(vector signed char a, vector unsigned short b)
40144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
40154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_vsr((vector int)a, (vector int)b);
40164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
40174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
40184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
40194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_srl(vector signed char a, vector unsigned int b)
40204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
40214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_vsr((vector int)a, (vector int)b);
40224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
40234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
40244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
40254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_srl(vector unsigned char a, vector unsigned char b)
40264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
40274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_vsr((vector int)a, (vector int)b);
40284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
40294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
40304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
40314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_srl(vector unsigned char a, vector unsigned short b)
40324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
40334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_vsr((vector int)a, (vector int)b);
40344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
40354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
40364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
40374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_srl(vector unsigned char a, vector unsigned int b)
40384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
40394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_vsr((vector int)a, (vector int)b);
40404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
40414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
40424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
40434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_srl(vector short a, vector unsigned char b)
40444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
40454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vsr((vector int)a, (vector int)b);
40464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
40474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
40484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
40494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_srl(vector short a, vector unsigned short b)
40504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
40514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vsr((vector int)a, (vector int)b);
40524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
40534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
40544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
40554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_srl(vector short a, vector unsigned int b)
40564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
40574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vsr((vector int)a, (vector int)b);
40584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
40594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
40604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
40614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_srl(vector unsigned short a, vector unsigned char b)
40624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
40634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_vsr((vector int)a, (vector int)b);
40644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
40654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
40664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
40674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_srl(vector unsigned short a, vector unsigned short b)
40684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
40694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_vsr((vector int)a, (vector int)b);
40704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
40714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
40724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
40734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_srl(vector unsigned short a, vector unsigned int b)
40744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
40754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_vsr((vector int)a, (vector int)b);
40764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
40774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
40784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
40794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_srl(vector int a, vector unsigned char b)
40804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
40814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vsr(a, (vector int)b);
40824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
40834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
40844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
40854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_srl(vector int a, vector unsigned short b)
40864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
40874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vsr(a, (vector int)b);
40884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
40894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
40904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
40914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_srl(vector int a, vector unsigned int b)
40924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
40934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vsr(a, (vector int)b);
40944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
40954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
40964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
40974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_srl(vector unsigned int a, vector unsigned char b)
40984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
40994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_vsr((vector int)a, (vector int)b);
41004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
41014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
41024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
41034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_srl(vector unsigned int a, vector unsigned short b)
41044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
41054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_vsr((vector int)a, (vector int)b);
41064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
41074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
41084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
41094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_srl(vector unsigned int a, vector unsigned int b)
41104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
41114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_vsr((vector int)a, (vector int)b);
41124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
41134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
41144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsr */
41154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
41164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
41174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsr(vector signed char a, vector unsigned char b)
41184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
41194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_vsr((vector int)a, (vector int)b);
41204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
41214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
41224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
41234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsr(vector signed char a, vector unsigned short b)
41244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
41254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_vsr((vector int)a, (vector int)b);
41264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
41274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
41284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
41294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsr(vector signed char a, vector unsigned int b)
41304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
41314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_vsr((vector int)a, (vector int)b);
41324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
41334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
41344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
41354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsr(vector unsigned char a, vector unsigned char b)
41364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
41374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_vsr((vector int)a, (vector int)b);
41384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
41394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
41404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
41414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsr(vector unsigned char a, vector unsigned short b)
41424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
41434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_vsr((vector int)a, (vector int)b);
41444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
41454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
41464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
41474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsr(vector unsigned char a, vector unsigned int b)
41484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
41494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_vsr((vector int)a, (vector int)b);
41504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
41514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
41524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
41534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsr(vector short a, vector unsigned char b)
41544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
41554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vsr((vector int)a, (vector int)b);
41564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
41574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
41584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
41594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsr(vector short a, vector unsigned short b)
41604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
41614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vsr((vector int)a, (vector int)b);
41624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
41634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
41644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
41654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsr(vector short a, vector unsigned int b)
41664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
41674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vsr((vector int)a, (vector int)b);
41684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
41694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
41704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
41714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsr(vector unsigned short a, vector unsigned char b)
41724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
41734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_vsr((vector int)a, (vector int)b);
41744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
41754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
41764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
41774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsr(vector unsigned short a, vector unsigned short b)
41784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
41794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_vsr((vector int)a, (vector int)b);
41804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
41814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
41824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
41834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsr(vector unsigned short a, vector unsigned int b)
41844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
41854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_vsr((vector int)a, (vector int)b);
41864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
41874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
41884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
41894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsr(vector int a, vector unsigned char b)
41904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
41914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vsr(a, (vector int)b);
41924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
41934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
41944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
41954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsr(vector int a, vector unsigned short b)
41964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
41974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vsr(a, (vector int)b);
41984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
41994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
42014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsr(vector int a, vector unsigned int b)
42024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
42034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vsr(a, (vector int)b);
42044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
42054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
42074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsr(vector unsigned int a, vector unsigned char b)
42084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
42094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_vsr((vector int)a, (vector int)b);
42104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
42114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
42134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsr(vector unsigned int a, vector unsigned short b)
42144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
42154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_vsr((vector int)a, (vector int)b);
42164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
42174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
42194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsr(vector unsigned int a, vector unsigned int b)
42204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
42214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_vsr((vector int)a, (vector int)b);
42224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
42234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_sro */
42254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
42274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sro(vector signed char a, vector signed char b)
42284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
42294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_vsro((vector int)a, (vector int)b);
42304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
42314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
42334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sro(vector signed char a, vector unsigned char b)
42344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
42354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_vsro((vector int)a, (vector int)b);
42364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
42374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
42394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sro(vector unsigned char a, vector signed char b)
42404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
42414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_vsro((vector int)a, (vector int)b);
42424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
42434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
42454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sro(vector unsigned char a, vector unsigned char b)
42464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
42474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_vsro((vector int)a, (vector int)b);
42484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
42494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
42514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sro(vector short a, vector signed char b)
42524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
42534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vsro((vector int)a, (vector int)b);
42544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
42554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
42574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sro(vector short a, vector unsigned char b)
42584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
42594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vsro((vector int)a, (vector int)b);
42604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
42614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
42634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sro(vector unsigned short a, vector signed char b)
42644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
42654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_vsro((vector int)a, (vector int)b);
42664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
42674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
42694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sro(vector unsigned short a, vector unsigned char b)
42704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
42714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_vsro((vector int)a, (vector int)b);
42724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
42734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
42754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sro(vector int a, vector signed char b)
42764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
42774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vsro(a, (vector int)b);
42784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
42794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
42814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sro(vector int a, vector unsigned char b)
42824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
42834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vsro(a, (vector int)b);
42844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
42854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
42874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sro(vector unsigned int a, vector signed char b)
42884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
42894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_vsro((vector int)a, (vector int)b);
42904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
42914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
42934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sro(vector unsigned int a, vector unsigned char b)
42944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
42954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_vsro((vector int)a, (vector int)b);
42964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
42974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
42984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
42994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sro(vector float a, vector signed char b)
43004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
43014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)__builtin_altivec_vsro((vector int)a, (vector int)b);
43024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
43034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
43044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
43054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sro(vector float a, vector unsigned char b)
43064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
43074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)__builtin_altivec_vsro((vector int)a, (vector int)b);
43084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
43094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
43104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsro */
43114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
43124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
43134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsro(vector signed char a, vector signed char b)
43144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
43154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_vsro((vector int)a, (vector int)b);
43164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
43174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
43184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
43194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsro(vector signed char a, vector unsigned char b)
43204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
43214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector signed char)__builtin_altivec_vsro((vector int)a, (vector int)b);
43224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
43234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
43244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
43254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsro(vector unsigned char a, vector signed char b)
43264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
43274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_vsro((vector int)a, (vector int)b);
43284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
43294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
43304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
43314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsro(vector unsigned char a, vector unsigned char b)
43324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
43334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned char)__builtin_altivec_vsro((vector int)a, (vector int)b);
43344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
43354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
43364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
43374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsro(vector short a, vector signed char b)
43384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
43394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vsro((vector int)a, (vector int)b);
43404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
43414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
43424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
43434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsro(vector short a, vector unsigned char b)
43444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
43454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector short)__builtin_altivec_vsro((vector int)a, (vector int)b);
43464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
43474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
43484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
43494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsro(vector unsigned short a, vector signed char b)
43504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
43514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_vsro((vector int)a, (vector int)b);
43524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
43534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
43544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
43554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsro(vector unsigned short a, vector unsigned char b)
43564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
43574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned short)__builtin_altivec_vsro((vector int)a, (vector int)b);
43584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
43594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
43604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
43614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsro(vector int a, vector signed char b)
43624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
43634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vsro(a, (vector int)b);
43644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
43654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
43664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
43674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsro(vector int a, vector unsigned char b)
43684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
43694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector int)__builtin_altivec_vsro(a, (vector int)b);
43704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
43714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
43724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
43734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsro(vector unsigned int a, vector signed char b)
43744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
43754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_vsro((vector int)a, (vector int)b);
43764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
43774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
43784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
43794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsro(vector unsigned int a, vector unsigned char b)
43804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
43814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector unsigned int)__builtin_altivec_vsro((vector int)a, (vector int)b);
43824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
43834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
43844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
43854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsro(vector float a, vector signed char b)
43864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
43874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)__builtin_altivec_vsro((vector int)a, (vector int)b);
43884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
43894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
43904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
43914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsro(vector float a, vector unsigned char b)
43924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
43934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)__builtin_altivec_vsro((vector int)a, (vector int)b);
43944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
43954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
43964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_st */
43974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
43984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
43994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_st(vector signed char a, int b, vector signed char *c)
44004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
44014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
44024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
44034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
44044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
44054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_st(vector signed char a, int b, signed char *c)
44064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
44074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
44084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
44094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
44104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
44114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_st(vector unsigned char a, int b, vector unsigned char *c)
44124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
44134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
44144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
44154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
44164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
44174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_st(vector unsigned char a, int b, unsigned char *c)
44184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
44194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
44204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
44214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
44224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
44234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_st(vector short a, int b, vector short *c)
44244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
44254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
44264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
44274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
44284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
44294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_st(vector short a, int b, short *c)
44304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
44314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
44324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
44334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
44344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
44354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_st(vector unsigned short a, int b, vector unsigned short *c)
44364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
44374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
44384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
44394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
44404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
44414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_st(vector unsigned short a, int b, unsigned short *c)
44424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
44434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
44444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
44454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
44464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
44474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_st(vector int a, int b, vector int *c)
44484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
44494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx(a, b, c);
44504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
44514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
44524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
44534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_st(vector int a, int b, int *c)
44544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
44554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx(a, b, c);
44564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
44574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
44584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
44594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_st(vector unsigned int a, int b, vector unsigned int *c)
44604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
44614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
44624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
44634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
44644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
44654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_st(vector unsigned int a, int b, unsigned int *c)
44664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
44674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
44684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
44694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
44704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
44714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_st(vector float a, int b, vector float *c)
44724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
44734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
44744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
44754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
44764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
44774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_st(vector float a, int b, float *c)
44784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
44794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
44804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
44814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
44824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_stvx */
44834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
44844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
44854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvx(vector signed char a, int b, vector signed char *c)
44864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
44874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
44884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
44894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
44904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
44914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvx(vector signed char a, int b, signed char *c)
44924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
44934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
44944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
44954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
44964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
44974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvx(vector unsigned char a, int b, vector unsigned char *c)
44984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
44994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
45004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
45014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
45024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
45034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvx(vector unsigned char a, int b, unsigned char *c)
45044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
45054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
45064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
45074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
45084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
45094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvx(vector short a, int b, vector short *c)
45104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
45114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
45124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
45134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
45144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
45154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvx(vector short a, int b, short *c)
45164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
45174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
45184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
45194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
45204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
45214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvx(vector unsigned short a, int b, vector unsigned short *c)
45224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
45234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
45244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
45254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
45264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
45274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvx(vector unsigned short a, int b, unsigned short *c)
45284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
45294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
45304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
45314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
45324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
45334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvx(vector int a, int b, vector int *c)
45344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
45354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx(a, b, c);
45364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
45374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
45384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
45394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvx(vector int a, int b, int *c)
45404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
45414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx(a, b, c);
45424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
45434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
45444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
45454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvx(vector unsigned int a, int b, vector unsigned int *c)
45464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
45474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
45484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
45494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
45504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
45514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvx(vector unsigned int a, int b, unsigned int *c)
45524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
45534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
45544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
45554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
45564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
45574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvx(vector float a, int b, vector float *c)
45584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
45594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
45604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
45614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
45624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
45634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvx(vector float a, int b, float *c)
45644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
45654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvx((vector int)a, b, c);
45664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
45674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
45684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_ste */
45694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
45704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
45714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ste(vector signed char a, int b, signed char *c)
45724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
45734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvebx((vector char)a, b, c);
45744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
45754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
45764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
45774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ste(vector unsigned char a, int b, unsigned char *c)
45784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
45794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvebx((vector char)a, b, c);
45804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
45814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
45824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
45834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ste(vector short a, int b, short *c)
45844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
45854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvehx(a, b, c);
45864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
45874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
45884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
45894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ste(vector unsigned short a, int b, unsigned short *c)
45904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
45914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvehx((vector short)a, b, c);
45924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
45934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
45944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
45954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ste(vector int a, int b, int *c)
45964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
45974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvewx(a, b, c);
45984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
45994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
46004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
46014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ste(vector unsigned int a, int b, unsigned int *c)
46024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
46034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvewx((vector int)a, b, c);
46044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
46054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
46064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
46074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_ste(vector float a, int b, float *c)
46084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
46094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvewx((vector int)a, b, c);
46104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
46114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
46124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_stvebx */
46134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
46144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
46154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvebx(vector signed char a, int b, signed char *c)
46164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
46174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvebx((vector char)a, b, c);
46184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
46194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
46204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
46214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvebx(vector unsigned char a, int b, unsigned char *c)
46224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
46234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvebx((vector char)a, b, c);
46244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
46254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
46264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_stvehx */
46274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
46284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
46294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvehx(vector short a, int b, short *c)
46304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
46314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvehx(a, b, c);
46324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
46334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
46344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
46354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvehx(vector unsigned short a, int b, unsigned short *c)
46364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
46374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvehx((vector short)a, b, c);
46384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
46394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
46404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_stvewx */
46414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
46424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
46434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvewx(vector int a, int b, int *c)
46444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
46454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvewx(a, b, c);
46464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
46474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
46484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
46494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvewx(vector unsigned int a, int b, unsigned int *c)
46504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
46514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvewx((vector int)a, b, c);
46524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
46534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
46544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
46554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvewx(vector float a, int b, float *c)
46564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
46574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvewx((vector int)a, b, c);
46584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
46594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
46604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_stl */
46614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
46624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
46634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stl(vector signed char a, int b, vector signed char *c)
46644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
46654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
46664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
46674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
46684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
46694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stl(vector signed char a, int b, signed char *c)
46704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
46714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
46724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
46734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
46744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
46754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stl(vector unsigned char a, int b, vector unsigned char *c)
46764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
46774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
46784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
46794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
46804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
46814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stl(vector unsigned char a, int b, unsigned char *c)
46824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
46834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
46844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
46854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
46864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
46874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stl(vector short a, int b, vector short *c)
46884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
46894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
46904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
46914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
46924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
46934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stl(vector short a, int b, short *c)
46944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
46954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
46964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
46974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
46984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
46994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stl(vector unsigned short a, int b, vector unsigned short *c)
47004d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
47014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
47024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
47034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
47044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
47054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stl(vector unsigned short a, int b, unsigned short *c)
47064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
47074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
47084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
47094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
47104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
47114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stl(vector int a, int b, vector int *c)
47124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
47134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl(a, b, c);
47144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
47154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
47164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
47174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stl(vector int a, int b, int *c)
47184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
47194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl(a, b, c);
47204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
47214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
47224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
47234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stl(vector unsigned int a, int b, vector unsigned int *c)
47244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
47254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
47264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
47274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
47284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
47294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stl(vector unsigned int a, int b, unsigned int *c)
47304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
47314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
47324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
47334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
47344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
47354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stl(vector float a, int b, vector float *c)
47364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
47374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
47384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
47394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
47404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
47414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stl(vector float a, int b, float *c)
47424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
47434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
47444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
47454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
47464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_stvxl */
47474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
47484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
47494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvxl(vector signed char a, int b, vector signed char *c)
47504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
47514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
47524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
47534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
47544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
47554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvxl(vector signed char a, int b, signed char *c)
47564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
47574d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
47584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
47594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
47604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
47614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvxl(vector unsigned char a, int b, vector unsigned char *c)
47624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov{
47634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
47644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov}
47654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
47664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
47674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvxl(vector unsigned char a, int b, unsigned char *c)
4768dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
47694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
4770dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
4771dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
47724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
47734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvxl(vector short a, int b, vector short *c)
4774dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
47754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
4776dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
4777dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
47784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
47794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvxl(vector short a, int b, short *c)
4780dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
47814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
4782dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
4783dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
47844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
47854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvxl(vector unsigned short a, int b, vector unsigned short *c)
4786dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
47874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
4788dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
4789dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
47904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
47914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvxl(vector unsigned short a, int b, unsigned short *c)
4792dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
47934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
4794dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
4795dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
47964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
47974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvxl(vector int a, int b, vector int *c)
4798dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
47994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl(a, b, c);
4800dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
4801dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
48024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
48034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvxl(vector int a, int b, int *c)
4804dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
48054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl(a, b, c);
4806dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
4807dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
48084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
48094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvxl(vector unsigned int a, int b, vector unsigned int *c)
4810dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
48114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
4812dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
4813dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
48144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
48154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvxl(vector unsigned int a, int b, unsigned int *c)
4816dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
48174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
4818dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
4819dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
48204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
48214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvxl(vector float a, int b, vector float *c)
4822dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
48234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
4824dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
4825dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
48264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic void __ATTRS_o_ai
48274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_stvxl(vector float a, int b, float *c)
4828dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
48294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  __builtin_altivec_stvxl((vector int)a, b, c);
4830dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
4831dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
4832dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_sub */
4833dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
48344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
4835dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_sub(vector signed char a, vector signed char b)
4836dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
4837dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return a - b;
4838dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
4839dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
48404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
4841dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_sub(vector unsigned char a, vector unsigned char b)
4842dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
4843dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return a - b;
4844dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
4845dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
48464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
4847dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_sub(vector short a, vector short b)
4848dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
4849dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return a - b;
4850dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
4851dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
48524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
4853dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_sub(vector unsigned short a, vector unsigned short b)
4854dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
4855dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return a - b;
4856dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
4857dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
48584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
4859dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_sub(vector int a, vector int b)
4860dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
4861dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return a - b;
4862dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
4863dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
48644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
4865dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_sub(vector unsigned int a, vector unsigned int b)
4866dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
4867dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return a - b;
4868dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
4869dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
48704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
4871dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_sub(vector float a, vector float b)
4872dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
4873dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return a - b;
4874dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
4875dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
48764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsububm */
4877dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
48784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vsububm vec_vsububm
4879dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
48804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
48814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsububm(vector signed char a, vector signed char b)
4882dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
48834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a - b;
4884dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
4885dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
48864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
48874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsububm(vector unsigned char a, vector unsigned char b)
4888dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
48894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a - b;
4890dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
4891dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
48924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsubuhm */
4893dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
48944d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vsubuhm vec_vsubuhm
48954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
48964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
48974d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsubuhm(vector short a, vector short b)
4898dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
48994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a - b;
4900dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
4901dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
49024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
49034d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsubuhm(vector unsigned short a, vector unsigned short b)
4904dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
49054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a - b;
4906dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
4907dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
49084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsubuwm */
4909dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
49104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vsubuwm vec_vsubuwm
4911dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
49124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
49134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsubuwm(vector int a, vector int b)
4914dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
49154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a - b;
4916dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
4917dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
49184d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
49194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsubuwm(vector unsigned int a, vector unsigned int b)
4920dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
49214d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a - b;
4922dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
4923dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
49244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsubfp */
4925dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
49264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vsubfp vec_vsubfp
49274d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
49284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
49294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsubfp(vector float a, vector float b)
4930dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
49314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a - b;
4932dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
4933dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
49344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_subc */
49354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
49364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __attribute__((__always_inline__))
49374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_subc(vector unsigned int a, vector unsigned int b)
4938dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
49394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsubcuw(a, b);
4940dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
4941dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
49424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsubcuw */
4943dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
49444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __attribute__((__always_inline__))
49454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsubcuw(vector unsigned int a, vector unsigned int b)
4946dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
49474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsubcuw(a, b);
4948dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
4949dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
49504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_subs */
49514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
49524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
49534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_subs(vector signed char a, vector signed char b)
4954dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
49554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsubsbs(a, b);
4956dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
4957dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
49584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
49594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_subs(vector unsigned char a, vector unsigned char b)
4960dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
49614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsububs(a, b);
4962dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
4963dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
49644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
49654d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_subs(vector short a, vector short b)
4966dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
49674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsubshs(a, b);
4968dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
4969dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
49704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
49714d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_subs(vector unsigned short a, vector unsigned short b)
4972dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
49734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsubuhs(a, b);
4974dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
4975dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
49764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
49774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_subs(vector int a, vector int b)
4978dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
49794d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsubsws(a, b);
4980dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
4981dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
49824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
49834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_subs(vector unsigned int a, vector unsigned int b)
4984dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
49854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsubuws(a, b);
4986dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
4987dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
49884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsubsbs */
4989dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
49904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __attribute__((__always_inline__))
49914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsubsbs(vector signed char a, vector signed char b)
4992dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
49934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsubsbs(a, b);
4994dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
4995dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
49964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsububs */
4997dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
49984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __attribute__((__always_inline__))
49994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsububs(vector unsigned char a, vector unsigned char b)
5000dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
50014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsububs(a, b);
5002dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5003dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
50044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsubshs */
5005dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
50064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __attribute__((__always_inline__))
50074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsubshs(vector short a, vector short b)
5008dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
50094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsubshs(a, b);
5010dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5011dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
50124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsubuhs */
5013dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
50144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __attribute__((__always_inline__))
50154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsubuhs(vector unsigned short a, vector unsigned short b)
5016dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
50174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsubuhs(a, b);
5018dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5019dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
50204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsubsws */
5021dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
50224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __attribute__((__always_inline__))
50234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsubsws(vector int a, vector int b)
5024dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
50254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsubsws(a, b);
5026dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5027dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
50284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsubuws */
5029dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
50304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __attribute__((__always_inline__))
50314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsubuws(vector unsigned int a, vector unsigned int b)
5032dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
50334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsubuws(a, b);
5034dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5035dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
50364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_sum4s */
5037dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
50384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
50394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sum4s(vector signed char a, vector int b)
5040dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
50414d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsum4sbs(a, b);
5042dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5043dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
50444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
50454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sum4s(vector unsigned char a, vector unsigned int b)
5046dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
50474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsum4ubs(a, b);
5048dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5049dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
50504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
50514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sum4s(vector signed short a, vector int b)
5052dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
50534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsum4shs(a, b);
5054dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5055dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
50564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsum4sbs */
5057dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
50584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __attribute__((__always_inline__))
50594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsum4sbs(vector signed char a, vector int b)
5060dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
50614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsum4sbs(a, b);
5062dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5063dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
50644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsum4ubs */
5065dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
50664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __attribute__((__always_inline__))
50674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsum4ubs(vector unsigned char a, vector unsigned int b)
5068dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
50694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsum4ubs(a, b);
5070dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5071dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
50724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsum4shs */
5073dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
50744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __attribute__((__always_inline__))
50754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsum4shs(vector signed short a, vector int b)
5076dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
50774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsum4shs(a, b);
5078dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5079dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
50804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_sum2s */
5081dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
50824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed int __attribute__((__always_inline__))
50834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sum2s(vector int a, vector int b)
5084dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
50854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsum2sws(a, b);
5086dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5087dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
50884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsum2sws */
5089dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
50904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed int __attribute__((__always_inline__))
50914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsum2sws(vector int a, vector int b)
5092dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
50934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsum2sws(a, b);
5094dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5095dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
50964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_sums */
5097dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
50984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed int __attribute__((__always_inline__))
50994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_sums(vector signed int a, vector signed int b)
5100dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
51014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsumsws(a, b);
5102dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5103dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
51044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vsumsws */
5105dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
51064d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed int __attribute__((__always_inline__))
51074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vsumsws(vector signed int a, vector signed int b)
5108dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
51094d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vsumsws(a, b);
5110dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5111dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
51124d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_trunc */
5113dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
51144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
51154d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_trunc(vector float a)
5116dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
51174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vrfiz(a);
5118dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5119dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
51204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vrfiz */
5121dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
51224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __attribute__((__always_inline__))
51234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vrfiz(vector float a)
5124dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
51254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vrfiz(a);
5126dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5127dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
51284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_unpackh */
5129dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
51304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
51314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_unpackh(vector signed char a)
5132dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
51334d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vupkhsb((vector char)a);
5134dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5135dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
51364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
51374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_unpackh(vector short a)
5138dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
51394d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vupkhsh(a);
5140dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5141dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
51424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vupkhsb */
5143dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
51444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __attribute__((__always_inline__))
51454d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vupkhsb(vector signed char a)
5146dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
51474d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vupkhsb((vector char)a);
5148dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5149dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
51504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vupkhsh */
51514d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
51524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __attribute__((__always_inline__))
51534d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vupkhsh(vector short a)
5154dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
51554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vupkhsh(a);
5156dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5157dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
51584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_unpackl */
51594d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
51604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
51614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_unpackl(vector signed char a)
5162dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
51634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vupklsb((vector char)a);
5164dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5165dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
51664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
51674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_unpackl(vector short a)
5168dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
51694d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vupklsh(a);
5170dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5171dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
51724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vupklsb */
5173dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
51744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __attribute__((__always_inline__))
51754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vupklsb(vector signed char a)
5176dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
51774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vupklsb((vector char)a);
5178dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5179dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
51804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vupklsh */
5181dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
51824d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __attribute__((__always_inline__))
51834d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vupklsh(vector short a)
5184dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
51854d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vupklsh(a);
5186dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5187dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
51884d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_xor */
51894d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
51904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#define __builtin_altivec_vxor vec_xor
51914d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
51924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
51934d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_xor(vector signed char a, vector signed char b)
5194dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
51954d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a ^ b;
5196dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5197dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
51984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
51994d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_xor(vector unsigned char a, vector unsigned char b)
5200dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
52014d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a ^ b;
5202dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5203dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
52044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
52054d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_xor(vector short a, vector short b)
5206dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
52074d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a ^ b;
5208dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5209dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
52104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
52114d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_xor(vector unsigned short a, vector unsigned short b)
5212dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
52134d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a ^ b;
5214dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5215dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
52164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
52174d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_xor(vector int a, vector int b)
5218dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
52194d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a ^ b;
5220dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5221dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
52224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
52234d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_xor(vector unsigned int a, vector unsigned int b)
5224dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
52254d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a ^ b;
5226dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5227dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
52284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
52294d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_xor(vector float a, vector float b)
5230dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
52314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  vector unsigned int res = (vector unsigned int)a ^ (vector unsigned int)b;
52324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)res;
5233dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5234dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
52354d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* vec_vxor */
52364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
52374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector signed char __ATTRS_o_ai
52384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vxor(vector signed char a, vector signed char b)
5239dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
52404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a ^ b;
5241dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5242dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
52434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned char __ATTRS_o_ai
52444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vxor(vector unsigned char a, vector unsigned char b)
5245dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
52464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a ^ b;
5247dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5248dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
52494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector short __ATTRS_o_ai
52504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vxor(vector short a, vector short b)
5251dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
52524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a ^ b;
5253dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5254dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
52554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned short __ATTRS_o_ai
52564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vxor(vector unsigned short a, vector unsigned short b)
5257dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
52584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a ^ b;
5259dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5260dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
52614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector int __ATTRS_o_ai
52624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vxor(vector int a, vector int b)
5263dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
52644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a ^ b;
5265dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5266dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
52674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector unsigned int __ATTRS_o_ai
52684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vxor(vector unsigned int a, vector unsigned int b)
5269dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
52704d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return a ^ b;
5271dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5272dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
52734d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic vector float __ATTRS_o_ai
52744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovvec_vxor(vector float a, vector float b)
5275dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
52764d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  vector unsigned int res = (vector unsigned int)a ^ (vector unsigned int)b;
52774d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return (vector float)res;
5278dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5279dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
52804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov/* ------------------------------ predicates ------------------------------------ */
52814d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov
5282dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_all_eq */
5283dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
52844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5285dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_eq(vector signed char a, vector signed char b)
5286dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5287ab866b46f3f626ac2da42d2b16ec3b5c04105e38Chris Lattner  return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)a, (vector char)b);
5288dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5289dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
52904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5291dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_eq(vector unsigned char a, vector unsigned char b)
5292dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5293ab866b46f3f626ac2da42d2b16ec3b5c04105e38Chris Lattner  return __builtin_altivec_vcmpequb_p(__CR6_LT, (vector char)a, (vector char)b);
5294dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5295dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
52964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5297dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_eq(vector short a, vector short b)
5298dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5299dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpequh_p(__CR6_LT, a, b);
5300dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5301dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
53024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5303dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_eq(vector unsigned short a, vector unsigned short b)
5304dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5305ab866b46f3f626ac2da42d2b16ec3b5c04105e38Chris Lattner  return __builtin_altivec_vcmpequh_p(__CR6_LT, (vector short)a, (vector short)b);
5306dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5307dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
53084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5309dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_eq(vector int a, vector int b)
5310dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5311dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpequw_p(__CR6_LT, a, b);
5312dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5313dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
53144d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5315dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_eq(vector unsigned int a, vector unsigned int b)
5316dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5317ab866b46f3f626ac2da42d2b16ec3b5c04105e38Chris Lattner  return __builtin_altivec_vcmpequw_p(__CR6_LT, (vector int)a, (vector int)b);
5318dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5319dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
53204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5321dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_eq(vector float a, vector float b)
5322dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5323dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpeqfp_p(__CR6_LT, a, b);
5324dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5325dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5326dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_all_ge */
5327dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
53284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5329dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_ge(vector signed char a, vector signed char b)
5330dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
53314d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpgtsb_p(__CR6_EQ, b, a);
5332dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5333dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
53344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5335dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_ge(vector unsigned char a, vector unsigned char b)
5336dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
53374d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpgtub_p(__CR6_EQ, b, a);
5338dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5339dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
53404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5341dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_ge(vector short a, vector short b)
5342dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
53434d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpgtsh_p(__CR6_EQ, b, a);
5344dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5345dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
53464d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5347dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_ge(vector unsigned short a, vector unsigned short b)
5348dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
53494d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, b, a);
5350dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5351dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
53524d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5353dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_ge(vector int a, vector int b)
5354dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
53554d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpgtsw_p(__CR6_EQ, b, a);
5356dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5357dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
53584d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5359dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_ge(vector unsigned int a, vector unsigned int b)
5360dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
53614d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, b, a);
5362dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5363dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
53644d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5365dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_ge(vector float a, vector float b)
5366dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
53674d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpgefp_p(__CR6_LT, a, b);
5368dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5369dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5370dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_all_gt */
5371dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
53724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5373dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_gt(vector signed char a, vector signed char b)
5374dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5375dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtsb_p(__CR6_LT, a, b);
5376dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5377dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
53784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5379dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_gt(vector unsigned char a, vector unsigned char b)
5380dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5381dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtub_p(__CR6_LT, a, b);
5382dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5383dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
53844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5385dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_gt(vector short a, vector short b)
5386dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5387dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtsh_p(__CR6_LT, a, b);
5388dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5389dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
53904d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5391dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_gt(vector unsigned short a, vector unsigned short b)
5392dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5393dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtuh_p(__CR6_LT, a, b);
5394dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5395dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
53964d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5397dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_gt(vector int a, vector int b)
5398dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5399dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtsw_p(__CR6_LT, a, b);
5400dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5401dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
54024d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5403dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_gt(vector unsigned int a, vector unsigned int b)
5404dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5405dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtuw_p(__CR6_LT, a, b);
5406dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5407dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
54084d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5409dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_gt(vector float a, vector float b)
5410dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5411dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtfp_p(__CR6_LT, a, b);
5412dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5413dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5414dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_all_in */
5415dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5416dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnerstatic int __attribute__((__always_inline__))
5417dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_in(vector float a, vector float b)
5418dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5419dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpbfp_p(__CR6_EQ, a, b);
5420dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5421dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5422dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_all_le */
5423dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
54244d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5425dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_le(vector signed char a, vector signed char b)
5426dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5427dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtsb_p(__CR6_EQ, a, b);
5428dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5429dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
54304d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5431dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_le(vector unsigned char a, vector unsigned char b)
5432dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5433dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtub_p(__CR6_EQ, a, b);
5434dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5435dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
54364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5437dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_le(vector short a, vector short b)
5438dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5439dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtsh_p(__CR6_EQ, a, b);
5440dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5441dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
54424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5443dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_le(vector unsigned short a, vector unsigned short b)
5444dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5445dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtuh_p(__CR6_EQ, a, b);
5446dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5447dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
54484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5449dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_le(vector int a, vector int b)
5450dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5451dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtsw_p(__CR6_EQ, a, b);
5452dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5453dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
54544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5455dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_le(vector unsigned int a, vector unsigned int b)
5456dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5457dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ, a, b);
5458dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5459dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
54604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5461dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_le(vector float a, vector float b)
5462dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
54634d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpgefp_p(__CR6_LT, b, a);
5464dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5465dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5466dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_all_lt */
5467dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
54684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5469dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_lt(vector signed char a, vector signed char b)
5470dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5471dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtsb_p(__CR6_LT, b, a);
5472dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5473dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
54744d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5475dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_lt(vector unsigned char a, vector unsigned char b)
5476dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5477dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtub_p(__CR6_LT, b, a);
5478dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5479dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
54804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5481dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_lt(vector short a, vector short b)
5482dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5483dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtsh_p(__CR6_LT, b, a);
5484dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5485dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
54864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5487dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_lt(vector unsigned short a, vector unsigned short b)
5488dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5489dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtuh_p(__CR6_LT, b, a);
5490dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5491dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
54924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5493dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_lt(vector int a, vector int b)
5494dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5495dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtsw_p(__CR6_LT, b, a);
5496dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5497dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
54984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5499dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_lt(vector unsigned int a, vector unsigned int b)
5500dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5501dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtuw_p(__CR6_LT, b, a);
5502dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5503dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
55044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5505dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_lt(vector float a, vector float b)
5506dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5507dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtfp_p(__CR6_LT, b, a);
5508dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5509dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5510dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_all_nan */
5511dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5512dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnerstatic int __attribute__((__always_inline__))
5513dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_nan(vector float a)
5514dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5515dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpeqfp_p(__CR6_EQ, a, a);
5516dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5517dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5518dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_all_ne */
5519dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
55204d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5521dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_ne(vector signed char a, vector signed char b)
5522dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5523ab866b46f3f626ac2da42d2b16ec3b5c04105e38Chris Lattner  return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)a, (vector char)b);
5524dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5525dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
55264d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5527dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_ne(vector unsigned char a, vector unsigned char b)
5528dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5529ab866b46f3f626ac2da42d2b16ec3b5c04105e38Chris Lattner  return __builtin_altivec_vcmpequb_p(__CR6_EQ, (vector char)a, (vector char)b);
5530dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5531dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
55324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5533dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_ne(vector short a, vector short b)
5534dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5535dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpequh_p(__CR6_EQ, a, b);
5536dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5537dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
55384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5539dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_ne(vector unsigned short a, vector unsigned short b)
5540dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5541ab866b46f3f626ac2da42d2b16ec3b5c04105e38Chris Lattner  return __builtin_altivec_vcmpequh_p(__CR6_EQ, (vector short)a, (vector short)b);
5542dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5543dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
55444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5545dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_ne(vector int a, vector int b)
5546dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5547dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpequw_p(__CR6_EQ, a, b);
5548dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5549dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
55504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5551dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_ne(vector unsigned int a, vector unsigned int b)
5552dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5553ab866b46f3f626ac2da42d2b16ec3b5c04105e38Chris Lattner  return __builtin_altivec_vcmpequw_p(__CR6_EQ, (vector int)a, (vector int)b);
5554dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5555dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
55564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5557dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_ne(vector float a, vector float b)
5558dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5559dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpeqfp_p(__CR6_EQ, a, b);
5560dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5561dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5562dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_all_nge */
5563dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5564dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnerstatic int __attribute__((__always_inline__))
5565dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_nge(vector float a, vector float b)
5566dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5567dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgefp_p(__CR6_EQ, a, b);
5568dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5569dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5570dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_all_ngt */
5571dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5572dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnerstatic int __attribute__((__always_inline__))
5573dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_ngt(vector float a, vector float b)
5574dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5575dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtfp_p(__CR6_EQ, a, b);
5576dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5577dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5578dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_all_nle */
5579dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5580dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnerstatic int __attribute__((__always_inline__))
5581dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_nle(vector float a, vector float b)
5582dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5583dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgefp_p(__CR6_EQ, b, a);
5584dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5585dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5586dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_all_nlt */
5587dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5588dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnerstatic int __attribute__((__always_inline__))
5589dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_nlt(vector float a, vector float b)
5590dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5591dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtfp_p(__CR6_EQ, b, a);
5592dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5593dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5594dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_all_numeric */
5595dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5596dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnerstatic int __attribute__((__always_inline__))
5597dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_all_numeric(vector float a)
5598dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5599dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpeqfp_p(__CR6_LT, a, a);
5600dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5601dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5602dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_any_eq */
5603dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
56044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5605dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_eq(vector signed char a, vector signed char b)
5606dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5607ab866b46f3f626ac2da42d2b16ec3b5c04105e38Chris Lattner  return __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)a, (vector char)b);
5608dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5609dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
56104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5611dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_eq(vector unsigned char a, vector unsigned char b)
5612dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5613ab866b46f3f626ac2da42d2b16ec3b5c04105e38Chris Lattner  return __builtin_altivec_vcmpequb_p(__CR6_EQ_REV, (vector char)a, (vector char)b);
5614dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5615dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
56164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5617dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_eq(vector short a, vector short b)
5618dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5619dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV, a, b);
5620dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5621dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
56224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5623dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_eq(vector unsigned short a, vector unsigned short b)
5624dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5625ab866b46f3f626ac2da42d2b16ec3b5c04105e38Chris Lattner  return __builtin_altivec_vcmpequh_p(__CR6_EQ_REV, (vector short)a, (vector short)b);
5626dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5627dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
56284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5629dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_eq(vector int a, vector int b)
5630dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5631dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, a, b);
5632dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5633dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
56344d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5635dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_eq(vector unsigned int a, vector unsigned int b)
5636dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5637ab866b46f3f626ac2da42d2b16ec3b5c04105e38Chris Lattner  return __builtin_altivec_vcmpequw_p(__CR6_EQ_REV, (vector int)a, (vector int)b);
5638dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5639dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
56404d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5641dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_eq(vector float a, vector float b)
5642dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5643dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpeqfp_p(__CR6_EQ_REV, a, b);
5644dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5645dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5646dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_any_ge */
5647dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
56484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5649dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_ge(vector signed char a, vector signed char b)
5650dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5651dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtsb_p(__CR6_LT_REV, b, a);
5652dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5653dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
56544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5655dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_ge(vector unsigned char a, vector unsigned char b)
5656dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5657dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, b, a);
5658dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5659dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
56604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5661dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_ge(vector short a, vector short b)
5662dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5663dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtsh_p(__CR6_LT_REV, b, a);
5664dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5665dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
56664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5667dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_ge(vector unsigned short a, vector unsigned short b)
5668dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5669dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, b, a);
5670dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5671dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
56724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5673dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_ge(vector int a, vector int b)
5674dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5675dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtsw_p(__CR6_LT_REV, b, a);
5676dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5677dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
56784d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5679dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_ge(vector unsigned int a, vector unsigned int b)
5680dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5681dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, b, a);
5682dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5683dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
56844d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5685dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_ge(vector float a, vector float b)
5686dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
56874d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpgefp_p(__CR6_EQ_REV, a, b);
5688dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5689dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5690dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_any_gt */
5691dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
56924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5693dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_gt(vector signed char a, vector signed char b)
5694dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5695dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtsb_p(__CR6_EQ_REV, a, b);
5696dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5697dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
56984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5699dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_gt(vector unsigned char a, vector unsigned char b)
5700dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5701dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, a, b);
5702dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5703dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
57044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5705dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_gt(vector short a, vector short b)
5706dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5707dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtsh_p(__CR6_EQ_REV, a, b);
5708dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5709dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
57104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5711dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_gt(vector unsigned short a, vector unsigned short b)
5712dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5713dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, a, b);
5714dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5715dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
57164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5717dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_gt(vector int a, vector int b)
5718dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5719dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtsw_p(__CR6_EQ_REV, a, b);
5720dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5721dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
57224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5723dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_gt(vector unsigned int a, vector unsigned int b)
5724dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5725dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, a, b);
5726dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5727dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
57284d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5729dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_gt(vector float a, vector float b)
5730dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5731dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtfp_p(__CR6_EQ_REV, a, b);
5732dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5733dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5734dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_any_le */
5735dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
57364d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5737dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_le(vector signed char a, vector signed char b)
5738dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5739dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtsb_p(__CR6_LT_REV, a, b);
5740dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5741dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
57424d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5743dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_le(vector unsigned char a, vector unsigned char b)
5744dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5745dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtub_p(__CR6_LT_REV, a, b);
5746dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5747dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
57484d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5749dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_le(vector short a, vector short b)
5750dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5751dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtsh_p(__CR6_LT_REV, a, b);
5752dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5753dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
57544d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5755dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_le(vector unsigned short a, vector unsigned short b)
5756dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5757dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtuh_p(__CR6_LT_REV, a, b);
5758dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5759dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
57604d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5761dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_le(vector int a, vector int b)
5762dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5763dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtsw_p(__CR6_LT_REV, a, b);
5764dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5765dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
57664d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5767dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_le(vector unsigned int a, vector unsigned int b)
5768dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5769dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtuw_p(__CR6_LT_REV, a, b);
5770dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5771dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
57724d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5773dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_le(vector float a, vector float b)
5774dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
57754d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov  return __builtin_altivec_vcmpgefp_p(__CR6_EQ_REV, b, a);
5776dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5777dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5778dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_any_lt */
5779dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
57804d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5781dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_lt(vector signed char a, vector signed char b)
5782dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5783dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtsb_p(__CR6_EQ_REV, b, a);
5784dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5785dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
57864d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5787dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_lt(vector unsigned char a, vector unsigned char b)
5788dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5789dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtub_p(__CR6_EQ_REV, b, a);
5790dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5791dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
57924d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5793dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_lt(vector short a, vector short b)
5794dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5795dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtsh_p(__CR6_EQ_REV, b, a);
5796dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5797dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
57984d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5799dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_lt(vector unsigned short a, vector unsigned short b)
5800dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5801dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtuh_p(__CR6_EQ_REV, b, a);
5802dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5803dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
58044d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5805dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_lt(vector int a, vector int b)
5806dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5807dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtsw_p(__CR6_EQ_REV, b, a);
5808dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5809dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
58104d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5811dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_lt(vector unsigned int a, vector unsigned int b)
5812dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5813dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtuw_p(__CR6_EQ_REV, b, a);
5814dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5815dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
58164d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5817dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_lt(vector float a, vector float b)
5818dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5819dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtfp_p(__CR6_EQ_REV, b, a);
5820dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5821dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5822dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_any_nan */
5823dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5824dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnerstatic int __attribute__((__always_inline__))
5825dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_nan(vector float a)
5826dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5827dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpeqfp_p(__CR6_LT_REV, a, a);
5828dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5829dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5830dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_any_ne */
5831dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
58324d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5833dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_ne(vector signed char a, vector signed char b)
5834dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5835ab866b46f3f626ac2da42d2b16ec3b5c04105e38Chris Lattner  return __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)a, (vector char)b);
5836dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5837dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
58384d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5839dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_ne(vector unsigned char a, vector unsigned char b)
5840dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5841ab866b46f3f626ac2da42d2b16ec3b5c04105e38Chris Lattner  return __builtin_altivec_vcmpequb_p(__CR6_LT_REV, (vector char)a, (vector char)b);
5842dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5843dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
58444d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5845dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_ne(vector short a, vector short b)
5846dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5847dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpequh_p(__CR6_LT_REV, a, b);
5848dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5849dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
58504d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5851dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_ne(vector unsigned short a, vector unsigned short b)
5852dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5853ab866b46f3f626ac2da42d2b16ec3b5c04105e38Chris Lattner  return __builtin_altivec_vcmpequh_p(__CR6_LT_REV, (vector short)a, (vector short)b);
5854dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5855dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
58564d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5857dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_ne(vector int a, vector int b)
5858dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5859dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpequw_p(__CR6_LT_REV, a, b);
5860dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5861dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
58624d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5863dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_ne(vector unsigned int a, vector unsigned int b)
5864dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5865ab866b46f3f626ac2da42d2b16ec3b5c04105e38Chris Lattner  return __builtin_altivec_vcmpequw_p(__CR6_LT_REV, (vector int)a, (vector int)b);
5866dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5867dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
58684d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikovstatic int __ATTRS_o_ai
5869dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_ne(vector float a, vector float b)
5870dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5871dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpeqfp_p(__CR6_LT_REV, a, b);
5872dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5873dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5874dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_any_nge */
5875dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5876dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnerstatic int __attribute__((__always_inline__))
5877dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_nge(vector float a, vector float b)
5878dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5879dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgefp_p(__CR6_LT_REV, a, b);
5880dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5881dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5882dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_any_ngt */
5883dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5884dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnerstatic int __attribute__((__always_inline__))
5885dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_ngt(vector float a, vector float b)
5886dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5887dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtfp_p(__CR6_LT_REV, a, b);
5888dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5889dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5890dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_any_nle */
5891dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5892dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnerstatic int __attribute__((__always_inline__))
5893dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_nle(vector float a, vector float b)
5894dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5895dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgefp_p(__CR6_LT_REV, b, a);
5896dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5897dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5898dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_any_nlt */
5899dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5900dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnerstatic int __attribute__((__always_inline__))
5901dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_nlt(vector float a, vector float b)
5902dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5903dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpgtfp_p(__CR6_LT_REV, b, a);
5904dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5905dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5906dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_any_numeric */
5907dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5908dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnerstatic int __attribute__((__always_inline__))
5909dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_numeric(vector float a)
5910dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5911dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpeqfp_p(__CR6_EQ_REV, a, a);
5912dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5913dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5914dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner/* vec_any_out */
5915dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5916dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnerstatic int __attribute__((__always_inline__))
5917dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattnervec_any_out(vector float a, vector float b)
5918dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner{
5919dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner  return __builtin_altivec_vcmpbfp_p(__CR6_EQ_REV, a, b);
5920dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner}
5921dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
59224d3a7b0a0608febe3cdac68f6121546672ca875eAnton Korobeynikov#undef __ATTRS_o_ai
5923dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner
5924dd17394d225b06376e9ae1d23f36cec463fdef01Chris Lattner#endif /* __ALTIVEC_H */
5925