search for: add_vector

Displaying 5 results from an estimated 5 matches for "add_vector".

Did you mean: ac_vector
2013 Feb 19
2
[LLVMdev] Auto-vectorization and phi nodes
...'t seem to work on them because of phi nodes that >> point >> to gep nodes. >> >> Some simple IR to demonstrate; it vectorizes nicely with opt -O3 >> -vectorize-loops -force-vector-width until I uncomment the phi/gep >> nodes. >> >> define void @add_vector(float* noalias %a, float* noalias %b, float* >> noalias %c, i32 %num) >> { >> Top: >> br label %Loop >> Loop: >> %i = phi i32 [0,%Top],[%i.next,%Loop] >> >> ; phi and gep - won't vectorize >> ; %a.ptr = phi flo...
2013 Feb 19
0
[LLVMdev] Auto-vectorization and phi nodes
Hi Nadav and Hal and thanks for the help! To the best of my understanding, indvars doesn't complain and an induction variable is detected. However, the loop vectorizer says: LV: Checking a loop in "add_vector" LV: Found a loop: Loop LV: Found an induction variable. LV: Found an unidentified PHI. %a.ptr = phi float* [ %a, %Top ], [ %a.next, %Loop ] LV: Can't vectorize the instructions or CFG LV: Not vectorizing. Should indvars have changed this phi node into something else earlier during opt...
2013 Feb 19
2
[LLVMdev] Auto-vectorization and phi nodes
...sions are nicely optimized into loops, but the loop vectorization can't seem to work on them because of phi nodes that point to gep nodes. Some simple IR to demonstrate; it vectorizes nicely with opt -O3 -vectorize-loops -force-vector-width until I uncomment the phi/gep nodes. define void @add_vector(float* noalias %a, float* noalias %b, float* noalias %c, i32 %num) { Top: br label %Loop Loop: %i = phi i32 [0,%Top],[%i.next,%Loop] ; phi and gep - won't vectorize ; %a.ptr = phi float* [%a,%Top],[%a.next,%Loop] ; %b.ptr = phi float* [%b,%Top],[%b.next,...
2013 Feb 19
0
[LLVMdev] Auto-vectorization and phi nodes
...the loop > vectorization can't seem to work on them because of phi nodes that > point > to gep nodes. > > Some simple IR to demonstrate; it vectorizes nicely with opt -O3 > -vectorize-loops -force-vector-width until I uncomment the phi/gep > nodes. > > define void @add_vector(float* noalias %a, float* noalias %b, float* > noalias %c, i32 %num) > { > Top: > br label %Loop > Loop: > %i = phi i32 [0,%Top],[%i.next,%Loop] > > ; phi and gep - won't vectorize > ; %a.ptr = phi float* [%a,%Top],[%a.next,%Loop] >...
2013 Feb 19
1
[LLVMdev] Auto-vectorization and phi nodes
...2013, at 10:09 AM, Vesa Norilo <vnorilo at siba.fi> wrote: > Hi Nadav and Hal and thanks for the help! > > To the best of my understanding, indvars doesn't complain and an induction variable is detected. However, the loop vectorizer says: > > LV: Checking a loop in "add_vector" > LV: Found a loop: Loop > LV: Found an induction variable. > LV: Found an unidentified PHI. %a.ptr = phi float* [ %a, %Top ], [ %a.next, %Loop ] > LV: Can't vectorize the instructions or CFG > LV: Not vectorizing. > Yes. SCEV does not identify this PHI. You can add a...