diff --git a/basis/compiler/cfg/value-numbering/math/math.factor b/basis/compiler/cfg/value-numbering/math/math.factor index 1ea2135db4..742e995f1d 100644 --- a/basis/compiler/cfg/value-numbering/math/math.factor +++ b/basis/compiler/cfg/value-numbering/math/math.factor @@ -15,7 +15,7 @@ IN: compiler.cfg.value-numbering.math M: ##tagged>integer rewrite [ dst>> ] [ src>> vreg>expr ] bi { { [ dup integer-expr? ] [ value>> tag-fixnum \ ##load-integer new-insn ] } - { [ dup f-expr? ] [ \ f type-number \ ##load-integer new-insn ] } + { [ dup f-expr? ] [ drop \ f type-number \ ##load-integer new-insn ] } [ 2drop f ] } cond ; @@ -99,7 +99,7 @@ M: ##sub-imm rewrite temp expr src1>> vn>vreg insn src2>> mul-op execute insn dst>> temp imm add-op execute ] { } make - ] [ f ] if ; + ] [ f ] if ; inline : distribute-over-add? ( insn -- ? ) src1>> vreg>expr add-imm-expr? ; @@ -112,7 +112,7 @@ M: ##sub-imm rewrite dup src1>> vreg>expr 2dup src2>> vn>integer swap [ src2>> ] keep binary-constant-fold* next-vreg - ] 2dip (distribute) ; + ] 2dip (distribute) ; inline M: ##mul-imm rewrite { diff --git a/basis/compiler/cfg/value-numbering/value-numbering-tests.factor b/basis/compiler/cfg/value-numbering/value-numbering-tests.factor index bdf8b330af..035b23d976 100644 --- a/basis/compiler/cfg/value-numbering/value-numbering-tests.factor +++ b/basis/compiler/cfg/value-numbering/value-numbering-tests.factor @@ -1624,7 +1624,7 @@ cell 8 = [ ] [ { T{ ##load-reference f 1 f } - T{ ##load-integer f 2 1 } + T{ ##tagged>integer f 2 1 } T{ ##and-imm f 3 2 15 } } value-numbering-step ] unit-test