OLD | NEW |
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 221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
232 | 232 |
233 // Effects: | 233 // Effects: |
234 #define HAS_ARGBADDROW_AVX2 | 234 #define HAS_ARGBADDROW_AVX2 |
235 #define HAS_ARGBATTENUATEROW_AVX2 | 235 #define HAS_ARGBATTENUATEROW_AVX2 |
236 #define HAS_ARGBMULTIPLYROW_AVX2 | 236 #define HAS_ARGBMULTIPLYROW_AVX2 |
237 #define HAS_ARGBSUBTRACTROW_AVX2 | 237 #define HAS_ARGBSUBTRACTROW_AVX2 |
238 #define HAS_ARGBUNATTENUATEROW_AVX2 | 238 #define HAS_ARGBUNATTENUATEROW_AVX2 |
239 #define HAS_BLENDPLANEROW_AVX2 | 239 #define HAS_BLENDPLANEROW_AVX2 |
240 #endif | 240 #endif |
241 | 241 |
| 242 |
| 243 // The following are available clang 3.4 or gcc 4.7. |
| 244 // TODO(fbarchard): Port to Visual C |
| 245 #if !defined(LIBYUV_DISABLE_X86) && \ |
| 246 (defined(CLANG_HAS_AVX2) || defined(GCC_HAS_AVX2)) && \ |
| 247 !(defined(__clang__) && defined(_M_IX86) ) |
| 248 #define HAS_ARGBEXTRACTALPHAROW_AVX2 |
| 249 #endif |
| 250 |
242 // The following are available for AVX2 Visual C and clangcl 32 bit: | 251 // The following are available for AVX2 Visual C and clangcl 32 bit: |
243 // TODO(fbarchard): Port to gcc. | 252 // TODO(fbarchard): Port to gcc. |
244 #if !defined(LIBYUV_DISABLE_X86) && defined(_M_IX86) && \ | 253 #if !defined(LIBYUV_DISABLE_X86) && defined(_M_IX86) && \ |
245 (defined(VISUALC_HAS_AVX2) || defined(CLANG_HAS_AVX2)) | 254 (defined(VISUALC_HAS_AVX2) || defined(CLANG_HAS_AVX2)) |
246 #define HAS_ARGB1555TOARGBROW_AVX2 | 255 #define HAS_ARGB1555TOARGBROW_AVX2 |
247 #define HAS_ARGB4444TOARGBROW_AVX2 | 256 #define HAS_ARGB4444TOARGBROW_AVX2 |
248 #define HAS_ARGBTOARGB1555ROW_AVX2 | 257 #define HAS_ARGBTOARGB1555ROW_AVX2 |
249 #define HAS_ARGBTOARGB4444ROW_AVX2 | 258 #define HAS_ARGBTOARGB4444ROW_AVX2 |
250 #define HAS_ARGBTORGB565ROW_AVX2 | 259 #define HAS_ARGBTORGB565ROW_AVX2 |
251 #define HAS_J400TOARGBROW_AVX2 | 260 #define HAS_J400TOARGBROW_AVX2 |
(...skipping 621 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
873 void ARGBCopyAlphaRow_C(const uint8* src_argb, uint8* dst_argb, int width); | 882 void ARGBCopyAlphaRow_C(const uint8* src_argb, uint8* dst_argb, int width); |
874 void ARGBCopyAlphaRow_SSE2(const uint8* src_argb, uint8* dst_argb, int width); | 883 void ARGBCopyAlphaRow_SSE2(const uint8* src_argb, uint8* dst_argb, int width); |
875 void ARGBCopyAlphaRow_AVX2(const uint8* src_argb, uint8* dst_argb, int width); | 884 void ARGBCopyAlphaRow_AVX2(const uint8* src_argb, uint8* dst_argb, int width); |
876 void ARGBCopyAlphaRow_Any_SSE2(const uint8* src_argb, uint8* dst_argb, | 885 void ARGBCopyAlphaRow_Any_SSE2(const uint8* src_argb, uint8* dst_argb, |
877 int width); | 886 int width); |
878 void ARGBCopyAlphaRow_Any_AVX2(const uint8* src_argb, uint8* dst_argb, | 887 void ARGBCopyAlphaRow_Any_AVX2(const uint8* src_argb, uint8* dst_argb, |
879 int width); | 888 int width); |
880 | 889 |
881 void ARGBExtractAlphaRow_C(const uint8* src_argb, uint8* dst_a, int width); | 890 void ARGBExtractAlphaRow_C(const uint8* src_argb, uint8* dst_a, int width); |
882 void ARGBExtractAlphaRow_SSE2(const uint8* src_argb, uint8* dst_a, int width); | 891 void ARGBExtractAlphaRow_SSE2(const uint8* src_argb, uint8* dst_a, int width); |
| 892 void ARGBExtractAlphaRow_AVX2(const uint8* src_argb, uint8* dst_a, int width); |
883 void ARGBExtractAlphaRow_NEON(const uint8* src_argb, uint8* dst_a, int width); | 893 void ARGBExtractAlphaRow_NEON(const uint8* src_argb, uint8* dst_a, int width); |
884 void ARGBExtractAlphaRow_Any_SSE2(const uint8* src_argb, uint8* dst_a, | 894 void ARGBExtractAlphaRow_Any_SSE2(const uint8* src_argb, uint8* dst_a, |
885 int width); | 895 int width); |
| 896 void ARGBExtractAlphaRow_Any_AVX2(const uint8* src_argb, uint8* dst_a, |
| 897 int width); |
886 void ARGBExtractAlphaRow_Any_NEON(const uint8* src_argb, uint8* dst_a, | 898 void ARGBExtractAlphaRow_Any_NEON(const uint8* src_argb, uint8* dst_a, |
887 int width); | 899 int width); |
888 | 900 |
889 void ARGBCopyYToAlphaRow_C(const uint8* src_y, uint8* dst_argb, int width); | 901 void ARGBCopyYToAlphaRow_C(const uint8* src_y, uint8* dst_argb, int width); |
890 void ARGBCopyYToAlphaRow_SSE2(const uint8* src_y, uint8* dst_argb, int width); | 902 void ARGBCopyYToAlphaRow_SSE2(const uint8* src_y, uint8* dst_argb, int width); |
891 void ARGBCopyYToAlphaRow_AVX2(const uint8* src_y, uint8* dst_argb, int width); | 903 void ARGBCopyYToAlphaRow_AVX2(const uint8* src_y, uint8* dst_argb, int width); |
892 void ARGBCopyYToAlphaRow_Any_SSE2(const uint8* src_y, uint8* dst_argb, | 904 void ARGBCopyYToAlphaRow_Any_SSE2(const uint8* src_y, uint8* dst_argb, |
893 int width); | 905 int width); |
894 void ARGBCopyYToAlphaRow_Any_AVX2(const uint8* src_y, uint8* dst_argb, | 906 void ARGBCopyYToAlphaRow_Any_AVX2(const uint8* src_y, uint8* dst_argb, |
895 int width); | 907 int width); |
(...skipping 1042 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1938 void ARGBLumaColorTableRow_SSSE3(const uint8* src_argb, uint8* dst_argb, | 1950 void ARGBLumaColorTableRow_SSSE3(const uint8* src_argb, uint8* dst_argb, |
1939 int width, | 1951 int width, |
1940 const uint8* luma, uint32 lumacoeff); | 1952 const uint8* luma, uint32 lumacoeff); |
1941 | 1953 |
1942 #ifdef __cplusplus | 1954 #ifdef __cplusplus |
1943 } // extern "C" | 1955 } // extern "C" |
1944 } // namespace libyuv | 1956 } // namespace libyuv |
1945 #endif | 1957 #endif |
1946 | 1958 |
1947 #endif // INCLUDE_LIBYUV_ROW_H_ | 1959 #endif // INCLUDE_LIBYUV_ROW_H_ |
OLD | NEW |