https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70184
--- Comment #3 from ktkachov at gcc dot gnu.org --- (In reply to Andrew Pinski from comment #2) > Does -fno-ter fix the issue? > How does the tree level look? You mean -fno-tree-ter? That gives: foo: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 push {r4, lr} mov r4, r0 mov r0, r1 bl __aeabi_f2uiz mov r1, r0 mov r0, r4 .syntax divided @ 7 "foo.c" 1 str r1, [r0] @ 0 "" 2 .syntax unified pop {r4, pc} Which looks correct, thanks! The optimized tree dump looks right to me with or without -fno-tree-ter ;; Function foo (foo, funcdef_no=0, decl_uid=4090, cgraph_uid=0, symbol_order=0) foo (unsigned int a, float b) { register unsigned int r1 __asm__ (*r1); register unsigned int r0 __asm__ (*r0); unsigned int c; <bb 2>: c_2 = (unsigned int) b_1(D); r0 = a_4(D); r1 = c_2; __asm__ __volatile__("str %1, [%0] " : : "r0" "r" r0, "r1" "r" r1); return; }