------- Additional Comments From pinskia at gcc dot gnu dot org 2005-02-07 05:55 ------- For the RTL level (at least on PPC), we could combine the following instructions and simplify them: (insn 15 13 16 0 (set (reg:SI 124) (const_int 1 [0x1])) 293 {*movsi_internal1} (nil) (nil)) (insn 17 16 18 0 (set (zero_extract:SI (reg:SI 125) (const_int 1 [0x1]) (const_int 0 [0x0])) (reg:SI 124)) 112 {insvsi} (insn_list:REG_DEP_TRUE 15 (insn_list:REG_DEP_TRUE 16 (nil))) (expr_list:REG_DEAD (reg:SI 124) (nil))) into: (set (reg:SI 121) (ior:SI (reg:SI 119) (const_int -2147483648 [0xffffffff80000000])))
For x86 we need to combine and simplify the following code (which is not simplified at the tree level or RTL level yet, well is is optimizated with my tree combiner to the correct thing): unsigned f(unsigned i) { unsigned t = i&1; t|=1; t|=(i&~1); return t; } -- What |Removed |Added ---------------------------------------------------------------------------- CC| |pinskia at gcc dot gnu dot | |org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18031