
    rhC                         d dl mZ d dlmZmZ g dZ G d de      Zedd       Zedd       Zedd	       Z	edd
       Z
edd       Zy)    )SwizzledSharedLayout)builtin_unwrap_if_constexpr)MBarrierLayoutinit
invalidateexpectwaitarrivec                   *     e Zd Zddedef fdZ xZS )r   ctas_per_cgacta_split_numc           	      :    t         |   ddddg|g|gdg       y )N   r   )vec	per_phase	max_phaseorderr   r   	cta_order)super__init__)selfr   r   	__class__s      /var/www/html/ai-insurance-compliance-backend/venv/lib/python3.12/site-packages/triton/experimental/gluon/language/nvidia/hopper/mbarrier.pyr   zMBarrierLayout.__init__	   s2    #&(/c 	 	
    )r   r   )__name__
__module____qualname__intr   __classcell__)r   s   @r   r   r      s    	
S 	
S 	
 	
r   r   Nc                 f    t        |      }|j                  j                  | j                  |       y N)r   buildercreate_mbarrier_inithandle)mbarriercount	_semantics      r   r   r      s&     'E**8??EBr   c                 N    |j                   j                  | j                         y r"   )r#   create_mbarrier_invalr%   )r&   r(   s     r   r   r      s    ++HOO<r   c                     t        |      }|j                  |      }|j                  j                  | j                  ||j                         y r"   )r   	to_tensorr#   create_mbarrier_expectr%   )r&   bytespredr(   s       r   r	   r	       <     'Et$D,,X__eT[[Qr   c                     |j                  |      }|j                  |      }|D cg c]  }|j                   }}|j                  j                  | j                  |j                  |j                  |       y c c}w r"   )r,   r%   r#   create_mbarrier_wait)r&   phaser/   depsr(   xs         r   r
   r
   '   se    &Et$D"#AHH#D#**8??ELL$++W[\ $s   A9c                     t        |      }|j                  |      }|j                  j                  | j                  ||j                         y r"   )r   r,   r#   create_mbarrier_arriver%   )r&   r'   r/   r(   s       r   r   r   /   r0   r   r"   )TN)T N)+triton.experimental.gluon.language._layoutsr   (triton.experimental.gluon.language._corer   r   __all__r   r   r   r	   r
   r   r8   r   r   <module>r<      s    L R
N
) 
 	C 	C
 	= 	= 	R 	R 	] 	] 	R 	Rr   