Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
247 lines (243 sloc) 11.8 KB
#ifndef __SWIZZLE4_H__
#define __SWIZZLE4_H__
#define wzyx shuffle4_rw4<_MM_SHUFFLE(0,1,2,3)>()
#define zwyx shuffle4_rw4<_MM_SHUFFLE(0,1,3,2)>()
#define wyzx shuffle4_rw4<_MM_SHUFFLE(0,2,1,3)>()
#define ywzx shuffle4_rw4<_MM_SHUFFLE(0,2,3,1)>()
#define zywx shuffle4_rw4<_MM_SHUFFLE(0,3,1,2)>()
#define yzwx shuffle4_rw4<_MM_SHUFFLE(0,3,2,1)>()
#define wzxy shuffle4_rw4<_MM_SHUFFLE(1,0,2,3)>()
#define zwxy shuffle4_rw4<_MM_SHUFFLE(1,0,3,2)>()
#define wxzy shuffle4_rw4<_MM_SHUFFLE(1,2,0,3)>()
#define xwzy shuffle4_rw4<_MM_SHUFFLE(1,2,3,0)>()
#define zxwy shuffle4_rw4<_MM_SHUFFLE(1,3,0,2)>()
#define xzwy shuffle4_rw4<_MM_SHUFFLE(1,3,2,0)>()
#define wyxz shuffle4_rw4<_MM_SHUFFLE(2,0,1,3)>()
#define ywxz shuffle4_rw4<_MM_SHUFFLE(2,0,3,1)>()
#define wxyz shuffle4_rw4<_MM_SHUFFLE(2,1,0,3)>()
#define xwyz shuffle4_rw4<_MM_SHUFFLE(2,1,3,0)>()
#define yxwz shuffle4_rw4<_MM_SHUFFLE(2,3,0,1)>()
#define xywz shuffle4_rw4<_MM_SHUFFLE(2,3,1,0)>()
#define zyxw shuffle4_rw4<_MM_SHUFFLE(3,0,1,2)>()
#define yzxw shuffle4_rw4<_MM_SHUFFLE(3,0,2,1)>()
#define zxyw shuffle4_rw4<_MM_SHUFFLE(3,1,0,2)>()
#define xzyw shuffle4_rw4<_MM_SHUFFLE(3,1,2,0)>()
#define yxzw shuffle4_rw4<_MM_SHUFFLE(3,2,0,1)>()
#define xyzw shuffle4_rw4<_MM_SHUFFLE(3,2,1,0)>()
#define xxxz shuffle4_ro4<_MM_SHUFFLE(2,0,0,0)>()
#define xxxw shuffle4_ro4<_MM_SHUFFLE(3,0,0,0)>()
#define xxyz shuffle4_ro4<_MM_SHUFFLE(2,1,0,0)>()
#define xxyw shuffle4_ro4<_MM_SHUFFLE(3,1,0,0)>()
#define xxzx shuffle4_ro4<_MM_SHUFFLE(0,2,0,0)>()
#define xxzy shuffle4_ro4<_MM_SHUFFLE(1,2,0,0)>()
#define xxzz shuffle4_ro4<_MM_SHUFFLE(2,2,0,0)>()
#define xxzw shuffle4_ro4<_MM_SHUFFLE(3,2,0,0)>()
#define xxwx shuffle4_ro4<_MM_SHUFFLE(0,3,0,0)>()
#define xxwy shuffle4_ro4<_MM_SHUFFLE(1,3,0,0)>()
#define xxwz shuffle4_ro4<_MM_SHUFFLE(2,3,0,0)>()
#define xxww shuffle4_ro4<_MM_SHUFFLE(3,3,0,0)>()
#define xyxz shuffle4_ro4<_MM_SHUFFLE(2,0,1,0)>()
#define xyxw shuffle4_ro4<_MM_SHUFFLE(3,0,1,0)>()
#define xyyz shuffle4_ro4<_MM_SHUFFLE(2,1,1,0)>()
#define xyyw shuffle4_ro4<_MM_SHUFFLE(3,1,1,0)>()
#define xyzx shuffle4_ro4<_MM_SHUFFLE(0,2,1,0)>()
#define xyzy shuffle4_ro4<_MM_SHUFFLE(1,2,1,0)>()
#define xyzz shuffle4_ro4<_MM_SHUFFLE(2,2,1,0)>()
#define xywx shuffle4_ro4<_MM_SHUFFLE(0,3,1,0)>()
#define xywy shuffle4_ro4<_MM_SHUFFLE(1,3,1,0)>()
#define xyww shuffle4_ro4<_MM_SHUFFLE(3,3,1,0)>()
#define xzxx shuffle4_ro4<_MM_SHUFFLE(0,0,2,0)>()
#define xzxy shuffle4_ro4<_MM_SHUFFLE(1,0,2,0)>()
#define xzxz shuffle4_ro4<_MM_SHUFFLE(2,0,2,0)>()
#define xzxw shuffle4_ro4<_MM_SHUFFLE(3,0,2,0)>()
#define xzyx shuffle4_ro4<_MM_SHUFFLE(0,1,2,0)>()
#define xzyy shuffle4_ro4<_MM_SHUFFLE(1,1,2,0)>()
#define xzyz shuffle4_ro4<_MM_SHUFFLE(2,1,2,0)>()
#define xzzx shuffle4_ro4<_MM_SHUFFLE(0,2,2,0)>()
#define xzzy shuffle4_ro4<_MM_SHUFFLE(1,2,2,0)>()
#define xzzz shuffle4_ro4<_MM_SHUFFLE(2,2,2,0)>()
#define xzzw shuffle4_ro4<_MM_SHUFFLE(3,2,2,0)>()
#define xzwx shuffle4_ro4<_MM_SHUFFLE(0,3,2,0)>()
#define xzwz shuffle4_ro4<_MM_SHUFFLE(2,3,2,0)>()
#define xzww shuffle4_ro4<_MM_SHUFFLE(3,3,2,0)>()
#define xwxx shuffle4_ro4<_MM_SHUFFLE(0,0,3,0)>()
#define xwxy shuffle4_ro4<_MM_SHUFFLE(1,0,3,0)>()
#define xwxz shuffle4_ro4<_MM_SHUFFLE(2,0,3,0)>()
#define xwxw shuffle4_ro4<_MM_SHUFFLE(3,0,3,0)>()
#define xwyx shuffle4_ro4<_MM_SHUFFLE(0,1,3,0)>()
#define xwyy shuffle4_ro4<_MM_SHUFFLE(1,1,3,0)>()
#define xwyw shuffle4_ro4<_MM_SHUFFLE(3,1,3,0)>()
#define xwzx shuffle4_ro4<_MM_SHUFFLE(0,2,3,0)>()
#define xwzz shuffle4_ro4<_MM_SHUFFLE(2,2,3,0)>()
#define xwzw shuffle4_ro4<_MM_SHUFFLE(3,2,3,0)>()
#define xwwx shuffle4_ro4<_MM_SHUFFLE(0,3,3,0)>()
#define xwwy shuffle4_ro4<_MM_SHUFFLE(1,3,3,0)>()
#define xwwz shuffle4_ro4<_MM_SHUFFLE(2,3,3,0)>()
#define xwww shuffle4_ro4<_MM_SHUFFLE(3,3,3,0)>()
#define yxxz shuffle4_ro4<_MM_SHUFFLE(2,0,0,1)>()
#define yxxw shuffle4_ro4<_MM_SHUFFLE(3,0,0,1)>()
#define yxyz shuffle4_ro4<_MM_SHUFFLE(2,1,0,1)>()
#define yxyw shuffle4_ro4<_MM_SHUFFLE(3,1,0,1)>()
#define yxzx shuffle4_ro4<_MM_SHUFFLE(0,2,0,1)>()
#define yxzy shuffle4_ro4<_MM_SHUFFLE(1,2,0,1)>()
#define yxzz shuffle4_ro4<_MM_SHUFFLE(2,2,0,1)>()
#define yxwx shuffle4_ro4<_MM_SHUFFLE(0,3,0,1)>()
#define yxwy shuffle4_ro4<_MM_SHUFFLE(1,3,0,1)>()
#define yxww shuffle4_ro4<_MM_SHUFFLE(3,3,0,1)>()
#define yyxz shuffle4_ro4<_MM_SHUFFLE(2,0,1,1)>()
#define yyxw shuffle4_ro4<_MM_SHUFFLE(3,0,1,1)>()
#define yyyz shuffle4_ro4<_MM_SHUFFLE(2,1,1,1)>()
#define yyyw shuffle4_ro4<_MM_SHUFFLE(3,1,1,1)>()
#define yyzx shuffle4_ro4<_MM_SHUFFLE(0,2,1,1)>()
#define yyzy shuffle4_ro4<_MM_SHUFFLE(1,2,1,1)>()
#define yyzz shuffle4_ro4<_MM_SHUFFLE(2,2,1,1)>()
#define yyzw shuffle4_ro4<_MM_SHUFFLE(3,2,1,1)>()
#define yywx shuffle4_ro4<_MM_SHUFFLE(0,3,1,1)>()
#define yywy shuffle4_ro4<_MM_SHUFFLE(1,3,1,1)>()
#define yywz shuffle4_ro4<_MM_SHUFFLE(2,3,1,1)>()
#define yyww shuffle4_ro4<_MM_SHUFFLE(3,3,1,1)>()
#define yzxx shuffle4_ro4<_MM_SHUFFLE(0,0,2,1)>()
#define yzxy shuffle4_ro4<_MM_SHUFFLE(1,0,2,1)>()
#define yzxz shuffle4_ro4<_MM_SHUFFLE(2,0,2,1)>()
#define yzyx shuffle4_ro4<_MM_SHUFFLE(0,1,2,1)>()
#define yzyy shuffle4_ro4<_MM_SHUFFLE(1,1,2,1)>()
#define yzyz shuffle4_ro4<_MM_SHUFFLE(2,1,2,1)>()
#define yzyw shuffle4_ro4<_MM_SHUFFLE(3,1,2,1)>()
#define yzzx shuffle4_ro4<_MM_SHUFFLE(0,2,2,1)>()
#define yzzy shuffle4_ro4<_MM_SHUFFLE(1,2,2,1)>()
#define yzzz shuffle4_ro4<_MM_SHUFFLE(2,2,2,1)>()
#define yzzw shuffle4_ro4<_MM_SHUFFLE(3,2,2,1)>()
#define yzwy shuffle4_ro4<_MM_SHUFFLE(1,3,2,1)>()
#define yzwz shuffle4_ro4<_MM_SHUFFLE(2,3,2,1)>()
#define yzww shuffle4_ro4<_MM_SHUFFLE(3,3,2,1)>()
#define ywxx shuffle4_ro4<_MM_SHUFFLE(0,0,3,1)>()
#define ywxy shuffle4_ro4<_MM_SHUFFLE(1,0,3,1)>()
#define ywxw shuffle4_ro4<_MM_SHUFFLE(3,0,3,1)>()
#define ywyx shuffle4_ro4<_MM_SHUFFLE(0,1,3,1)>()
#define ywyy shuffle4_ro4<_MM_SHUFFLE(1,1,3,1)>()
#define ywyz shuffle4_ro4<_MM_SHUFFLE(2,1,3,1)>()
#define ywyw shuffle4_ro4<_MM_SHUFFLE(3,1,3,1)>()
#define ywzy shuffle4_ro4<_MM_SHUFFLE(1,2,3,1)>()
#define ywzz shuffle4_ro4<_MM_SHUFFLE(2,2,3,1)>()
#define ywzw shuffle4_ro4<_MM_SHUFFLE(3,2,3,1)>()
#define ywwx shuffle4_ro4<_MM_SHUFFLE(0,3,3,1)>()
#define ywwy shuffle4_ro4<_MM_SHUFFLE(1,3,3,1)>()
#define ywwz shuffle4_ro4<_MM_SHUFFLE(2,3,3,1)>()
#define ywww shuffle4_ro4<_MM_SHUFFLE(3,3,3,1)>()
#define zxxx shuffle4_ro4<_MM_SHUFFLE(0,0,0,2)>()
#define zxxy shuffle4_ro4<_MM_SHUFFLE(1,0,0,2)>()
#define zxxz shuffle4_ro4<_MM_SHUFFLE(2,0,0,2)>()
#define zxxw shuffle4_ro4<_MM_SHUFFLE(3,0,0,2)>()
#define zxyx shuffle4_ro4<_MM_SHUFFLE(0,1,0,2)>()
#define zxyy shuffle4_ro4<_MM_SHUFFLE(1,1,0,2)>()
#define zxyz shuffle4_ro4<_MM_SHUFFLE(2,1,0,2)>()
#define zxzx shuffle4_ro4<_MM_SHUFFLE(0,2,0,2)>()
#define zxzy shuffle4_ro4<_MM_SHUFFLE(1,2,0,2)>()
#define zxzz shuffle4_ro4<_MM_SHUFFLE(2,2,0,2)>()
#define zxzw shuffle4_ro4<_MM_SHUFFLE(3,2,0,2)>()
#define zxwx shuffle4_ro4<_MM_SHUFFLE(0,3,0,2)>()
#define zxwz shuffle4_ro4<_MM_SHUFFLE(2,3,0,2)>()
#define zxww shuffle4_ro4<_MM_SHUFFLE(3,3,0,2)>()
#define zyxx shuffle4_ro4<_MM_SHUFFLE(0,0,1,2)>()
#define zyxy shuffle4_ro4<_MM_SHUFFLE(1,0,1,2)>()
#define zyxz shuffle4_ro4<_MM_SHUFFLE(2,0,1,2)>()
#define zyyx shuffle4_ro4<_MM_SHUFFLE(0,1,1,2)>()
#define zyyy shuffle4_ro4<_MM_SHUFFLE(1,1,1,2)>()
#define zyyz shuffle4_ro4<_MM_SHUFFLE(2,1,1,2)>()
#define zyyw shuffle4_ro4<_MM_SHUFFLE(3,1,1,2)>()
#define zyzx shuffle4_ro4<_MM_SHUFFLE(0,2,1,2)>()
#define zyzy shuffle4_ro4<_MM_SHUFFLE(1,2,1,2)>()
#define zyzz shuffle4_ro4<_MM_SHUFFLE(2,2,1,2)>()
#define zyzw shuffle4_ro4<_MM_SHUFFLE(3,2,1,2)>()
#define zywy shuffle4_ro4<_MM_SHUFFLE(1,3,1,2)>()
#define zywz shuffle4_ro4<_MM_SHUFFLE(2,3,1,2)>()
#define zyww shuffle4_ro4<_MM_SHUFFLE(3,3,1,2)>()
#define zzxx shuffle4_ro4<_MM_SHUFFLE(0,0,2,2)>()
#define zzxy shuffle4_ro4<_MM_SHUFFLE(1,0,2,2)>()
#define zzxz shuffle4_ro4<_MM_SHUFFLE(2,0,2,2)>()
#define zzxw shuffle4_ro4<_MM_SHUFFLE(3,0,2,2)>()
#define zzyx shuffle4_ro4<_MM_SHUFFLE(0,1,2,2)>()
#define zzyy shuffle4_ro4<_MM_SHUFFLE(1,1,2,2)>()
#define zzyz shuffle4_ro4<_MM_SHUFFLE(2,1,2,2)>()
#define zzyw shuffle4_ro4<_MM_SHUFFLE(3,1,2,2)>()
#define zzzx shuffle4_ro4<_MM_SHUFFLE(0,2,2,2)>()
#define zzzy shuffle4_ro4<_MM_SHUFFLE(1,2,2,2)>()
#define zzzz shuffle4_ro4<_MM_SHUFFLE(2,2,2,2)>()
#define zzzw shuffle4_ro4<_MM_SHUFFLE(3,2,2,2)>()
#define zzwx shuffle4_ro4<_MM_SHUFFLE(0,3,2,2)>()
#define zzwy shuffle4_ro4<_MM_SHUFFLE(1,3,2,2)>()
#define zzwz shuffle4_ro4<_MM_SHUFFLE(2,3,2,2)>()
#define zzww shuffle4_ro4<_MM_SHUFFLE(3,3,2,2)>()
#define zwxx shuffle4_ro4<_MM_SHUFFLE(0,0,3,2)>()
#define zwxz shuffle4_ro4<_MM_SHUFFLE(2,0,3,2)>()
#define zwxw shuffle4_ro4<_MM_SHUFFLE(3,0,3,2)>()
#define zwyy shuffle4_ro4<_MM_SHUFFLE(1,1,3,2)>()
#define zwyz shuffle4_ro4<_MM_SHUFFLE(2,1,3,2)>()
#define zwyw shuffle4_ro4<_MM_SHUFFLE(3,1,3,2)>()
#define zwzx shuffle4_ro4<_MM_SHUFFLE(0,2,3,2)>()
#define zwzy shuffle4_ro4<_MM_SHUFFLE(1,2,3,2)>()
#define zwzz shuffle4_ro4<_MM_SHUFFLE(2,2,3,2)>()
#define zwzw shuffle4_ro4<_MM_SHUFFLE(3,2,3,2)>()
#define zwwx shuffle4_ro4<_MM_SHUFFLE(0,3,3,2)>()
#define zwwy shuffle4_ro4<_MM_SHUFFLE(1,3,3,2)>()
#define zwwz shuffle4_ro4<_MM_SHUFFLE(2,3,3,2)>()
#define zwww shuffle4_ro4<_MM_SHUFFLE(3,3,3,2)>()
#define wxxx shuffle4_ro4<_MM_SHUFFLE(0,0,0,3)>()
#define wxxy shuffle4_ro4<_MM_SHUFFLE(1,0,0,3)>()
#define wxxz shuffle4_ro4<_MM_SHUFFLE(2,0,0,3)>()
#define wxxw shuffle4_ro4<_MM_SHUFFLE(3,0,0,3)>()
#define wxyx shuffle4_ro4<_MM_SHUFFLE(0,1,0,3)>()
#define wxyy shuffle4_ro4<_MM_SHUFFLE(1,1,0,3)>()
#define wxyw shuffle4_ro4<_MM_SHUFFLE(3,1,0,3)>()
#define wxzx shuffle4_ro4<_MM_SHUFFLE(0,2,0,3)>()
#define wxzz shuffle4_ro4<_MM_SHUFFLE(2,2,0,3)>()
#define wxzw shuffle4_ro4<_MM_SHUFFLE(3,2,0,3)>()
#define wxwx shuffle4_ro4<_MM_SHUFFLE(0,3,0,3)>()
#define wxwy shuffle4_ro4<_MM_SHUFFLE(1,3,0,3)>()
#define wxwz shuffle4_ro4<_MM_SHUFFLE(2,3,0,3)>()
#define wxww shuffle4_ro4<_MM_SHUFFLE(3,3,0,3)>()
#define wyxx shuffle4_ro4<_MM_SHUFFLE(0,0,1,3)>()
#define wyxy shuffle4_ro4<_MM_SHUFFLE(1,0,1,3)>()
#define wyxw shuffle4_ro4<_MM_SHUFFLE(3,0,1,3)>()
#define wyyx shuffle4_ro4<_MM_SHUFFLE(0,1,1,3)>()
#define wyyy shuffle4_ro4<_MM_SHUFFLE(1,1,1,3)>()
#define wyyz shuffle4_ro4<_MM_SHUFFLE(2,1,1,3)>()
#define wyyw shuffle4_ro4<_MM_SHUFFLE(3,1,1,3)>()
#define wyzy shuffle4_ro4<_MM_SHUFFLE(1,2,1,3)>()
#define wyzz shuffle4_ro4<_MM_SHUFFLE(2,2,1,3)>()
#define wyzw shuffle4_ro4<_MM_SHUFFLE(3,2,1,3)>()
#define wywx shuffle4_ro4<_MM_SHUFFLE(0,3,1,3)>()
#define wywy shuffle4_ro4<_MM_SHUFFLE(1,3,1,3)>()
#define wywz shuffle4_ro4<_MM_SHUFFLE(2,3,1,3)>()
#define wyww shuffle4_ro4<_MM_SHUFFLE(3,3,1,3)>()
#define wzxx shuffle4_ro4<_MM_SHUFFLE(0,0,2,3)>()
#define wzxz shuffle4_ro4<_MM_SHUFFLE(2,0,2,3)>()
#define wzxw shuffle4_ro4<_MM_SHUFFLE(3,0,2,3)>()
#define wzyy shuffle4_ro4<_MM_SHUFFLE(1,1,2,3)>()
#define wzyz shuffle4_ro4<_MM_SHUFFLE(2,1,2,3)>()
#define wzyw shuffle4_ro4<_MM_SHUFFLE(3,1,2,3)>()
#define wzzx shuffle4_ro4<_MM_SHUFFLE(0,2,2,3)>()
#define wzzy shuffle4_ro4<_MM_SHUFFLE(1,2,2,3)>()
#define wzzz shuffle4_ro4<_MM_SHUFFLE(2,2,2,3)>()
#define wzzw shuffle4_ro4<_MM_SHUFFLE(3,2,2,3)>()
#define wzwx shuffle4_ro4<_MM_SHUFFLE(0,3,2,3)>()
#define wzwy shuffle4_ro4<_MM_SHUFFLE(1,3,2,3)>()
#define wzwz shuffle4_ro4<_MM_SHUFFLE(2,3,2,3)>()
#define wzww shuffle4_ro4<_MM_SHUFFLE(3,3,2,3)>()
#define wwxx shuffle4_ro4<_MM_SHUFFLE(0,0,3,3)>()
#define wwxy shuffle4_ro4<_MM_SHUFFLE(1,0,3,3)>()
#define wwxz shuffle4_ro4<_MM_SHUFFLE(2,0,3,3)>()
#define wwxw shuffle4_ro4<_MM_SHUFFLE(3,0,3,3)>()
#define wwyx shuffle4_ro4<_MM_SHUFFLE(0,1,3,3)>()
#define wwyy shuffle4_ro4<_MM_SHUFFLE(1,1,3,3)>()
#define wwyz shuffle4_ro4<_MM_SHUFFLE(2,1,3,3)>()
#define wwyw shuffle4_ro4<_MM_SHUFFLE(3,1,3,3)>()
#define wwzx shuffle4_ro4<_MM_SHUFFLE(0,2,3,3)>()
#define wwzy shuffle4_ro4<_MM_SHUFFLE(1,2,3,3)>()
#define wwzz shuffle4_ro4<_MM_SHUFFLE(2,2,3,3)>()
#define wwzw shuffle4_ro4<_MM_SHUFFLE(3,2,3,3)>()
#define wwwx shuffle4_ro4<_MM_SHUFFLE(0,3,3,3)>()
#define wwwy shuffle4_ro4<_MM_SHUFFLE(1,3,3,3)>()
#define wwwz shuffle4_ro4<_MM_SHUFFLE(2,3,3,3)>()
#define wwww shuffle4_ro4<_MM_SHUFFLE(3,3,3,3)>()
#endif