| OLD | NEW |
| 1 // It is important _not_ to put header guards here. | 1 // It is important _not_ to put header guards here. |
| 2 // This file will be intentionally included three times. | 2 // This file will be intentionally included three times. |
| 3 | 3 |
| 4 #include "SkTypes.h" // Keep this before any #ifdef for skbug.com/3362 | 4 #include "SkTypes.h" // Keep this before any #ifdef for skbug.com/3362 |
| 5 | 5 |
| 6 #if defined(SK4X_PREAMBLE) | 6 #if defined(SK4X_PREAMBLE) |
| 7 #include "SkFloatingPoint.h" | 7 #include "SkFloatingPoint.h" |
| 8 #include <math.h> | 8 #include <math.h> |
| 9 | 9 |
| 10 #elif defined(SK4X_PRIVATE) | 10 #elif defined(SK4X_PRIVATE) |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 104 SkTMax(a.fVec[3], b.fVec[3])); | 104 SkTMax(a.fVec[3], b.fVec[3])); |
| 105 } | 105 } |
| 106 | 106 |
| 107 M(template <int m, int a, int s, int k> Sk4x<T>) Shuffle(const Sk4x<T>& x, const
Sk4x<T>& y) { | 107 M(template <int m, int a, int s, int k> Sk4x<T>) Shuffle(const Sk4x<T>& x, const
Sk4x<T>& y) { |
| 108 return Sk4x(m < 4 ? x.fVec[m] : y.fVec[m-4], | 108 return Sk4x(m < 4 ? x.fVec[m] : y.fVec[m-4], |
| 109 a < 4 ? x.fVec[a] : y.fVec[a-4], | 109 a < 4 ? x.fVec[a] : y.fVec[a-4], |
| 110 s < 4 ? x.fVec[s] : y.fVec[s-4], | 110 s < 4 ? x.fVec[s] : y.fVec[s-4], |
| 111 k < 4 ? x.fVec[k] : y.fVec[k-4]); | 111 k < 4 ? x.fVec[k] : y.fVec[k-4]); |
| 112 } | 112 } |
| 113 | 113 |
| 114 M(Sk4x<T>) aacc() const { return Shuffle<0,0,2,2>(*this, *this); } |
| 115 M(Sk4x<T>) bbdd() const { return Shuffle<1,1,3,3>(*this, *this); } |
| 114 M(Sk4x<T>) badc() const { return Shuffle<1,0,3,2>(*this, *this); } | 116 M(Sk4x<T>) badc() const { return Shuffle<1,0,3,2>(*this, *this); } |
| 115 | 117 |
| 116 #undef M | 118 #undef M |
| 117 | 119 |
| 118 #endif | 120 #endif |
| OLD | NEW |