forked from LeenkxTeam/Kmake
51 lines
1.7 KiB
Plaintext
51 lines
1.7 KiB
Plaintext
|
|
# Copyright 2020 The Chromium Authors
|
||
|
|
# Use of this source code is governed by a BSD-style license that can be
|
||
|
|
# found in the LICENSE file.
|
||
|
|
|
||
|
|
# This config is applied to targets that depend on libhwy
|
||
|
|
config("libhwy_external_config") {
|
||
|
|
include_dirs = [ "src" ]
|
||
|
|
defines = []
|
||
|
|
if (target_cpu == "x86") {
|
||
|
|
# Highway automatically disables AVX2 and AVX3 targets when compiling in
|
||
|
|
# 32-bit mode due to bugs in the generated code. However, when doing so it
|
||
|
|
# prints a warning (#pragma message). This flag silences that warning by
|
||
|
|
# explicitly disabling AVX2 and AVX3 targets.
|
||
|
|
defines += [ "HWY_BROKEN_TARGETS=(HWY_AVX2|HWY_AVX3)" ]
|
||
|
|
}
|
||
|
|
if (target_cpu == "arm64") {
|
||
|
|
# There are Chrome targets that use HWY_ALIGN on absl::uint128. This breaks
|
||
|
|
# with SVE, since HWY_ALIGN == 8 for it and the minimal alignment requirement
|
||
|
|
# for absl::uint128 is 16.
|
||
|
|
defines += [ "HWY_BROKEN_TARGETS=HWY_ALL_SVE" ]
|
||
|
|
}
|
||
|
|
if (target_cpu == "ppc64" || target_cpu == "s390x") {
|
||
|
|
# Not using <asm/hwcap.h> on ppc64/s390x:
|
||
|
|
# https://github.com/google/highway/issues/2406
|
||
|
|
defines += [ "TOOLCHAIN_MISS_ASM_HWCAP_H" ]
|
||
|
|
}
|
||
|
|
if (target_cpu == "s390x") {
|
||
|
|
# z13 relies only on emulation.
|
||
|
|
# Start using `-march=z14 -mzvector` once ready.
|
||
|
|
defines += [ "HWY_BROKEN_EMU128=0" ]
|
||
|
|
}
|
||
|
|
if (current_os == "aix") {
|
||
|
|
# enable emulation until highway aix support is ready.
|
||
|
|
defines += [ "HWY_BROKEN_EMU128=0" ]
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
source_set("libhwy") {
|
||
|
|
sources = [
|
||
|
|
"src/hwy/abort.cc",
|
||
|
|
"src/hwy/aligned_allocator.cc",
|
||
|
|
"src/hwy/per_target.cc",
|
||
|
|
"src/hwy/print.cc",
|
||
|
|
"src/hwy/stats.cc",
|
||
|
|
"src/hwy/targets.cc",
|
||
|
|
"src/hwy/timer.cc",
|
||
|
|
]
|
||
|
|
|
||
|
|
public_configs = [ ":libhwy_external_config" ]
|
||
|
|
}
|