Home | History | Annotate | Download | only in nir
      1 /*
      2  * Copyright  2014 Intel Corporation
      3  *
      4  * Permission is hereby granted, free of charge, to any person obtaining a
      5  * copy of this software and associated documentation files (the "Software"),
      6  * to deal in the Software without restriction, including without limitation
      7  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
      8  * and/or sell copies of the Software, and to permit persons to whom the
      9  * Software is furnished to do so, subject to the following conditions:
     10  *
     11  * The above copyright notice and this permission notice (including the next
     12  * paragraph) shall be included in all copies or substantial portions of the
     13  * Software.
     14  *
     15  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
     16  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     17  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
     18  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
     19  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
     20  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
     21  * IN THE SOFTWARE.
     22  *
     23  * Authors:
     24  *    Connor Abbott (cwabbott0 (at) gmail.com)
     25  *
     26  */
     27 
     28 #include "nir.h"
     29 
     30 #define OPCODE(name) nir_intrinsic_##name
     31 
     32 #define INTRINSIC(_name, _num_srcs, _src_components, _has_dest, \
     33                   _dest_components, _num_variables, _num_indices, \
     34                   idx0, idx1, idx2, _flags) \
     35 { \
     36    .name = #_name, \
     37    .num_srcs = _num_srcs, \
     38    .src_components = _src_components, \
     39    .has_dest = _has_dest, \
     40    .dest_components = _dest_components, \
     41    .num_variables = _num_variables, \
     42    .num_indices = _num_indices, \
     43    .index_map = { \
     44       [NIR_INTRINSIC_ ## idx0] = 1, \
     45       [NIR_INTRINSIC_ ## idx1] = 2, \
     46       [NIR_INTRINSIC_ ## idx2] = 3, \
     47    }, \
     48    .flags = _flags \
     49 },
     50 
     51 #define NIR_INTRINSIC_xx 0
     52 
     53 #define LAST_INTRINSIC(name)
     54 
     55 const nir_intrinsic_info nir_intrinsic_infos[nir_num_intrinsics] = {
     56 #include "nir_intrinsics.h"
     57 };