[all-commits] [llvm/llvm-project] 0cd806: [AArch64] Genereate CCMP from And CSel

David Green via All-commits all-commits at lists.llvm.org
Wed Feb 2 05:48:29 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 0cd8063960259903b5bbb0accc3259accdb1bd6c
      https://github.com/llvm/llvm-project/commit/0cd8063960259903b5bbb0accc3259accdb1bd6c
  Author: David Green <david.green at arm.com>
  Date:   2022-02-02 (Wed, 02 Feb 2022)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/test/CodeGen/AArch64/andcompare.ll
    M llvm/test/CodeGen/AArch64/arm64-ccmp.ll
    M llvm/test/CodeGen/AArch64/select-with-and-or.ll
    M llvm/test/CodeGen/AArch64/umulo-128-legalisation-lowering.ll
    M llvm/test/CodeGen/AArch64/vec_umulo.ll

  Log Message:
  -----------
  [AArch64] Genereate CCMP from And CSel

LLVM has a couple of ways of producing ccmp - either from chains in isel
or from a later ifcvt style pass. This adds a simple DAG combine to
capture more cases, converting and(csel(0, 1, cc0), csel(0, 1, cc1))
into a csel(ccmp(.., cc0)), depending on cc1 (a SUBS in this case).

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




More information about the All-commits mailing list