
\K]c           @` s   d  d l  m Z m Z m Z d  d l Z d  d l Z d  d l m Z m	 Z	 d  d l m
 Z d e j f d     YZ e d k r e j   n  d S(   i    (   t   print_functiont   absolute_importt   divisionN(   t   njitt   types(   t   unittest_supportt
   TestMulti3c           B` s   e  Z d  Z d   Z RS(   s  
    This test is only relevant for 32-bit architectures.

    Test __multi3 implementation in _helperlib.c.
    The symbol defines a i128 multiplication.
    It is necessary for working around an issue in LLVM (see issue #969).
    The symbol does not exist in 32-bit platform, and should not be used by
    LLVM.  However, optimization passes will create i65 multiplication that
    is then lowered to __multi3.
    c         C` s   t  d  d    } d d d d d d d d	 d d
 d g } x- t d  D] } | j t j d d	   qI Wd   } x* | D]" } |  j | |  | |   q| Wd  S(   Ns   (int64,)c         S` s+   d } x t  |   D] } | | 7} q W| S(   Ni    (   t   range(   t   xt   rest   i(    (    s6   lib/python2.7/site-packages/numba/tests/test_multi3.pyt   func   s    ii    i   i   i   i   I    IͫgE#I2Tvi  c         S` s$   |  d k r d S|  |  d d d @S(   Ni    i   i   i@   l            l    (    (   R   (    (    s6   lib/python2.7/site-packages/numba/tests/test_multi3.pyt   expected#   s     I    I       (   R   R   t   appendt   randomt   randintt   assertEqual(   t   selfR   t   x_casest   _R   R   (    (    s6   lib/python2.7/site-packages/numba/tests/test_multi3.pyt   test_multi3   s    		(   t   __name__t
   __module__t   __doc__R   (    (    (    s6   lib/python2.7/site-packages/numba/tests/test_multi3.pyR   
   s   
t   __main__(   t
   __future__R    R   R   R   t   numpyt   npt   numbaR   R   R   t   unittestt   TestCaseR   R   t   main(    (    (    s6   lib/python2.7/site-packages/numba/tests/test_multi3.pyt   <module>   s   !