Hi Richard,
> --- > gcc/config/arm/arm.md | 40 ++++++++++++++++++++++++++++++---------- > 1 files changed, 30 insertions(+), 10 deletions(-) > > diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md > index b01343c..3b24627 100644 > --- a/gcc/config/arm/arm.md > +++ b/gcc/config/arm/arm.md <...snip> > ; By splitting (IOR (AND (NOT A) (NOT B)) C) as D = AND (IOR A B) (NOT C), > ; (NOT D) we can sometimes merge the final NOT into one of the following > @@ -4702,7 +4719,8 @@ > (const_int 0)))] > "TARGET_32BIT" > "tst\\t%0, #255" > - [(set_attr "conds" "set")] > + [(set_attr "conds" "set") > + (set_attr "predicable" "yes")] > ) It should be tst%? . Otherwise in the predicable case we wouldn't have the condition code printed out. Hmmm that looks like it's been latent for a while. > > (define_expand "extendhisi2" > @@ -7458,7 +7476,8 @@ > cmn%?\\t%0, #%n1" > [(set_attr "conds" "set") > (set_attr "arch" "t2,t2,any,any") > - (set_attr "length" "2,2,4,4")] > + (set_attr "length" "2,2,4,4") > + (set_attr "predicable" "yes")] > ) > > (define_insn "*cmpsi_shiftsi" > @@ -7499,7 +7518,8 @@ > [(set_attr "conds" "set") > (set (attr "type") (if_then_else (match_operand 3 "const_int_operand" "") > (const_string "alu_shift") > - (const_string "alu_shift_reg")))] > + (const_string "alu_shift_reg"))) > + (set_attr "predicable" "yes")] > ) > Otherwise looks OK to me. Ramana