Thanks. The conditional instruction that I am having is present even before if-conversion pass. Regards Abdul On Tue, Aug 13, 2013 at 5:34 PM, Kyrylo Tkachov <kyrylo.tkachov@xxxxxxx> wrote: >> Hello >> >> Conditional instructions such as "movsicc_noc" are usually introduced >> by if-conversion transformation which happens at RTL level. >> >> Is there any other transformation which introduces conditional >> instructions? I am having a conditional instruction even after >> disabling if-conversion transformations. > > A backend can also generate cond_exec RTL which will be mapped to conditional > instructions. > Various splitters and peepholes can produce them. > > For example, arm has the following splitter: > > (define_split > [(set (match_operand:SI 0 "s_register_operand" "") > (eq:SI (match_operand:SI 1 "s_register_operand" "") > (const_int 0))) > (clobber (reg:CC CC_REGNUM))] > "TARGET_32BIT && reload_completed" > [(parallel > [(set (reg:CC CC_REGNUM) > (compare:CC (const_int 1) (match_dup 1))) > (set (match_dup 0) > (minus:SI (const_int 1) (match_dup 1)))]) > (cond_exec (ltu:CC (reg:CC CC_REGNUM) (const_int 0)) > (set (match_dup 0) (const_int 0)))]) > > which splits an RTL expression without cond_execs into one with conditional > execution. > > HTH, > Kyrill > > >> >> Regards >> >> Abdul > > > >