Commit ee9aaea0 authored by Frank Barchard's avatar Frank Barchard

i422torgb565 is asm for clangcl as well

Merge branch 'master' of https://chromium.googlesource.com/libyuv/libyuv into convertcl

allow lto for llvm but not gcc

R=harryjin@google.com
BUG=libyuv:469

Review URL: https://webrtc-codereview.appspot.com/52769004.
parent bb66c021
Name: libyuv Name: libyuv
URL: http://code.google.com/p/libyuv/ URL: http://code.google.com/p/libyuv/
Version: 1469 Version: 1470
License: BSD License: BSD
License File: LICENSE License File: LICENSE
......
...@@ -183,8 +183,9 @@ extern "C" { ...@@ -183,8 +183,9 @@ extern "C" {
#define VISUALC_HAS_AVX2 1 #define VISUALC_HAS_AVX2 1
#endif // VisualStudio >= 2012 #endif // VisualStudio >= 2012
// The following are available require VS2012. Port to GCC. // The following are available for Visual C and clangcl 32 bit:
#if !defined(LIBYUV_DISABLE_X86) && defined(VISUALC_HAS_AVX2) #if !defined(LIBYUV_DISABLE_X86) && defined(_M_IX86) && \
(defined(VISUALC_HAS_AVX2) || defined(CLANG_HAS_AVX2))
#define HAS_ARGB1555TOARGBROW_AVX2 #define HAS_ARGB1555TOARGBROW_AVX2
#define HAS_ARGB4444TOARGBROW_AVX2 #define HAS_ARGB4444TOARGBROW_AVX2
#define HAS_ARGBTOARGB1555ROW_AVX2 #define HAS_ARGBTOARGB1555ROW_AVX2
......
...@@ -11,6 +11,6 @@ ...@@ -11,6 +11,6 @@
#ifndef INCLUDE_LIBYUV_VERSION_H_ // NOLINT #ifndef INCLUDE_LIBYUV_VERSION_H_ // NOLINT
#define INCLUDE_LIBYUV_VERSION_H_ #define INCLUDE_LIBYUV_VERSION_H_
#define LIBYUV_VERSION 1469 #define LIBYUV_VERSION 1470
#endif // INCLUDE_LIBYUV_VERSION_H_ NOLINT #endif // INCLUDE_LIBYUV_VERSION_H_ NOLINT
...@@ -2159,8 +2159,7 @@ void I422ToUYVYRow_C(const uint8* src_y, ...@@ -2159,8 +2159,7 @@ void I422ToUYVYRow_C(const uint8* src_y,
// Maximum temporary width for wrappers to process at a time, in pixels. // Maximum temporary width for wrappers to process at a time, in pixels.
#define MAXTWIDTH 2048 #define MAXTWIDTH 2048
#if !(defined(_MSC_VER) && !defined(__clang__)) && \ #if !defined(_MSC_VER) && defined(HAS_I422TORGB565ROW_SSSE3)
defined(HAS_I422TORGB565ROW_SSSE3)
// row_win.cc has asm version, but GCC uses 2 step wrapper. // row_win.cc has asm version, but GCC uses 2 step wrapper.
void I422ToRGB565Row_SSSE3(const uint8* src_y, void I422ToRGB565Row_SSSE3(const uint8* src_y,
const uint8* src_u, const uint8* src_u,
......
...@@ -17,7 +17,8 @@ extern "C" { ...@@ -17,7 +17,8 @@ extern "C" {
#endif #endif
// This module is for GCC x86 and x64. // This module is for GCC x86 and x64.
#if !defined(LIBYUV_DISABLE_X86) && (defined(__x86_64__) || defined(__i386__)) #if !defined(LIBYUV_DISABLE_X86) && \
(defined(__x86_64__) || (defined(__i386__) && !defined(_MSC_VER)))
#if defined(HAS_ARGBTOYROW_SSSE3) || defined(HAS_ARGBGRAYROW_SSSE3) #if defined(HAS_ARGBTOYROW_SSSE3) || defined(HAS_ARGBGRAYROW_SSSE3)
......
...@@ -21,9 +21,9 @@ namespace libyuv { ...@@ -21,9 +21,9 @@ namespace libyuv {
extern "C" { extern "C" {
#endif #endif
// This module is for Visual C. // This module is for Visual C 32/64 bit and clangcl 32 bit
#if !defined(LIBYUV_DISABLE_X86) && (defined(_M_IX86) || defined(_M_X64)) && \ #if !defined(LIBYUV_DISABLE_X86) && \
defined(_MSC_VER) && !defined(__clang__) (defined(_M_IX86) || (defined(_M_X64) && !defined(__clang__)))
struct YuvConstants { struct YuvConstants {
lvec8 kUVToB; // 0 lvec8 kUVToB; // 0
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment