[PATCH] D24396: Target Power9 bit counting and vector comparison instructions through builtins (backend portion)

Nemanja Ivanovic via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 9 07:35:16 PDT 2016


nemanjai created this revision.
nemanjai added reviewers: hfinkel, kbarton, wschmidt, amehsan, seurer.
nemanjai added subscribers: llvm-commits, echristo.
nemanjai set the repository for this revision to rL LLVM.
Herald added a subscriber: nemanjai.

This patch adds support for the "vector count trailing zeroes", "vector compare not equal" and "vector compare not equal or zero instructions" as well as "scalar count trailing zeroes" instructions. It also changes the vector negation to use XXLNOR (when VSX is enabled) so as not to increase register pressure (previously this was done with a splat immediate of all ones followed by an XXLXOR). This was done because the altivec.h builtins (patch to follow) use vector negation and the use of an additional register for the splat immediate is not optimal.

Repository:
  rL LLVM

https://reviews.llvm.org/D24396

Files:
  include/llvm/IR/IntrinsicsPowerPC.td
  lib/Target/PowerPC/PPCISelLowering.cpp
  lib/Target/PowerPC/PPCInstrAltivec.td
  lib/Target/PowerPC/PPCInstrVSX.td
  test/CodeGen/PowerPC/p9-vector-compares-and-counts.ll
  test/CodeGen/PowerPC/vsx.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D24396.70833.patch
Type: text/x-patch
Size: 18925 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160909/b2fb919e/attachment.bin>


More information about the llvm-commits mailing list