Author: Brian Kearns <[email protected]>
Branch: 
Changeset: r74822:81a86598865d
Date: 2014-12-04 20:25 -0500
http://bitbucket.org/pypy/pypy/changeset/81a86598865d/

Log:    add test_pypy_c for logical_xor.reduce

diff --git a/pypy/module/pypyjit/test_pypy_c/test_micronumpy.py 
b/pypy/module/pypyjit/test_pypy_c/test_micronumpy.py
--- a/pypy/module/pypyjit/test_pypy_c/test_micronumpy.py
+++ b/pypy/module/pypyjit/test_pypy_c/test_micronumpy.py
@@ -3,6 +3,59 @@
 
 
 class TestMicroNumPy(BaseTestPyPyC):
+    def test_reduce_logical_xor(self):
+        def main():
+            import _numpypy.multiarray as np
+            import _numpypy.umath as um
+            arr = np.array([1.0] * 1500)
+            return um.logical_xor.reduce(arr)
+        log = self.run(main, [])
+        assert log.result is False
+        assert len(log.loops) == 1
+        loop = log._filter(log.loops[0])
+        assert loop.match("""
+            guard_class(p0, #, descr=...)
+            p4 = getfield_gc_pure(p0, descr=<FieldP 
pypy.module.micronumpy.iterators.ArrayIter.inst_array \d+>)
+            i5 = getfield_gc(p2, descr=<FieldS 
pypy.module.micronumpy.iterators.IterState.inst_offset \d+>)
+            p6 = getfield_gc_pure(p4, descr=<FieldP 
pypy.module.micronumpy.concrete.BaseConcreteArray.inst_dtype \d+>)
+            p7 = getfield_gc_pure(p6, descr=<FieldP 
pypy.module.micronumpy.descriptor.W_Dtype.inst_itemtype \d+>)
+            guard_class(p7, ConstClass(Float64), descr=...)
+            i9 = getfield_gc_pure(p4, descr=<FieldU 
pypy.module.micronumpy.concrete.BaseConcreteArray.inst_storage \d+>)
+            f10 = raw_load(i9, i5, descr=<ArrayF \d+>)
+            i11 = getfield_gc_pure(p7, descr=<FieldU 
pypy.module.micronumpy.types.BaseType.inst_native \d+>)
+            guard_true(i11, descr=...)
+            guard_not_invalidated(descr=...)
+            i12 = cast_float_to_int(f10)
+            i14 = int_and(i12, 255)
+            guard_true(i14, descr=...)
+            i15 = getfield_gc_pure(p1, descr=<FieldU 
pypy.module.micronumpy.boxes.W_BoolBox.inst_value \d+>)
+            i16 = int_is_true(i15)
+            i18 = int_xor(i16, 1)
+            i19 = int_is_true(i18)
+            guard_true(i19, descr=...)
+            i20 = getfield_gc(p2, descr=<FieldS 
pypy.module.micronumpy.iterators.IterState.inst_index \d+>)
+            i21 = getfield_gc_pure(p0, descr=<FieldU 
pypy.module.micronumpy.iterators.ArrayIter.inst_track_index \d+>)
+            guard_true(i21, descr=...)
+            i23 = int_add(i20, 1)
+            p24 = getfield_gc_pure(p2, descr=<FieldP 
pypy.module.micronumpy.iterators.IterState.inst__indices \d+>)
+            i25 = getfield_gc_pure(p0, descr=<FieldS 
pypy.module.micronumpy.iterators.ArrayIter.inst_contiguous \d+>)
+            i26 = int_is_true(i25)
+            guard_true(i26, descr=...)
+            i27 = getfield_gc_pure(p6, descr=<FieldS 
pypy.module.micronumpy.descriptor.W_Dtype.inst_elsize \d+>)
+            i28 = int_add(i5, i27)
+            i29 = getfield_gc_pure(p0, descr=<FieldS 
pypy.module.micronumpy.iterators.ArrayIter.inst_size \d+>)
+            i30 = int_ge(i23, i29)
+            guard_false(i30, descr=...)
+            p32 = new_with_vtable(#)
+            {{{
+            setfield_gc(p32, i23, descr=<FieldS 
pypy.module.micronumpy.iterators.IterState.inst_index \d+>)
+            setfield_gc(p32, p24, descr=<FieldP 
pypy.module.micronumpy.iterators.IterState.inst__indices \d+>)
+            setfield_gc(p32, i28, descr=<FieldS 
pypy.module.micronumpy.iterators.IterState.inst_offset \d+>)
+            setfield_gc(p32, p0, descr=<FieldP 
pypy.module.micronumpy.iterators.IterState.inst_iterator \d+>)
+            }}}
+            jump(..., descr=...)
+        """)
+
     def test_reduce_logical_and(self):
         def main():
             import _numpypy.multiarray as np
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to