diff --git a/builtins/util.m4 b/builtins/util.m4 index 36ebdd2a..6dda67b9 100644 --- a/builtins/util.m4 +++ b/builtins/util.m4 @@ -569,10 +569,9 @@ divert`'dnl define(`shuffles', ` define @__broadcast_$1(, i32) nounwind readnone alwaysinline { %v = extractelement %0, i32 %1 - %r_0 = insertelement undef, $1 %v, i32 0 -forloop(i, 1, eval(WIDTH-1), ` %r_`'i = insertelement %r_`'eval(i-1), $1 %v, i32 i -') - ret %r_`'eval(WIDTH-1) + %broadcast_init = insertelement undef, $1 %v, i32 0 + %broadcast = shufflevector %broadcast_init, undef, zeroinitializer + ret %broadcast } define @__rotate_$1(, i32) nounwind readnone alwaysinline {