[PATCH 1/2] [target 87767] Refactor AVX512 broadcast patterns with speical memory constraint.

Hongtao Liu crazylht@gmail.com
Mon Oct 12 00:58:39 GMT 2020


Hi:
  This is done in 2 steps:
  1. Extend special memory constraint to handle non MEM_P cases, i.e.
(vec_duplicate:V4SF (mem:SF (addr)))
  2. Refactor implementation of *_bcst{_1,_2,_3} patterns. Add new
predicate bcst_mem_operand and corresponding constraint "Br" to merge
"$(pattern)_bcst{_1,_2,_3}" into "$(pattern)", also delete those
separate "*_bcst{_1,_2,_3}" patterns.

  Bootstrap is ok, regression test on i386 backend is ok.

gcc/ChangeLog:

        PR target/87767
        * ira-costs.c (record_operand_costs): Extract memory operand
        from recog_data.operand[i] for record_address_regs.
        (record_reg_classes): Extract memory operand from OP for
        conditional judgement MEM_P.
        * ira.c (ira_setup_alts): Ditto.
        * lra-constraints.c (extract_mem_from_operand): New function.
        (satisfies_memory_constraint_p): Extract memory operand from
        OP for decompose_mem_address, return false when there's no
        memory operand inside OP.
        (process_alt_operands): Remove MEM_P (op) since it would be
        judged in satisfies_memory_constraint_p.
        * recog.c (asm_operand_ok): Extract memory operand from OP for
        judgement of memory_operand (OP, VOIDmode).
        (constrain_operands): Don't unwrapper unary operator when
        there's memory operand inside.
        * rtl.h (extract_mem_from_operand): New decl.
--
BR,
Hongtao
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Extend-special_memory_constraint.patch
Type: application/octet-stream
Size: 6497 bytes
Desc: not available
URL: <https://gcc.gnu.org/pipermail/gcc-patches/attachments/20201012/3a99979b/attachment.obj>


More information about the Gcc-patches mailing list