
    shL                         S SK rS SKJr  S SKJrJrJrJrJ	r	  S SK
JrJr  S SK
JrJrJr  \" S5       " S S\5      5       r\S	:X  a  \R$                  " 5         gg)
    N)StringIO)cudafloat32float64int32intp)unittestCUDATestCase)skip_on_cudasimskip_with_nvdisasmskip_without_nvdisasmz0Simulator does not generate code to be inspectedc                       \ rS rSr\S 5       rS rS rS r\	" S5      S 5       r
\	" S5      S 5       r\" S	5      S
 5       r\	" S5      S 5       rSrg)TestInspect
   c                 T    [         R                  " 5       R                  R                  $ N)r   current_contextdevicecompute_capability)selfs    x/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/cuda/tests/cudapy/test_inspect.pyccTestInspect.cc   s    ##%,,???    c                    [         [        4n[        R                  " U5      S 5       n[	        5       nUR                  US9  UR                  5       nU R                  SU5        U R                  SU5        UR                  5         UR                  U5      nU R                  SU5        U R                  SU5        U R                  SU5        UR                  U5      nU R                  SU5        U R                  SU5        g )Nc                     g r    xys     r   foo'TestInspect.test_monotyped.<locals>.foo       r   filer!   z(float32, int32)cuda.kernel.wrapperdefine linkonce_odr i32z!Generated by NVIDIA NVVM Compiler)r   r   r   jitr   inspect_typesgetvalueassertIncloseinspect_llvminspect_asm)r   sigr!   r%   typeannollvmasms          r   test_monotypedTestInspect.test_monotyped   s    	#	 
	 zt$==?eX&((3

$eT" 	+T2 	/6ooc" 	eS!93?r   c                    [         R                  S 5       nUS   " SS5        US   " SS5        [        5       nUR                  US9  UR	                  5       nUR                  5         U R                  SR                  [        5      U5        U R                  SU5        UR                  5       nU R                  S	[        U5      5        U R                  [        [        4U5        U R                  [        [        4U5        U R                  S
U[        [        4   5        U R                  S
U[        [        4   5        U R                  SU[        [        4   5        U R                  SU[        [        4   5        U R                  SU[        [        4   5        U R                  SU[        [        4   5        UR                  5       nU R                  S	[        U5      5        U R                  [        [        4U5        U R                  [        [        4U5        U R                  S
U[        [        4   5        U R                  S
U[        [        4   5        g )Nc                     g r   r   r   s     r   r!   'TestInspect.test_polytyped.<locals>.foo1   r#   r   )   r8   r8   g333333?g333333@r$   z
({0}, {0})z(float64, float64)   r!   r&   r'   )r   r(   r   r)   r*   r,   r+   formatr   r-   assertEquallenr   r.   )r   r!   r%   r0   llvmirsasmdicts         r   test_polytypedTestInspect.test_polytyped0   s   		 
	 	D	!QD	#szt$==?

l))$/:*H5 ""$CL+tTlG,w('2 	eWT4Z01eWWg%567 	+WT4Z-@A+WWg5E-FG 	/t1DE/'9I1JK//# 	CL+tTlG,w('2 	eWT4Z01eWWg%567r   c                 
   SnUR                  5        H  nSU;   d  M  X%;   d  M  SnM     U R                  U5        U R                  US5        U R                  SU5        U R                  SU5        U R                  SU5        g )NFz.textTz*//## File ".*/test_inspect.py", line [0-9]S2RBRAEXIT)split
assertTrueassertRegexr+   )r   kernelnamesassseen_functionlines         r   _test_inspect_sassTestInspect._test_inspect_sass]   sr    JJLD$4< $ ! 	&LM 	eT"eT"fd#r   z"nvdisasm needed for inspect_sass()c                     [         S S S2   [        S S S2   4n[        R                  " USS9S 5       nU R	                  USUR                  U5      5        g )Nr8   Tlineinfoc                 l    [         R                  " S5      nU[        U 5      :  a  X==   X   -  ss'   g g Nr8   r   gridr<   r   r    is      r   add0TestInspect.test_inspect_sass_eager.<locals>.addq   ,    		!A3q6z r   rX   )r   r   r   r(   rM   inspect_sassr   r/   rX   s      r   test_inspect_sass_eager#TestInspect.test_inspect_sass_eagerm   sX    ss|U3Q3Z(	#	%	 
&	
 	UC,<,<S,ABr   c                    [         R                  " SS9S 5       n[        R                  " S5      R	                  [        R
                  5      n[        R                  " S5      R	                  [        R                  5      nUS   " X#5        [
        S S S2   [        S S S2   4nU R                  USUR                  U5      5        g )NTrP   c                 l    [         R                  " S5      nU[        U 5      :  a  X==   X   -  ss'   g g rS   rT   rV   s      r   rX   /TestInspect.test_inspect_sass_lazy.<locals>.add{   rZ   r   r   )r8   r   r8   rX   )	r   r(   nparangeastyper   r   rM   r[   )r   rX   r   r    	signatures        r   test_inspect_sass_lazy"TestInspect.test_inspect_sass_lazyy   s    	4	 	 
!	
 IIbM  *IIbM  ,E
13Q3Z1.	UC,<,<Y,GHr   z@Missing nvdisasm exception only generated when it is not presentc                    [         R                  " [        S S S2   45      S 5       nU R                  [        5       nUR                  5         S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nr8   c                     SU S'   g )Nr   r   )r   s    r   f9TestInspect.test_inspect_sass_nvdisasm_missing.<locals>.f   s    AaDr   znvdisasm has not been found)	r   r(   r   assertRaisesRuntimeErrorr[   r+   str	exception)r   rj   raisess      r   "test_inspect_sass_nvdisasm_missing.TestInspect.test_inspect_sass_nvdisasm_missing   so     
73Q3</	"	 
#	 |,NN - 	3S9I9I5JK -,s   A<<
B
z&nvdisasm needed for inspect_sass_cfg()c                     [         S S S2   [        S S S2   4n[        R                  " U5      S 5       nU R	                  UR                  US9S5        g )Nr8   c                 l    [         R                  " S5      nU[        U 5      :  a  X==   X   -  ss'   g g rS   rT   rV   s      r   rX   .TestInspect.test_inspect_sass_cfg.<locals>.add   rZ   r   )re   zdigraph\s*\w\s*{(.|\n)*\n})r   r   r   r(   rG   inspect_sass_cfgr\   s      r   test_inspect_sass_cfg!TestInspect.test_inspect_sass_cfg   sZ    ss|U3Q3Z(	#	 
	
 	  3 /)	
r   r   N)__name__
__module____qualname____firstlineno__propertyr   r3   r?   rM   r   r]   rf   r   rq   rw   __static_attributes__r   r   r   r   r   
   s    @ @@@+8Z$  ?@	C A	C ?@I AI  & 'L'L CD
 E
r   r   __main__)numpyrb   ior   numbar   r   r   r   r   numba.cuda.testingr	   r
   r   r   r   r   ry   mainr   r   r   <module>r      s\      5 5 57 7 CDV
, V
 EV
r zMMO r   