Displaying 7 results from an estimated 7 matches for "interleavedaccess".
2017 Jan 12
2
IR canonicalization: shufflevector or vector trunc?
...<4 x i64>
%tr = trunc <4 x i64> %bc to <4 x i16>
ret <4 x i16> %tr
}
Potential reasons to prefer one or the other:
1. Shuffle is the most compact.
2. Trunc is easier to read.
3. One of these is easier for value tracking.
4. Compatibility with existing IR transforms (eg, InterleavedAccess
recognizes the shuffle form).
5. We don't create arbitrary shuffle masks in IR because that's bad for a
lot of targets (but maybe this mask pattern should always be recognized as
special?).
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm...
2017 Jan 12
0
IR canonicalization: shufflevector or vector trunc?
...4> %bc to <4 x i16>
> ret <4 x i16> %tr
> }
>
> Potential reasons to prefer one or the other:
> 1. Shuffle is the most compact.
> 2. Trunc is easier to read.
> 3. One of these is easier for value tracking.
> 4. Compatibility with existing IR transforms (eg, InterleavedAccess
> recognizes the shuffle form).
> 5. We don't create arbitrary shuffle masks in IR because that's bad
> for a lot of targets (but maybe this mask pattern should always be
> recognized as special?).
Hmm... not sure what the right answer is, but a couple more observations:
1....
2017 Jan 12
2
IR canonicalization: shufflevector or vector trunc?
...; %bc to <4 x i16>
> ret <4 x i16> %tr
> }
>
>
> Potential reasons to prefer one or the other:
> 1. Shuffle is the most compact.
> 2. Trunc is easier to read.
> 3. One of these is easier for value tracking.
> 4. Compatibility with existing IR transforms (eg, InterleavedAccess
> recognizes the shuffle form).
> 5. We don't create arbitrary shuffle masks in IR because that's bad for a
> lot of targets (but maybe this mask pattern should always be recognized as
> special?).
>
>
> Hmm... not sure what the right answer is, but a couple more observ...
2017 Jan 13
2
IR canonicalization: shufflevector or vector trunc?
...x i16>
>
> ret <4 x i16> %tr
>
> }
>
>
>
> Potential reasons to prefer one or the other:
> 1. Shuffle is the most compact.
> 2. Trunc is easier to read.
> 3. One of these is easier for value tracking.
> 4. Compatibility with existing IR transforms (eg, InterleavedAccess
> recognizes the shuffle form).
>
> 5. We don't create arbitrary shuffle masks in IR because that's bad for a
> lot of targets (but maybe this mask pattern should always be recognized as
> special?).
>
>
>
> Hmm... not sure what the right answer is, but a couple m...
2017 Jan 17
2
IR canonicalization: shufflevector or vector trunc?
...x i16>
>
> ret <4 x i16> %tr
>
> }
>
>
>
> Potential reasons to prefer one or the other:
> 1. Shuffle is the most compact.
> 2. Trunc is easier to read.
> 3. One of these is easier for value tracking.
> 4. Compatibility with existing IR transforms (eg, InterleavedAccess
> recognizes the shuffle form).
>
> 5. We don't create arbitrary shuffle masks in IR because that's bad for a
> lot of targets (but maybe this mask pattern should always be recognized as
> special?).
>
>
>
> Hmm... not sure what the right answer is, but a couple m...
2017 Jan 21
2
IR canonicalization: shufflevector or vector trunc?
...x i16>
>
> ret <4 x i16> %tr
>
> }
>
>
>
> Potential reasons to prefer one or the other:
> 1. Shuffle is the most compact.
> 2. Trunc is easier to read.
> 3. One of these is easier for value tracking.
> 4. Compatibility with existing IR transforms (eg, InterleavedAccess
> recognizes the shuffle form).
>
> 5. We don't create arbitrary shuffle masks in IR because that's bad for a
> lot of targets (but maybe this mask pattern should always be recognized as
> special?).
>
>
>
> Hmm... not sure what the right answer is, but a couple m...
2016 Oct 06
2
LoopVectorizer -- generating bad and unhandled shufflevector sequence
...esn't get optimized away anywhere.
In other words, there is a shuffling so that leads back to the original
vector:
[0 1 2 3 4 5 6 7]
[0 4] [1 5] [2 6] [3 7]
[0 4 1 5] [2 6 3 7]
[0 1 2 3 4 5 6 7]
Is this something the instruction combiner, or perhaps the
InterleavedAccess pass should handle? Even though I suspect that there
are currently many target hooks for SystemZ with bad values returned,
this seems like something that the optimizers should handle regardless.
The result of this is unnecessary target instruction - as can be seen at
the bottom.
I would apprec...