[rust-dev] RFC: Tuple Swizzling/Shuffling

Carter Schonwald 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
>> whether
>> > 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
> https://mail.mozilla.org/listinfo/rust-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/rust-dev/attachments/20140114/a87a8498/attachment.html>


More information about the Rust-dev mailing list