Bug #76429 [Asn]: zend_accelerator_util_funcs.c error: unknown register name ‘%ymm0’ in ‘asm

From: 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

« previous php.bugs (#215635) next »