Displaying 20 results from an estimated 2000 matches similar to: "[LLVMdev] Shuffle combine"
2009 Apr 01
2
[LLVMdev] Shuffle combine
Hi Stefanus,
Thanks for the info. I still think it's a bug though. Take for example a
case where the vectors each have four elements. The values in Mask[] can
range from 0 to 7, while HLSMask only has 4 elements. So LHSMask[Mask[i]]
can go out of bounds, no?
Cheers,
Nicolas
From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On
Behalf Of Stefanus Du
2009 Apr 01
0
[LLVMdev] Shuffle combine
Hi Nicolas,
On 1-Apr-09, at 7:34 AM, Nicolas Capens wrote:
> I’m having some trouble understanding the following lines in
> InstructionCombining.cpp, which possibly contain a bug:
>
> if (Mask[i] >= 2*e)
> NewMask.push_back(2*e);
> else
> NewMask.push_back(LHSMask[Mask[i]]);
>
> When Mask[i] is bigger than the size of LHSMask it reads out of
> bounds
2009 Apr 01
0
[LLVMdev] Shuffle combine
On 1-Apr-09, at 12:42 PM, Nicolas Capens wrote:
> Hi Stefanus,
>
> Thanks for the info. I still think it’s a bug though. Take for
> example a case where the vectors each have four elements. The values
> in Mask[] can range from 0 to 7, while HLSMask only has 4 elements.
> So LHSMask[Mask[i]] can go out of bounds, no?
Good point! One easy way to fix this would be to use:
2009 Apr 02
2
[LLVMdev] Shuffle combine
Hi Stefanus,
Thanks for verifying this. Could you patch this or should I open a new bug
report and find a generic solution first?
Cheers,
Nicolas
From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On
Behalf Of Stefanus Du Toit
Sent: woensdag 1 april 2009 18:59
To: LLVM Developers Mailing List
Subject: Re: [LLVMdev] Shuffle combine
On 1-Apr-09, at 12:42
2009 Apr 03
0
[LLVMdev] Shuffle combine
Hi Nicolas,
On 2-Apr-09, at 6:04 PM, Nicolas Capens wrote:
> Thanks for verifying this. Could you patch this or should I open a
> new bug report and find a generic solution first?
I don't have write access so the best I could do would be to submit a
patch, and I'm crazy busy at the moment.
I actually think the check I described below is fine and would fix
this bug (but
2008 Sep 30
0
[LLVMdev] Generalizing shuffle vector
Hi Mon Ping,
Generalizing shufflevector would be great. I have an additional
suggestion below.
On 29-Sep-08, at 11:11 PM, Mon Ping Wang wrote:
> I am proposing to extend the shuffle vector definition to be
> <result> = shufflevector <n x <ty>> <v1>, <n x <ty>> <v2>, <m x i32>
> <mask> ; yields <m x <ty>>
>
> The
2008 Sep 30
2
[LLVMdev] Generalizing shuffle vector
I agree further generalization seems like a very good idea. But I'd
like to see what Mon Ping proposed implemented first so we have a
better idea of the implementation cost.
Thanks,
Evan
On Sep 30, 2008, at 6:44 AM, Stefanus Du Toit wrote:
> Hi Mon Ping,
>
> Generalizing shufflevector would be great. I have an additional
> suggestion below.
>
> On 29-Sep-08, at 11:11
2008 Sep 30
4
[LLVMdev] Generalizing shuffle vector
Hi,
The current definition of shuffle vector is
<result> = shufflevector <n x <ty>> <v1>, <n x <ty>> <v2>, <n x
i32> <mask> ; yields <n x <ty>>
The first two operands of a 'shufflevector' instruction are vectors
with types that match each other and types that match the result of
the instruction. The third
2010 May 14
2
[LLVMdev] vector optimization
Hi!
Is there a pass that optimizes vector operations?
If I have for examle a sequence of shufflevector instructions
that optimizes them?
(in opencl notation e.g. a.xyzw.wzyx.xxxx -> a.wwww)
-Jochen
2010 May 14
0
[LLVMdev] vector optimization
Instcombine does of this, late codegen also does some of it.
-Chris
On May 14, 2010, at 5:58 AM, Jochen Wilhelmy <j.wilhelmy at arcor.de> wrote:
> Hi!
>
> Is there a pass that optimizes vector operations?
> If I have for examle a sequence of shufflevector instructions
> that optimizes them?
> (in opencl notation e.g. a.xyzw.wzyx.xxxx -> a.wwww)
>
> -Jochen
2008 Jun 26
2
[LLVMdev] Vector instructions
Hi,
I have some questions as to the definition of various vector
instructions. In particular, I believe there are some gaps and
inconsistencies in the vector instructions, and I'm interested in
hearing whether you agree that these should be improved or whether
there are other ways to solve these problems.
===
1. Shufflevector only accepts vectors of the same type
Shufflevector seems overly
2008 Jun 26
0
[LLVMdev] Vector instructions
On Jun 26, 2008, at 1:56 PM, Stefanus Du Toit wrote:
> Hi,
>
> I have some questions as to the definition of various vector
> instructions. In particular, I believe there are some gaps and
> inconsistencies in the vector instructions, and I'm interested in
> hearing whether you agree that these should be improved or whether
> there are other ways to solve these problems.
2008 Jun 27
2
[LLVMdev] Vector instructions
Hi Dan,
Thanks for your comments. I've responded inline below.
On 26-Jun-08, at 6:49 PM, Dan Gohman wrote:
> On Jun 26, 2008, at 1:56 PM, Stefanus Du Toit wrote:
>>
>> ===
>> 1. Shufflevector only accepts vectors of the same type
>>
>> I would propose to change the syntax from:
>>
>>> <result> = shufflevector <n x <ty>>
2020 Mar 09
8
[RFC] Refactor class hierarchy of VectorType in the IR
Hi,
I am helping with the effort to implement scalable vectors in the codebase in order to add support for generating SVE code in the Arm backend. I would like to propose a refactor of the Type class hierarchy in order to eliminate issues related to the misuse of SequentialType::getNumElements(). I would like to introduce a new class FixedVectorType that inherits from
2020 Apr 22
2
[Update][RFC] Refactor class hierarchy of VectorType in the IR
Hi,
I just wanted to give an update on the progress of this work. This morning I merged a patch to add the new vector types. I have added a FixedVectorType, as proposed below. I also added a ScalableVectorType. I found during my work that it is useful to be able to query isa<ScalableVectorType>(Ty). Additionally, I was concerned that it would become commonplace to take
2020 May 05
2
[Update][RFC] Refactor class hierarchy of VectorType in the IR
Nicolai,
My plan is to remove getNumElements() as soon as possible. Hopefully within the next few weeks. I just made a patch on my machine that marks it deprecated, and it generates a ton of warnings. Given that some build bots build with -Werror, I don't think we can mark it deprecated unless all the usages are first removed.
It occurs to me now that it might be good to mark it
2008 Sep 30
0
[LLVMdev] Generalizing shuffle vector
Hi,
I agree that the more general shufflevector is more useful. I
narrowed the original proposal a little bit because of the concern for
the implementation cost. However, the slightly narrowed definition
will probably require falling backing to generate insert and extracts
for complex masks so it is possible that there will be no extra cost
in supporting the more general definition.
2008 Nov 10
3
[LLVMdev] RapidMind/LLVM Announcement
For those curious about uses of LLVM, we just officially announced our
adoption of LLVM in our products:
http://www.rapidmind.com/News-Nov10-08-LLVM-OpenCL.php
Thanks for all the support so far on here, we look forward to
continuing to work with LLVM!
--
Stefanus Du Toit <stefanus.dutoit at rapidmind.com>
RapidMind Inc.
phone: +1 519 885 5455 x116 -- fax: +1 519 885 1463
2020 May 21
3
[RFC] Refactor class hierarchy of VectorType in the IR
Hi John,
I’d like to address some points in your message.
> Practically speaking, this is going to break every out-of-tree frontend, backend, or optimization pass that supports SIMD types.
My understanding is that the policy in LLVM development is that we do not let considerations for downstream and out-of-tree codebases affect the pace of development. The C++ API is explicitly unstable.
2020 May 22
3
[RFC] Refactor class hierarchy of VectorType in the IR
John,
For the last several months, those of us working on the scalable vectors feature have been examining the codebase, identifying places where llvm::VectorType is used incorrectly, and fixing them. The fact is that there are many places where VectorType is correctly taken to be the generic “any vector” type. getNumElements may be being called, but it’s being called in accordance with the