https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91188
Uroš Bizjak <ubizjak at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Target| |x86 Status|UNCONFIRMED |ASSIGNED Last reconfirmed| |2019-07-17 Assignee|unassigned at gcc dot gnu.org |ubizjak at gmail dot com Target Milestone|--- |10.0 Ever confirmed|0 |1 --- Comment #1 from Uroš Bizjak <ubizjak at gmail dot com> --- ._slp patterns should be written in this way, e.g. *and<mode>_1_slp: (define_insn "*and<mode>_1_slp" [(set (strict_low_part (match_operand:SWI12 0 "register_operand" "+<r>")) (and:SWI12 (match_operand:SWI12 1 "nonimmediate_operand" "%0") (match_operand:SWI12 2 "general_operand" "<r>mn"))) (clobber (reg:CC FLAGS_REG))] "(!TARGET_PARTIAL_REG_STALL || optimize_function_for_size_p (cfun)) /* FIXME: without this LRA can't reload this pattern, see PR82524. */ && (rtx_equal_p (operands[0], operands[1]) || rtx_equal_p (operands[0], operands[2]))" "and{<imodesuffix>}\t{%2, %0|%0, %2}" [(set_attr "type" "alu") (set_attr "mode" "<MODE>")]) The above pattern handles QImode, as well as HImode.