σ
\K]c           @@ s  d  d l  m Z m Z d  d l m Z m Z m Z m Z e d  Z	 d   Z
 d   Z d   Z d   Z d   Z d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z d   Z d e f d     YZ d   Z d e f d     YZ d   Z d e f d     YZ d S(   i    (   t   print_functiont   absolute_import(   t   typest   irt   typingt   macros   This is a stub.c          O@ s
   t   d S(   s    
    OpenCL get_global_id()
    N(   t   _stub_error(   t   argst   kargs(    (    s.   lib/python2.7/site-packages/numba/roc/stubs.pyt   get_global_id   s    c          O@ s
   t   d S(   s   
    OpenCL get_local_id()
    N(   R   (   R   R   (    (    s.   lib/python2.7/site-packages/numba/roc/stubs.pyt   get_local_id   s    c          O@ s
   t   d S(   s"   
    OpenCL get_global_size()
    N(   R   (   R   R   (    (    s.   lib/python2.7/site-packages/numba/roc/stubs.pyt   get_global_size   s    c          O@ s
   t   d S(   s!   
    OpenCL get_local_size()
    N(   R   (   R   R   (    (    s.   lib/python2.7/site-packages/numba/roc/stubs.pyt   get_local_size   s    c          O@ s
   t   d S(   s   
    OpenCL get_group_id()
    N(   R   (   R   R   (    (    s.   lib/python2.7/site-packages/numba/roc/stubs.pyt   get_group_id$   s    c          O@ s
   t   d S(   s!   
    OpenCL get_num_groups()
    N(   R   (   R   R   (    (    s.   lib/python2.7/site-packages/numba/roc/stubs.pyt   get_num_groups+   s    c          O@ s
   t   d S(   s   
    OpenCL get_work_dim()
    N(   R   (   R   R   (    (    s.   lib/python2.7/site-packages/numba/roc/stubs.pyt   get_work_dim2   s    c          O@ s
   t   d S(   s0  
    OpenCL barrier()

    Example:

        # workgroup barrier + local memory fence
        hsa.barrier(hsa.CLK_LOCAL_MEM_FENCE)
        # workgroup barrier + global memory fence
        hsa.barrier(hsa.CLK_GLOBAL_MEM_FENCE)
        # workgroup barrier + global memory fence
        hsa.barrier()

    N(   R   (   R   R   (    (    s.   lib/python2.7/site-packages/numba/roc/stubs.pyt   barrier9   s    c          O@ s
   t   d S(   sΕ   
    OpenCL mem_fence()

    Example:

        # local memory fence
        hsa.mem_fence(hsa.CLK_LOCAL_MEM_FENCE)
        # global memory fence
        hsa.mem_fence(hsa.CLK_GLOBAL_MEM_FENCE)
    N(   R   (   R   R   (    (    s.   lib/python2.7/site-packages/numba/roc/stubs.pyt	   mem_fenceJ   s    c           C@ s
   t   d S(   s   
    HSAIL wavebarrier
    N(   R   (    (    (    s.   lib/python2.7/site-packages/numba/roc/stubs.pyt   wavebarrierX   s    c         C@ s
   t   d S(   s-   
    HSAIL activelanepermute_wavewidth_*
    N(   R   (   t   srct   laneidt   identityt   useidentity(    (    s.   lib/python2.7/site-packages/numba/roc/stubs.pyt   activelanepermute_wavewidth_   s    c         C@ s
   t   d S(   sG   
    AMDGCN Data Share intrinsic forwards permute (push semantics)
    N(   R   (   t   src_lanet	   dest_lane(    (    s.   lib/python2.7/site-packages/numba/roc/stubs.pyt
   ds_permutef   s    c         C@ s
   t   d S(   sH   
    AMDGCN Data Share intrinsic backwards permute (pull semantics)
    N(   R   (   R   R   (    (    s.   lib/python2.7/site-packages/numba/roc/stubs.pyt   ds_bpermutem   s    t   Stubc           B@ s,   e  Z d  Z d Z d Z d   Z d   Z RS(   sk   A stub object to represent special objects which is meaningless
    outside the context of HSA-python.
    s   <ptx special value>c         C@ s   t  d |    d  S(   Ns   %s is not instantiable(   t   NotImplementedError(   t   cls(    (    s.   lib/python2.7/site-packages/numba/roc/stubs.pyt   __new__{   s    c         C@ s   |  j  S(   N(   t   _description_(   t   self(    (    s.   lib/python2.7/site-packages/numba/roc/stubs.pyt   __repr__~   s    (    (   t   __name__t
   __module__t   __doc__R    t	   __slots__R   R"   (    (    (    s.   lib/python2.7/site-packages/numba/roc/stubs.pyR   t   s
   	c         C@ sv   t  |   }  t |   } d } t j | | d  } t j | t j t j |  t j  } t	 j
 | | d |  | f S(   Ns   hsail.smem.alloct   CR   (   t   _legalize_shapet   lenR   t   ArrayR   t	   signaturet   UniTuplet   intpt   AnyR   t	   Intrinsic(   t   shapet   dtypet   ndimt   fnamet   restypet   sig(    (    s.   lib/python2.7/site-packages/numba/roc/stubs.pyt   shared_array   s    't   sharedc           B@ s8   e  Z d  Z d Z e j d e d e d d d g Z RS(   s   shared namespace
    s   <shared>s   shared.arrayt   callablet   argnamesR0   R1   (	   R#   R$   R%   R    R   t   MacroR6   t   Truet   array(    (    (    s.   lib/python2.7/site-packages/numba/roc/stubs.pyR7      s   c         C@ sH   t  |  t  r |  St  |  t  r) |  f St d j t |      d  S(   Ns   invalid type for shape; got {0}(   t
   isinstancet   tuplet   intt	   TypeErrort   formatt   type(   R0   (    (    s.   lib/python2.7/site-packages/numba/roc/stubs.pyR(      s
    t   atomicc           B@ s*   e  Z d  Z d Z d e f d     YZ RS(   s   atomic namespace
    s   <atomic>t   addc           B@ s   e  Z d  Z RS(   sC   add(ary, idx, val)

        Perform atomic ary[idx] += val
        (   R#   R$   R%   (    (    (    s.   lib/python2.7/site-packages/numba/roc/stubs.pyRD   €   s   (   R#   R$   R%   R    R   RD   (    (    (    s.   lib/python2.7/site-packages/numba/roc/stubs.pyRC      s   N(   t
   __future__R    R   t   numbaR   R   R   R   R   R   R	   R
   R   R   R   R   R   R   R   R   R   R   R   t   objectR   R6   R7   R(   RC   (    (    (    s.   lib/python2.7/site-packages/numba/roc/stubs.pyt   <module>   s(   "																	