Revert of Clean up SSSE3 and SSE4 stubs. (patchset #1 id:1 of https://codereview.chromium.org/1810183003/ )

Reason for revert:
I've just had a better idea about how to fix this.  Let's revert while I work on it.

Original issue's description:
> Clean up SSSE3 and SSE4 stubs.
>
> We added these stubs to work around OpenBSD's old compiler, which had
> support for SSE2 but not SSSE3 or SSE4.
>
> We now already have other unstubbed files that require SSSE3 and SSE4 compiler
> support.  All the compilers we support have SSSE3 and SSE4 support, and all the
> way up to at least AVX2.
>
> (Requiring C++11 has had some nice ripple effects...)
>
>
> And, <immintrin.h> is already auto-included for these files, so no need for smmintrin or tmmintrin.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1810183003
> CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
>
> Committed: https://skia.googlesource.com/skia/+/2b1b40e11afc41452b4d2f74cdebb1b6e6f7cc96

TBR=djsollen@google.com,mtklein@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=skia:

Review URL: https://codereview.chromium.org/1819223003
This commit is contained in:
mtklein 2016-03-22 07:28:12 -07:00 committed by Commit bot
parent f809d7687a
commit ee451cf09d
2 changed files with 49 additions and 0 deletions

View File

@ -10,6 +10,14 @@
#include "SkPaint.h"
#include "SkUtils.h"
/* With the exception of the compilers that don't support it, we always build the
* SSSE3 functions and enable the caller to determine SSSE3 support. However for
* compilers that do not support SSSE3 we provide a stub implementation.
*/
#if SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSSE3
#include <tmmintrin.h> // SSSE3
// adding anonymous namespace seemed to force gcc to inline directly the
// instantiation, instead of creating the functions
// S32_generic_D32_filter_DX_SSSE3<true> and
@ -723,3 +731,31 @@ void S32_alpha_D32_filter_DXDY_SSSE3(const SkBitmapProcState& s,
int count, uint32_t* colors) {
S32_generic_D32_filter_DXDY_SSSE3<true>(s, xy, count, colors);
}
#else // SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSSE3
void S32_opaque_D32_filter_DX_SSSE3(const SkBitmapProcState& s,
const uint32_t* xy,
int count, uint32_t* colors) {
sk_throw();
}
void S32_alpha_D32_filter_DX_SSSE3(const SkBitmapProcState& s,
const uint32_t* xy,
int count, uint32_t* colors) {
sk_throw();
}
void S32_opaque_D32_filter_DXDY_SSSE3(const SkBitmapProcState& s,
const uint32_t* xy,
int count, uint32_t* colors) {
sk_throw();
}
void S32_alpha_D32_filter_DXDY_SSSE3(const SkBitmapProcState& s,
const uint32_t* xy,
int count, uint32_t* colors) {
sk_throw();
}
#endif

View File

@ -6,6 +6,17 @@
*/
#include "SkBlitRow_opts_SSE4.h"
// Some compilers can't compile SSSE3 or SSE4 intrinsics. We give them stub methods.
// The stubs should never be called, so we make them crash just to confirm that.
#if SK_CPU_SSE_LEVEL < SK_CPU_SSE_LEVEL_SSE41
void S32A_Opaque_BlitRow32_SSE4(SkPMColor* SK_RESTRICT, const SkPMColor* SK_RESTRICT, int, U8CPU) {
sk_throw();
}
#else
#include <smmintrin.h> // SSE4.1 intrinsics
#include "SkColorPriv.h"
#include "SkColor_opts_SSE2.h"
#include "SkMSAN.h"
@ -59,3 +70,5 @@ void S32A_Opaque_BlitRow32_SSE4(SkPMColor* SK_RESTRICT dst,
}
}
}
#endif