Merge "Add AVX/AVX2 supported archs in build system"
am: 5971f50a22
Change-Id: I674453855cd1527aca39c90eac706deec91a4006
This commit is contained in:
166
android/arch.go
166
android/arch.go
@@ -155,18 +155,32 @@ var archVariants = map[ArchType][]string{
|
|||||||
"mips64r6",
|
"mips64r6",
|
||||||
},
|
},
|
||||||
X86: {
|
X86: {
|
||||||
|
"amberlake",
|
||||||
"atom",
|
"atom",
|
||||||
|
"broadwell",
|
||||||
"haswell",
|
"haswell",
|
||||||
|
"icelake",
|
||||||
"ivybridge",
|
"ivybridge",
|
||||||
|
"kabylake",
|
||||||
"sandybridge",
|
"sandybridge",
|
||||||
"silvermont",
|
"silvermont",
|
||||||
|
"skylake",
|
||||||
|
"tigerlake",
|
||||||
|
"whiskeylake",
|
||||||
"x86_64",
|
"x86_64",
|
||||||
},
|
},
|
||||||
X86_64: {
|
X86_64: {
|
||||||
|
"amberlake",
|
||||||
|
"broadwell",
|
||||||
"haswell",
|
"haswell",
|
||||||
|
"icelake",
|
||||||
"ivybridge",
|
"ivybridge",
|
||||||
|
"kabylake",
|
||||||
"sandybridge",
|
"sandybridge",
|
||||||
"silvermont",
|
"silvermont",
|
||||||
|
"skylake",
|
||||||
|
"tigerlake",
|
||||||
|
"whiskeylake",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -190,6 +204,8 @@ var archFeatures = map[ArchType][]string{
|
|||||||
"sse4_2",
|
"sse4_2",
|
||||||
"aes_ni",
|
"aes_ni",
|
||||||
"avx",
|
"avx",
|
||||||
|
"avx2",
|
||||||
|
"avx512",
|
||||||
"popcnt",
|
"popcnt",
|
||||||
"movbe",
|
"movbe",
|
||||||
},
|
},
|
||||||
@@ -200,6 +216,8 @@ var archFeatures = map[ArchType][]string{
|
|||||||
"sse4_2",
|
"sse4_2",
|
||||||
"aes_ni",
|
"aes_ni",
|
||||||
"avx",
|
"avx",
|
||||||
|
"avx2",
|
||||||
|
"avx512",
|
||||||
"popcnt",
|
"popcnt",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@@ -230,10 +248,30 @@ var archFeatureMap = map[ArchType]map[string][]string{
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
X86: {
|
X86: {
|
||||||
|
"amberlake": {
|
||||||
|
"ssse3",
|
||||||
|
"sse4",
|
||||||
|
"sse4_1",
|
||||||
|
"sse4_2",
|
||||||
|
"avx",
|
||||||
|
"avx2",
|
||||||
|
"aes_ni",
|
||||||
|
"popcnt",
|
||||||
|
},
|
||||||
"atom": {
|
"atom": {
|
||||||
"ssse3",
|
"ssse3",
|
||||||
"movbe",
|
"movbe",
|
||||||
},
|
},
|
||||||
|
"broadwell": {
|
||||||
|
"ssse3",
|
||||||
|
"sse4",
|
||||||
|
"sse4_1",
|
||||||
|
"sse4_2",
|
||||||
|
"avx",
|
||||||
|
"avx2",
|
||||||
|
"aes_ni",
|
||||||
|
"popcnt",
|
||||||
|
},
|
||||||
"haswell": {
|
"haswell": {
|
||||||
"ssse3",
|
"ssse3",
|
||||||
"sse4",
|
"sse4",
|
||||||
@@ -244,6 +282,17 @@ var archFeatureMap = map[ArchType]map[string][]string{
|
|||||||
"popcnt",
|
"popcnt",
|
||||||
"movbe",
|
"movbe",
|
||||||
},
|
},
|
||||||
|
"icelake": {
|
||||||
|
"ssse3",
|
||||||
|
"sse4",
|
||||||
|
"sse4_1",
|
||||||
|
"sse4_2",
|
||||||
|
"avx",
|
||||||
|
"avx2",
|
||||||
|
"avx512",
|
||||||
|
"aes_ni",
|
||||||
|
"popcnt",
|
||||||
|
},
|
||||||
"ivybridge": {
|
"ivybridge": {
|
||||||
"ssse3",
|
"ssse3",
|
||||||
"sse4",
|
"sse4",
|
||||||
@@ -253,6 +302,16 @@ var archFeatureMap = map[ArchType]map[string][]string{
|
|||||||
"avx",
|
"avx",
|
||||||
"popcnt",
|
"popcnt",
|
||||||
},
|
},
|
||||||
|
"kabylake": {
|
||||||
|
"ssse3",
|
||||||
|
"sse4",
|
||||||
|
"sse4_1",
|
||||||
|
"sse4_2",
|
||||||
|
"avx",
|
||||||
|
"avx2",
|
||||||
|
"aes_ni",
|
||||||
|
"popcnt",
|
||||||
|
},
|
||||||
"sandybridge": {
|
"sandybridge": {
|
||||||
"ssse3",
|
"ssse3",
|
||||||
"sse4",
|
"sse4",
|
||||||
@@ -269,6 +328,39 @@ var archFeatureMap = map[ArchType]map[string][]string{
|
|||||||
"popcnt",
|
"popcnt",
|
||||||
"movbe",
|
"movbe",
|
||||||
},
|
},
|
||||||
|
"skylake": {
|
||||||
|
"ssse3",
|
||||||
|
"sse4",
|
||||||
|
"sse4_1",
|
||||||
|
"sse4_2",
|
||||||
|
"avx",
|
||||||
|
"avx2",
|
||||||
|
"avx512",
|
||||||
|
"aes_ni",
|
||||||
|
"popcnt",
|
||||||
|
},
|
||||||
|
"tigerlake": {
|
||||||
|
"ssse3",
|
||||||
|
"sse4",
|
||||||
|
"sse4_1",
|
||||||
|
"sse4_2",
|
||||||
|
"avx",
|
||||||
|
"avx2",
|
||||||
|
"avx512",
|
||||||
|
"aes_ni",
|
||||||
|
"popcnt",
|
||||||
|
},
|
||||||
|
"whiskeylake": {
|
||||||
|
"ssse3",
|
||||||
|
"sse4",
|
||||||
|
"sse4_1",
|
||||||
|
"sse4_2",
|
||||||
|
"avx",
|
||||||
|
"avx2",
|
||||||
|
"avx512",
|
||||||
|
"aes_ni",
|
||||||
|
"popcnt",
|
||||||
|
},
|
||||||
"x86_64": {
|
"x86_64": {
|
||||||
"ssse3",
|
"ssse3",
|
||||||
"sse4",
|
"sse4",
|
||||||
@@ -278,6 +370,26 @@ var archFeatureMap = map[ArchType]map[string][]string{
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
X86_64: {
|
X86_64: {
|
||||||
|
"amberlake": {
|
||||||
|
"ssse3",
|
||||||
|
"sse4",
|
||||||
|
"sse4_1",
|
||||||
|
"sse4_2",
|
||||||
|
"avx",
|
||||||
|
"avx2",
|
||||||
|
"aes_ni",
|
||||||
|
"popcnt",
|
||||||
|
},
|
||||||
|
"broadwell": {
|
||||||
|
"ssse3",
|
||||||
|
"sse4",
|
||||||
|
"sse4_1",
|
||||||
|
"sse4_2",
|
||||||
|
"avx",
|
||||||
|
"avx2",
|
||||||
|
"aes_ni",
|
||||||
|
"popcnt",
|
||||||
|
},
|
||||||
"haswell": {
|
"haswell": {
|
||||||
"ssse3",
|
"ssse3",
|
||||||
"sse4",
|
"sse4",
|
||||||
@@ -287,6 +399,17 @@ var archFeatureMap = map[ArchType]map[string][]string{
|
|||||||
"avx",
|
"avx",
|
||||||
"popcnt",
|
"popcnt",
|
||||||
},
|
},
|
||||||
|
"icelake": {
|
||||||
|
"ssse3",
|
||||||
|
"sse4",
|
||||||
|
"sse4_1",
|
||||||
|
"sse4_2",
|
||||||
|
"avx",
|
||||||
|
"avx2",
|
||||||
|
"avx512",
|
||||||
|
"aes_ni",
|
||||||
|
"popcnt",
|
||||||
|
},
|
||||||
"ivybridge": {
|
"ivybridge": {
|
||||||
"ssse3",
|
"ssse3",
|
||||||
"sse4",
|
"sse4",
|
||||||
@@ -296,6 +419,16 @@ var archFeatureMap = map[ArchType]map[string][]string{
|
|||||||
"avx",
|
"avx",
|
||||||
"popcnt",
|
"popcnt",
|
||||||
},
|
},
|
||||||
|
"kabylake": {
|
||||||
|
"ssse3",
|
||||||
|
"sse4",
|
||||||
|
"sse4_1",
|
||||||
|
"sse4_2",
|
||||||
|
"avx",
|
||||||
|
"avx2",
|
||||||
|
"aes_ni",
|
||||||
|
"popcnt",
|
||||||
|
},
|
||||||
"sandybridge": {
|
"sandybridge": {
|
||||||
"ssse3",
|
"ssse3",
|
||||||
"sse4",
|
"sse4",
|
||||||
@@ -311,6 +444,39 @@ var archFeatureMap = map[ArchType]map[string][]string{
|
|||||||
"aes_ni",
|
"aes_ni",
|
||||||
"popcnt",
|
"popcnt",
|
||||||
},
|
},
|
||||||
|
"skylake": {
|
||||||
|
"ssse3",
|
||||||
|
"sse4",
|
||||||
|
"sse4_1",
|
||||||
|
"sse4_2",
|
||||||
|
"avx",
|
||||||
|
"avx2",
|
||||||
|
"avx512",
|
||||||
|
"aes_ni",
|
||||||
|
"popcnt",
|
||||||
|
},
|
||||||
|
"tigerlake": {
|
||||||
|
"ssse3",
|
||||||
|
"sse4",
|
||||||
|
"sse4_1",
|
||||||
|
"sse4_2",
|
||||||
|
"avx",
|
||||||
|
"avx2",
|
||||||
|
"avx512",
|
||||||
|
"aes_ni",
|
||||||
|
"popcnt",
|
||||||
|
},
|
||||||
|
"whiskeylake": {
|
||||||
|
"ssse3",
|
||||||
|
"sse4",
|
||||||
|
"sse4_1",
|
||||||
|
"sse4_2",
|
||||||
|
"avx",
|
||||||
|
"avx2",
|
||||||
|
"avx512",
|
||||||
|
"aes_ni",
|
||||||
|
"popcnt",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -38,6 +38,10 @@ var (
|
|||||||
"": []string{
|
"": []string{
|
||||||
"-march=x86-64",
|
"-march=x86-64",
|
||||||
},
|
},
|
||||||
|
"broadwell": []string{
|
||||||
|
"-march=broadwell",
|
||||||
|
},
|
||||||
|
|
||||||
"haswell": []string{
|
"haswell": []string{
|
||||||
"-march=core-avx2",
|
"-march=core-avx2",
|
||||||
},
|
},
|
||||||
@@ -50,6 +54,9 @@ var (
|
|||||||
"silvermont": []string{
|
"silvermont": []string{
|
||||||
"-march=slm",
|
"-march=slm",
|
||||||
},
|
},
|
||||||
|
"skylake": []string{
|
||||||
|
"-march=skylake",
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
x86_64ArchFeatureCflags = map[string][]string{
|
x86_64ArchFeatureCflags = map[string][]string{
|
||||||
@@ -59,6 +66,8 @@ var (
|
|||||||
"sse4_2": []string{"-msse4.2"},
|
"sse4_2": []string{"-msse4.2"},
|
||||||
"popcnt": []string{"-mpopcnt"},
|
"popcnt": []string{"-mpopcnt"},
|
||||||
"avx": []string{"-mavx"},
|
"avx": []string{"-mavx"},
|
||||||
|
"avx2": []string{"-mavx2"},
|
||||||
|
"avx512": []string{"-mavx512"},
|
||||||
"aes_ni": []string{"-maes"},
|
"aes_ni": []string{"-maes"},
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -51,6 +51,10 @@ var (
|
|||||||
"-march=atom",
|
"-march=atom",
|
||||||
"-mfpmath=sse",
|
"-mfpmath=sse",
|
||||||
},
|
},
|
||||||
|
"broadwell": []string{
|
||||||
|
"-march=broadwell",
|
||||||
|
"-mfpmath=sse",
|
||||||
|
},
|
||||||
"haswell": []string{
|
"haswell": []string{
|
||||||
"-march=core-avx2",
|
"-march=core-avx2",
|
||||||
"-mfpmath=sse",
|
"-mfpmath=sse",
|
||||||
@@ -67,6 +71,10 @@ var (
|
|||||||
"-march=slm",
|
"-march=slm",
|
||||||
"-mfpmath=sse",
|
"-mfpmath=sse",
|
||||||
},
|
},
|
||||||
|
"skylake": []string{
|
||||||
|
"-march=skylake",
|
||||||
|
"-mfpmath=sse",
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
x86ArchFeatureCflags = map[string][]string{
|
x86ArchFeatureCflags = map[string][]string{
|
||||||
|
|||||||
Reference in New Issue
Block a user