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