https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86455
--- Comment #1 from Tom de Vries <vries at gcc dot gnu.org> --- Created attachment 44373 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44373&action=edit Tentative patch Using this tentative patch, I get the correct updated insn 132: ... (insn/f 132 4 133 2 (parallel [ (set (mem:DI (plus:DI (reg/f:DI 16 argp) (const_int -16 [0xfffffffffffffff0])) [0 S8 A8]) (reg:DI 44 r15)) (set (reg/f:DI 7 sp) (plus:DI (reg/f:DI 16 argp) (const_int -16 [0xfffffffffffffff0]))) ]) "/home/vries/gcc_versions/devel/src/gcc/testsuite/gcc.dg/guality/csttest.c":10 61 {*pushdi2_rex64} (expr_list:REG_DEAD (reg:DI 44 r15) (nil))) ... and the location for p is ok now: ... imulq %rax, %rcx movq %rcx, -8(%rsp) .LVL20: # DEBUG p => cx # csttest.c:25:3 .loc 1 25 3 is_stmt 1 # csttest.c:25:22 .loc 1 25 22 is_stmt 0 movabsq $-4252017623040, %rcx .LVL21: # DEBUG p => [argp-0x40] ... [ The location argp-0x40 is an 8 times 8 byte offset: one for INCOMING_FRAME_SP_OFFSET, 6 for pushing callee-save regs, and one for '-8(%rsp)'. ]