From 23f77841264189822beec8a4c90139115e2421e8 Mon Sep 17 00:00:00 2001 From: Matthias Kretz Date: Thu, 11 Oct 2018 15:45:50 +0200 Subject: [PATCH] Remove dead (and build-breaking) code Refs: gh-212 Signed-off-by: Matthias Kretz --- Vc/sse/intrinsics.h | 57 --------------------------------------------- 1 file changed, 57 deletions(-) diff --git a/Vc/sse/intrinsics.h b/Vc/sse/intrinsics.h index f9d4aebd7..47699fff6 100644 --- a/Vc/sse/intrinsics.h +++ b/Vc/sse/intrinsics.h @@ -602,63 +602,6 @@ namespace Vc_VERSIONED_NAMESPACE { namespace SseIntrinsics { - static Vc_INTRINSIC Vc_CONST float extract_float_imm(const __m128 v, const size_t i) { - float f; - switch (i) { - case 0: - f = _mm_cvtss_f32(v); - break; -#if defined Vc_IMPL_SSE4_1 && !defined Vc_MSVC - default: -#ifdef Vc_GCC - f = __builtin_ia32_vec_ext_v4sf(static_cast<__v4sf>(v), (i)); -#else - // MSVC fails to compile this because it can't optimize i to an immediate - _MM_EXTRACT_FLOAT(f, v, i); -#endif - break; -#else - case 1: - f = _mm_cvtss_f32(_mm_castsi128_ps(_mm_srli_si128(_mm_castps_si128(v), 4))); - break; - case 2: - f = _mm_cvtss_f32(_mm_movehl_ps(v, v)); - break; - case 3: - f = _mm_cvtss_f32(_mm_castsi128_ps(_mm_srli_si128(_mm_castps_si128(v), 12))); - break; -#endif - } - return f; - } - static Vc_INTRINSIC Vc_CONST double extract_double_imm(const __m128d v, const size_t i) { - if (i == 0) { - return _mm_cvtsd_f64(v); - } - return _mm_cvtsd_f64(_mm_castps_pd(_mm_movehl_ps(_mm_castpd_ps(v), _mm_castpd_ps(v)))); - } - static Vc_INTRINSIC Vc_CONST float extract_float(const __m128 v, const size_t i) { -#ifdef Vc_GCC - if (__builtin_constant_p(i)) { - return extract_float_imm(v, i); -//X if (index <= 1) { -//X unsigned long long tmp = _mm_cvtsi128_si64(_mm_castps_si128(v)); -//X if (index == 0) tmp &= 0xFFFFFFFFull; -//X if (index == 1) tmp >>= 32; -//X return Common::AliasingEntryHelper(tmp); -//X } - } else { - typedef float float4[4] Vc_MAY_ALIAS; - const float4 &data = reinterpret_cast(v); - return data[i]; - } -#else - union { __m128 v; float m[4]; } u; - u.v = v; - return u.m[i]; -#endif - } - static Vc_INTRINSIC Vc_PURE __m128 _mm_stream_load(const float *mem) { #ifdef Vc_IMPL_SSE4_1 return _mm_castsi128_ps(_mm_stream_load_si128(reinterpret_cast<__m128i *>(const_cast(mem))));