search for: sufflevector

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...