# This file is generated (whence no license header). Do not edit!
# To regenerate, run:
#   cmake/bazel_to_cmake.sh

if(CMAKE_SYSTEM_NAME STREQUAL Windows)
  set(ruy_0_Wall_Wcxx14_compat_Wextra_Wundef "")
else()
  set(ruy_0_Wall_Wcxx14_compat_Wextra_Wundef "-Wall;-Wextra;-Wc++14-compat;-Wundef")
endif()

if(CMAKE_SYSTEM_PROCESSOR STREQUAL arm)
  set(ruy_1_mfpu_neon "-mfpu=neon")
else()
  set(ruy_1_mfpu_neon "")
endif()

if((CMAKE_BUILD_TYPE STREQUAL Debug) OR MSVC)
  set(ruy_2_O3 "")
else()
  set(ruy_2_O3 "-O3")
endif()

ruy_cc_library(
  NAME
    ruy_trace
  HDRS
    trace.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  DEPS
    ruy_mat
    ruy_matrix
    ruy_path
    ruy_platform
    ruy_side_pair
)

ruy_cc_library(
  NAME
    ruy_platform
  HDRS
    platform.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
)

ruy_cc_library(
  NAME
    ruy_gtest_wrapper
  TESTONLY
  HDRS
    gtest_wrapper.h
  DEPS
    gtest
)

ruy_cc_library(
  NAME
    ruy_check_macros
  HDRS
    check_macros.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
)

ruy_cc_test(
  NAME
    ruy_check_macros_test
  SRCS
    check_macros_test.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  DEPS
    ruy_check_macros
    ruy_gtest_wrapper
)

ruy_cc_library(
  NAME
    ruy_opt_set
  HDRS
    opt_set.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
)

ruy_cc_library(
  NAME
    ruy_time
  HDRS
    time.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
)

if(CMAKE_SYSTEM_NAME STREQUAL Windows)
  set(ruy_3_pthread "")
else()
  set(ruy_3_pthread "-pthread")
endif()

ruy_cc_library(
  NAME
    ruy_wait
  SRCS
    wait.cc
  HDRS
    wait.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  LINKOPTS
    ${ruy_3_pthread}
  DEPS
    ruy_time
)

ruy_cc_test(
  NAME
    ruy_wait_test
  SRCS
    wait_test.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  LINKOPTS
    ${ruy_3_pthread}
  DEPS
    ruy_gtest_wrapper
    ruy_platform
    ruy_wait
)

ruy_cc_library(
  NAME
    ruy_size_util
  HDRS
    size_util.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  DEPS
    ruy_check_macros
)

ruy_cc_test(
  NAME
    ruy_size_util_test
  SRCS
    size_util_test.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  DEPS
    ruy_gtest_wrapper
    ruy_size_util
)

ruy_cc_library(
  NAME
    ruy_tune
  SRCS
    tune.cc
  HDRS
    tune.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  DEPS
    ruy_cpu_cache_params
    ruy_cpuinfo
    ruy_opt_set
    ruy_platform
    ruy_time
)

ruy_cc_library(
  NAME
    ruy_system_aligned_alloc
  SRCS
    system_aligned_alloc.cc
  HDRS
    system_aligned_alloc.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
)

ruy_cc_library(
  NAME
    ruy_prepacked_cache
  SRCS
    prepacked_cache.cc
  HDRS
    prepacked_cache.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  DEPS
    ruy_mat
    ruy_system_aligned_alloc
    ruy_profiler_instrumentation
)

ruy_cc_test(
  NAME
    ruy_tune_test
  SRCS
    tune_test.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  DEPS
    ruy_cpuinfo
    ruy_gtest_wrapper
    ruy_tune
)

ruy_cc_test(
  NAME
    ruy_prepacked_cache_test
  SRCS
    prepacked_cache_test.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  DEPS
    ruy_context
    ruy_context_get_ctx
    ruy_ctx
    ruy_gtest_wrapper
    ruy_mat
    ruy_matrix
    ruy_prepacked_cache
    ruy
    ruy_time
)

ruy_cc_library(
  NAME
    ruy_allocator
  SRCS
    allocator.cc
  HDRS
    allocator.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  DEPS
    ruy_opt_set
    ruy_size_util
    ruy_system_aligned_alloc
)

ruy_cc_test(
  NAME
    ruy_allocator_test
  SRCS
    allocator_test.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  DEPS
    ruy_allocator
    ruy_gtest_wrapper
)

ruy_cc_library(
  NAME
    ruy_side_pair
  HDRS
    side_pair.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  DEPS
    ruy_check_macros
)

ruy_cc_library(
  NAME
    ruy_block_map
  SRCS
    block_map.cc
  HDRS
    block_map.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  DEPS
    ruy_check_macros
    ruy_cpu_cache_params
    ruy_opt_set
    ruy_side_pair
    ruy_size_util
    ruy_trace
    ruy_profiler_instrumentation
)

ruy_cc_test(
  NAME
    ruy_block_map_test
  SRCS
    block_map_test.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  DEPS
    ruy_block_map
    ruy_cpu_cache_params
    ruy_gtest_wrapper
    ruy_path
    ruy_platform
    ruy_side_pair
)

ruy_cc_library(
  NAME
    ruy_blocking_counter
  SRCS
    blocking_counter.cc
  HDRS
    blocking_counter.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  LINKOPTS
    ${ruy_3_pthread}
  DEPS
    ruy_check_macros
    ruy_time
    ruy_wait
)

ruy_cc_library(
  NAME
    ruy_thread_pool
  SRCS
    thread_pool.cc
  HDRS
    thread_pool.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  LINKOPTS
    ${ruy_3_pthread}
  PUBLIC
  DEPS
    ruy_blocking_counter
    ruy_check_macros
    ruy_denormal
    ruy_time
    ruy_trace
    ruy_wait
)

ruy_cc_library(
  NAME
    ruy_cpu_cache_params
  HDRS
    cpu_cache_params.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
)

if(CMAKE_SYSTEM_NAME STREQUAL Windows)
  set(ruy_4_Wno_undef "")
else()
  set(ruy_4_Wno_undef "-Wno-undef")
endif()

if(CMAKE_SYSTEM_PROCESSOR STREQUAL ppc64 OR CMAKE_SYSTEM_PROCESSOR STREQUAL ppc64le)
  set(ruy_5_DRUY_HAVE_CPUINFO "")
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL s390 OR CMAKE_SYSTEM_PROCESSOR STREQUAL s390x)
  set(ruy_5_DRUY_HAVE_CPUINFO "")
elseif(CMAKE_SYSTEM_NAME STREQUAL Fuchsia)
  set(ruy_5_DRUY_HAVE_CPUINFO "")
else()
  set(ruy_5_DRUY_HAVE_CPUINFO "-DRUY_HAVE_CPUINFO")
endif()

if(CMAKE_SYSTEM_PROCESSOR STREQUAL ppc64 OR CMAKE_SYSTEM_PROCESSOR STREQUAL ppc64le)
  set(ruy_6_cpuinfo_cpuinfo "")
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL s390 OR CMAKE_SYSTEM_PROCESSOR STREQUAL s390x)
  set(ruy_6_cpuinfo_cpuinfo "")
elseif(CMAKE_SYSTEM_NAME STREQUAL Fuchsia)
  set(ruy_6_cpuinfo_cpuinfo "")
else()
  set(ruy_6_cpuinfo_cpuinfo "cpuinfo::cpuinfo")
endif()

ruy_cc_library(
  NAME
    ruy_cpuinfo
  SRCS
    cpuinfo.cc
  HDRS
    cpuinfo.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
    ${ruy_4_Wno_undef}
    ${ruy_5_DRUY_HAVE_CPUINFO}
  DEPS
    ruy_platform
    ruy_check_macros
    ruy_cpu_cache_params
    ${ruy_6_cpuinfo_cpuinfo}
)

ruy_cc_library(
  NAME
    ruy_path
  HDRS
    path.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  PUBLIC
  DEPS
    ruy_platform
    ruy_size_util
)

ruy_cc_library(
  NAME
    ruy_denormal
  SRCS
    denormal.cc
  HDRS
    denormal.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  PUBLIC
)

ruy_cc_library(
  NAME
    ruy_performance_advisory
  HDRS
    performance_advisory.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  PUBLIC
)

ruy_cc_library(
  NAME
    ruy_matrix
  HDRS
    matrix.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  PUBLIC
  DEPS
    ruy_check_macros
)

ruy_cc_test(
  NAME
    ruy_matrix_test
  SRCS
    matrix_test.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  DEPS
    ruy_gtest_wrapper
    ruy_matrix
)

ruy_cc_library(
  NAME
    ruy_mul_params
  HDRS
    mul_params.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  PUBLIC
  DEPS
    ruy_check_macros
    ruy_size_util
)

ruy_cc_test(
  NAME
    ruy_mul_params_test
  SRCS
    mul_params_test.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  DEPS
    ruy_gtest_wrapper
    ruy_mul_params
)

ruy_cc_library(
  NAME
    ruy_mat
  HDRS
    mat.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  DEPS
    ruy_check_macros
    ruy_matrix
    ruy_size_util
)

ruy_cc_library(
  NAME
    ruy_asm_helpers
  HDRS
    asm_helpers.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  DEPS
    ruy_opt_set
)

ruy_cc_library(
  NAME
    ruy_apply_multiplier
  SRCS
    apply_multiplier.cc
  HDRS
    apply_multiplier.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  DEPS
    ruy_check_macros
    ruy_mul_params
)

ruy_cc_test(
  NAME
    ruy_apply_multiplier_test
  SRCS
    apply_multiplier_test.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  DEPS
    ruy_apply_multiplier
    ruy_gtest_wrapper
    ruy_mul_params
)

ruy_cc_library(
  NAME
    ruy_kernel_common
  HDRS
    kernel_common.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  DEPS
    ruy_apply_multiplier
    ruy_check_macros
    ruy_mat
    ruy_matrix
    ruy_mul_params
    ruy_opt_set
    ruy_path
    ruy_platform
    ruy_side_pair
    ruy_size_util
    ruy_tune
    ruy_profiler_instrumentation
)

ruy_cc_library(
  NAME
    ruy_pack_common
  HDRS
    pack_common.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  DEPS
    ruy_check_macros
    ruy_mat
    ruy_matrix
    ruy_opt_set
    ruy_path
    ruy_platform
    ruy_tune
    ruy_profiler_instrumentation
)

ruy_cc_library(
  NAME
    ruy_kernel_arm
  SRCS
    kernel_arm32.cc
    kernel_arm64.cc
  HDRS
    kernel_arm.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  DEPS
    ruy_asm_helpers
    ruy_check_macros
    ruy_kernel_common
    ruy_mat
    ruy_mul_params
    ruy_opt_set
    ruy_path
    ruy_platform
    ruy_side_pair
    ruy_size_util
    ruy_tune
    ruy_profiler_instrumentation
)

ruy_cc_library(
  NAME
    ruy_pack_arm
  SRCS
    pack_arm.cc
  HDRS
    pack_arm.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  DEPS
    ruy_asm_helpers
    ruy_check_macros
    ruy_mat
    ruy_opt_set
    ruy_pack_common
    ruy_path
    ruy_platform
    ruy_tune
    ruy_profiler_instrumentation
)

if((CMAKE_SYSTEM_PROCESSOR STREQUAL x86_64 OR CMAKE_SYSTEM_PROCESSOR STREQUAL amd64) AND NOT MSVC)
  set(ruy_7_mavx512bw_mavx512cd_mavx512dq_mavx512f_mavx512vl_arch_AVX512 ";-mavx512f;-mavx512vl;-mavx512cd;-mavx512bw;-mavx512dq")
elseif(MSVC)
  set(ruy_7_mavx512bw_mavx512cd_mavx512dq_mavx512f_mavx512vl_arch_AVX512 "/arch:AVX512")
else()
  set(ruy_7_mavx512bw_mavx512cd_mavx512dq_mavx512f_mavx512vl_arch_AVX512 "")
endif()

ruy_cc_library(
  NAME
    ruy_kernel_avx512
  SRCS
    kernel_avx512.cc
  HDRS
    kernel_x86.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
    ${ruy_7_mavx512bw_mavx512cd_mavx512dq_mavx512f_mavx512vl_arch_AVX512}
  DEPS
    ruy_check_macros
    ruy_kernel_common
    ruy_mat
    ruy_mul_params
    ruy_opt_set
    ruy_path
    ruy_platform
    ruy_tune
    ruy_profiler_instrumentation
)

ruy_cc_library(
  NAME
    ruy_pack_avx512
  SRCS
    pack_avx512.cc
  HDRS
    pack_x86.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
    ${ruy_7_mavx512bw_mavx512cd_mavx512dq_mavx512f_mavx512vl_arch_AVX512}
  DEPS
    ruy_check_macros
    ruy_mat
    ruy_opt_set
    ruy_pack_common
    ruy_path
    ruy_platform
    ruy_tune
    ruy_profiler_instrumentation
)

ruy_cc_library(
  NAME
    ruy_have_built_path_for_avx512
  SRCS
    have_built_path_for_avx512.cc
  HDRS
    have_built_path_for.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
    ${ruy_7_mavx512bw_mavx512cd_mavx512dq_mavx512f_mavx512vl_arch_AVX512}
  DEPS
    ruy_opt_set
    ruy_platform
)

if((CMAKE_SYSTEM_PROCESSOR STREQUAL x86_64 OR CMAKE_SYSTEM_PROCESSOR STREQUAL amd64) AND NOT MSVC)
  set(ruy_8_mavx2_mfma_arch_AVX2 "-mavx2;-mfma")
elseif(MSVC)
  set(ruy_8_mavx2_mfma_arch_AVX2 "/arch:AVX2")
else()
  set(ruy_8_mavx2_mfma_arch_AVX2 "")
endif()

ruy_cc_library(
  NAME
    ruy_kernel_avx2_fma
  SRCS
    kernel_avx2_fma.cc
  HDRS
    kernel_x86.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
    ${ruy_8_mavx2_mfma_arch_AVX2}
  DEPS
    ruy_check_macros
    ruy_kernel_common
    ruy_mat
    ruy_mul_params
    ruy_opt_set
    ruy_path
    ruy_platform
    ruy_tune
    ruy_profiler_instrumentation
)

ruy_cc_library(
  NAME
    ruy_pack_avx2_fma
  SRCS
    pack_avx2_fma.cc
  HDRS
    pack_x86.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
    ${ruy_8_mavx2_mfma_arch_AVX2}
  DEPS
    ruy_check_macros
    ruy_mat
    ruy_opt_set
    ruy_pack_common
    ruy_path
    ruy_platform
    ruy_tune
    ruy_profiler_instrumentation
)

ruy_cc_library(
  NAME
    ruy_have_built_path_for_avx2_fma
  SRCS
    have_built_path_for_avx2_fma.cc
  HDRS
    have_built_path_for.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
    ${ruy_8_mavx2_mfma_arch_AVX2}
  DEPS
    ruy_opt_set
    ruy_platform
)

if((CMAKE_SYSTEM_PROCESSOR STREQUAL x86_64 OR CMAKE_SYSTEM_PROCESSOR STREQUAL amd64) AND NOT MSVC)
  set(ruy_9_mavx_arch_AVX "-mavx")
elseif(MSVC)
  set(ruy_9_mavx_arch_AVX "/arch:AVX")
else()
  set(ruy_9_mavx_arch_AVX "")
endif()

ruy_cc_library(
  NAME
    ruy_kernel_avx
  SRCS
    kernel_avx.cc
  HDRS
    kernel_x86.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
    ${ruy_9_mavx_arch_AVX}
  DEPS
    ruy_check_macros
    ruy_kernel_common
    ruy_mat
    ruy_mul_params
    ruy_opt_set
    ruy_path
    ruy_platform
    ruy_tune
    ruy_profiler_instrumentation
)

ruy_cc_library(
  NAME
    ruy_pack_avx
  SRCS
    pack_avx.cc
  HDRS
    pack_x86.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
    ${ruy_9_mavx_arch_AVX}
  DEPS
    ruy_check_macros
    ruy_mat
    ruy_opt_set
    ruy_pack_common
    ruy_path
    ruy_platform
    ruy_tune
    ruy_profiler_instrumentation
)

ruy_cc_library(
  NAME
    ruy_have_built_path_for_avx
  SRCS
    have_built_path_for_avx.cc
  HDRS
    have_built_path_for.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
    ${ruy_9_mavx_arch_AVX}
  DEPS
    ruy_opt_set
    ruy_platform
)

ruy_cc_library(
  NAME
    ruy_kernel
  HDRS
    kernel.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  DEPS
    ruy_apply_multiplier
    ruy_check_macros
    ruy_kernel_arm
    ruy_kernel_avx
    ruy_kernel_avx2_fma
    ruy_kernel_avx512
    ruy_kernel_common
    ruy_mat
    ruy_matrix
    ruy_mul_params
    ruy_opt_set
    ruy_path
    ruy_platform
    ruy_side_pair
    ruy_size_util
    ruy_trace
    ruy_tune
    ruy_profiler_instrumentation
)

ruy_cc_library(
  NAME
    ruy_pack
  HDRS
    pack.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  DEPS
    ruy_check_macros
    ruy_mat
    ruy_matrix
    ruy_opt_set
    ruy_pack_arm
    ruy_pack_avx
    ruy_pack_avx2_fma
    ruy_pack_avx512
    ruy_pack_common
    ruy_path
    ruy_platform
    ruy_trace
    ruy_tune
    ruy_profiler_instrumentation
)

ruy_cc_library(
  NAME
    ruy_have_built_path_for
  HDRS
    have_built_path_for.h
  DEPS
    ruy_have_built_path_for_avx
    ruy_have_built_path_for_avx2_fma
    ruy_have_built_path_for_avx512
    ruy_platform
)

ruy_cc_library(
  NAME
    ruy_context
  SRCS
    context.cc
  HDRS
    context.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  PUBLIC
  DEPS
    ruy_allocator
    ruy_check_macros
    ruy_ctx
    ruy_path
    ruy_performance_advisory
    ruy_platform
    ruy_prepacked_cache
    ruy_thread_pool
    ruy_tune
)

ruy_cc_test(
  NAME
    ruy_context_test
  SRCS
    context_test.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  DEPS
    ruy_context
    ruy_gtest_wrapper
    ruy_path
    ruy_platform
    ruy_prepacked_cache
    ruy_tune
)

ruy_cc_library(
  NAME
    ruy_ctx_header_only_should_not_include_other_ruy_headers
  TESTONLY
  HDRS
    ctx.h
)

ruy_cc_library(
  NAME
    ruy_ctx
  SRCS
    ctx.cc
  HDRS
    ctx.h
    ctx_impl.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  DEPS
    ruy_allocator
    ruy_check_macros
    ruy_cpuinfo
    ruy_have_built_path_for
    ruy_path
    ruy_performance_advisory
    ruy_platform
    ruy_prepacked_cache
    ruy_thread_pool
    ruy_trace
    ruy_tune
)

ruy_cc_library(
  NAME
    ruy_context_get_ctx
  SRCS
    context_get_ctx.cc
  HDRS
    context_get_ctx.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  DEPS
    ruy_context
    ruy_ctx
)

ruy_cc_test(
  NAME
    ruy_ctx_test
  SRCS
    ctx_test.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  DEPS
    ruy_ctx
    ruy_gtest_wrapper
    ruy_path
    ruy_platform
)

ruy_cc_library(
  NAME
    ruy_trmul_params
  HDRS
    trmul_params.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  DEPS
    ruy_mat
    ruy_mul_params
    ruy_path
    ruy_side_pair
    ruy_tune
)

ruy_cc_library(
  NAME
    ruy_trmul
  SRCS
    trmul.cc
  HDRS
    trmul.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  DEPS
    ruy_allocator
    ruy_block_map
    ruy_check_macros
    ruy_cpu_cache_params
    ruy_cpuinfo
    ruy_ctx
    ruy_denormal
    ruy_mat
    ruy_matrix
    ruy_mul_params
    ruy_opt_set
    ruy_side_pair
    ruy_size_util
    ruy_thread_pool
    ruy_trace
    ruy_trmul_params
    ruy_tune
    ruy_profiler_instrumentation
)

ruy_cc_library(
  NAME
    ruy_prepare_packed_matrices
  SRCS
    prepare_packed_matrices.cc
  HDRS
    prepare_packed_matrices.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  DEPS
    ruy_allocator
    ruy_ctx
    ruy_matrix
    ruy_prepacked_cache
    ruy_side_pair
    ruy_trace
    ruy_trmul_params
)

ruy_cc_library(
  NAME
    ruy_create_trmul_params
  HDRS
    create_trmul_params.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  DEPS
    ruy_allocator
    ruy_check_macros
    ruy_ctx
    ruy_kernel
    ruy_mat
    ruy_mul_params
    ruy_pack
    ruy_path
    ruy_performance_advisory
    ruy_platform
    ruy_side_pair
    ruy_trace
    ruy_trmul_params
)

ruy_cc_library(
  NAME
    ruy_validate
  HDRS
    validate.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  DEPS
    ruy_check_macros
    ruy_mat
    ruy_mul_params
    ruy_side_pair
)

ruy_cc_library(
  NAME
    ruy_frontend
  SRCS
    frontend.cc
  HDRS
    frontend.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  DEPS
    ruy_allocator
    ruy_create_trmul_params
    ruy_ctx
    ruy_mat
    ruy_mul_params
    ruy_prepare_packed_matrices
    ruy_trace
    ruy_trmul
    ruy_trmul_params
    ruy_validate
    ruy_profiler_instrumentation
)

ruy_cc_library(
  NAME
    ruy
  HDRS
    context.h
    matrix.h
    mul_params.h
    path.h
    ruy.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  PUBLIC
  DEPS
    ruy_check_macros
    ruy_context
    ruy_context_get_ctx
    ruy_frontend
    ruy_mat
    ruy_matrix
    ruy_mul_params
    ruy_path
    ruy_platform
    ruy_size_util
    ruy_trace
)

ruy_cc_test(
  NAME
    ruy_perchannel_buffers_reallocation_test
  SRCS
    perchannel_buffers_reallocation_test.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  DEPS
    ruy_context
    ruy_gtest_wrapper
    ruy_kernel
    ruy_matrix
    ruy_path
    ruy_performance_advisory
    ruy
)

ruy_cc_library(
  NAME
    ruy_pmu
  TESTONLY
  SRCS
    pmu.cc
  HDRS
    pmu.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  DEPS
    ruy_check_macros
)

ruy_cc_library(
  NAME
    ruy_reference_mul
  HDRS
    reference_mul.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  PUBLIC
  DEPS
    ruy_apply_multiplier
    ruy_matrix
    ruy_mul_params
)

if(CMAKE_SYSTEM_NAME STREQUAL Windows)
  set(ruy_10_lm "")
else()
  set(ruy_10_lm "-lm")
endif()

ruy_cc_library(
  NAME
    ruy_test_lib
  TESTONLY
  HDRS
    test.h
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  LINKOPTS
    ${ruy_10_lm}
  DEPS
    ruy_allocator
    ruy_size_util
    ruy_reference_mul
    ruy_matrix
    ruy_pmu
    ruy
    ruy_mul_params
    ruy_time
    ruy_gtest_wrapper
    ruy_platform
    ruy_context
    ruy_ctx
    ruy_context_get_ctx
    ruy_pack_common
    ruy_profiler_profiler
)

ruy_cc_binary(
  NAME
    ruy_benchmark_f32_f32_f32_f32
  TESTONLY
  SRCS
    benchmark.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
    -DRUY_TEST_LHSSCALAR=f32
    -DRUY_TEST_RHSSCALAR=f32
    -DRUY_TEST_ACCUMSCALAR=f32
    -DRUY_TEST_DSTSCALAR=f32
  DEPS
    ruy_test_lib
    ruy_profiler_instrumentation
)

ruy_cc_binary(
  NAME
    ruy_benchmark_u8_u8_i32_u8
  TESTONLY
  SRCS
    benchmark.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
    -DRUY_TEST_LHSSCALAR=u8
    -DRUY_TEST_RHSSCALAR=u8
    -DRUY_TEST_ACCUMSCALAR=i32
    -DRUY_TEST_DSTSCALAR=u8
  DEPS
    ruy_test_lib
    ruy_profiler_instrumentation
)

ruy_cc_binary(
  NAME
    ruy_benchmark_i8_i8_i32_u8
  TESTONLY
  SRCS
    benchmark.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
    -DRUY_TEST_LHSSCALAR=i8
    -DRUY_TEST_RHSSCALAR=i8
    -DRUY_TEST_ACCUMSCALAR=i32
    -DRUY_TEST_DSTSCALAR=u8
  DEPS
    ruy_test_lib
    ruy_profiler_instrumentation
)

ruy_cc_binary(
  NAME
    ruy_benchmark_i8_i8_i32_i8
  TESTONLY
  SRCS
    benchmark.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
    -DRUY_TEST_LHSSCALAR=i8
    -DRUY_TEST_RHSSCALAR=i8
    -DRUY_TEST_ACCUMSCALAR=i32
    -DRUY_TEST_DSTSCALAR=i8
  DEPS
    ruy_test_lib
    ruy_profiler_instrumentation
)

ruy_cc_binary(
  NAME
    ruy_benchmark_u8_u8_i32_i16
  TESTONLY
  SRCS
    benchmark.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
    -DRUY_TEST_LHSSCALAR=u8
    -DRUY_TEST_RHSSCALAR=u8
    -DRUY_TEST_ACCUMSCALAR=i32
    -DRUY_TEST_DSTSCALAR=i16
  DEPS
    ruy_test_lib
    ruy_profiler_instrumentation
)

ruy_cc_binary(
  NAME
    ruy_benchmark_i8_i8_i32_i32
  TESTONLY
  SRCS
    benchmark.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
    -DRUY_TEST_LHSSCALAR=i8
    -DRUY_TEST_RHSSCALAR=i8
    -DRUY_TEST_ACCUMSCALAR=i32
    -DRUY_TEST_DSTSCALAR=i32
  DEPS
    ruy_test_lib
    ruy_profiler_instrumentation
)

ruy_cc_binary(
  NAME
    ruy_benchmark_i8_i16_i32_i16
  TESTONLY
  SRCS
    benchmark.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
    -DRUY_TEST_LHSSCALAR=i8
    -DRUY_TEST_RHSSCALAR=i16
    -DRUY_TEST_ACCUMSCALAR=i32
    -DRUY_TEST_DSTSCALAR=i16
  DEPS
    ruy_test_lib
    ruy_profiler_instrumentation
)

ruy_cc_binary(
  NAME
    ruy_benchmark_i16_i8_i32_i16
  TESTONLY
  SRCS
    benchmark.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
    -DRUY_TEST_LHSSCALAR=i16
    -DRUY_TEST_RHSSCALAR=i8
    -DRUY_TEST_ACCUMSCALAR=i32
    -DRUY_TEST_DSTSCALAR=i16
  DEPS
    ruy_test_lib
    ruy_profiler_instrumentation
)

ruy_cc_test(
  NAME
    ruy_test_fast_f32_f32_f32_f32
  SRCS
    test_fast.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
    -DRUY_TEST_LHSSCALAR=f32
    -DRUY_TEST_RHSSCALAR=f32
    -DRUY_TEST_ACCUMSCALAR=f32
    -DRUY_TEST_DSTSCALAR=f32
  DEPS
    ruy_test_lib
    gtest_main
)

ruy_cc_test(
  NAME
    ruy_test_fast_f64_f32_f64_f32
  SRCS
    test_fast.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
    -DRUY_TEST_LHSSCALAR=f64
    -DRUY_TEST_RHSSCALAR=f32
    -DRUY_TEST_ACCUMSCALAR=f64
    -DRUY_TEST_DSTSCALAR=f32
  DEPS
    ruy_test_lib
    gtest_main
)

ruy_cc_test(
  NAME
    ruy_test_fast_f32_f64_f64_f64
  SRCS
    test_fast.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
    -DRUY_TEST_LHSSCALAR=f32
    -DRUY_TEST_RHSSCALAR=f64
    -DRUY_TEST_ACCUMSCALAR=f64
    -DRUY_TEST_DSTSCALAR=f64
  DEPS
    ruy_test_lib
    gtest_main
)

ruy_cc_test(
  NAME
    ruy_test_fast_u8_u8_i32_u8
  SRCS
    test_fast.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
    -DRUY_TEST_LHSSCALAR=u8
    -DRUY_TEST_RHSSCALAR=u8
    -DRUY_TEST_ACCUMSCALAR=i32
    -DRUY_TEST_DSTSCALAR=u8
  DEPS
    ruy_test_lib
    gtest_main
)

ruy_cc_test(
  NAME
    ruy_test_fast_i8_i8_i32_i8
  SRCS
    test_fast.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
    -DRUY_TEST_LHSSCALAR=i8
    -DRUY_TEST_RHSSCALAR=i8
    -DRUY_TEST_ACCUMSCALAR=i32
    -DRUY_TEST_DSTSCALAR=i8
  DEPS
    ruy_test_lib
    gtest_main
)

ruy_cc_test(
  NAME
    ruy_test_fast_i8_u8_i32_i8
  SRCS
    test_fast.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
    -DRUY_TEST_LHSSCALAR=i8
    -DRUY_TEST_RHSSCALAR=u8
    -DRUY_TEST_ACCUMSCALAR=i32
    -DRUY_TEST_DSTSCALAR=i8
  DEPS
    ruy_test_lib
    gtest_main
)

ruy_cc_test(
  NAME
    ruy_test_fast_u8_u8_i32_i16
  SRCS
    test_fast.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
    -DRUY_TEST_LHSSCALAR=u8
    -DRUY_TEST_RHSSCALAR=u8
    -DRUY_TEST_ACCUMSCALAR=i32
    -DRUY_TEST_DSTSCALAR=i16
  DEPS
    ruy_test_lib
    gtest_main
)

ruy_cc_test(
  NAME
    ruy_test_fast_i8_i8_i32_i32
  SRCS
    test_fast.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
    -DRUY_TEST_LHSSCALAR=i8
    -DRUY_TEST_RHSSCALAR=i8
    -DRUY_TEST_ACCUMSCALAR=i32
    -DRUY_TEST_DSTSCALAR=i32
  DEPS
    ruy_test_lib
    gtest_main
)

ruy_cc_test(
  NAME
    ruy_test_fast_i8_u8_i32_i32
  SRCS
    test_fast.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
    -DRUY_TEST_LHSSCALAR=i8
    -DRUY_TEST_RHSSCALAR=u8
    -DRUY_TEST_ACCUMSCALAR=i32
    -DRUY_TEST_DSTSCALAR=i32
  DEPS
    ruy_test_lib
    gtest_main
)

ruy_cc_test(
  NAME
    ruy_test_fast_i8_i16_i32_i16
  SRCS
    test_fast.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
    -DRUY_TEST_LHSSCALAR=i8
    -DRUY_TEST_RHSSCALAR=i16
    -DRUY_TEST_ACCUMSCALAR=i32
    -DRUY_TEST_DSTSCALAR=i16
  DEPS
    ruy_test_lib
    gtest_main
)

ruy_cc_test(
  NAME
    ruy_test_fast_i16_i8_i32_i16
  SRCS
    test_fast.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
    -DRUY_TEST_LHSSCALAR=i16
    -DRUY_TEST_RHSSCALAR=i8
    -DRUY_TEST_ACCUMSCALAR=i32
    -DRUY_TEST_DSTSCALAR=i16
  DEPS
    ruy_test_lib
    gtest_main
)

ruy_cc_test(
  NAME
    ruy_test_slow_f32_f32_f32_f32
  SRCS
    test_slow.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
    -DRUY_TEST_LHSSCALAR=f32
    -DRUY_TEST_RHSSCALAR=f32
    -DRUY_TEST_ACCUMSCALAR=f32
    -DRUY_TEST_DSTSCALAR=f32
  DEPS
    ruy_test_lib
    gtest_main
  TAGS
    slow
)

ruy_cc_test(
  NAME
    ruy_test_slow_u8_u8_i32_u8
  SRCS
    test_slow.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
    -DRUY_TEST_LHSSCALAR=u8
    -DRUY_TEST_RHSSCALAR=u8
    -DRUY_TEST_ACCUMSCALAR=i32
    -DRUY_TEST_DSTSCALAR=u8
  DEPS
    ruy_test_lib
    gtest_main
  TAGS
    slow
)

ruy_cc_test(
  NAME
    ruy_test_slow_i8_i8_i32_i8
  SRCS
    test_slow.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
    -DRUY_TEST_LHSSCALAR=i8
    -DRUY_TEST_RHSSCALAR=i8
    -DRUY_TEST_ACCUMSCALAR=i32
    -DRUY_TEST_DSTSCALAR=i8
  DEPS
    ruy_test_lib
    gtest_main
  TAGS
    slow
)

ruy_cc_test(
  NAME
    ruy_test_slow_u8_u8_i32_i16
  SRCS
    test_slow.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
    -DRUY_TEST_LHSSCALAR=u8
    -DRUY_TEST_RHSSCALAR=u8
    -DRUY_TEST_ACCUMSCALAR=i32
    -DRUY_TEST_DSTSCALAR=i16
  DEPS
    ruy_test_lib
    gtest_main
  TAGS
    slow
)

ruy_cc_test(
  NAME
    ruy_test_slow_i8_i8_i32_i32
  SRCS
    test_slow.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
    -DRUY_TEST_LHSSCALAR=i8
    -DRUY_TEST_RHSSCALAR=i8
    -DRUY_TEST_ACCUMSCALAR=i32
    -DRUY_TEST_DSTSCALAR=i32
  DEPS
    ruy_test_lib
    gtest_main
  TAGS
    slow
)

ruy_cc_test(
  NAME
    ruy_test_slow_i8_i16_i32_i16
  SRCS
    test_slow.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
    -DRUY_TEST_LHSSCALAR=i8
    -DRUY_TEST_RHSSCALAR=i16
    -DRUY_TEST_ACCUMSCALAR=i32
    -DRUY_TEST_DSTSCALAR=i16
  DEPS
    ruy_test_lib
    gtest_main
  TAGS
    slow
)

ruy_cc_test(
  NAME
    ruy_test_slow_i16_i8_i32_i16
  SRCS
    test_slow.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
    -DRUY_TEST_LHSSCALAR=i16
    -DRUY_TEST_RHSSCALAR=i8
    -DRUY_TEST_ACCUMSCALAR=i32
    -DRUY_TEST_DSTSCALAR=i16
  DEPS
    ruy_test_lib
    gtest_main
  TAGS
    slow
)

ruy_cc_test(
  NAME
    ruy_test_overflow_dst_zero_point
  SRCS
    test_overflow_dst_zero_point.cc
  COPTS
    ${ruy_0_Wall_Wcxx14_compat_Wextra_Wundef}
    ${ruy_1_mfpu_neon}
    ${ruy_2_O3}
  DEPS
    ruy_gtest_wrapper
    ruy_matrix
    ruy_path
    ruy
    ruy_test_lib
    ruy_tune
)

ruy_add_all_subdirs()
