Displaying 4 results from an estimated 4 matches for "one_vector".
2015 Oct 30
2
Vectorizing structure reads, writes, etc on X86-64 AVX
...d uses the XMM registers for the floats,
but does 12 loads and then 12 stores.
In contrast, if I manually cast to a properly sized float vector I get
the desired single load and single store:
%two_vector = bitcast %athing* @two to <8 x float>*
%b = load <8 x float>* %two_vector
%one_vector = bitcast %athing* @one to <8 x float>*
store <8 x float> %b, <8 x float>* %one_vector
The rest of the file demonstrates that the code for modifying these
vectors is pretty good, but has examples of bad ways to initialize the
structure and a good way to initialize it. If I try...
2015 Nov 03
2
Vectorizing structure reads, writes, etc on X86-64 AVX
...d then 12 stores.
>>
>> In contrast, if I manually cast to a properly sized float vector I get
>> the desired single load and single store:
>>
>> %two_vector = bitcast %athing* @two to <8 x float>*
>> %b = load <8 x float>* %two_vector
>> %one_vector = bitcast %athing* @one to <8 x float>*
>> store <8 x float> %b, <8 x float>* %one_vector
>>
>> The rest of the file demonstrates that the code for modifying these
>> vectors is pretty good, but has examples of bad ways to initialize the
>> structur...
2015 Nov 03
2
Vectorizing structure reads, writes, etc on X86-64 AVX
...; In contrast, if I manually cast to a properly sized float vector I
> >> get
> >> the desired single load and single store:
> >>
> >> %two_vector = bitcast %athing* @two to <8 x float>*
> >> %b = load <8 x float>* %two_vector
> >> %one_vector = bitcast %athing* @one to <8 x float>*
> >> store <8 x float> %b, <8 x float>* %one_vector
> >>
> >> The rest of the file demonstrates that the code for modifying
> >> these
> >> vectors is pretty good, but has examples of bad ways to...
2015 Nov 04
2
Vectorizing structure reads, writes, etc on X86-64 AVX
...float vector I
> >> >> get
> >> >> the desired single load and single store:
> >> >>
> >> >> %two_vector = bitcast %athing* @two to <8 x float>*
> >> >> %b = load <8 x float>* %two_vector
> >> >> %one_vector = bitcast %athing* @one to <8 x float>*
> >> >> store <8 x float> %b, <8 x float>* %one_vector
> >> >>
> >> >> The rest of the file demonstrates that the code for modifying
> >> >> these
> >> >> vectors is...