[all-commits] [llvm/llvm-project] 229164: [ARM] Convert VPSEL to VMOV in tail predicated loops

David Green via All-commits all-commits at lists.llvm.org
Mon Aug 3 14:03:40 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 22916481c11e1d46132752086290a668e62fc9ce
      https://github.com/llvm/llvm-project/commit/22916481c11e1d46132752086290a668e62fc9ce
  Author: David Green <david.green at arm.com>
  Date:   2020-08-03 (Mon, 03 Aug 2020)

  Changed paths:
    M llvm/lib/Target/ARM/MVEVPTOptimisationsPass.cpp
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/cond-vector-reduce-mve-codegen.ll
    M llvm/test/CodeGen/Thumb2/mve-pred-selectop3.ll
    M llvm/test/CodeGen/Thumb2/mve-pred-vctpvpsel.ll
    M llvm/test/CodeGen/Thumb2/mve-vctp.ll

  Log Message:
  -----------
  [ARM] Convert VPSEL to VMOV in tail predicated loops

VPSEL has slightly different semantics under tail predication (it can
end up selecting from Qn, Qm and Qd). We do not model that at the moment
so they block tail predicated loops from being formed.

This just converts them into a predicated VMOV instead (via a VORR),
allowing tail predication to happen whilst still modelling the original
behaviour of the input.

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




More information about the All-commits mailing list