Merge pull request #488 from dbabokin/broadcast_library
Efficient library implementation of broadcast
This commit is contained in:
@@ -569,10 +569,9 @@ divert`'dnl
|
||||
define(`shuffles', `
|
||||
define <WIDTH x $1> @__broadcast_$1(<WIDTH x $1>, i32) nounwind readnone alwaysinline {
|
||||
%v = extractelement <WIDTH x $1> %0, i32 %1
|
||||
%r_0 = insertelement <WIDTH x $1> undef, $1 %v, i32 0
|
||||
forloop(i, 1, eval(WIDTH-1), ` %r_`'i = insertelement <WIDTH x $1> %r_`'eval(i-1), $1 %v, i32 i
|
||||
')
|
||||
ret <WIDTH x $1> %r_`'eval(WIDTH-1)
|
||||
%broadcast_init = insertelement <WIDTH x $1> undef, $1 %v, i32 0
|
||||
%broadcast = shufflevector <WIDTH x $1> %broadcast_init, <WIDTH x $1> undef, <WIDTH x i32> zeroinitializer
|
||||
ret <WIDTH x $1> %broadcast
|
||||
}
|
||||
|
||||
define <WIDTH x $1> @__rotate_$1(<WIDTH x $1>, i32) nounwind readnone alwaysinline {
|
||||
|
||||
Reference in New Issue
Block a user