summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2023-07-26 23:50:31 +0800
committerruki <[email protected]>2023-07-26 23:50:31 +0800
commit59c3c5d3a025ad3bed85f73f31de36f3094d1cc9 (patch)
treed0dd98cc56a457198d6be351b7c99c1242c80cec
parent844baa5379db85f5327afc70d9a672c04967cd79 (diff)
add sse4.2
-rw-r--r--xmake/modules/core/tools/cl.lua13
-rw-r--r--xmake/modules/core/tools/gcc.lua21
-rw-r--r--xmake/modules/private/check/checkers/api/target/vectorexts.lua2
3 files changed, 19 insertions, 17 deletions
diff --git a/xmake/modules/core/tools/cl.lua b/xmake/modules/core/tools/cl.lua
index ad64a0267..0e4426436 100644
--- a/xmake/modules/core/tools/cl.lua
+++ b/xmake/modules/core/tools/cl.lua
@@ -180,12 +180,13 @@ end
function nf_vectorext(self, extension)
local maps =
{
- sse = "-arch:SSE"
- , sse2 = "-arch:SSE2"
- , avx = "-arch:AVX"
- , avx2 = "-arch:AVX2"
- , avx512 = "-arch:AVX512"
- , fma = "-arch:AVX2"
+ sse = "-arch:SSE"
+ , sse2 = "-arch:SSE2"
+ , ["sse4.2"] = "/d2archSSE42"
+ , avx = "-arch:AVX"
+ , avx2 = "-arch:AVX2"
+ , avx512 = "-arch:AVX512"
+ , fma = "-arch:AVX2"
}
local flag = maps[extension]
if flag and self:has_flags(flag, "cxflags") then
diff --git a/xmake/modules/core/tools/gcc.lua b/xmake/modules/core/tools/gcc.lua
index 2c8f497e0..e24153ff8 100644
--- a/xmake/modules/core/tools/gcc.lua
+++ b/xmake/modules/core/tools/gcc.lua
@@ -166,16 +166,17 @@ 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"
- , avx512 = "-march=skylake-avx512"
- , fma = "-mfma"
- , neon = "-mfpu=neon"
+ mmx = "-mmmx"
+ , sse = "-msse"
+ , sse2 = "-msse2"
+ , sse3 = "-msse3"
+ , ssse3 = "-mssse3"
+ , ["sse4.2"] = "-msse4.2"
+ , 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 0451108b9..c46020b60 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", "avx512", "fma", "neon"}}))
+ "none", "sse", "sse2", "sse3", "ssse3", "sse4.2", "avx", "avx2", "avx512", "fma", "neon"}}))
end