skia2/include/private
Mike Klein 41b995c4fb specialize if_then_else(int4,float4,float4)
Add SSE, SSE4.1, and NEON specializations.

The if_then_else() unit tests in SkVxTest.cpp should cover this.

I had to give up on my dream of not using Skia headers for now.  There's
really no good way of knowing whether we've got SSE4.1 support in MSVC
except when we explicitly define SK_CPU_SSE_LEVEL=SK_CPU_SSE_LEVEL_SSE41.

This refactor to use SK_CPU_SSE_LEVEL let MSVC point out a slight
ordering problem that would cause an infinite loop calling any of
the specializions like sqrt(float2).  I believe moving them after
the float4 specializations will fix that.

Change-Id: I83639f378a182716d1b37e92b6d725472698f874
Reviewed-on: https://skia-review.googlesource.com/c/195920
Auto-Submit: Mike Klein <mtklein@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
2019-02-27 20:12:20 +00:00
..
GrAuditTrail.h Converting more debug code to SkJSONWriter 2019-01-28 19:06:06 +00:00
GrCCClipPath.h ccpr: Remove the dangling pointer from GrCCDrawPathsOp 2018-09-14 16:32:58 +00:00
GrCCPerOpListPaths.h include: whitespace changes for clang-format 2018-09-19 14:54:57 +00:00
GrColor.h Enable wide color support in CCPR 2019-01-10 13:53:31 +00:00
GrContext_Base.h Allow GrRecordingContext to create surfaceContexts 2019-02-14 21:47:28 +00:00
GrImageContext.h Plumb abandonment throughout GrContext hierarchy 2019-02-11 20:26:22 +00:00
GrOpList.h Remove GrContextPriv.h from GrRenderTargetContext.h 2019-02-15 17:29:03 +00:00
GrProxyRef.h Reland "Move GrGeometryProcessor's textures out of classes and into" 2018-08-07 14:02:49 +00:00
GrRecordingContext.h Move DrawingManager to RecordingContext 2019-02-22 17:25:00 +00:00
GrRenderTargetProxy.h Add initial support for creating a vulkan secondary command buffer drawing context. 2019-01-02 20:39:23 +00:00
GrResourceKey.h Revert "Revert "Reuse GrTexture instances when the same GrBackendTexture is used to"" 2019-01-10 17:51:21 +00:00
GrSharedEnums.h sksl enum support 2017-11-13 14:36:40 +00:00
GrSingleOwner.h Reland of Make a single GrSingleOwner in GrContext (patchset #1 id:1 of https://codereview.chromium.org/1565303003/ ) 2016-01-08 10:09:13 -08:00
GrSkSLFPFactoryCache.h Revert "replace SkNVRefCnt with SkRefCnt" 2018-10-30 15:23:06 +00:00
GrSurfaceProxy.h Switch GrSurfaceProxy's Copy methods over to GrRecordingContext 2019-02-15 20:50:43 +00:00
GrTextureProxy.h Move textureType() method from GrSurfaceProxy to GrTextureProxy. 2018-12-13 14:59:50 +00:00
GrTypesPriv.h Formalize edge-aa interaction with GrAA 2019-02-19 17:49:57 +00:00
GrVkTypesPriv.h Remove include/gpu/vk from include paths. 2018-05-22 19:59:35 +00:00
SkArenaAlloc.h Add explicit to ctor 2018-11-27 18:11:30 +00:00
SkBitmaskEnum.h use std::underlying_type 2019-02-04 16:27:22 +00:00
SkChecksum.h Move SkNoncopyable to include/private. 2018-07-17 21:39:51 +00:00
SkColorData.h move LCD blits to SkBlitter_ARGB32.cpp 2018-11-09 17:03:06 +00:00
SkDeferredDisplayList.h Test YUV images in DDL 2018-10-01 12:12:29 +00:00
SkEncodedInfo.h Remove assert that BGRA and RGBA are not opaque 2019-02-15 19:53:04 +00:00
SkFixed.h Revert "SkMath takes some functions from from SkTypes" 2018-09-07 17:32:54 +00:00
SkFloatBits.h include: whitespace changes for clang-format 2018-09-19 14:54:57 +00:00
SkFloatingPoint.h make float divide-by-zero fatal 2018-11-06 21:56:27 +00:00
SkHalf.h remove SK_API from private calls 2019-01-23 16:43:11 +00:00
SkImageInfoPriv.h Remove checks that insist on kOpaque for some color types 2018-10-11 15:30:55 +00:00
SkLeanWindows.h SkLeanWindows.h: #include "Windows.h" fewer places 2016-06-07 17:21:10 -07:00
SkMacros.h SkTypes: more into SkMacros 2018-06-12 20:24:43 +00:00
SkMalloc.h Add 2 fuzz targets for image decoding (oss-fuzz) 2018-02-12 15:25:59 +00:00
SkMessageBus.h ccpr: Use SkMessageBus for thread-safe eviction of cache entries 2018-10-19 00:25:20 +00:00
SkMutex.h Revert "SkMath takes some functions from from SkTypes" 2018-09-07 17:32:54 +00:00
SkNoncopyable.h Move SkNoncopyable to include/private. 2018-07-17 21:39:51 +00:00
SkNx_neon.h minor Sk4px cleanup 2018-12-18 20:46:25 +00:00
SkNx_sse.h minor Sk4px cleanup 2018-12-18 20:46:25 +00:00
SkNx.h add google-build-namespaces to clang-tidy checks 2018-12-12 16:33:59 +00:00
SkOnce.h tweak SkOnce.h header to work around issues with std::atomic::compare_exchange_strong 2016-12-16 22:21:27 +00:00
SkPathRef.h remove sk_atomic_dec 2018-12-04 17:58:35 +00:00
SkSafe32.h Revert "SkMath takes some functions from from SkTypes" 2018-09-07 17:32:54 +00:00
SkSafe_math.h Guard against buggy ucrt\math.h. 2016-11-28 15:40:23 +00:00
SkSemaphore.h Revert "SkMath takes some functions from from SkTypes" 2018-09-07 17:32:54 +00:00
SkShadowFlags.h Remove deprecated drawShadow interfaces 2018-02-28 19:07:29 +00:00
SkSpinlock.h Cache GrColorSpaceXforms 2016-10-20 20:47:33 +00:00
SkTArray.h SkTArray: behave a little more like std::vector 2018-10-19 16:41:51 +00:00
SkTDArray.h Remove unused methods from SkTDArray 2018-10-19 21:29:08 +00:00
SkTemplates.h Remove SkAutoTCallIProc. 2018-09-20 17:42:02 +00:00
SkTFitsIn.h Add support for MSVC run-time checks (and control flow guard) 2019-02-04 20:55:24 +00:00
SkTHash.h add SkTHashTable::LookupOrNull() 2019-01-09 18:51:22 +00:00
SkThreadID.h Unify ThreadID. 2015-09-29 14:38:01 -07:00
SkTInternalLList.h Move SkNoncopyable to include/private. 2018-07-17 21:39:51 +00:00
SkTLogic.h use std::underlying_type 2019-02-04 16:27:22 +00:00
SkTo.h Revert "Revert "SkTypes: extract SkTo"" 2018-06-14 14:55:17 +00:00
SkTSearch.h Convert NULL and 0 to nullptr. 2017-08-28 17:48:57 +00:00
SkVx.h specialize if_then_else(int4,float4,float4) 2019-02-27 20:12:20 +00:00
SkWeakRefCnt.h clean up some odd SkRefCnt features 2018-10-31 20:47:16 +00:00