Displaying 3 results from an estimated 3 matches for "sufflevector".
Did you mean:
shufflevector
2019 Nov 26
4
LangRef semantics for shufflevector with undef mask is incorrect
...he result is undef."
We found this semantics to be problematic. TL;DR: instructions can't detect
if an operand is undef.
Long story:
Undef can be replaced with any value at any time. It's valid to replace
undef with 0 or 1 or anything else.
A possible sequence of optimizations with sufflevector could be as follows:
%v = shufflevector <2 x float> %x, <2 x float> undef, <2 x i32> <i32 undef,
i32 0>
->
%v = shufflevector <2 x float> %x, <2 x float> undef, <2 x i32> <i32 2, i32
0>
->
%v = <undef, %x[0]>
So this respects the semant...
2019 Nov 27
2
LangRef semantics for shufflevector with undef mask is incorrect
...found this semantics to be problematic. TL;DR: instructions can't
> detect if an operand is undef.
> Long story:
> Undef can be replaced with any value at any time. It's valid to
> replace undef with 0 or 1 or anything else.
>
> A possible sequence of optimizations with sufflevector could be as
follows:
> %v = shufflevector <2 x float> %x, <2 x float> undef, <2 x i32> <i32
> undef,
> i32 0>
> ->
> %v = shufflevector <2 x float> %x, <2 x float> undef, <2 x i32> <i32
> 2, i32
> 0>
> ->
> %v = <...
2019 Nov 27
3
LangRef semantics for shufflevector with undef mask is incorrect
...the result is undef."
We found this semantics to be problematic. TL;DR: instructions can't detect
if an operand is undef.
Long story:
Undef can be replaced with any value at any time. It's valid to replace
undef with 0 or 1 or anything else.
A possible sequence of optimizations with sufflevector could be as follows:
%v = shufflevector <2 x float> %x, <2 x float> undef, <2 x i32> <i32 undef,
i32 0>
->
%v = shufflevector <2 x float> %x, <2 x float> undef, <2 x i32> <i32 2, i32
0>
->
%v = <undef, %x[0]>
So this respects the semantic...