summaryrefslogtreecommitdiff
path: root/xmake/modules
diff options
context:
space:
mode:
authorruki <[email protected]>2023-07-26 23:49:04 +0800
committerruki <[email protected]>2023-07-26 23:49:04 +0800
commit844baa5379db85f5327afc70d9a672c04967cd79 (patch)
treeea111f2dce7cefa97e5b4c859cdbe9c4ae72073b /xmake/modules
parentdb47073a5ec27a85073d67c03e38c7bd55598598 (diff)
add avx512 for vectorext
Diffstat (limited to 'xmake/modules')
-rw-r--r--xmake/modules/core/tools/cl.lua1
-rw-r--r--xmake/modules/core/tools/gcc.lua19
-rw-r--r--xmake/modules/private/check/checkers/api/target/vectorexts.lua2
3 files changed, 12 insertions, 10 deletions
diff --git a/xmake/modules/core/tools/cl.lua b/xmake/modules/core/tools/cl.lua
index e69b7d814..ad64a0267 100644
--- a/xmake/modules/core/tools/cl.lua
+++ b/xmake/modules/core/tools/cl.lua
@@ -184,6 +184,7 @@ function nf_vectorext(self, extension)
, sse2 = "-arch:SSE2"
, avx = "-arch:AVX"
, avx2 = "-arch:AVX2"
+ , avx512 = "-arch:AVX512"
, fma = "-arch:AVX2"
}
local flag = maps[extension]
diff --git a/xmake/modules/core/tools/gcc.lua b/xmake/modules/core/tools/gcc.lua
index 60f6ac805..2c8f497e0 100644
--- a/xmake/modules/core/tools/gcc.lua
+++ b/xmake/modules/core/tools/gcc.lua
@@ -166,15 +166,16 @@ end
-- make the vector extension flag
function nf_vectorext(self, extension)
local maps = {
- mmx = "-mmmx"
- , sse = "-msse"
- , sse2 = "-msse2"
- , sse3 = "-msse3"
- , ssse3 = "-mssse3"
- , avx = "-mavx"
- , avx2 = "-mavx2"
- , fma = "-mfma"
- , neon = "-mfpu=neon"
+ mmx = "-mmmx"
+ , sse = "-msse"
+ , sse2 = "-msse2"
+ , sse3 = "-msse3"
+ , ssse3 = "-mssse3"
+ , avx = "-mavx"
+ , avx2 = "-mavx2"
+ , avx512 = "-march=skylake-avx512"
+ , fma = "-mfma"
+ , neon = "-mfpu=neon"
}
return maps[extension]
end
diff --git a/xmake/modules/private/check/checkers/api/target/vectorexts.lua b/xmake/modules/private/check/checkers/api/target/vectorexts.lua
index 3c7a97450..0451108b9 100644
--- a/xmake/modules/private/check/checkers/api/target/vectorexts.lua
+++ b/xmake/modules/private/check/checkers/api/target/vectorexts.lua
@@ -24,5 +24,5 @@ import(".api_checker")
function main(opt)
opt = opt or {}
api_checker.check_targets("vectorexts", table.join(opt, {values = {
- "none", "sse", "sse2", "sse3", "ssse3", "avx", "avx2", "fma", "neon"}}))
+ "none", "sse", "sse2", "sse3", "ssse3", "avx", "avx2", "avx512", "fma", "neon"}}))
end