§
    ƒÛgÍ  ã                   óŠ   — d dl Z d dlZd dlmZ d dlmZ d dlZ G d„ dej        ¦  «        Z	e
dk    r ej        ¦   «          dS dS )é    N)Únjit)Útypesc                   ó   — e Zd ZdZd„ ZdS )Ú
TestMulti3a¢  
    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                 ó  — t          d¦  «        d„ ¦   «         }g d¢}t          d¦  «        D ]*}|                     t          j        dd¦  «        ¦  «         Œ+d„ }|D ]*}|                       ||¦  «         ||¦  «        ¦  «         Œ+d S )Nz(int64,)c                 ó8   — d}t          | ¦  «        D ]}||z  }Œ|S )Nr   )Úrange)ÚxÚresÚis      úM/granary/edev/quantum/lib/python3.11/site-packages/numba/tests/test_multi3.pyÚfuncz$TestMulti3.test_multi3.<locals>.func   s,   € àˆCÝ˜1‘X”Xð ð �Ø�q‘��ØˆJó    )éÿÿÿÿr   é   é   é   é   l   þÿ ì   ÿÿ l        l   ïMWž	lüÿÿÿïMWž	iô  r   r   c                 ó.   — | dk    rdS | | dz
  z  dz  dz  S )Nr   r   é   l   ÿÿÿÿ © )r
   s    r   Úexpectedz(TestMulti3.test_multi3.<locals>.expected"   s'   € Ø�AŠvˆv˜a˜aØ˜!˜a™%‘[ QÑ&¨9Ñ5Ð5r   )r   r	   ÚappendÚrandomÚrandintÚassertEqual)Úselfr   Úx_casesÚ_r   r
   s         r   Útest_multi3zTestMulti3.test_multi3   sÀ   € Ý	ˆjÑ	Ô	ð	ð 	ñ 
Ô	ð	ð:ð :ð :ˆõ �s‘”ð 	:ð 	:ˆAØ�NŠN�6œ>¨!¨ZÑ8Ô8Ñ9Ô9Ð9Ð9ð	6ð 	6ð 	6ð ð 	3ð 	3ˆAØ×Ò˜X˜X a™[œ[¨$¨$¨q©'¬'Ñ2Ô2Ð2Ð2ð	3ð 	3r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r!   r   r   r   r   r   	   s-   € € € € € ð	ð 	ð3ð 3ð 3ð 3ð 3r   r   Ú__main__)r   ÚnumpyÚnpÚnumbar   Ú
numba.corer   ÚunittestÚTestCaser   r"   Úmainr   r   r   ú<module>r.      s›   ðØ €€€à Ð Ð Ð à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø €€€ð3ð 3ð 3ð 3ð 3�Ô"ñ 3ô 3ð 3ðB ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   