diff options
author | 2020-09-21 17:54:04 +0000 | |
---|---|---|
committer | 2020-09-21 17:54:04 +0000 | |
commit | dba548af83861e5a41a7ec98e6885e030afe452f (patch) | |
tree | 7ea03bcf3fba11691681ded812585da11e0cbc3b | |
parent | 52cebe5aff462355fc7c43b26db20c17de0b204c (diff) | |
parent | 70b96b0d645d2c76ed58b6d5bdcc15dc21b13b5a (diff) |
Merge "Introduce new Arm64 arch variant with dot product features"
-rw-r--r-- | android/arch.go | 14 | ||||
-rw-r--r-- | cc/config/arm64_device.go | 6 | ||||
-rw-r--r-- | rust/config/arm64_device.go | 1 |
3 files changed, 19 insertions, 2 deletions
diff --git a/android/arch.go b/android/arch.go index 8500bc7ec..414113893 100644 --- a/android/arch.go +++ b/android/arch.go @@ -125,6 +125,7 @@ var archVariants = map[ArchType][]string{ Arm64: { "armv8_a", "armv8_2a", + "armv8-2a-dotprod", "cortex-a53", "cortex-a55", "cortex-a72", @@ -172,6 +173,9 @@ var archFeatures = map[ArchType][]string{ Arm: { "neon", }, + Arm64: { + "dotprod", + }, X86: { "ssse3", "sse4", @@ -209,6 +213,11 @@ var archFeatureMap = map[ArchType]map[string][]string{ "neon", }, }, + Arm64: { + "armv8-2a-dotprod": { + "dotprod", + }, + }, X86: { "amberlake": { "ssse3", @@ -1628,9 +1637,10 @@ func getMegaDeviceConfig() []archConfig { {"arm64", "armv8-a", "kryo", []string{"arm64-v8a"}}, {"arm64", "armv8-a", "exynos-m1", []string{"arm64-v8a"}}, {"arm64", "armv8-a", "exynos-m2", []string{"arm64-v8a"}}, - {"arm64", "armv8-2a", "cortex-a75", []string{"arm64-v8a"}}, - {"arm64", "armv8-2a", "cortex-a76", []string{"arm64-v8a"}}, {"arm64", "armv8-2a", "kryo385", []string{"arm64-v8a"}}, + {"arm64", "armv8-2a-dotprod", "cortex-a55", []string{"arm64-v8a"}}, + {"arm64", "armv8-2a-dotprod", "cortex-a75", []string{"arm64-v8a"}}, + {"arm64", "armv8-2a-dotprod", "cortex-a76", []string{"arm64-v8a"}}, {"x86", "", "", []string{"x86"}}, {"x86", "atom", "", []string{"x86"}}, {"x86", "haswell", "", []string{"x86"}}, diff --git a/cc/config/arm64_device.go b/cc/config/arm64_device.go index 62d8cc8fb..e6024aa45 100644 --- a/cc/config/arm64_device.go +++ b/cc/config/arm64_device.go @@ -34,6 +34,9 @@ var ( "armv8-2a": []string{ "-march=armv8.2-a", }, + "armv8-2a-dotprod": []string{ + "-march=armv8.2-a+dotprod", + }, } arm64Ldflags = []string{ @@ -100,6 +103,7 @@ func init() { pctx.StaticVariable("Arm64ClangArmv8ACflags", strings.Join(arm64ArchVariantCflags["armv8-a"], " ")) pctx.StaticVariable("Arm64ClangArmv82ACflags", strings.Join(arm64ArchVariantCflags["armv8-2a"], " ")) + pctx.StaticVariable("Arm64ClangArmv82ADotprodCflags", strings.Join(arm64ArchVariantCflags["armv8-2a-dotprod"], " ")) pctx.StaticVariable("Arm64ClangCortexA53Cflags", strings.Join(arm64ClangCpuVariantCflags["cortex-a53"], " ")) @@ -121,6 +125,7 @@ var ( arm64ClangArchVariantCflagsVar = map[string]string{ "armv8-a": "${config.Arm64ClangArmv8ACflags}", "armv8-2a": "${config.Arm64ClangArmv82ACflags}", + "armv8-2a-dotprod": "${config.Arm64ClangArmv82ADotprodCflags}", } arm64ClangCpuVariantCflagsVar = map[string]string{ @@ -198,6 +203,7 @@ func arm64ToolchainFactory(arch android.Arch) Toolchain { switch arch.ArchVariant { case "armv8-a": case "armv8-2a": + case "armv8-2a-dotprod": // Nothing extra for armv8-a/armv8-2a default: panic(fmt.Sprintf("Unknown ARM architecture version: %q", arch.ArchVariant)) diff --git a/rust/config/arm64_device.go b/rust/config/arm64_device.go index 7d13c42aa..21b22a4d5 100644 --- a/rust/config/arm64_device.go +++ b/rust/config/arm64_device.go @@ -28,6 +28,7 @@ var ( Arm64ArchVariantRustFlags = map[string][]string{ "armv8-a": []string{}, "armv8-2a": []string{}, + "armv8-2a-dotprod": []string{}, } ) |