mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
Extend intrinsics config with AVX and AVX2
This commit is contained in:
parent
6de9c91ba6
commit
acc55cd34e
1 changed files with 12 additions and 2 deletions
|
@ -3233,7 +3233,7 @@ function toolset_setup_intrinsic_cflags()
|
||||||
avail.Add("sse4.1", "__SSE4_1__");
|
avail.Add("sse4.1", "__SSE4_1__");
|
||||||
avail.Add("sse4.2", "__SSE4_2__");
|
avail.Add("sse4.2", "__SSE4_2__");
|
||||||
/* From oldest to newest. */
|
/* From oldest to newest. */
|
||||||
var scale = new Array("sse", "sse2", "sse3", "ssse3", "sse4.1", "sse4.2");
|
var scale = new Array("sse", "sse2", "sse3", "ssse3", "sse4.1", "sse4.2", "avx", "avx2");
|
||||||
|
|
||||||
if (VS_TOOLSET) {
|
if (VS_TOOLSET) {
|
||||||
if ("no" == PHP_NATIVE_INTRINSICS || "yes" == PHP_NATIVE_INTRINSICS) {
|
if ("no" == PHP_NATIVE_INTRINSICS || "yes" == PHP_NATIVE_INTRINSICS) {
|
||||||
|
@ -3246,6 +3246,9 @@ function toolset_setup_intrinsic_cflags()
|
||||||
for (var i in list) {
|
for (var i in list) {
|
||||||
AC_DEFINE(avail.Item(list[i]), 1);
|
AC_DEFINE(avail.Item(list[i]), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* All means all. __AVX__ and __AVX2__ are defined by compiler. */
|
||||||
|
ADD_FLAG("CFLAGS","/arch:AVX2");
|
||||||
} else {
|
} else {
|
||||||
var list = PHP_NATIVE_INTRINSICS.split(",");
|
var list = PHP_NATIVE_INTRINSICS.split(",");
|
||||||
var j = 0;
|
var j = 0;
|
||||||
|
@ -3254,11 +3257,18 @@ function toolset_setup_intrinsic_cflags()
|
||||||
var it = list[i].toLowerCase();
|
var it = list[i].toLowerCase();
|
||||||
if (scale[k] == it) {
|
if (scale[k] == it) {
|
||||||
j = k > j ? k : j;
|
j = k > j ? k : j;
|
||||||
} else if (!avail.Exists(it)) {
|
} else if (!avail.Exists(it) && "avx2" != it && "avx" != it) {
|
||||||
WARNING("Unknown intrinsic name '" + it + "' ignored");
|
WARNING("Unknown intrinsic name '" + it + "' ignored");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if ("avx2" == scale[j]) {
|
||||||
|
ADD_FLAG("CFLAGS","/arch:AVX2");
|
||||||
|
j -= 2;
|
||||||
|
} else if ("avx" == scale[j]) {
|
||||||
|
ADD_FLAG("CFLAGS","/arch:AVX");
|
||||||
|
j -= 1;
|
||||||
|
}
|
||||||
for (var i = 0; i <= j; i++) {
|
for (var i = 0; i <= j; i++) {
|
||||||
var it = scale[i];
|
var it = scale[i];
|
||||||
AC_DEFINE(avail.Item(it), 1);
|
AC_DEFINE(avail.Item(it), 1);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue