------- Comment #14 from dmixm at marine dot febras dot ru 2007-09-16 03:22 ------- It was:
(define_insn "movdi" [(set (match_operand:DI 0 "nonimmediate_operand" "") (match_operand:DI 1 "general_operand" ""))] "" "#") (define_split [(set (match_operand:DI 0 "nonimmediate_operand" "") (match_operand:DI 1 "general_operand" ""))] "reload_completed" [(set (match_dup 2) (match_dup 4)) (set (match_dup 3) (match_dup 5))] "{ operands[2] = simplify_gen_subreg (SImode, operands[0], DImode, 0); operands[3] = simplify_gen_subreg (SImode, operands[0], DImode, 4); operands[4] = simplify_gen_subreg (SImode, operands[1], DImode, 0); operands[5] = simplify_gen_subreg (SImode, operands[1], DImode, 4); }") Alas, this elementary addition has appeared erroneous. The following program leads to emergency end of compilation: int main () { volatile long long x = 0x0102030405060708LL; if (x != 0x0102030405060708LL) exit (__LINE__); exit (0); } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11180