https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97992
--- Comment #2 from G. Steinmetz <gs...@t-online.de> --- Presumably related : $ cat z2.c long double f (long double x) { asm ("fsqrt" :: ""(x)); return 1.0 - x; } $ cat z5.c double foo (double a) { for (int i=0; i<4; i++) { asm ("mov %1" : "=&t"(a) : ""(a)); } return a; } $ gcc-11-20201129 -c z2.c -O2 during RTL pass: stack z2.c: In function 'f': z2.c:6:1: internal compiler error: in change_stack, at reg-stack.c:2646 6 | } | ^ 0xac4218 change_stack ../../gcc/reg-stack.c:2646 0xac44ec subst_asm_stack_regs ../../gcc/reg-stack.c:2254 0xac655d subst_stack_regs ../../gcc/reg-stack.c:2425 0xac68d7 convert_regs_1 ../../gcc/reg-stack.c:3080 0xac68d7 convert_regs_2 ../../gcc/reg-stack.c:3214 0xac7a8d convert_regs ../../gcc/reg-stack.c:3249 0xac7a8d reg_to_stack ../../gcc/reg-stack.c:3374 0xac7a8d rest_of_handle_stack_regs ../../gcc/reg-stack.c:3429 0xac7a8d execute ../../gcc/reg-stack.c:3460