On Sun, Jan 07, 2024 at 06:04:23PM +0800, LIU Hao wrote: > 在 2024/1/6 2:46, Segher Boessenkool 写道: > >The C constraint means "Any operand whatsoever is allowed." Here you > >are saying to use it both as input and as output, and GCC does not know > >how to reload wherever it chose to put it. > > Would you mind elaborating a bit more? On x86 and x86-64 it's almost always > the case that an expression can be used as either a source or a destination. This is just GCC internals. The compiler will never look at the template string in an asm at all, anyway. I don't know why exactly you get the error. Make a compilable reproducer, file a bug (<https://gcc.gnu.org/bugs.html>), it sounds like something we can improve :-) Segher