Add support for SSE 4.2.

This commit is contained in:
ActuallyaDeviloper 2021-09-30 20:30:50 +02:00
parent 1c1304637f
commit 237e8206a2
9 changed files with 20 additions and 1 deletions

View File

@ -492,6 +492,7 @@
SSE3 = "sse3",
SSSE3 = "ssse3",
["SSE4.1"] = "sse4.1",
["SSE4.2"] = "sse4.2",
}
if vextMap[cfg.vectorextensions] ~= nil then
table.insert(opts, "-mattr=+" .. vextMap[cfg.vectorextensions])

View File

@ -116,6 +116,7 @@
SSE3 = "-mattr=+sse3",
SSSE3 = "-mattr=+ssse3",
["SSE4.1"] = "-mattr=+sse4.1",
["SSE4.2"] = "-mattr=+sse4.2",
},
warnings = {
Default = "-wi",

View File

@ -1788,7 +1788,7 @@
elseif x == "AVX2" and _ACTION > "vs2012" then
v = "AdvancedVectorExtensions2"
elseif cfg.architecture ~= "x86_64" then
if x == "SSE2" or x == "SSE3" or x == "SSSE3" or x == "SSE4.1" then
if x == "SSE2" or x == "SSE3" or x == "SSSE3" or x == "SSE4.1" or x == "SSE4.2" then
v = "StreamingSIMDExtensions2"
elseif x == "SSE" then
v = "StreamingSIMDExtensions"

View File

@ -1316,6 +1316,7 @@
"SSE3",
"SSSE3",
"SSE4.1",
"SSE4.2",
}
}

View File

@ -86,6 +86,7 @@
SSE3 = "-msse3",
SSSE3 = "-mssse3",
["SSE4.1"] = "-msse4.1",
["SSE4.2"] = "-msse4.2",
},
isaextensions = {
MOVBE = "-mmovbe",

View File

@ -88,6 +88,7 @@
SSE3 = "/arch:SSE2",
SSSE3 = "/arch:SSE2",
["SSE4.1"] = "/arch:SSE2",
["SSE4.2"] = "/arch:SSE2",
},
warnings = {
Off = "/W0",

View File

@ -136,6 +136,12 @@
test.contains({ "-msse2" }, gcc.getcflags(cfg))
end
function suite.cflags_onSSE4_2()
vectorextensions "SSE4.2"
prepare()
test.contains({ "-msse4.2" }, gcc.getcflags(cfg))
end
function suite.cflags_onAVX()
vectorextensions "AVX"
prepare()

View File

@ -307,6 +307,13 @@
test.contains("/arch:SSE2", msc.getcflags(cfg))
end
function suite.cflags_onSSE4_2()
vectorextensions "SSE4.2"
prepare()
test.contains("/arch:SSE2", msc.getcflags(cfg))
end
function suite.cflags_onAVX()
vectorextensions "AVX"
prepare()

View File

@ -21,6 +21,7 @@ If no value is set for a configuration, the toolset's default vector extension s
| SSE3 | Use the SSE3 instruction set. |
| SSSE3 | Use the SSSE3 instruction set. |
| SSE4.1 | Use the SSE4.1 instruction set. |
| SSE4.2 | Use the SSE4.2 instruction set. |
| NEON | Use the NEON instruction set (Android only) |
| MXU | Use the XBurst SIMD instructions (Android only) |