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...