Displaying 20 results from an estimated 2000 matches similar to: "[LLVMdev] [RFC] Integer Saturation Intrinsics"
2015 Jan 15
2
[LLVMdev] [RFC] Integer Saturation Intrinsics
On Thu, Jan 15, 2015 at 12:42 AM, Philip Reames
<listmail at philipreames.com> wrote:
> At a very high level, why do we need these intrinsics?
In short, to catch sequences you can't catch in the SelectionDAG.
> What is the use case? What are typical values for N?
Typically, you get this from (a little overlapping) compression, DSP,
or pixel-handling code.
Off the top of my
2015 Jan 15
3
[LLVMdev] [RFC] Integer Saturation Intrinsics
On Thu, Jan 15, 2015 at 2:33 AM, David Chisnall <David.Chisnall at cl.cam.ac.uk
> wrote:
> A couple of questions:
>
> 1) Should this really be an intrinsic and not a flag on add? The add
> instruction already allows overflow to be either undefined or defined to
> wrap. Making it defined to saturate seems a natural extension.
>
I don't think this should be a flag on
2015 Jan 15
0
[LLVMdev] [RFC] Integer Saturation Intrinsics
On 01/14/2015 04:16 PM, Ahmed Bougacha wrote:
> On Thu, Jan 15, 2015 at 12:42 AM, Philip Reames
> <listmail at philipreames.com> wrote:
>> At a very high level, why do we need these intrinsics?
> In short, to catch sequences you can't catch in the SelectionDAG.
>
>> What is the use case? What are typical values for N?
> Typically, you get this from (a little
2011 Jun 17
5
[LLVMdev] RFC: Integer saturation intrinsics
Hi all,
I'm proposing integer saturation intrinsics.
def int_ssat : Intrinsic<[llvm_anyint_ty], [LLVMMatchType<0>, llvm_i32_ty]>;
def int_usat : Intrinsic<[llvm_anyint_ty], [LLVMMatchType<0>, llvm_i32_ty]>;
The first operand is the integer value being saturated, and second is the saturation bit position.
For scalar integer types, the semantics are:
int_ssat: x <
2011 Jun 18
0
[LLVMdev] RFC: Integer saturation intrinsics
> The plan is to form calls to these intrinsics in InstCombine. Legalizer
> can expand these intrinsics if they are not legal. The expansion should
> be fairly straight forward and produce code that is at least as good as
> what LLVM is currently generating for these code sequence.
SSAT/USAT may set the Q (saturation) flag, which might cause problems
for anyone relying on explicitly
2011 Jun 17
2
[LLVMdev] RFC: Integer saturation intrinsics
On Jun 17, 2011, at 3:42 PM, Eli Friedman wrote:
> On Fri, Jun 17, 2011 at 3:08 PM, Evan Cheng <evan.cheng at apple.com> wrote:
>> Hi all,
>>
>> I'm proposing integer saturation intrinsics.
>>
>> def int_ssat : Intrinsic<[llvm_anyint_ty], [LLVMMatchType<0>, llvm_i32_ty]>;
>> def int_usat : Intrinsic<[llvm_anyint_ty],
2011 Jun 17
0
[LLVMdev] RFC: Integer saturation intrinsics
On Fri, Jun 17, 2011 at 3:08 PM, Evan Cheng <evan.cheng at apple.com> wrote:
> Hi all,
>
> I'm proposing integer saturation intrinsics.
>
> def int_ssat : Intrinsic<[llvm_anyint_ty], [LLVMMatchType<0>, llvm_i32_ty]>;
> def int_usat : Intrinsic<[llvm_anyint_ty], [LLVMMatchType<0>, llvm_i32_ty]>;
>
> The first operand is the integer value
2018 Aug 22
2
Fixed Point Support in LLVM
On 2018-08-22 11:32, John McCall wrote:
>
>> On Aug 22, 2018, at 4:38 AM, Bevin Hansson <bevin.hansson at ericsson.com> wrote:
>>
>>
>>
>> On 2018-08-22 05:56, John McCall via llvm-dev wrote:
>>>> On Aug 21, 2018, at 6:20 PM, Leonard Chan <leonardchan at google.com> wrote:
>>>> If we were to create a new type down the line, I
2018 Aug 22
2
Fixed Point Support in LLVM
On 2018-08-22 05:56, John McCall via llvm-dev wrote:
>> On Aug 21, 2018, at 6:20 PM, Leonard Chan <leonardchan at google.com> wrote:
>> If we were to create a new type down the line, I think the main
>> features that would distinguish them from other types are the
>> arbitrary width and scale. Saturation can be handled through
>> instructions since saturation
2011 Jun 18
2
[LLVMdev] RFC: Integer saturation intrinsics
On Fri, Jun 17, 2011 at 4:50 PM, Eli Friedman <eli.friedman at gmail.com> wrote:
>>>> The plan is to form calls to these intrinsics in InstCombine. Legalizer can expand these intrinsics if they are not legal. The expansion should be fairly straight forward and produce code that is at least as good as what LLVM is currently generating for these code sequence.
>>>>
2011 Jun 19
1
[LLVMdev] RFC: Integer saturation intrinsics
On Sun, Jun 19, 2011 at 10:09 AM, Evan Cheng <evan.cheng at apple.com> wrote:
>
> On Jun 17, 2011, at 5:49 PM, Eli Friedman wrote:
>
>> On Fri, Jun 17, 2011 at 4:50 PM, Eli Friedman <eli.friedman at gmail.com> wrote:
>>>>>> The plan is to form calls to these intrinsics in InstCombine. Legalizer can expand these intrinsics if they are not legal. The
2011 Jun 19
0
[LLVMdev] RFC: Integer saturation intrinsics
On Jun 17, 2011, at 5:49 PM, Eli Friedman wrote:
> On Fri, Jun 17, 2011 at 4:50 PM, Eli Friedman <eli.friedman at gmail.com> wrote:
>>>>> The plan is to form calls to these intrinsics in InstCombine. Legalizer can expand these intrinsics if they are not legal. The expansion should be fairly straight forward and produce code that is at least as good as what LLVM is
2015 Jan 19
2
[LLVMdev] Vectorization Cost Models and Multi-Instruction Patterns?
Hi all,
While tinkering with saturation instructions, I hit problems with the
cost model calculations.
The loop vectorizer cost model accumulates the individual TTI cost
model of each instruction. For saturating arithmetic, this is a gross
overestimate, since you have 2 sexts (inputs), 2 icmps + 2 selects
(for the saturation), and a truncate (output); these all fold alway.
With an intrinsic,
2011 Jun 17
0
[LLVMdev] RFC: Integer saturation intrinsics
On Fri, Jun 17, 2011 at 4:22 PM, Evan Cheng <evan.cheng at apple.com> wrote:
>
> On Jun 17, 2011, at 3:42 PM, Eli Friedman wrote:
>
>> On Fri, Jun 17, 2011 at 3:08 PM, Evan Cheng <evan.cheng at apple.com> wrote:
>>> Hi all,
>>>
>>> I'm proposing integer saturation intrinsics.
>>>
>>> def int_ssat :
2020 Jul 08
4
[RFC] Saturating left shift intrinsics
Hello,
This is an RFC for adding intrinsics which perform saturating signed/unsigned left shift.
There is currently a patch on Phabricator here:
https://reviews.llvm.org/D83216
The intrinsics are of the form
i32 @llvm.sshl.sat.i32(i32, i32)
i32 @llvm.ushl.sat.i32(i32, i32)
<4 x i32> @llvm.sshl.sat.v4i32(<4 x i32>, <4 x i32>)
<4 x i32>
2019 Oct 10
2
[RFC] Use of saturating intrinsics
Hello all again, take 2.
Over in D68651 I would like to make code that attempt to saturate an value (using higher bitwidth integers) use a saturating intrinsic instead. Something like this:
https://godbolt.org/z/9knBnP
As can be seen, the unsigned cases are already being matched to llvm.uadd.sat intrinsics. I am hoping to extend that to the signed cases. This has numerous benefits including
2004 Nov 03
2
speex on TI C5x fixed-point DSP
> One thing I've noticed so far in the filter_mem2 code is the calls to
> SATURATE(x, 805306368). 805306368 is 0x30000000. I was expecting that
> to be on a bit boundary, say 0x3fffffff? In which case the arithmetic
> saturation logic could be used.
I don't think it would make that big of a difference, since the
saturation is outside of the inner loop. If it's that
2015 Jan 28
5
[LLVMdev] RFC: generation of PSAD instruction
On Wed, Jan 28, 2015 at 7:50 AM, Hal Finkel <hfinkel at anl.gov> wrote:
> Hi Vijender,
>
> Thanks for posting this, there is wide support here for improving our support for reductions of various kinds, both in flavor and robustness. I've cc'd some others who have previously discussed this.
>
> James has advocated in the past for an intrinsic for horizontal reductions,
2018 Aug 21
4
Fixed Point Support in LLVM
If we were to create a new type down the line, I think the main
features that would distinguish them from other types are the
arbitrary width and scale. Saturation can be handled through
instructions since saturation really only takes effect after an
operation and doesn’t really describe anything about the bits in the
resulting type. Signage can similarly be managed through operations
and would be
2010 Dec 01
2
[LLVMdev] fixed point types
On Tue, Nov 30, 2010 at 05:48, Jonas Paulsson <jnspaulsson at hotmail.com> wrote:
>
> May I ask then, what could one expect from various optimizations when using
> intrinsics to support the fixed point type? LTO, Value optimizations, mem ??
>
Can you not just lower your fixed-point operations to widen, perform
normal integer operation, shift and truncate? With LLVM's