| // Copyright 2022 The SwiftShader Authors. All Rights Reserved. | |
| // | |
| // Licensed under the Apache License, Version 2.0 (the "License"); | |
| // you may not use this file except in compliance with the License. | |
| // You may obtain a copy of the License at | |
| // | |
| // http://www.apache.org/licenses/LICENSE-2.0 | |
| // | |
| // Unless required by applicable law or agreed to in writing, software | |
| // distributed under the License is distributed on an "AS IS" BASIS, | |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| // See the License for the specific language governing permissions and | |
| // limitations under the License. | |
| namespace rr { | |
| template<class T> | |
| struct Scalar; | |
| template<class Vector4> | |
| struct XYZW; | |
| template<class T> | |
| class RValue; | |
| template<class Vector4, int T> | |
| class Swizzle2 | |
| { | |
| friend Vector4; | |
| public: | |
| operator RValue<Vector4>() const; | |
| private: | |
| Vector4 *parent; | |
| }; | |
| template<class Vector4, int T> | |
| class Swizzle4 | |
| { | |
| public: | |
| operator RValue<Vector4>() const; | |
| private: | |
| Vector4 *parent; | |
| }; | |
| template<class Vector4, int T> | |
| class SwizzleMask4 | |
| { | |
| friend XYZW<Vector4>; | |
| public: | |
| operator RValue<Vector4>() const; | |
| RValue<Vector4> operator=(RValue<Vector4> rhs); | |
| RValue<Vector4> operator=(RValue<typename Scalar<Vector4>::Type> rhs); | |
| private: | |
| Vector4 *parent; | |
| }; | |
| template<class Vector4, int T> | |
| class SwizzleMask1 | |
| { | |
| public: | |
| operator RValue<typename Scalar<Vector4>::Type>() const; | |
| operator RValue<Vector4>() const; | |
| RValue<Vector4> operator=(float x); | |
| RValue<Vector4> operator=(RValue<Vector4> rhs); | |
| RValue<Vector4> operator=(RValue<typename Scalar<Vector4>::Type> rhs); | |
| private: | |
| Vector4 *parent; | |
| }; | |
| template<class Vector4, int T> | |
| RValue<typename Scalar<Vector4>::Type> operator+(RValue<typename Scalar<Vector4>::Type> lhs, SwizzleMask1<Vector4, T> rhs) | |
| { | |
| return lhs + RValue<typename Scalar<Vector4>::Type>(rhs); | |
| } | |
| template<class Vector4, int T> | |
| RValue<typename Scalar<Vector4>::Type> operator+(SwizzleMask1<Vector4, T> lhs, RValue<typename Scalar<Vector4>::Type> rhs) | |
| { | |
| return RValue<typename Scalar<Vector4>::Type>(lhs) + rhs; | |
| } | |
| template<class Vector4, int T> | |
| RValue<typename Scalar<Vector4>::Type> operator-(RValue<typename Scalar<Vector4>::Type> lhs, SwizzleMask1<Vector4, T> rhs) | |
| { | |
| return lhs - RValue<typename Scalar<Vector4>::Type>(rhs); | |
| } | |
| template<class Vector4, int T> | |
| RValue<typename Scalar<Vector4>::Type> operator-(SwizzleMask1<Vector4, T> lhs, RValue<typename Scalar<Vector4>::Type> rhs) | |
| { | |
| return RValue<typename Scalar<Vector4>::Type>(lhs) - rhs; | |
| } | |
| template<class Vector4, int T> | |
| class SwizzleMask2 | |
| { | |
| friend Vector4; | |
| public: | |
| operator RValue<Vector4>() const; | |
| RValue<Vector4> operator=(RValue<Vector4> rhs); | |
| private: | |
| Vector4 *parent; | |
| }; | |
| template<class Vector4> | |
| struct XYZW | |
| { | |
| friend Vector4; | |
| private: | |
| XYZW(Vector4 *parent) | |
| { | |
| xyzw.parent = parent; | |
| } | |
| public: | |
| union | |
| { | |
| SwizzleMask1<Vector4, 0x0000> x; | |
| SwizzleMask1<Vector4, 0x1111> y; | |
| SwizzleMask1<Vector4, 0x2222> z; | |
| SwizzleMask1<Vector4, 0x3333> w; | |
| Swizzle2<Vector4, 0x0000> xx; | |
| Swizzle2<Vector4, 0x1000> yx; | |
| Swizzle2<Vector4, 0x2000> zx; | |
| Swizzle2<Vector4, 0x3000> wx; | |
| SwizzleMask2<Vector4, 0x0111> xy; | |
| Swizzle2<Vector4, 0x1111> yy; | |
| Swizzle2<Vector4, 0x2111> zy; | |
| Swizzle2<Vector4, 0x3111> wy; | |
| SwizzleMask2<Vector4, 0x0222> xz; | |
| SwizzleMask2<Vector4, 0x1222> yz; | |
| Swizzle2<Vector4, 0x2222> zz; | |
| Swizzle2<Vector4, 0x3222> wz; | |
| SwizzleMask2<Vector4, 0x0333> xw; | |
| SwizzleMask2<Vector4, 0x1333> yw; | |
| SwizzleMask2<Vector4, 0x2333> zw; | |
| Swizzle2<Vector4, 0x3333> ww; | |
| Swizzle4<Vector4, 0x0000> xxx; | |
| Swizzle4<Vector4, 0x1000> yxx; | |
| Swizzle4<Vector4, 0x2000> zxx; | |
| Swizzle4<Vector4, 0x3000> wxx; | |
| Swizzle4<Vector4, 0x0100> xyx; | |
| Swizzle4<Vector4, 0x1100> yyx; | |
| Swizzle4<Vector4, 0x2100> zyx; | |
| Swizzle4<Vector4, 0x3100> wyx; | |
| Swizzle4<Vector4, 0x0200> xzx; | |
| Swizzle4<Vector4, 0x1200> yzx; | |
| Swizzle4<Vector4, 0x2200> zzx; | |
| Swizzle4<Vector4, 0x3200> wzx; | |
| Swizzle4<Vector4, 0x0300> xwx; | |
| Swizzle4<Vector4, 0x1300> ywx; | |
| Swizzle4<Vector4, 0x2300> zwx; | |
| Swizzle4<Vector4, 0x3300> wwx; | |
| Swizzle4<Vector4, 0x0011> xxy; | |
| Swizzle4<Vector4, 0x1011> yxy; | |
| Swizzle4<Vector4, 0x2011> zxy; | |
| Swizzle4<Vector4, 0x3011> wxy; | |
| Swizzle4<Vector4, 0x0111> xyy; | |
| Swizzle4<Vector4, 0x1111> yyy; | |
| Swizzle4<Vector4, 0x2111> zyy; | |
| Swizzle4<Vector4, 0x3111> wyy; | |
| Swizzle4<Vector4, 0x0211> xzy; | |
| Swizzle4<Vector4, 0x1211> yzy; | |
| Swizzle4<Vector4, 0x2211> zzy; | |
| Swizzle4<Vector4, 0x3211> wzy; | |
| Swizzle4<Vector4, 0x0311> xwy; | |
| Swizzle4<Vector4, 0x1311> ywy; | |
| Swizzle4<Vector4, 0x2311> zwy; | |
| Swizzle4<Vector4, 0x3311> wwy; | |
| Swizzle4<Vector4, 0x0022> xxz; | |
| Swizzle4<Vector4, 0x1022> yxz; | |
| Swizzle4<Vector4, 0x2022> zxz; | |
| Swizzle4<Vector4, 0x3022> wxz; | |
| SwizzleMask4<Vector4, 0x0122> xyz; | |
| Swizzle4<Vector4, 0x1122> yyz; | |
| Swizzle4<Vector4, 0x2122> zyz; | |
| Swizzle4<Vector4, 0x3122> wyz; | |
| Swizzle4<Vector4, 0x0222> xzz; | |
| Swizzle4<Vector4, 0x1222> yzz; | |
| Swizzle4<Vector4, 0x2222> zzz; | |
| Swizzle4<Vector4, 0x3222> wzz; | |
| Swizzle4<Vector4, 0x0322> xwz; | |
| Swizzle4<Vector4, 0x1322> ywz; | |
| Swizzle4<Vector4, 0x2322> zwz; | |
| Swizzle4<Vector4, 0x3322> wwz; | |
| Swizzle4<Vector4, 0x0033> xxw; | |
| Swizzle4<Vector4, 0x1033> yxw; | |
| Swizzle4<Vector4, 0x2033> zxw; | |
| Swizzle4<Vector4, 0x3033> wxw; | |
| SwizzleMask4<Vector4, 0x0133> xyw; | |
| Swizzle4<Vector4, 0x1133> yyw; | |
| Swizzle4<Vector4, 0x2133> zyw; | |
| Swizzle4<Vector4, 0x3133> wyw; | |
| SwizzleMask4<Vector4, 0x0233> xzw; | |
| SwizzleMask4<Vector4, 0x1233> yzw; | |
| Swizzle4<Vector4, 0x2233> zzw; | |
| Swizzle4<Vector4, 0x3233> wzw; | |
| Swizzle4<Vector4, 0x0333> xww; | |
| Swizzle4<Vector4, 0x1333> yww; | |
| Swizzle4<Vector4, 0x2333> zww; | |
| Swizzle4<Vector4, 0x3333> www; | |
| Swizzle4<Vector4, 0x0000> xxxx; | |
| Swizzle4<Vector4, 0x1000> yxxx; | |
| Swizzle4<Vector4, 0x2000> zxxx; | |
| Swizzle4<Vector4, 0x3000> wxxx; | |
| Swizzle4<Vector4, 0x0100> xyxx; | |
| Swizzle4<Vector4, 0x1100> yyxx; | |
| Swizzle4<Vector4, 0x2100> zyxx; | |
| Swizzle4<Vector4, 0x3100> wyxx; | |
| Swizzle4<Vector4, 0x0200> xzxx; | |
| Swizzle4<Vector4, 0x1200> yzxx; | |
| Swizzle4<Vector4, 0x2200> zzxx; | |
| Swizzle4<Vector4, 0x3200> wzxx; | |
| Swizzle4<Vector4, 0x0300> xwxx; | |
| Swizzle4<Vector4, 0x1300> ywxx; | |
| Swizzle4<Vector4, 0x2300> zwxx; | |
| Swizzle4<Vector4, 0x3300> wwxx; | |
| Swizzle4<Vector4, 0x0010> xxyx; | |
| Swizzle4<Vector4, 0x1010> yxyx; | |
| Swizzle4<Vector4, 0x2010> zxyx; | |
| Swizzle4<Vector4, 0x3010> wxyx; | |
| Swizzle4<Vector4, 0x0110> xyyx; | |
| Swizzle4<Vector4, 0x1110> yyyx; | |
| Swizzle4<Vector4, 0x2110> zyyx; | |
| Swizzle4<Vector4, 0x3110> wyyx; | |
| Swizzle4<Vector4, 0x0210> xzyx; | |
| Swizzle4<Vector4, 0x1210> yzyx; | |
| Swizzle4<Vector4, 0x2210> zzyx; | |
| Swizzle4<Vector4, 0x3210> wzyx; | |
| Swizzle4<Vector4, 0x0310> xwyx; | |
| Swizzle4<Vector4, 0x1310> ywyx; | |
| Swizzle4<Vector4, 0x2310> zwyx; | |
| Swizzle4<Vector4, 0x3310> wwyx; | |
| Swizzle4<Vector4, 0x0020> xxzx; | |
| Swizzle4<Vector4, 0x1020> yxzx; | |
| Swizzle4<Vector4, 0x2020> zxzx; | |
| Swizzle4<Vector4, 0x3020> wxzx; | |
| Swizzle4<Vector4, 0x0120> xyzx; | |
| Swizzle4<Vector4, 0x1120> yyzx; | |
| Swizzle4<Vector4, 0x2120> zyzx; | |
| Swizzle4<Vector4, 0x3120> wyzx; | |
| Swizzle4<Vector4, 0x0220> xzzx; | |
| Swizzle4<Vector4, 0x1220> yzzx; | |
| Swizzle4<Vector4, 0x2220> zzzx; | |
| Swizzle4<Vector4, 0x3220> wzzx; | |
| Swizzle4<Vector4, 0x0320> xwzx; | |
| Swizzle4<Vector4, 0x1320> ywzx; | |
| Swizzle4<Vector4, 0x2320> zwzx; | |
| Swizzle4<Vector4, 0x3320> wwzx; | |
| Swizzle4<Vector4, 0x0030> xxwx; | |
| Swizzle4<Vector4, 0x1030> yxwx; | |
| Swizzle4<Vector4, 0x2030> zxwx; | |
| Swizzle4<Vector4, 0x3030> wxwx; | |
| Swizzle4<Vector4, 0x0130> xywx; | |
| Swizzle4<Vector4, 0x1130> yywx; | |
| Swizzle4<Vector4, 0x2130> zywx; | |
| Swizzle4<Vector4, 0x3130> wywx; | |
| Swizzle4<Vector4, 0x0230> xzwx; | |
| Swizzle4<Vector4, 0x1230> yzwx; | |
| Swizzle4<Vector4, 0x2230> zzwx; | |
| Swizzle4<Vector4, 0x3230> wzwx; | |
| Swizzle4<Vector4, 0x0330> xwwx; | |
| Swizzle4<Vector4, 0x1330> ywwx; | |
| Swizzle4<Vector4, 0x2330> zwwx; | |
| Swizzle4<Vector4, 0x3330> wwwx; | |
| Swizzle4<Vector4, 0x0001> xxxy; | |
| Swizzle4<Vector4, 0x1001> yxxy; | |
| Swizzle4<Vector4, 0x2001> zxxy; | |
| Swizzle4<Vector4, 0x3001> wxxy; | |
| Swizzle4<Vector4, 0x0101> xyxy; | |
| Swizzle4<Vector4, 0x1101> yyxy; | |
| Swizzle4<Vector4, 0x2101> zyxy; | |
| Swizzle4<Vector4, 0x3101> wyxy; | |
| Swizzle4<Vector4, 0x0201> xzxy; | |
| Swizzle4<Vector4, 0x1201> yzxy; | |
| Swizzle4<Vector4, 0x2201> zzxy; | |
| Swizzle4<Vector4, 0x3201> wzxy; | |
| Swizzle4<Vector4, 0x0301> xwxy; | |
| Swizzle4<Vector4, 0x1301> ywxy; | |
| Swizzle4<Vector4, 0x2301> zwxy; | |
| Swizzle4<Vector4, 0x3301> wwxy; | |
| Swizzle4<Vector4, 0x0011> xxyy; | |
| Swizzle4<Vector4, 0x1011> yxyy; | |
| Swizzle4<Vector4, 0x2011> zxyy; | |
| Swizzle4<Vector4, 0x3011> wxyy; | |
| Swizzle4<Vector4, 0x0111> xyyy; | |
| Swizzle4<Vector4, 0x1111> yyyy; | |
| Swizzle4<Vector4, 0x2111> zyyy; | |
| Swizzle4<Vector4, 0x3111> wyyy; | |
| Swizzle4<Vector4, 0x0211> xzyy; | |
| Swizzle4<Vector4, 0x1211> yzyy; | |
| Swizzle4<Vector4, 0x2211> zzyy; | |
| Swizzle4<Vector4, 0x3211> wzyy; | |
| Swizzle4<Vector4, 0x0311> xwyy; | |
| Swizzle4<Vector4, 0x1311> ywyy; | |
| Swizzle4<Vector4, 0x2311> zwyy; | |
| Swizzle4<Vector4, 0x3311> wwyy; | |
| Swizzle4<Vector4, 0x0021> xxzy; | |
| Swizzle4<Vector4, 0x1021> yxzy; | |
| Swizzle4<Vector4, 0x2021> zxzy; | |
| Swizzle4<Vector4, 0x3021> wxzy; | |
| Swizzle4<Vector4, 0x0121> xyzy; | |
| Swizzle4<Vector4, 0x1121> yyzy; | |
| Swizzle4<Vector4, 0x2121> zyzy; | |
| Swizzle4<Vector4, 0x3121> wyzy; | |
| Swizzle4<Vector4, 0x0221> xzzy; | |
| Swizzle4<Vector4, 0x1221> yzzy; | |
| Swizzle4<Vector4, 0x2221> zzzy; | |
| Swizzle4<Vector4, 0x3221> wzzy; | |
| Swizzle4<Vector4, 0x0321> xwzy; | |
| Swizzle4<Vector4, 0x1321> ywzy; | |
| Swizzle4<Vector4, 0x2321> zwzy; | |
| Swizzle4<Vector4, 0x3321> wwzy; | |
| Swizzle4<Vector4, 0x0031> xxwy; | |
| Swizzle4<Vector4, 0x1031> yxwy; | |
| Swizzle4<Vector4, 0x2031> zxwy; | |
| Swizzle4<Vector4, 0x3031> wxwy; | |
| Swizzle4<Vector4, 0x0131> xywy; | |
| Swizzle4<Vector4, 0x1131> yywy; | |
| Swizzle4<Vector4, 0x2131> zywy; | |
| Swizzle4<Vector4, 0x3131> wywy; | |
| Swizzle4<Vector4, 0x0231> xzwy; | |
| Swizzle4<Vector4, 0x1231> yzwy; | |
| Swizzle4<Vector4, 0x2231> zzwy; | |
| Swizzle4<Vector4, 0x3231> wzwy; | |
| Swizzle4<Vector4, 0x0331> xwwy; | |
| Swizzle4<Vector4, 0x1331> ywwy; | |
| Swizzle4<Vector4, 0x2331> zwwy; | |
| Swizzle4<Vector4, 0x3331> wwwy; | |
| Swizzle4<Vector4, 0x0002> xxxz; | |
| Swizzle4<Vector4, 0x1002> yxxz; | |
| Swizzle4<Vector4, 0x2002> zxxz; | |
| Swizzle4<Vector4, 0x3002> wxxz; | |
| Swizzle4<Vector4, 0x0102> xyxz; | |
| Swizzle4<Vector4, 0x1102> yyxz; | |
| Swizzle4<Vector4, 0x2102> zyxz; | |
| Swizzle4<Vector4, 0x3102> wyxz; | |
| Swizzle4<Vector4, 0x0202> xzxz; | |
| Swizzle4<Vector4, 0x1202> yzxz; | |
| Swizzle4<Vector4, 0x2202> zzxz; | |
| Swizzle4<Vector4, 0x3202> wzxz; | |
| Swizzle4<Vector4, 0x0302> xwxz; | |
| Swizzle4<Vector4, 0x1302> ywxz; | |
| Swizzle4<Vector4, 0x2302> zwxz; | |
| Swizzle4<Vector4, 0x3302> wwxz; | |
| Swizzle4<Vector4, 0x0012> xxyz; | |
| Swizzle4<Vector4, 0x1012> yxyz; | |
| Swizzle4<Vector4, 0x2012> zxyz; | |
| Swizzle4<Vector4, 0x3012> wxyz; | |
| Swizzle4<Vector4, 0x0112> xyyz; | |
| Swizzle4<Vector4, 0x1112> yyyz; | |
| Swizzle4<Vector4, 0x2112> zyyz; | |
| Swizzle4<Vector4, 0x3112> wyyz; | |
| Swizzle4<Vector4, 0x0212> xzyz; | |
| Swizzle4<Vector4, 0x1212> yzyz; | |
| Swizzle4<Vector4, 0x2212> zzyz; | |
| Swizzle4<Vector4, 0x3212> wzyz; | |
| Swizzle4<Vector4, 0x0312> xwyz; | |
| Swizzle4<Vector4, 0x1312> ywyz; | |
| Swizzle4<Vector4, 0x2312> zwyz; | |
| Swizzle4<Vector4, 0x3312> wwyz; | |
| Swizzle4<Vector4, 0x0022> xxzz; | |
| Swizzle4<Vector4, 0x1022> yxzz; | |
| Swizzle4<Vector4, 0x2022> zxzz; | |
| Swizzle4<Vector4, 0x3022> wxzz; | |
| Swizzle4<Vector4, 0x0122> xyzz; | |
| Swizzle4<Vector4, 0x1122> yyzz; | |
| Swizzle4<Vector4, 0x2122> zyzz; | |
| Swizzle4<Vector4, 0x3122> wyzz; | |
| Swizzle4<Vector4, 0x0222> xzzz; | |
| Swizzle4<Vector4, 0x1222> yzzz; | |
| Swizzle4<Vector4, 0x2222> zzzz; | |
| Swizzle4<Vector4, 0x3222> wzzz; | |
| Swizzle4<Vector4, 0x0322> xwzz; | |
| Swizzle4<Vector4, 0x1322> ywzz; | |
| Swizzle4<Vector4, 0x2322> zwzz; | |
| Swizzle4<Vector4, 0x3322> wwzz; | |
| Swizzle4<Vector4, 0x0032> xxwz; | |
| Swizzle4<Vector4, 0x1032> yxwz; | |
| Swizzle4<Vector4, 0x2032> zxwz; | |
| Swizzle4<Vector4, 0x3032> wxwz; | |
| Swizzle4<Vector4, 0x0132> xywz; | |
| Swizzle4<Vector4, 0x1132> yywz; | |
| Swizzle4<Vector4, 0x2132> zywz; | |
| Swizzle4<Vector4, 0x3132> wywz; | |
| Swizzle4<Vector4, 0x0232> xzwz; | |
| Swizzle4<Vector4, 0x1232> yzwz; | |
| Swizzle4<Vector4, 0x2232> zzwz; | |
| Swizzle4<Vector4, 0x3232> wzwz; | |
| Swizzle4<Vector4, 0x0332> xwwz; | |
| Swizzle4<Vector4, 0x1332> ywwz; | |
| Swizzle4<Vector4, 0x2332> zwwz; | |
| Swizzle4<Vector4, 0x3332> wwwz; | |
| Swizzle4<Vector4, 0x0003> xxxw; | |
| Swizzle4<Vector4, 0x1003> yxxw; | |
| Swizzle4<Vector4, 0x2003> zxxw; | |
| Swizzle4<Vector4, 0x3003> wxxw; | |
| Swizzle4<Vector4, 0x0103> xyxw; | |
| Swizzle4<Vector4, 0x1103> yyxw; | |
| Swizzle4<Vector4, 0x2103> zyxw; | |
| Swizzle4<Vector4, 0x3103> wyxw; | |
| Swizzle4<Vector4, 0x0203> xzxw; | |
| Swizzle4<Vector4, 0x1203> yzxw; | |
| Swizzle4<Vector4, 0x2203> zzxw; | |
| Swizzle4<Vector4, 0x3203> wzxw; | |
| Swizzle4<Vector4, 0x0303> xwxw; | |
| Swizzle4<Vector4, 0x1303> ywxw; | |
| Swizzle4<Vector4, 0x2303> zwxw; | |
| Swizzle4<Vector4, 0x3303> wwxw; | |
| Swizzle4<Vector4, 0x0013> xxyw; | |
| Swizzle4<Vector4, 0x1013> yxyw; | |
| Swizzle4<Vector4, 0x2013> zxyw; | |
| Swizzle4<Vector4, 0x3013> wxyw; | |
| Swizzle4<Vector4, 0x0113> xyyw; | |
| Swizzle4<Vector4, 0x1113> yyyw; | |
| Swizzle4<Vector4, 0x2113> zyyw; | |
| Swizzle4<Vector4, 0x3113> wyyw; | |
| Swizzle4<Vector4, 0x0213> xzyw; | |
| Swizzle4<Vector4, 0x1213> yzyw; | |
| Swizzle4<Vector4, 0x2213> zzyw; | |
| Swizzle4<Vector4, 0x3213> wzyw; | |
| Swizzle4<Vector4, 0x0313> xwyw; | |
| Swizzle4<Vector4, 0x1313> ywyw; | |
| Swizzle4<Vector4, 0x2313> zwyw; | |
| Swizzle4<Vector4, 0x3313> wwyw; | |
| Swizzle4<Vector4, 0x0023> xxzw; | |
| Swizzle4<Vector4, 0x1023> yxzw; | |
| Swizzle4<Vector4, 0x2023> zxzw; | |
| Swizzle4<Vector4, 0x3023> wxzw; | |
| SwizzleMask4<Vector4, 0x0123> xyzw; | |
| Swizzle4<Vector4, 0x1123> yyzw; | |
| Swizzle4<Vector4, 0x2123> zyzw; | |
| Swizzle4<Vector4, 0x3123> wyzw; | |
| Swizzle4<Vector4, 0x0223> xzzw; | |
| Swizzle4<Vector4, 0x1223> yzzw; | |
| Swizzle4<Vector4, 0x2223> zzzw; | |
| Swizzle4<Vector4, 0x3223> wzzw; | |
| Swizzle4<Vector4, 0x0323> xwzw; | |
| Swizzle4<Vector4, 0x1323> ywzw; | |
| Swizzle4<Vector4, 0x2323> zwzw; | |
| Swizzle4<Vector4, 0x3323> wwzw; | |
| Swizzle4<Vector4, 0x0033> xxww; | |
| Swizzle4<Vector4, 0x1033> yxww; | |
| Swizzle4<Vector4, 0x2033> zxww; | |
| Swizzle4<Vector4, 0x3033> wxww; | |
| Swizzle4<Vector4, 0x0133> xyww; | |
| Swizzle4<Vector4, 0x1133> yyww; | |
| Swizzle4<Vector4, 0x2133> zyww; | |
| Swizzle4<Vector4, 0x3133> wyww; | |
| Swizzle4<Vector4, 0x0233> xzww; | |
| Swizzle4<Vector4, 0x1233> yzww; | |
| Swizzle4<Vector4, 0x2233> zzww; | |
| Swizzle4<Vector4, 0x3233> wzww; | |
| Swizzle4<Vector4, 0x0333> xwww; | |
| Swizzle4<Vector4, 0x1333> ywww; | |
| Swizzle4<Vector4, 0x2333> zwww; | |
| Swizzle4<Vector4, 0x3333> wwww; | |
| }; | |
| }; | |
| } // namespace rr |