[rust-dev] RFC: Tuple Swizzling/Shuffling
carter.schonwald at gmail.com
Tue Jan 14 12:30:37 PST 2014
ummm, the whole point of SIMD vector values is they work in register. Sure,
sometimes the register allocator may spill to stack, but while an *ARRAY*
of values of type T can have notion of an address, a SIMD Vector of T
(likely f64/f32/int32/int64) doesn't really have the same idea..
On Tue, Jan 14, 2014 at 3:27 PM, Richard Diamond <
wichard at vitalitystudios.com> wrote:
> On Tue, Jan 14, 2014 at 2:09 PM, Daniel Micay <danielmicay at gmail.com>wrote:
>> On Tue, Jan 14, 2014 at 3:06 PM, Richard Diamond
>> <wichard at vitalitystudios.com> wrote:
>> > They do with #[simd]. Though I think it would be worth considering
>> > all tuples of a single primitive type should be automatically considered
>> > #[simd] and be lowered to a LLVM vector type. In fact one way I'm
>> > considering impling this is to treat the mask as a tuple and lower it
>> as a
>> > vector into a shufflevector mask operand.
>> This isn't possible due to alignment issues. Only very recent Intel
>> CPUs lack the requirement of alignment for SIMD instructions.
> Obviously, battlefield promotions will be necessary when shifting between
> heap and stack.
> Rust-dev mailing list
> Rust-dev at mozilla.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Rust-dev