search for: vpbuilder

Displaying 6 results from an estimated 6 matches for "vpbuilder".

Did you mean: pbuilder
2020 Nov 06
4
Loop-vectorizer prototype for the EPI Project based on the RISC-V Vector Extension (Scalable vectors)
...): ; %mask = (splat i1 1) ; %evl = min(256, %n - %i) ; MVE/SVE : ; %mask = get.active.lane.mask(%i, %n) ; %evl = call @llvm.vscale() ; AVX: ; %mask = icmp (%i + (seq <8 x i32> 0,1,2,.,)), %n, ; %evl = i32 8 ; Configure the Vector Predication builder to use those VPBuilder .setExplicitVectorLength(%evl) .setMask(%mask); ; Start buildling vector-predicated instructions VPBuilder.createFadd(%x, %y) ; --> call @llvm.vp.fadd(%x, %y, %mask, %evl) Looks to me the second option makes a more effective use of vpred and D78203 shows that we can always...
2020 Nov 06
2
Loop-vectorizer prototype for the EPI Project based on the RISC-V Vector Extension (Scalable vectors)
...): ; %mask = (splat i1 1) ; %evl = min(256, %n - %i) ; MVE/SVE : ; %mask = get.active.lane.mask(%i, %n) ; %evl = call @llvm.vscale() ; AVX: ; %mask = icmp (%i + (seq <8 x i32> 0,1,2,.,)), %n, ; %evl = i32 8 ; Configure the Vector Predication builder to use those VPBuilder .setExplicitVectorLength(%evl) .setMask(%mask); ; Start buildling vector-predicated instructions VPBuilder.createFadd(%x, %y) ; --> call @llvm.vp.fadd(%x, %y, %mask, %evl) Looks to me the second option makes a more effective use of vpred and D78203 shows that we can always...
2020 Nov 06
0
Loop-vectorizer prototype for the EPI Project based on the RISC-V Vector Extension (Scalable vectors)
...): ; %mask = (splat i1 1) ; %evl = min(256, %n - %i) ; MVE/SVE : ; %mask = get.active.lane.mask(%i, %n) ; %evl = call @llvm.vscale() ; AVX: ; %mask = icmp (%i + (seq <8 x i32> 0,1,2,.,)), %n, ; %evl = i32 8 ; Configure the Vector Predication builder to use those VPBuilder .setExplicitVectorLength(%evl) .setMask(%mask); ; Start buildling vector-predicated instructions VPBuilder.createFadd(%x, %y) ; --> call @llvm.vp.fadd(%x, %y, %mask, %evl) Looks to me the second option makes a more effective use of vpred and D78203 shows that we can always...
2020 Nov 05
2
Loop-vectorizer prototype for the EPI Project based on the RISC-V Vector Extension (Scalable vectors)
...serts code to re-configure the VL register in-between vector instructions that have a different %evl value (we had a poster on that at the LLVM US DevMtg '19). This isel strategy has been working well for us. The goal is to teach LV, VPlan to emit VP intrinsics with a convenient builder class (VPBuilder in the reference patch). Trying to remember how everything fits together here, but could get.active.lane.mask not create the %mask of the VP intrinsics? Or in other words, in the vectoriser, who's producing the %mask and %evl that is consumed by the VP intrinsics? Cheers, Sjoerd. ____________...
2020 Nov 09
0
Loop-vectorizer prototype for the EPI Project based on the RISC-V Vector Extension (Scalable vectors)
...): ; %mask = (splat i1 1) ; %evl = min(256, %n - %i) ; MVE/SVE : ; %mask = get.active.lane.mask(%i, %n) ; %evl = call @llvm.vscale() ; AVX: ; %mask = icmp (%i + (seq <8 x i32> 0,1,2,.,)), %n, ; %evl = i32 8 ; Configure the Vector Predication builder to use those VPBuilder .setExplicitVectorLength(%evl) .setMask(%mask); ; Start buildling vector-predicated instructions VPBuilder.createFadd(%x, %y) ; --> call @llvm.vp.fadd(%x, %y, %mask, %evl) Looks to me the second option makes a more effective use of vpred and D78203 shows that we can always...
2020 Nov 05
0
Loop-vectorizer prototype for the EPI Project based on the RISC-V Vector Extension (Scalable vectors)
...serts code to re-configure the VL register in-between vector instructions that have a different %evl value (we had a poster on that at the LLVM US DevMtg '19). This isel strategy has been working well for us. The goal is to teach LV, VPlan to emit VP intrinsics with a convenient builder class (VPBuilder in the reference patch). - Simon Kind regards, Missatge de Sjoerd Meijer via llvm-dev <llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>> del dia dj., 5 de nov. 2020 a les 10:00: Fold the epilog loop into the vector body. * This is done by setting the vector length...