]> granicus.if.org Git - llvm/commit
[NVPTX] Improve lowering of llvm.ctlz.
authorJustin Lebar <jlebar@google.com>
Wed, 18 Jan 2017 00:07:35 +0000 (00:07 +0000)
committerJustin Lebar <jlebar@google.com>
Wed, 18 Jan 2017 00:07:35 +0000 (00:07 +0000)
commitfd46a6b81904fc26c3a73d1f1b341c7d109afc3d
treec12ff5f9e07f45dfc25ec15283a5f717c19a0063
parentbe4d3e02f94d536c6a5f9a143ce6774d180339d6
[NVPTX] Improve lowering of llvm.ctlz.

Summary:
* Disable "ctlz speculation", which inserts a branch on every ctlz(x) which
  has defined behavior on x == 0 to check whether x is, in fact zero.

* Add DAG patterns that avoid re-truncating or re-expanding the result
  of the 16- and 64-bit ctz instructions.

Reviewers: tra

Subscribers: llvm-commits, jholewinski

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292299 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/NVPTX/NVPTXISelLowering.h
lib/Target/NVPTX/NVPTXInstrInfo.td
test/CodeGen/NVPTX/ctlz.ll