[x265] [PATCH] intra-sse3.cpp: Replace PredIntraAng4_m_5 vector class function with intrinsic
dnyaneshwar at multicorewareinc.com
dnyaneshwar at multicorewareinc.com
Fri Oct 11 12:14:25 CEST 2013
# HG changeset patch
# User Dnyaneshwar Gorade <dnyaneshwar at multicorewareinc.com>
# Date 1381486364 -19800
# Fri Oct 11 15:42:44 2013 +0530
# Node ID f3fb8230c56dcafe0e913ba22fa98049325a1cfd
# Parent 8e9cda0ba4ddf8c17f86482cc1ea1669f7e6b18f
intra-sse3.cpp: Replace PredIntraAng4_m_5 vector class function with intrinsic.
diff -r 8e9cda0ba4dd -r f3fb8230c56d source/common/vec/intra-sse3.cpp
--- a/source/common/vec/intra-sse3.cpp Fri Oct 11 15:38:38 2013 +0530
+++ b/source/common/vec/intra-sse3.cpp Fri Oct 11 15:42:44 2013 +0530
@@ -1706,25 +1706,27 @@
void PredIntraAng4_m_5(pixel* dst, int dstStride, pixel *refMain, int dirMode)
{
- PRED_INTRA_ANG4_START
-
- tmp16_1 = (Vec16uc)load_partial(const_int(8), refMain);
-
- row11 = extend_low(tmp16_1); //offsets(0,1,2,3)
- tmp2uq = reinterpret_i(tmp16_1);
- tmp2uq = tmp2uq >> 8;
- tmp16_2 = reinterpret_i(tmp2uq);
- row12 = extend_low(tmp16_2); //offsets(1,2,3,4)
- row21 = row11; //offsets(0,1,2,3)
+ PRED_INTRA_ANGLE_4_START
+
+ tmp16_1 = _mm_loadl_epi64((__m128i*)(refMain));
+ row11 = _mm_unpacklo_epi8(tmp16_1, _mm_setzero_si128());
+
+ tmp2 = tmp16_1;
+ tmp2 = _mm_srl_epi64(tmp2,_mm_cvtsi32_si128(8));
+
+ tmp16_2 = tmp2;
+ row12 = _mm_unpacklo_epi8(tmp16_2, _mm_setzero_si128());
+
+ row21 = row11;
row22 = row12;
row31 = row11;
row32 = row12;
row41 = row11;
row42 = row12;
- v_deltaPos = v_ipAngle = -5;
-
- PRED_INTRA_ANG4_END
+ deltaPos = ipAngle = _mm_set1_epi16(-5);
+
+ PRED_INTRA_ANGLE_4_END
}
void PredIntraAng4_m_9(pixel* dst, int dstStride, pixel *refMain, int dirMode)
More information about the x265-devel
mailing list