ó
\K]c           @` s°  d  d l  m Z m Z m Z d  d l m Z d  d l m Z m Z m	 Z	 m
 Z
 m Z m Z d  d l m Z e ƒ  Z e j Z e j Z e j Z e d e f d „  ƒ  Yƒ Z e d e f d „  ƒ  Yƒ Z e d	 e f d
 „  ƒ  Yƒ Z e d e f d „  ƒ  Yƒ Z e d e f d „  ƒ  Yƒ Z e d e f d „  ƒ  Yƒ Z e d e f d „  ƒ  Yƒ Z e d e f d „  ƒ  Yƒ Z e d e f d „  ƒ  Yƒ Z e d e f d „  ƒ  Yƒ Z e d e f d „  ƒ  Yƒ Z d e f d „  ƒ  YZ  e d e  f d „  ƒ  Yƒ Z! e d e  f d  „  ƒ  Yƒ Z" d! e
 f d" „  ƒ  YZ# e d# e f d$ „  ƒ  Yƒ Z$ e d% e	 f d& „  ƒ  Yƒ Z% e d' e f d( „  ƒ  Yƒ Z& e d) e f d* „  ƒ  Yƒ Z' e e e j( e ƒ ƒ d+ S(,   i    (   t   print_functiont   divisiont   absolute_import(   t   types(   t   AttributeTemplatet   ConcreteTemplatet   AbstractTemplatet   MacroTemplatet	   signaturet   Registry(   t   roct   Hsa_get_global_idc           B` s)   e  Z e j Z e e j e j ƒ g Z	 RS(    (
   t   __name__t
   __module__R
   t   get_global_idt   keyR   R   t   intpt   uint32t   cases(    (    (    s0   lib/python2.7/site-packages/numba/roc/hsadecl.pyR      s   	t   Hsa_get_local_idc           B` s)   e  Z e j Z e e j e j ƒ g Z	 RS(    (
   R   R   R
   t   get_local_idR   R   R   R   R   R   (    (    (    s0   lib/python2.7/site-packages/numba/roc/hsadecl.pyR      s   	t   Hsa_get_group_idc           B` s)   e  Z e j Z e e j e j ƒ g Z	 RS(    (
   R   R   R
   t   get_group_idR   R   R   R   R   R   (    (    (    s0   lib/python2.7/site-packages/numba/roc/hsadecl.pyR   !   s   	t   Hsa_get_num_groupsc           B` s)   e  Z e j Z e e j e j ƒ g Z	 RS(    (
   R   R   R
   t   get_num_groupsR   R   R   R   R   R   (    (    (    s0   lib/python2.7/site-packages/numba/roc/hsadecl.pyR   '   s   	t   Hsa_get_work_dimc           B` s#   e  Z e j Z e e j ƒ g Z RS(    (	   R   R   R
   t   get_work_dimR   R   R   R   R   (    (    (    s0   lib/python2.7/site-packages/numba/roc/hsadecl.pyR   -   s   	t   Hsa_get_global_sizec           B` s)   e  Z e j Z e e j e j ƒ g Z	 RS(    (
   R   R   R
   t   get_global_sizeR   R   R   R   R   R   (    (    (    s0   lib/python2.7/site-packages/numba/roc/hsadecl.pyR   3   s   	t   Hsa_get_local_sizec           B` s)   e  Z e j Z e e j e j ƒ g Z	 RS(    (
   R   R   R
   t   get_local_sizeR   R   R   R   R   R   (    (    (    s0   lib/python2.7/site-packages/numba/roc/hsadecl.pyR   9   s   	t   Hsa_barrierc           B` s5   e  Z e j Z e e j e j ƒ e e j ƒ g Z	 RS(    (
   R   R   R
   t   barrierR   R   R   t   voidR   R   (    (    (    s0   lib/python2.7/site-packages/numba/roc/hsadecl.pyR   ?   s   	t   Hsa_mem_fencec           B` s)   e  Z e j Z e e j e j ƒ g Z	 RS(    (
   R   R   R
   t	   mem_fenceR   R   R   R!   R   R   (    (    (    s0   lib/python2.7/site-packages/numba/roc/hsadecl.pyR"   F   s   	t   Hsa_wavebarrierc           B` s#   e  Z e j Z e e j ƒ g Z RS(    (	   R   R   R
   t   wavebarrierR   R   R   R!   R   (    (    (    s0   lib/python2.7/site-packages/numba/roc/hsadecl.pyR$   L   s   	t   Hsa_activelanepermute_wavewidthc           B` sL   e  Z e j Z g  e j e j BD]$ Z e	 e e e j
 e e j ƒ ^ q  Z RS(    (   R   R   R
   t   activelanepermute_wavewidthR   R   t   integer_domaint   real_domaint   tyR   R   t   bool_R   (    (    (    s0   lib/python2.7/site-packages/numba/roc/hsadecl.pyR&   R   s   	t   _Hsa_ds_permutingc           B` st   e  Z e e j e j e j ƒ e e j e j e j ƒ e e j e j e j ƒ e e j e j e j ƒ g Z e Z	 RS(    (
   R   R   R   R   t   int32t   int64t   float32R   t   Falset   unsafe_casting(    (    (    s0   lib/python2.7/site-packages/numba/roc/hsadecl.pyR,   Z   s
   t   Hsa_ds_permutec           B` s   e  Z e j Z RS(    (   R   R   R
   t
   ds_permuteR   (    (    (    s0   lib/python2.7/site-packages/numba/roc/hsadecl.pyR2   c   s   t   Hsa_ds_bpermutec           B` s   e  Z e j Z RS(    (   R   R   R
   t   ds_bpermuteR   (    (    (    s0   lib/python2.7/site-packages/numba/roc/hsadecl.pyR4   h   s   t   Hsa_shared_arrayc           B` s   e  Z e j j Z RS(    (   R   R   R
   t   sharedt   arrayR   (    (    (    s0   lib/python2.7/site-packages/numba/roc/hsadecl.pyR6   o   s   t   HsaSharedTemplatec           B` s#   e  Z e j e j ƒ Z d  „  Z RS(   c         C` s   t  j t ƒ S(   N(   R   t   MacroR6   (   t   selft   mod(    (    s0   lib/python2.7/site-packages/numba/roc/hsadecl.pyt   resolve_arrayw   s    (   R   R   R   t   ModuleR
   R7   R   R=   (    (    (    s0   lib/python2.7/site-packages/numba/roc/hsadecl.pyR9   s   s   t   Hsa_atomic_addc           B` s   e  Z e j j Z d  „  Z RS(   c         C` ss   | s t  ‚ | \ } } } | j d k rG t | j | t j | j ƒ S| j d k ro t | j | | | j ƒ Sd  S(   Ni   (   t   AssertionErrort   ndimR   t   dtypeR   R   (   R;   t   argst   kwst   aryt   idxt   val(    (    s0   lib/python2.7/site-packages/numba/roc/hsadecl.pyt   generic   s    (   R   R   R
   t   atomict   addR   RH   (    (    (    s0   lib/python2.7/site-packages/numba/roc/hsadecl.pyR?   }   s   t   HsaAtomicTemplatec           B` s#   e  Z e j e j ƒ Z d  „  Z RS(   c         C` s   t  j t ƒ S(   N(   R   t   FunctionR?   (   R;   R<   (    (    s0   lib/python2.7/site-packages/numba/roc/hsadecl.pyt   resolve_add   s    (   R   R   R   R>   R
   RI   R   RM   (    (    (    s0   lib/python2.7/site-packages/numba/roc/hsadecl.pyRK   ‹   s   t   HsaModuleTemplatec           B` sž   e  Z e j e ƒ 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 „  Z d „  Z RS(   c         C` s   t  j t ƒ S(   N(   R   RL   R   (   R;   R<   (    (    s0   lib/python2.7/site-packages/numba/roc/hsadecl.pyt   resolve_get_global_id™   s    c         C` s   t  j t ƒ S(   N(   R   RL   R   (   R;   R<   (    (    s0   lib/python2.7/site-packages/numba/roc/hsadecl.pyt   resolve_get_local_idœ   s    c         C` s   t  j t ƒ S(   N(   R   RL   R   (   R;   R<   (    (    s0   lib/python2.7/site-packages/numba/roc/hsadecl.pyt   resolve_get_global_sizeŸ   s    c         C` s   t  j t ƒ S(   N(   R   RL   R   (   R;   R<   (    (    s0   lib/python2.7/site-packages/numba/roc/hsadecl.pyt   resolve_get_local_size¢   s    c         C` s   t  j t ƒ S(   N(   R   RL   R   (   R;   R<   (    (    s0   lib/python2.7/site-packages/numba/roc/hsadecl.pyt   resolve_get_num_groups¥   s    c         C` s   t  j t ƒ S(   N(   R   RL   R   (   R;   R<   (    (    s0   lib/python2.7/site-packages/numba/roc/hsadecl.pyt   resolve_get_work_dim¨   s    c         C` s   t  j t ƒ S(   N(   R   RL   R   (   R;   R<   (    (    s0   lib/python2.7/site-packages/numba/roc/hsadecl.pyt   resolve_get_group_id«   s    c         C` s   t  j t ƒ S(   N(   R   RL   R   (   R;   R<   (    (    s0   lib/python2.7/site-packages/numba/roc/hsadecl.pyt   resolve_barrier®   s    c         C` s   t  j t ƒ S(   N(   R   RL   R"   (   R;   R<   (    (    s0   lib/python2.7/site-packages/numba/roc/hsadecl.pyt   resolve_mem_fence±   s    c         C` s   t  j t ƒ S(   N(   R   RL   R$   (   R;   R<   (    (    s0   lib/python2.7/site-packages/numba/roc/hsadecl.pyt   resolve_wavebarrier´   s    c         C` s   t  j t ƒ S(   N(   R   RL   R&   (   R;   R<   (    (    s0   lib/python2.7/site-packages/numba/roc/hsadecl.pyt#   resolve_activelanepermute_wavewidth·   s    c         C` s   t  j t ƒ S(   N(   R   RL   R2   (   R;   R<   (    (    s0   lib/python2.7/site-packages/numba/roc/hsadecl.pyt   resolve_ds_permuteº   s    c         C` s   t  j t ƒ S(   N(   R   RL   R4   (   R;   R<   (    (    s0   lib/python2.7/site-packages/numba/roc/hsadecl.pyt   resolve_ds_bpermute½   s    c         C` s   t  j t j ƒ S(   N(   R   R>   R
   R7   (   R;   R<   (    (    s0   lib/python2.7/site-packages/numba/roc/hsadecl.pyt   resolve_sharedÀ   s    c         C` s   t  j t j ƒ S(   N(   R   R>   R
   RI   (   R;   R<   (    (    s0   lib/python2.7/site-packages/numba/roc/hsadecl.pyt   resolve_atomicÃ   s    (   R   R   R   R>   R
   R   RO   RP   RQ   RR   RS   RT   RU   RV   RW   RX   RY   RZ   R[   R\   R]   (    (    (    s0   lib/python2.7/site-packages/numba/roc/hsadecl.pyRN   •   s    														N()   t
   __future__R    R   R   t   numbaR   t   numba.typing.templatesR   R   R   R   R   R	   R
   t   registryt   registert	   intrinsict   register_attrt   intrinsic_attrt   register_globalt   intrinsic_globalR   R   R   R   R   R   R   R   R"   R$   R&   R,   R2   R4   R6   R9   R?   RK   RN   R>   (    (    (    s0   lib/python2.7/site-packages/numba/roc/hsadecl.pyt   <module>   sX   .				
			3