Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(251)

Side by Side Diff: source/row_any.cc

Issue 2381493006: HalfFloat_SSE2 port from C algorithm to SSE2 (Closed)
Patch Set: bump version Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « source/planar_functions.cc ('k') | source/row_gcc.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2012 The LibYuv Project Authors. All rights reserved. 2 * Copyright 2012 The LibYuv Project Authors. All rights reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 544 matching lines...) Expand 10 before | Expand all | Expand 10 after
555 int r = width & MASK; \ 555 int r = width & MASK; \
556 int n = width & ~MASK; \ 556 int n = width & ~MASK; \
557 if (n > 0) { \ 557 if (n > 0) { \
558 ANY_SIMD(src_ptr, dst_ptr, shuffler, n); \ 558 ANY_SIMD(src_ptr, dst_ptr, shuffler, n); \
559 } \ 559 } \
560 memcpy(temp, src_ptr + n * SBPP, r * SBPP); \ 560 memcpy(temp, src_ptr + n * SBPP, r * SBPP); \
561 ANY_SIMD(temp, temp + 64, shuffler, MASK + 1); \ 561 ANY_SIMD(temp, temp + 64, shuffler, MASK + 1); \
562 memcpy(dst_ptr + n * BPP, temp + 64, r * BPP); \ 562 memcpy(dst_ptr + n * BPP, temp + 64, r * BPP); \
563 } 563 }
564 564
565 #ifdef HAS_HALFFLOATROW_SSE2
566 ANY11P16(HalfFloatRow_Any_SSE2, HalfFloatRow_SSE2, float, 1, 1, 15)
567 #endif
565 #ifdef HAS_HALFFLOATROW_AVX2 568 #ifdef HAS_HALFFLOATROW_AVX2
566 ANY11P16(HalfFloatRow_Any_AVX2, HalfFloatRow_AVX2, float, 1, 1, 15) 569 ANY11P16(HalfFloatRow_Any_AVX2, HalfFloatRow_AVX2, float, 1, 1, 15)
567 #endif 570 #endif
568 #undef ANY11P16 571 #undef ANY11P16
569 572
570 573
571 // Any 1 to 1 with yuvconstants 574 // Any 1 to 1 with yuvconstants
572 #define ANY11C(NAMEANY, ANY_SIMD, UVSHIFT, SBPP, BPP, MASK) \ 575 #define ANY11C(NAMEANY, ANY_SIMD, UVSHIFT, SBPP, BPP, MASK) \
573 void NAMEANY(const uint8* src_ptr, uint8* dst_ptr, \ 576 void NAMEANY(const uint8* src_ptr, uint8* dst_ptr, \
574 const struct YuvConstants* yuvconstants, int width) { \ 577 const struct YuvConstants* yuvconstants, int width) { \
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after
843 #endif 846 #endif
844 #ifdef HAS_UYVYTOUVROW_NEON 847 #ifdef HAS_UYVYTOUVROW_NEON
845 ANY12S(UYVYToUVRow_Any_NEON, UYVYToUVRow_NEON, 1, 4, 15) 848 ANY12S(UYVYToUVRow_Any_NEON, UYVYToUVRow_NEON, 1, 4, 15)
846 #endif 849 #endif
847 #undef ANY12S 850 #undef ANY12S
848 851
849 #ifdef __cplusplus 852 #ifdef __cplusplus
850 } // extern "C" 853 } // extern "C"
851 } // namespace libyuv 854 } // namespace libyuv
852 #endif 855 #endif
OLDNEW
« no previous file with comments | « source/planar_functions.cc ('k') | source/row_gcc.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698