
    sh                         S SK r S SKrS SKJr  S SKJr  S SKr " S S\R                  5      r	\
S:X  a  \R                  " 5         gg)    N)njit)typesc                       \ rS rSrSrS rSrg)
TestMulti3	   a  
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                     [        S5      S 5       n/ SQn[        S5       H)  nUR                  [        R                  " SS5      5        M+     S nU H!  nU R                  U" U5      U" U5      5        M#     g )Nz(int64,)c                 6    Sn[        U 5       H  nX-  nM	     U$ )Nr   )range)xresis      k/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/tests/test_multi3.pyfunc$TestMulti3.test_multi3.<locals>.func   s!    C1X J    )r               l        l        l   MW	lMW	i  r   r   c                 *    U S::  a  gX S-
  -  S-  S-  $ )Nr   r      l     )r   s    r   expected(TestMulti3.test_multi3.<locals>.expected"   s!    Avaa%[Q&955r   )r   r
   appendrandomrandintassertEqual)selfr   x_cases_r   r   s         r   test_multi3TestMulti3.test_multi3   sp    	j		 
	: sANN6>>!Z89 	6 AXa[$q'2 r   r   N)__name__
__module____qualname____firstlineno____doc__r$   __static_attributes__r   r   r   r   r   	   s    	3r   r   __main__)r   numpynpnumbar   
numba.corer   unittestTestCaser   r&   mainr   r   r   <module>r4      s?        3"" 3B zMMO r   