Displaying 4 results from an estimated 4 matches for "two_vector".
2015 Oct 30
2
Vectorizing structure reads, writes, etc on X86-64 AVX
...the other
%a = load %athing* @two
store %athing %a, %athing* @one
Then the code that is generated 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 go...
2015 Nov 03
2
Vectorizing structure reads, writes, etc on X86-64 AVX
...ne
>>
>> Then the code that is generated 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 c...
2015 Nov 03
2
Vectorizing structure reads, writes, etc on X86-64 AVX
...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 dem...
2015 Nov 04
2
Vectorizing structure reads, writes, etc on X86-64 AVX
...>> 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
> >> >>
>...