https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80817
--- Comment #2 from Marc Glisse <glisse at gcc dot gnu.org> --- (In reply to Alexander Monakov from comment #1) > void f(volatile int *p) > { > ++*p; > } That's PR 50677 for instance. Some targets do handle it, there have been discussions in the past, this seems to require special care for every instruction of every target that wants to allow the simplification.