[all-commits] [llvm/llvm-project] 181492: [AArch64][CodeGen] Remove redundant vector negatio...

Benjamin Maxwell via All-commits all-commits at lists.llvm.org
Wed Nov 16 03:17:27 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 18149218939774b5eac228adc5c3958fbaac9028
      https://github.com/llvm/llvm-project/commit/18149218939774b5eac228adc5c3958fbaac9028
  Author: Benjamin Maxwell <benjamin.maxwell at arm.com>
  Date:   2022-11-16 (Wed, 16 Nov 2022)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/test/CodeGen/AArch64/illegal-floating-point-vector-compares.ll
    A llvm/test/CodeGen/AArch64/pull-negations-after-concat-of-truncates.ll

  Log Message:
  -----------
  [AArch64][CodeGen] Remove redundant vector negations before concat

This adds a new canonicalization rule to replace concats of truncated
negations with a negation of the concatenated truncates, e.g.

    (concat_vectors (v4i16 (truncate (not (v4i32)))),
                    (v4i16 (truncate (not (v4i32)))))
   ->
    (not (concat_vectors (v4i16 (truncate (v4i32))),
                         (v4i16 (truncate (v4i32)))))

Doing this allows avoiding redundant negations being emitted in
certain cases.

Reviewed By: peterwaller-arm

Differential Revision: https://reviews.llvm.org/D137433




More information about the All-commits mailing list