From a47460b4c3582f416f84570ea3ea0c8e593c4076 Mon Sep 17 00:00:00 2001 From: Dmitry Babokin Date: Thu, 2 May 2013 00:12:16 +0200 Subject: [PATCH] Efficient library implementation of broadcast --- builtins/util.m4 | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) 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 {