[PATCH] D21372: [ARM] Lower (select_cc k k (select_cc ~k ~k x)) into (SSAT l_k x)

Pablo Barrio via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 15 04:17:23 PDT 2016


pbarrio created this revision.
pbarrio added reviewers: mcrosier, jmolloy.
pbarrio added a subscriber: llvm-commits.
Herald added subscribers: rengolin, aemerson.

SSAT saturates an integer, making sure that its value lies within
an interval [-k, k]. Since the constant is given to SSAT as the
number of bytes set to one, k + 1 must be a power of 2, otherwise
the optimization is not possible. Also, the select_cc must use <
and > respectively so that they define an interval.

http://reviews.llvm.org/D21372

Files:
  include/llvm/Target/TargetSelectionDAG.td
  lib/Target/ARM/ARMISelLowering.cpp
  lib/Target/ARM/ARMISelLowering.h
  lib/Target/ARM/ARMInstrInfo.td
  lib/Target/ARM/ARMInstrThumb2.td
  test/CodeGen/ARM/ssat.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D21372.60813.patch
Type: text/x-patch
Size: 14098 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160615/cefcd48d/attachment.bin>


More information about the llvm-commits mailing list