https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68536
amker at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |amker at gcc dot gnu.org --- Comment #3 from amker at gcc dot gnu.org --- (In reply to Vladimir Makarov from comment #1) > (In reply to ktkachov from comment #0) > > I'm trying to add support in arm for the smmlar instruction from ARMv6. > > The pattern for it looks like this: > > (define_insn "*mulsidi3siaddsi_round_v6" > > [(set (match_operand:SI 0 "s_register_operand" "=r") > > (plus:SI > > (match_operator:SI 3 "subreg_highpart_operator" > > [(plus:DI > > (mult:DI > > (sign_extend:DI > > (match_operand:SI 1 "s_register_operand" "%r")) > > (sign_extend:DI > > (match_operand:SI 2 "s_register_operand" "r"))) > > (const_int 2147483648))]) > > (match_operand:SI 4 "s_register_operand" "r")))] > > "TARGET_32BIT && arm_arch6" > > "smmlar%?\\t%0, %1, %2, %4" > > [(set_attr "type" "smmla") > > (set_attr "predicable" "yes") > > (set_attr "predicable_short_it" "no")] > > ) > > > > When I try to build GCC with this pattern, I have > > ‘subreg_highpart_operator’ was not declared in this scope > > Could you provide the predicate definition. Hi Vlad, I also ran into ICE with lra_emit_add, though it might be another issue. I have done preliminary investigation, so could you please give some suggestions? The thread is at https://gcc.gnu.org/ml/gcc-patches/2015-11/msg02446.html Thanks very much.