]> gitweb.factorcode.org Git - factor.git/commitdiff
compiler.cfg.gvn.math: missed some availability checks that were causing math.vectors...
authorAlex Vondrak <ajvondrak@csupomona.edu>
Tue, 18 Sep 2012 07:07:10 +0000 (00:07 -0700)
committerAlex Vondrak <ajvondrak@csupomona.edu>
Tue, 18 Sep 2012 07:07:10 +0000 (00:07 -0700)
basis/math/vectors/simd/simd-tests.factor
extra/compiler/cfg/gvn/math/math.factor

index 198846c1fca790d6acfaad9ce1b17b13e7b07ae3..5da775dc24e5ae3fe1a5d6897e93ad5073ed2e02 100644 (file)
@@ -159,9 +159,10 @@ TUPLE: simd-test-failure
         input-quot code-quot' [ [ call ] dip compile-call ]
         call( i c -- result ) :> optimized-result
         input-quot code-quot' [
-            t "always-inline-simd-intrinsics"
-            [ [ call ] dip compile-call ]
-            with-variable
+            t "always-inline-simd-intrinsics" [
+                "print-inline-mr" get [ code-quot' regs. ] when
+                [ call ] dip compile-call
+            ] with-variable
         ] call( i c -- result ) :> nonintrinsic-result
 
         unoptimized-result optimized-result eq-quot call
index 5b5fcd0bd55f62d2b437c4246ddf823a2220886c..d6ef1f1fcb6bb755b7abc9af03f1a97356807fc7 100644 (file)
@@ -81,7 +81,7 @@ M: ##add-imm rewrite
     {
         { [ dup src2>> 0 = ] [ identity ] }
         { [ dup binary-constant-fold? ] [ binary-constant-fold ] }
-        { [ dup src1>> vreg>insn ##add-imm? ] [ ##add-imm reassociate-arithmetic ] }
+        { [ dup src1>> vreg>insn [ ##add-imm? ] with-available-uses? ] [ ##add-imm reassociate-arithmetic ] }
         [ drop f ]
     } cond ;
 
@@ -145,7 +145,7 @@ M: ##mul-imm rewrite
         { [ dup binary-constant-fold? ] [ binary-constant-fold ] }
         { [ dup mul-to-neg? ] [ mul-to-neg ] }
         { [ dup mul-to-shl? ] [ mul-to-shl ] }
-        { [ dup src1>> vreg>insn ##mul-imm? ] [ ##mul-imm reassociate-arithmetic ] }
+        { [ dup src1>> vreg>insn [ ##mul-imm? ] with-available-uses? ] [ ##mul-imm reassociate-arithmetic ] }
         { [ dup distribute-over-add? ] [ \ ##add-imm, \ ##mul-imm, distribute ] }
         { [ dup distribute-over-sub? ] [ \ ##sub-imm, \ ##mul-imm, distribute ] }
         [ drop f ]
@@ -154,7 +154,7 @@ M: ##mul-imm rewrite
 M: ##and-imm rewrite
     {
         { [ dup binary-constant-fold? ] [ binary-constant-fold ] }
-        { [ dup src1>> vreg>insn ##and-imm? ] [ ##and-imm reassociate-bitwise ] }
+        { [ dup src1>> vreg>insn [ ##and-imm? ] with-available-uses? ] [ ##and-imm reassociate-bitwise ] }
         { [ dup src2>> 0 = ] [ dst>> 0 ##load-integer new-insn ] }
         { [ dup src2>> -1 = ] [ identity ] }
         [ drop f ]
@@ -165,7 +165,7 @@ M: ##or-imm rewrite
         { [ dup src2>> 0 = ] [ identity ] }
         { [ dup src2>> -1 = ] [ dst>> -1 ##load-integer new-insn ] }
         { [ dup binary-constant-fold? ] [ binary-constant-fold ] }
-        { [ dup src1>> vreg>insn ##or-imm? ] [ ##or-imm reassociate-bitwise ] }
+        { [ dup src1>> vreg>insn [ ##or-imm? ] with-available-uses? ] [ ##or-imm reassociate-bitwise ] }
         [ drop f ]
     } cond ;
 
@@ -174,7 +174,7 @@ M: ##xor-imm rewrite
         { [ dup src2>> 0 = ] [ identity ] }
         { [ dup src2>> -1 = ] [ [ dst>> ] [ src1>> ] bi ##not new-insn ] }
         { [ dup binary-constant-fold? ] [ binary-constant-fold ] }
-        { [ dup src1>> vreg>insn ##xor-imm? ] [ ##xor-imm reassociate-bitwise ] }
+        { [ dup src1>> vreg>insn [ ##xor-imm? ] with-available-uses? ] [ ##xor-imm reassociate-bitwise ] }
         [ drop f ]
     } cond ;
 
@@ -182,7 +182,7 @@ M: ##shl-imm rewrite
     {
         { [ dup src2>> 0 = ] [ identity ] }
         { [ dup binary-constant-fold? ] [ binary-constant-fold ] }
-        { [ dup src1>> vreg>insn ##shl-imm? ] [ ##shl-imm reassociate-shift ] }
+        { [ dup src1>> vreg>insn [ ##shl-imm? ] with-available-uses? ] [ ##shl-imm reassociate-shift ] }
         { [ dup distribute-over-add? ] [ \ ##add-imm, \ ##shl-imm, distribute ] }
         { [ dup distribute-over-sub? ] [ \ ##sub-imm, \ ##shl-imm, distribute ] }
         [ drop f ]
@@ -192,7 +192,7 @@ M: ##shr-imm rewrite
     {
         { [ dup src2>> 0 = ] [ identity ] }
         { [ dup binary-constant-fold? ] [ binary-constant-fold ] }
-        { [ dup src1>> vreg>insn ##shr-imm? ] [ ##shr-imm reassociate-shift ] }
+        { [ dup src1>> vreg>insn [ ##shr-imm? ] with-available-uses? ] [ ##shr-imm reassociate-shift ] }
         [ drop f ]
     } cond ;
 
@@ -200,7 +200,7 @@ M: ##sar-imm rewrite
     {
         { [ dup src2>> 0 = ] [ identity ] }
         { [ dup binary-constant-fold? ] [ binary-constant-fold ] }
-        { [ dup src1>> vreg>insn ##sar-imm? ] [ ##sar-imm reassociate-shift ] }
+        { [ dup src1>> vreg>insn [ ##sar-imm? ] with-available-uses? ] [ ##sar-imm reassociate-shift ] }
         [ drop f ]
     } cond ;