On Sun, 11 Feb 2024 at 03:12, Uros Bizjak <ubizjak@xxxxxxxxx> wrote: > > I'd suggest the original poster to file a bug report in the GCC > bugzilla. This way, the bug can be properly analysed and eventually > fixed. The detailed instructions are available at > https://gcc.gnu.org/bugs/ Yes, please. Sean? In order to *not* confuse it with the "asm goto with output doesn't imply volatile" bugs, could you make a bug report that talks purely about the code generation issue that happens even with a manually added volatile (your third code sequence in your original email)? > So, I'd suggest at least limit the workaround to known-bad compilers. Right now, I don't think we know which ones are bad. If it was just the "add a volatile by hand" issue, we'd have a good pointer to exactly which issue it is. The other bugzilla entries I saw talked about ICE errors - and one of them is quite likely to be the cause of this, because it really looks like the code issue is some internal confusion. The asm that Sean uses doesn't even have an unused result, so even the volatile shouldn't matter, and seems purely a case of "limiting optimizations partially hides the issue". And then us adding another empty asm obviously does just even more of the same, to the point that now the code works. So I don't think we actually know which compiler version is the fixed one. We only know that gcc-11 doesn't work for Sean. Linus