https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102584
--- Comment #1 from thrustl at hotmail dot com --- -fdump-tree-optimized looks fine, with one unsigned and one signed constant: ;; Function main (main, funcdef_no=0, decl_uid=1383, cgraph_uid=1, symbol_order=0) int main () { int D.1386; int _4; ;; basic block 2, loop depth 0 ;; pred: ENTRY f1 (61731); f2 (-3805); _4 = 0; ;; succ: 3 ;; basic block 3, loop depth 0 ;; pred: 2 <L0>: return _4; ;; succ: EXIT } While the RTL generation shows both signed constant: /* ...header omitted... */ (insn 5 2 6 2 (set (reg:HI 3 r3) (const_int -3805 [0xfffffffffffff123])) "35.c":6:5 -1 (nil)) (call_insn 6 5 7 2 (parallel [ (call (mem:SI (symbol_ref:SI ("f1") [flags 0x41] <function_decl 0x7f45ceb62f00 f1>) [0 f1 S4 A32]) (const_int 0 [0])) (clobber (reg:SI 9 r9)) ]) "35.c":6:5 -1 (nil) (expr_list:HI (use (reg:HI 3 r3)) (nil))) (insn 7 6 8 2 (set (reg:HI 3 r3) (const_int -3805 [0xfffffffffffff123])) "35.c":7:5 -1 (nil)) (call_insn 8 7 9 2 (parallel [ (call (mem:SI (symbol_ref:SI ("f2") [flags 0x41] <function_decl 0x7f45ceb7f000 f2>) [0 f2 S4 A32]) (const_int 0 [0])) (clobber (reg:SI 9 r9)) ]) "35.c":7:5 -1 (nil) (expr_list:HI (use (reg:HI 3 r3)) (nil))) /* The rest are omitted */