[all-commits] [llvm/llvm-project] efa340: [ARM] Workaround tailpredication min/max costmodel

David Green via All-commits all-commits at lists.llvm.org
Mon Aug 30 11:20:34 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: efa340fbd264c1a1fc3d0c41275536693369f897
      https://github.com/llvm/llvm-project/commit/efa340fbd264c1a1fc3d0c41275536693369f897
  Author: David Green <david.green at arm.com>
  Date:   2021-08-30 (Mon, 30 Aug 2021)

  Changed paths:
    M llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
    A llvm/test/Transforms/PhaseOrdering/ARM/arm_mult_q15.ll

  Log Message:
  -----------
  [ARM] Workaround tailpredication min/max costmodel

The min/max intrinsics are not yet canonical, but when they are the tail
predications analysis will change from treating them like icmp to
treating them like intrinsics. Unfortunately, they can currently produce
better code by not being tail predicated thanks to the vectorizer picking
higher VF's and the backend folding to better instructions (especially
for saturate patterns). In the long run we will need to improve the
vectorizers cost modelling, recognizing the instruction directly, but in
the meantime this treats min/max as before to prevent performance
regressions.




More information about the All-commits mailing list