https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68917
--- Comment #2 from Chen Gang <gang.chen.5i5j at gmail dot com> --- (In reply to Bernd Edlinger from comment #1) > does something like this help? > Oh, sorry for replying late. I shall try to give a test within this month. Thanks. :-) > Index: tilegx.md > =================================================================== > --- tilegx.md (Revision 231696) > +++ tilegx.md (Arbeitskopie) > @@ -1799,13 +1799,16 @@ > > (define_expand "clzsi2" > [(set (match_dup 2) > - (ashift:DI (match_operand:SI 1 "reg_or_0_operand" "") > + (zero_extend:DI (match_operand:SI 1 "reg_or_0_operand" ""))) > + (set (match_dup 2) > + (ashift:DI (match_dup 2) > (const_int 32))) > - (set (subreg:DI (match_operand:SI 0 "register_operand" "") 0) > - (clz:DI (match_dup 2)))] > + (set (match_dup 2) > + (clz:DI (match_dup 2))) > + (set (match_operand:SI 0 "register_operand" "") > + (subreg:SI (match_dup 2) 0))] > "" > { > - operands[1] = simplify_gen_subreg (DImode, operands[1], SImode, 0); > operands[2] = gen_reg_rtx (DImode); > })