Bug #76429 [Asn]: zend_accelerator_util_funcs.c error: unknown register name â%ymm0â in âasm
| From: | laruence@php.net | Date: | Tue, 12 Jun 2018 04:08:36 +0000 |
| Subject: | Bug #76429 [Asn]: zend_accelerator_util_funcs.c error: unknown register name â%ymm0â in âasm | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-215635@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=76429&edit=1
ID: 76429
Updated by: laruence@php.net
Reported by: eva2000 at centminmod dot com
Summary: zend_accelerator_util_funcs.c error: unknown
register name â%ymm0â in âasm
Status: Assigned
Type: Bug
Package: opcache
Operating System: centos 7.5
PHP Version: 7.3.0alpha1
Assigned To: laruence
Block user comment: N
Private report: N
New Comment:
okey, thanks. but the problem is not about avx instructions, it about gcc doesn't recognize
ymm0 in inline asm.. so I was asking to print gcc --help=target to check if it is explictly
supported.
the problem may relates to old gcc bug (I remembered that gcc before 4.9 has problems while
supporting __AVX__ in __target() attribute, but not sure if it relates to this case).
Previous Comments:
------------------------------------------------------------------------
[2018-06-11 13:15:30] spam2 at rhsoft dot net
@laruence@php.net what i said is that -mavx ist a GCC tuning-option which is unrelated to explicit
AVX instructions in the code itself
if AVX in fact is not available on the CPU and defined(__AVX__) is true there is something wrong in
the detection or the logic "defined(__AVX__) || defined(__SSE2__)" but -mavx or -march
don't change anything here because these are GCC flags for automatically use AVX on not
hand-optimized code like transform SSE-code to AVX or auto-vectorization
-mavx / -march are related to https://gcc.gnu.org/projects/tree-ssa/vectorization.html
and not to http://git.php.net/?p=php-src.git;a=commit;h=5c05870ef65834f5a2c5cb5baddee07cba9399dc
------------------------------------------------------------------------
[2018-06-11 13:05:37] laruence@php.net
@spam2 at rhsoft dot net I am not sure I understand you correctly.
I am asking you to try to figure out why __AVX__ is defined but ymm0 is not supported by add -mavx
or gcc -c -Q -march=core-avx2 --help=target
------------------------------------------------------------------------
[2018-06-11 09:43:47] spam2 at rhsoft dot net
laruence@php.net -mavx / -march are completly irrelevant to the AVX support in the code because one
is using a AVX optimized branch if the CPU supports it at runtime for generic binaries and the other
is auto-optimization by the complier for code which is not hand optimized and non-generic binaries
------------------------------------------------------------------------
[2018-06-11 03:45:35] laruence@php.net
you may try to add -mavx to your configuration...
and, you are trying compile with -march=core-avx2 which is not the same as -march=native which you
are debugging
thanks
------------------------------------------------------------------------
[2018-06-09 13:55:55] cmb@php.net
It seems that AVX support has been introduced with commit
5c05870[1]. @laruence, could you please have a look at this
issue?
[1] <http://git.php.net/?p=php-src.git;a=commit;h=5c05870ef65834f5a2c5cb5baddee07cba9399dc>
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=76429
--
Edit this bug report at https://bugs.php.net/bug.php?id=76429&edit=1