https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60206

Hongtao.liu <crazylht at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |crazylht at gmail dot com

--- Comment #9 from Hongtao.liu <crazylht at gmail dot com> ---
Created attachment 47047
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=47047&action=edit
0001-x86-Enable-spill-from-integer-registers-to-mask-regi.patch

I encouter the same problem when i am implementing patch of spilling to mask
register when integer register pressure is high.

Attachment is my patch
Issue can be reproduced by applying patch to gcc10_20191007 or later version, 
config as 
---
./configure --disable-bootstrap --with-arch=native --with-cpu=native
--enable-languages=c,c++,fortran,lto,objc,obj-c++,go 
----

build gcc on avx512 machine then there will be an error when building libgcc

Error as

---
../../../../../gnu-toolchain/gcc/libgcc/config/i386/32/sfp-machine.h:37:3:
error: ‘asm’ operand has impossible constraints
   37 |   __asm__ ("sub{l} {%11,%3|%3,%11}\n\t"    \
      |   ^~~~~~~
../../../../../gnu-toolchain/gcc/libgcc/soft-fp/op-4.h:168:3: note: in
expansion of macro ‘__FP_FRAC_SUB_4’
  168 |   __FP_FRAC_SUB_4 (R##_f[3], R##_f[2], R##_f[1], R##_f[0], \
      |   ^~~~~~~~~~~~~~~
../../../../../gnu-toolchain/gcc/libgcc/soft-fp/op-4.h:524:8: note: in
expansion of macro ‘_FP_FRAC_SUB_4’
  524 |        _FP_FRAC_SUB_4 (X, Y, X);     \
      |        ^~~~~~~~~~~~~~
../../../../../gnu-toolchain/gcc/libgcc/config/i386/32/sfp-machine.h:87:33:
note: in expansion of macro ‘_FP_DIV_MEAT_4_udiv’
   87 | #define _FP_DIV_MEAT_Q(R,X,Y)   _FP_DIV_MEAT_4_udiv(Q,R,X,Y)
      |                                 ^~~~~~~~~~~~~~~~~~~
../../../../../gnu-toolchain/gcc/libgcc/soft-fp/op-common.h:1174:4: note: in
expansion of macro ‘_FP_DIV_MEAT_Q’
 1174 |    _FP_DIV_MEAT_##fs (R, X, Y);    \
      |    ^~~~~~~~~~~~~
../../../../../gnu-toolchain/gcc/libgcc/soft-fp/quad.h:183:29: note: in
expansion of macro ‘_FP_DIV’
  183 | # define FP_DIV_Q(R, X, Y)  _FP_DIV (Q, 4, R, X, Y)
      |                             ^~~~~~~
../../../../../gnu-toolchain/gcc/libgcc/soft-fp/divtf3.c:46:3: note: in
expansion of macro ‘FP_DIV_Q’
   46 |   FP_DIV_Q (R, A, B);

----

Reply via email to