[all-commits] [llvm/llvm-project] 5402d1: [GlobalISel][AArch64] Don't emit cset for G_FCMPs ...

Jessica Paquette via All-commits all-commits at lists.llvm.org
Thu Oct 1 15:34:57 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 5402d11b1d8853ff10417b0f8d32edde3f4a51c0
      https://github.com/llvm/llvm-project/commit/5402d11b1d8853ff10417b0f8d32edde3f4a51c0
  Author: Jessica Paquette <jpaquette at apple.com>
  Date:   2020-10-01 (Thu, 01 Oct 2020)

  Changed paths:
    M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
    A llvm/test/CodeGen/AArch64/GlobalISel/fold-brcond-fcmp.mir

  Log Message:
  -----------
  [GlobalISel][AArch64] Don't emit cset for G_FCMPs feeding into G_BRCONDs

Similar to the FP case in `AArch64TargetLowering::LowerBR_CC`.

Instead of emitting the csets + a tbnz, just emit a compare + bcc
(or two bccs, depending on the condition code)

This improves cases like this: https://godbolt.org/z/v8hebx

This is a 0.1% geomean code size improvement for CTMark at -O3.

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




More information about the All-commits mailing list