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

Side by Side Diff: include/libyuv/row.h

Issue 1377053003: remove sse2 functions that also have ssse3 (Closed) Base URL: https://chromium.googlesource.com/libyuv/libyuv@master
Patch Set: lint warning fixes Created 5 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 | « README.chromium ('k') | include/libyuv/version.h » ('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 2011 The LibYuv Project Authors. All rights reserved. 2 * Copyright 2011 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 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 #define HAS_I422TORGB565ROW_SSSE3 114 #define HAS_I422TORGB565ROW_SSSE3
115 #define HAS_I422TORGBAROW_SSSE3 115 #define HAS_I422TORGBAROW_SSSE3
116 #define HAS_I422TOUYVYROW_SSE2 116 #define HAS_I422TOUYVYROW_SSE2
117 #define HAS_I422TOYUY2ROW_SSE2 117 #define HAS_I422TOYUY2ROW_SSE2
118 #define HAS_J400TOARGBROW_SSE2 118 #define HAS_J400TOARGBROW_SSE2
119 #define HAS_J422TOARGBROW_SSSE3 119 #define HAS_J422TOARGBROW_SSSE3
120 #define HAS_J422TOABGRROW_SSSE3 120 #define HAS_J422TOABGRROW_SSSE3
121 #define HAS_H422TOARGBROW_SSSE3 121 #define HAS_H422TOARGBROW_SSSE3
122 #define HAS_H422TOABGRROW_SSSE3 122 #define HAS_H422TOABGRROW_SSSE3
123 #define HAS_MERGEUVROW_SSE2 123 #define HAS_MERGEUVROW_SSE2
124 #define HAS_MIRRORROW_SSE2
harryjin 2015/09/30 02:42:07 So for the very few SSE2 only case, things just go
125 #define HAS_MIRRORROW_SSSE3 124 #define HAS_MIRRORROW_SSSE3
126 #define HAS_MIRRORROW_UV_SSSE3 125 #define HAS_MIRRORROW_UV_SSSE3
127 #define HAS_MIRRORUVROW_SSSE3 126 #define HAS_MIRRORUVROW_SSSE3
128 #define HAS_NV12TOARGBROW_SSSE3 127 #define HAS_NV12TOARGBROW_SSSE3
129 #define HAS_NV12TORGB565ROW_SSSE3 128 #define HAS_NV12TORGB565ROW_SSSE3
130 #define HAS_RAWTOARGBROW_SSSE3 129 #define HAS_RAWTOARGBROW_SSSE3
131 #define HAS_RAWTOYROW_SSSE3 130 #define HAS_RAWTOYROW_SSSE3
132 #define HAS_RGB24TOARGBROW_SSSE3 131 #define HAS_RGB24TOARGBROW_SSSE3
133 #define HAS_RGB24TOYROW_SSSE3 132 #define HAS_RGB24TOYROW_SSSE3
134 #define HAS_RGB565TOARGBROW_SSE2 133 #define HAS_RGB565TOARGBROW_SSE2
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 #define HAS_INTERPOLATEROW_SSE2 173 #define HAS_INTERPOLATEROW_SSE2
175 #define HAS_INTERPOLATEROW_SSSE3 174 #define HAS_INTERPOLATEROW_SSSE3
176 #define HAS_RGBCOLORTABLEROW_X86 175 #define HAS_RGBCOLORTABLEROW_X86
177 #define HAS_SOBELROW_SSE2 176 #define HAS_SOBELROW_SSE2
178 #define HAS_SOBELTOPLANEROW_SSE2 177 #define HAS_SOBELTOPLANEROW_SSE2
179 #define HAS_SOBELXROW_SSE2 178 #define HAS_SOBELXROW_SSE2
180 #define HAS_SOBELXYROW_SSE2 179 #define HAS_SOBELXYROW_SSE2
181 #define HAS_SOBELYROW_SSE2 180 #define HAS_SOBELYROW_SSE2
182 #endif 181 #endif
183 182
184 // The following are available on x64 Visual C and clangcl. 183 // The following are also available on x64 Visual C.
185 // TODO(fbarchard): Port to gcc.
186 #if !defined(LIBYUV_DISABLE_X86) && defined (_M_X64) && \ 184 #if !defined(LIBYUV_DISABLE_X86) && defined (_M_X64) && \
187 (!defined(__clang__) || defined(__SSSE3__)) 185 (!defined(__clang__) || defined(__SSSE3__))
188 #define HAS_I422TOARGBROW_SSSE3 186 #define HAS_I422TOARGBROW_SSSE3
189 #define HAS_I422TOABGRROW_SSSE3 187 #define HAS_I422TOABGRROW_SSSE3
190 #define HAS_I422ALPHATOARGBROW_SSSE3 188 #define HAS_I422ALPHATOARGBROW_SSSE3
191 #define HAS_I422ALPHATOABGRROW_SSSE3 189 #define HAS_I422ALPHATOABGRROW_SSSE3
192 #endif 190 #endif
193 191
194 // The following are available for AVX2 Visual C and clangcl 32 bit: 192 // The following are available for AVX2 Visual C and clangcl 32 bit:
195 // TODO(fbarchard): Port to gcc. 193 // TODO(fbarchard): Port to gcc.
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
255 #define HAS_I422ALPHATOABGRROW_AVX2 253 #define HAS_I422ALPHATOABGRROW_AVX2
256 254
257 // Effects: 255 // Effects:
258 #define HAS_ARGBADDROW_AVX2 256 #define HAS_ARGBADDROW_AVX2
259 #define HAS_ARGBATTENUATEROW_AVX2 257 #define HAS_ARGBATTENUATEROW_AVX2
260 #define HAS_ARGBMULTIPLYROW_AVX2 258 #define HAS_ARGBMULTIPLYROW_AVX2
261 #define HAS_ARGBSUBTRACTROW_AVX2 259 #define HAS_ARGBSUBTRACTROW_AVX2
262 #define HAS_ARGBUNATTENUATEROW_AVX2 260 #define HAS_ARGBUNATTENUATEROW_AVX2
263 #endif 261 #endif
264 262
265 // The following are disabled when SSSE3 is available:
266 // TODO(fbarchard): remove sse2. ssse3 is faster and well supported.
267 #if !defined(LIBYUV_DISABLE_X86) && \
268 (defined(_M_IX86) || defined(__x86_64__) || defined(__i386__)) && \
269 !defined(LIBYUV_SSSE3_ONLY)
270 #define HAS_ARGBATTENUATEROW_SSE2
271 #define HAS_ARGBBLENDROW_SSE2
272 #define HAS_MIRRORROW_SSE2
273 #endif
274
275 // The following are available on Neon platforms: 263 // The following are available on Neon platforms:
276 #if !defined(LIBYUV_DISABLE_NEON) && \ 264 #if !defined(LIBYUV_DISABLE_NEON) && \
277 (defined(__aarch64__) || defined(__ARM_NEON__) || defined(LIBYUV_NEON)) 265 (defined(__aarch64__) || defined(__ARM_NEON__) || defined(LIBYUV_NEON))
278 #define HAS_ABGRTOUVROW_NEON 266 #define HAS_ABGRTOUVROW_NEON
279 #define HAS_ABGRTOYROW_NEON 267 #define HAS_ABGRTOYROW_NEON
280 #define HAS_ARGB1555TOARGBROW_NEON 268 #define HAS_ARGB1555TOARGBROW_NEON
281 #define HAS_ARGB1555TOUVROW_NEON 269 #define HAS_ARGB1555TOUVROW_NEON
282 #define HAS_ARGB1555TOYROW_NEON 270 #define HAS_ARGB1555TOYROW_NEON
283 #define HAS_ARGB4444TOARGBROW_NEON 271 #define HAS_ARGB4444TOARGBROW_NEON
284 #define HAS_ARGB4444TOUVROW_NEON 272 #define HAS_ARGB4444TOUVROW_NEON
(...skipping 530 matching lines...) Expand 10 before | Expand all | Expand 10 after
815 uint8* dst_u, uint8* dst_v, int width); 803 uint8* dst_u, uint8* dst_v, int width);
816 void ARGBToUV422Row_C(const uint8* src_argb, 804 void ARGBToUV422Row_C(const uint8* src_argb,
817 uint8* dst_u, uint8* dst_v, int width); 805 uint8* dst_u, uint8* dst_v, int width);
818 void ARGBToUV411Row_C(const uint8* src_argb, 806 void ARGBToUV411Row_C(const uint8* src_argb,
819 uint8* dst_u, uint8* dst_v, int width); 807 uint8* dst_u, uint8* dst_v, int width);
820 void ARGBToUVJ422Row_C(const uint8* src_argb, 808 void ARGBToUVJ422Row_C(const uint8* src_argb,
821 uint8* dst_u, uint8* dst_v, int width); 809 uint8* dst_u, uint8* dst_v, int width);
822 810
823 void MirrorRow_AVX2(const uint8* src, uint8* dst, int width); 811 void MirrorRow_AVX2(const uint8* src, uint8* dst, int width);
824 void MirrorRow_SSSE3(const uint8* src, uint8* dst, int width); 812 void MirrorRow_SSSE3(const uint8* src, uint8* dst, int width);
825 void MirrorRow_SSE2(const uint8* src, uint8* dst, int width);
826 void MirrorRow_NEON(const uint8* src, uint8* dst, int width); 813 void MirrorRow_NEON(const uint8* src, uint8* dst, int width);
827 void MirrorRow_MIPS_DSPR2(const uint8* src, uint8* dst, int width); 814 void MirrorRow_MIPS_DSPR2(const uint8* src, uint8* dst, int width);
828 void MirrorRow_C(const uint8* src, uint8* dst, int width); 815 void MirrorRow_C(const uint8* src, uint8* dst, int width);
829 void MirrorRow_Any_AVX2(const uint8* src, uint8* dst, int width); 816 void MirrorRow_Any_AVX2(const uint8* src, uint8* dst, int width);
830 void MirrorRow_Any_SSSE3(const uint8* src, uint8* dst, int width); 817 void MirrorRow_Any_SSSE3(const uint8* src, uint8* dst, int width);
831 void MirrorRow_Any_SSE2(const uint8* src, uint8* dst, int width); 818 void MirrorRow_Any_SSE2(const uint8* src, uint8* dst, int width);
832 void MirrorRow_Any_NEON(const uint8* src, uint8* dst, int width); 819 void MirrorRow_Any_NEON(const uint8* src, uint8* dst, int width);
833 820
834 void MirrorUVRow_SSSE3(const uint8* src_uv, uint8* dst_u, uint8* dst_v, 821 void MirrorUVRow_SSSE3(const uint8* src_uv, uint8* dst_u, uint8* dst_v,
835 int width); 822 int width);
(...skipping 777 matching lines...) Expand 10 before | Expand all | Expand 10 after
1613 void I400ToARGBRow_SSE2(const uint8* src_y, uint8* dst_argb, int width); 1600 void I400ToARGBRow_SSE2(const uint8* src_y, uint8* dst_argb, int width);
1614 void I400ToARGBRow_AVX2(const uint8* src_y, uint8* dst_argb, int width); 1601 void I400ToARGBRow_AVX2(const uint8* src_y, uint8* dst_argb, int width);
1615 void I400ToARGBRow_NEON(const uint8* src_y, uint8* dst_argb, int width); 1602 void I400ToARGBRow_NEON(const uint8* src_y, uint8* dst_argb, int width);
1616 void I400ToARGBRow_Any_SSE2(const uint8* src_y, uint8* dst_argb, int width); 1603 void I400ToARGBRow_Any_SSE2(const uint8* src_y, uint8* dst_argb, int width);
1617 void I400ToARGBRow_Any_AVX2(const uint8* src_y, uint8* dst_argb, int width); 1604 void I400ToARGBRow_Any_AVX2(const uint8* src_y, uint8* dst_argb, int width);
1618 void I400ToARGBRow_Any_NEON(const uint8* src_y, uint8* dst_argb, int width); 1605 void I400ToARGBRow_Any_NEON(const uint8* src_y, uint8* dst_argb, int width);
1619 1606
1620 // ARGB preattenuated alpha blend. 1607 // ARGB preattenuated alpha blend.
1621 void ARGBBlendRow_SSSE3(const uint8* src_argb, const uint8* src_argb1, 1608 void ARGBBlendRow_SSSE3(const uint8* src_argb, const uint8* src_argb1,
1622 uint8* dst_argb, int width); 1609 uint8* dst_argb, int width);
1623 void ARGBBlendRow_SSE2(const uint8* src_argb, const uint8* src_argb1,
1624 uint8* dst_argb, int width);
1625 void ARGBBlendRow_NEON(const uint8* src_argb, const uint8* src_argb1, 1610 void ARGBBlendRow_NEON(const uint8* src_argb, const uint8* src_argb1,
1626 uint8* dst_argb, int width); 1611 uint8* dst_argb, int width);
1627 void ARGBBlendRow_C(const uint8* src_argb, const uint8* src_argb1, 1612 void ARGBBlendRow_C(const uint8* src_argb, const uint8* src_argb1,
1628 uint8* dst_argb, int width); 1613 uint8* dst_argb, int width);
1629 1614
1630 // ARGB multiply images. Same API as Blend, but these require 1615 // ARGB multiply images. Same API as Blend, but these require
1631 // pointer and width alignment for SSE2. 1616 // pointer and width alignment for SSE2.
1632 void ARGBMultiplyRow_C(const uint8* src_argb, const uint8* src_argb1, 1617 void ARGBMultiplyRow_C(const uint8* src_argb, const uint8* src_argb1,
1633 uint8* dst_argb, int width); 1618 uint8* dst_argb, int width);
1634 void ARGBMultiplyRow_SSE2(const uint8* src_argb, const uint8* src_argb1, 1619 void ARGBMultiplyRow_SSE2(const uint8* src_argb, const uint8* src_argb1,
(...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after
1934 const uint8* src_u, 1919 const uint8* src_u,
1935 const uint8* src_v, 1920 const uint8* src_v,
1936 uint8* dst_yuy2, int width); 1921 uint8* dst_yuy2, int width);
1937 void I422ToUYVYRow_Any_NEON(const uint8* src_y, 1922 void I422ToUYVYRow_Any_NEON(const uint8* src_y,
1938 const uint8* src_u, 1923 const uint8* src_u,
1939 const uint8* src_v, 1924 const uint8* src_v,
1940 uint8* dst_uyvy, int width); 1925 uint8* dst_uyvy, int width);
1941 1926
1942 // Effects related row functions. 1927 // Effects related row functions.
1943 void ARGBAttenuateRow_C(const uint8* src_argb, uint8* dst_argb, int width); 1928 void ARGBAttenuateRow_C(const uint8* src_argb, uint8* dst_argb, int width);
1944 void ARGBAttenuateRow_SSE2(const uint8* src_argb, uint8* dst_argb, int width);
1945 void ARGBAttenuateRow_SSSE3(const uint8* src_argb, uint8* dst_argb, int width); 1929 void ARGBAttenuateRow_SSSE3(const uint8* src_argb, uint8* dst_argb, int width);
1946 void ARGBAttenuateRow_AVX2(const uint8* src_argb, uint8* dst_argb, int width); 1930 void ARGBAttenuateRow_AVX2(const uint8* src_argb, uint8* dst_argb, int width);
1947 void ARGBAttenuateRow_NEON(const uint8* src_argb, uint8* dst_argb, int width); 1931 void ARGBAttenuateRow_NEON(const uint8* src_argb, uint8* dst_argb, int width);
1948 void ARGBAttenuateRow_Any_SSE2(const uint8* src_argb, uint8* dst_argb, 1932 void ARGBAttenuateRow_Any_SSE2(const uint8* src_argb, uint8* dst_argb,
1949 int width); 1933 int width);
1950 void ARGBAttenuateRow_Any_SSSE3(const uint8* src_argb, uint8* dst_argb, 1934 void ARGBAttenuateRow_Any_SSSE3(const uint8* src_argb, uint8* dst_argb,
1951 int width); 1935 int width);
1952 void ARGBAttenuateRow_Any_AVX2(const uint8* src_argb, uint8* dst_argb, 1936 void ARGBAttenuateRow_Any_AVX2(const uint8* src_argb, uint8* dst_argb,
1953 int width); 1937 int width);
1954 void ARGBAttenuateRow_Any_NEON(const uint8* src_argb, uint8* dst_argb, 1938 void ARGBAttenuateRow_Any_NEON(const uint8* src_argb, uint8* dst_argb,
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
2115 void ARGBLumaColorTableRow_SSSE3(const uint8* src_argb, uint8* dst_argb, 2099 void ARGBLumaColorTableRow_SSSE3(const uint8* src_argb, uint8* dst_argb,
2116 int width, 2100 int width,
2117 const uint8* luma, uint32 lumacoeff); 2101 const uint8* luma, uint32 lumacoeff);
2118 2102
2119 #ifdef __cplusplus 2103 #ifdef __cplusplus
2120 } // extern "C" 2104 } // extern "C"
2121 } // namespace libyuv 2105 } // namespace libyuv
2122 #endif 2106 #endif
2123 2107
2124 #endif // INCLUDE_LIBYUV_ROW_H_ NOLINT 2108 #endif // INCLUDE_LIBYUV_ROW_H_ NOLINT
OLDNEW
« no previous file with comments | « README.chromium ('k') | include/libyuv/version.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698