From 01f526ff28f63f1c2c0bc2e6a15894ae24d83c8e Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Mon, 28 Sep 2009 12:04:08 -0500 Subject: [PATCH] use PSHUFD for longlong-2 broadcast when dst != src to avoid a %copy --- basis/cpu/x86/x86.factor | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/basis/cpu/x86/x86.factor b/basis/cpu/x86/x86.factor index 084ce9eef3..4540db1053 100644 --- a/basis/cpu/x86/x86.factor +++ b/basis/cpu/x86/x86.factor @@ -596,8 +596,11 @@ M:: x86 %broadcast-vector ( dst src rep -- ) dst src MOVDDUP ] } { longlong-2-rep [ - dst src longlong-2-rep %copy - dst dst PUNPCKLQDQ + dst src = [ + dst dst PUNPCKLQDQ + ] [ + dst src { 0 1 0 1 } PSHUFD + ] if ] } { int-4-rep [ dst src { 0 0 0 0 } PSHUFD ] } { short-8-rep [