Hello! I have the following statement, which fails with general compiler errror in gen_rtx_SUBREG, at emit-rtl.c:729 (define_split [(set (match_operand:DI 0 "memory_operand" "=m") (match_operand:DI 1 "register_operand" "r"))] "" [(set (mem:SI (match_dup 0) ) (subreg:SI (match_dup 1) 0)) (set (mem:SI (plus:SI (match_dup 0) (const_int 4))) (subreg:SI (match_dup 1) 1))] "") What I want to do is implementing the movdi on a 32 bit platform. This split is a special case for memory destination and register source. I want to split the 64 bit move into 2 32 bit moves. What am I doing wrong ? Anyone an idea ? Thanks, Lars