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); ----