]> gitweb.factorcode.org Git - factor.git/commitdiff
use PSHUFD for longlong-2 broadcast when dst != src to avoid a %copy
authorJoe Groff <arcata@gmail.com>
Mon, 28 Sep 2009 17:04:08 +0000 (12:04 -0500)
committerJoe Groff <arcata@gmail.com>
Mon, 28 Sep 2009 17:04:08 +0000 (12:04 -0500)
basis/cpu/x86/x86.factor

index 084ce9eef3dabb73a4925f9a82fd6dec882821ff..4540db1053cf6ae27437654537748527102031e1 100644 (file)
@@ -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    [