Displaying 3 results from an estimated 3 matches for "vec_load".
2016 Mar 02
4
Proposal for function vectorization and loop vectorization with function calls
...riant is generated for "_ZGVbN4ul_" attribute
as follows (pseudo code):
define __stdcall <4 x f32> @_ZGVbN4ul_dowork(f32* %a, i32 %k) #0
{
#pragma clang loop vectorize(enable)
for (int %t = k; %t < %k + 4; %t++) {
%a[t] = sinf(%a[t]) + 9.8f;
}
vec_load xmm0, %a[k:VL]
return xmm0;
}
The body of the function is wrapped inside a loop having VL iterations,
which correspond to the vector lanes.
The LLVM LoopVectorizer will vectorize the generated %t loop, expected
to produce the following vectorized code eliminating the loop (pse...
2016 Mar 02
2
Proposal for function vectorization and loop vectorization with function calls
...l_" attribute
> as follows (pseudo code):
>
> define __stdcall <4 x f32> @_ZGVbN4ul_dowork(f32* %a, i32 %k) #0
> {
> #pragma clang loop vectorize(enable)
> for (int %t = k; %t < %k + 4; %t++) {
> %a[t] = sinf(%a[t]) + 9.8f;
> }
> vec_load xmm0, %a[k:VL]
> return xmm0;
> }
Am I getting it right, that you're going to emit declarations for all possible vector types, and then implement only used ones? If not, how does frontend know which vector-width to use? If the dowork function and its caller are in different modules,...
2016 Mar 02
5
RFC: Implementing the Swift calling convention in LLVM and Clang
> On Mar 2, 2016, at 1:33 AM, Renato Golin <renato.golin at linaro.org> wrote:
>
> On 2 March 2016 at 01:14, John McCall via llvm-dev
> <llvm-dev at lists.llvm.org> wrote:
>> Hi, all.
>> - We sometimes want to return more values in registers than the convention normally does, and we want to be able to use both integer and floating-point registers. For