OSDN Git Service

[ARM] Lower unsigned saturation to USAT
authorFlorian Hahn <florian.hahn@arm.com>
Wed, 20 Dec 2017 11:13:57 +0000 (11:13 +0000)
committerFlorian Hahn <florian.hahn@arm.com>
Wed, 20 Dec 2017 11:13:57 +0000 (11:13 +0000)
commitb68371dd25db76363b6b5da5fcd2801ec0ca4479
treefa07a7f4f924a7eaa686064297f5239fd8ad5c42
parentbb61415adfb276a4366552f15dc03a1d4087ebb9
[ARM] Lower unsigned saturation to USAT

Summary:
Implement lower of unsigned saturation on an interval [0, k] where k + 1 is a power of two using USAT instruction in a similar way to how [~k, k] is lowered using SSAT on ARM models that supports it.

Patch by Marten Svanfeldt

Reviewers: t.p.northover, pbarrio, eastig, SjoerdMeijer, javed.absar, fhahn

Reviewed By: fhahn

Subscribers: fhahn, aemerson, javed.absar, llvm-commits, kristof.beyls

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@321164 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/ARM/ARMISelLowering.cpp
lib/Target/ARM/ARMISelLowering.h
lib/Target/ARM/ARMInstrInfo.td
lib/Target/ARM/ARMInstrThumb2.td
test/CodeGen/ARM/usat.ll [new file with mode: 0644]