Author: Richard Plangger <r...@pasra.at> Branch: Changeset: r78704:bdfcbfcfddb7 Date: 2015-07-29 12:12 +0200 http://bitbucket.org/pypy/pypy/changeset/bdfcbfcfddb7/
Log: #2101 ported fix from vecopt to default diff --git a/rpython/jit/codewriter/jtransform.py b/rpython/jit/codewriter/jtransform.py --- a/rpython/jit/codewriter/jtransform.py +++ b/rpython/jit/codewriter/jtransform.py @@ -1178,7 +1178,12 @@ else: v1 = v_arg sizesign = rffi.size_and_sign(v_result.concretetype) - if sizesign <= rffi.size_and_sign(lltype.Signed): + if v_result.concretetype is lltype.Bool: + op = self.rewrite_operation( + SpaceOperation('float_is_true', [v1], v_result) + ) + ops.append(op) + elif sizesign <= rffi.size_and_sign(lltype.Signed): # cast to a type that fits in an int: either the size is # smaller, or it is equal and it is not unsigned v2 = varoftype(lltype.Signed) diff --git a/rpython/jit/codewriter/test/test_flatten.py b/rpython/jit/codewriter/test/test_flatten.py --- a/rpython/jit/codewriter/test/test_flatten.py +++ b/rpython/jit/codewriter/test/test_flatten.py @@ -868,6 +868,12 @@ cast_int_to_float %i0 -> %f0 float_return %f0 """, transform=True) + def f(n): + return rffi.cast(lltype.Bool, n) + self.encoding_test(f, [0.1], """ + float_ne %f0, $0.0 -> %i0 + int_return %i0 + """, transform=True) # Casts to lltype.SingleFloat def g(n): _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit