https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82677
--- Comment #5 from infinity0 at pwned dot gg ---
(In reply to Richard Biener from comment #4)
> [..]
> It's still safe to move the asm in
>
> int main() {
> ulong d = 0;
> for (ulong i = 0; i < 3; i++)
> for (ulong j = 0; j < 3; j++)
> {
> ulong r;
> __asm__("" : "=r"(d) : "rm"((ulong)0));
> udiv_qrnnd(q, r, 0, 0, (i << d));
> }
> }
>
> thus without the if ().
For the specific case of asm(div) I suppose it's safe because raising a DE is
pretty much similar to raising it several times in a loop, but it is correct to
assume that for all types of side effects?