| Index: src/opts/SkNx_neon.h
|
| diff --git a/src/opts/SkNx_neon.h b/src/opts/SkNx_neon.h
|
| index 1cae223b6c1413eba6e6fa5910f95b046f8ceff9..660b92c6b0c48511e53d1da57450d917eeaf2371 100644
|
| --- a/src/opts/SkNx_neon.h
|
| +++ b/src/opts/SkNx_neon.h
|
| @@ -298,10 +298,7 @@ public:
|
| }
|
|
|
| SkNf thenElse(const SkNf& t, const SkNf& e) const {
|
| - uint32x4_t ci = vreinterpretq_u32_f32(fVec),
|
| - ti = vreinterpretq_u32_f32(t.fVec),
|
| - ei = vreinterpretq_u32_f32(e.fVec);
|
| - return vreinterpretq_f32_u32(vorrq_u32(vandq_u32(ti, ci), vbicq_u32(ei, ci)));
|
| + return vbslq_f32(vreinterpretq_u32_f32(fVec), t.fVec, e.fVec);
|
| }
|
|
|
| float32x4_t fVec;
|
| @@ -338,8 +335,7 @@ public:
|
| }
|
|
|
| SkNi thenElse(const SkNi& t, const SkNi& e) const {
|
| - return vorrq_u16(vandq_u16(t.fVec, fVec),
|
| - vbicq_u16(e.fVec, fVec));
|
| + return vbslq_u16(fVec, t.fVec, e.fVec);
|
| }
|
|
|
| uint16x8_t fVec;
|
| @@ -377,8 +373,7 @@ public:
|
| }
|
|
|
| SkNi thenElse(const SkNi& t, const SkNi& e) const {
|
| - return vorrq_u8(vandq_u8(t.fVec, fVec),
|
| - vbicq_u8(e.fVec, fVec));
|
| + return vbslq_u8(fVec, t.fVec, e.fVec);
|
| }
|
|
|
| uint8x16_t fVec;
|
|
|