ó
\K]c           @@  sđ   d  d l  m Z d d l m Z d  d l Z e d e  d    Z e d e  d    Z e d e  d    Z e d e  d	    Z	 e d e  d
    Z
 e d e  d    Z e d e  d    Z e d e  d    Z d S(   i    (   t   absolute_importi   (   t   jitNt   devicec         C@  s   t  j j |  d |  d S(   s   
    If for all threads in the masked warp the predicate is true, then
    a non-zero value is returned, otherwise 0 is returned.
    i    i   (   t   numbat   cudat   vote_sync_intrinsic(   t   maskt	   predicate(    (    s;   lib/python2.7/site-packages/numba/cuda/intrinsic_wrapper.pyt   all_sync   s    c         C@  s   t  j j |  d |  d S(   s   
    If for any thread in the masked warp the predicate is true, then
    a non-zero value is returned, otherwise 0 is returned.
    i   (   R   R   R   (   R   R   (    (    s;   lib/python2.7/site-packages/numba/cuda/intrinsic_wrapper.pyt   any_sync   s    c         C@  s   t  j j |  d |  d S(   s   
    If for all threads in the masked warp the boolean predicate is the same,
    then a non-zero value is returned, otherwise 0 is returned.
    i   i   (   R   R   R   (   R   R   (    (    s;   lib/python2.7/site-packages/numba/cuda/intrinsic_wrapper.pyt   eq_sync   s    c         C@  s   t  j j |  d |  d S(   sp   
    Returns a mask of all threads in the warp whoose predicate is true,
    and are within the given mask.
    i   i    (   R   R   R   (   R   R   (    (    s;   lib/python2.7/site-packages/numba/cuda/intrinsic_wrapper.pyt   ballot_sync!   s    c         C@  s    t  j j |  d | | d  d S(   s   
    Shuffles value across the masked warp and returns the value
    from src_lane. If this is outside the warp, then the
    given value is returned.
    i    i   (   R   R   t   shfl_sync_intrinsic(   R   t   valuet   src_lane(    (    s;   lib/python2.7/site-packages/numba/cuda/intrinsic_wrapper.pyt	   shfl_sync*   s    c         C@  s    t  j j |  d | | d  d S(   sŁ   
    Shuffles value across the masked warp and returns the value
    from (laneid - delta). If this is outside the warp, then the
    given value is returned.
    i   i    (   R   R   R   (   R   R   t   delta(    (    s;   lib/python2.7/site-packages/numba/cuda/intrinsic_wrapper.pyt   shfl_up_sync4   s    c         C@  s    t  j j |  d | | d  d S(   sŁ   
    Shuffles value across the masked warp and returns the value
    from (laneid + delta). If this is outside the warp, then the
    given value is returned.
    i   i   i    (   R   R   R   (   R   R   R   (    (    s;   lib/python2.7/site-packages/numba/cuda/intrinsic_wrapper.pyt   shfl_down_sync>   s    c         C@  s    t  j j |  d | | d  d S(   sd   
    Shuffles value across the masked warp and returns the value
    from (laneid ^ lane_mask).
    i   i   i    (   R   R   R   (   R   R   t	   lane_mask(    (    s;   lib/python2.7/site-packages/numba/cuda/intrinsic_wrapper.pyt   shfl_xor_syncH   s    (   t
   __future__R    t
   decoratorsR   R   t   TrueR   R	   R
   R   R   R   R   R   (    (    (    s;   lib/python2.7/site-packages/numba/cuda/intrinsic_wrapper.pyt   <module>   s   				


