Hi! The search for patterns with n_operands 2 and TYPE_ALU revealed also these 3 patterns, which also have just 2 operands, yet use "alu".
I think "alu1" is the right type for these, but given that they had explicit "memory" and "imm_disp" attributes, it probably isn't that big deal. Bootstrapped/regtested on x86_64-linux and i686-linux, ok for stage1? Or is this something we want in GCC8 too? 2018-04-17 Jakub Jelinek <ja...@redhat.com> * config/i386/i386.md (*x86_mov<mode>cc_0_m1): Use type "alu1" rather than "alu", remove explicit "memory" and "imm_disp" attributes. (*x86_mov<mode>cc_0_m1_se, *x86_mov<mode>cc_0_m1_neg): Likewise. --- gcc/config/i386/i386.md.jj 2018-04-17 13:22:08.134050850 +0200 +++ gcc/config/i386/i386.md 2018-04-17 15:03:32.048628607 +0200 @@ -17898,14 +17898,10 @@ (define_insn "*x86_mov<mode>cc_0_m1" (clobber (reg:CC FLAGS_REG))] "" "sbb{<imodesuffix>}\t%0, %0" - ; Since we don't have the proper number of operands for an alu insn, - ; fill in all the blanks. - [(set_attr "type" "alu") + [(set_attr "type" "alu1") (set_attr "modrm_class" "op0") (set_attr "use_carry" "1") (set_attr "pent_pair" "pu") - (set_attr "memory" "none") - (set_attr "imm_disp" "false") (set_attr "mode" "<MODE>") (set_attr "length_immediate" "0")]) @@ -17918,12 +17914,10 @@ (define_insn "*x86_mov<mode>cc_0_m1_se" (clobber (reg:CC FLAGS_REG))] "" "sbb{<imodesuffix>}\t%0, %0" - [(set_attr "type" "alu") + [(set_attr "type" "alu1") (set_attr "modrm_class" "op0") (set_attr "use_carry" "1") (set_attr "pent_pair" "pu") - (set_attr "memory" "none") - (set_attr "imm_disp" "false") (set_attr "mode" "<MODE>") (set_attr "length_immediate" "0")]) @@ -17934,12 +17928,10 @@ (define_insn "*x86_mov<mode>cc_0_m1_neg" (clobber (reg:CC FLAGS_REG))] "" "sbb{<imodesuffix>}\t%0, %0" - [(set_attr "type" "alu") + [(set_attr "type" "alu1") (set_attr "modrm_class" "op0") (set_attr "use_carry" "1") (set_attr "pent_pair" "pu") - (set_attr "memory" "none") - (set_attr "imm_disp" "false") (set_attr "mode" "<MODE>") (set_attr "length_immediate" "0")]) Jakub