search for: vec_load

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