| // Copyright 2015 The Rust Project Developers. See the COPYRIGHT |
| // file at the top-level directory of this distribution and at |
| // http://rust-lang.org/COPYRIGHT. |
| // |
| // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or |
| // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license |
| // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your |
| // option. This file may not be copied, modified, or distributed |
| // except according to those terms. |
| |
| // DO NOT EDIT: autogenerated by etc/platform-intrinsics/generator.py |
| // ignore-tidy-linelength |
| |
| #![allow(unused_imports)] |
| |
| use {Intrinsic, Type}; |
| use IntrinsicDef::Named; |
| |
| // The default inlining settings trigger a pathological behaviour in |
| // LLVM, which causes makes compilation very slow. See #28273. |
| #[inline(never)] |
| pub fn find(name: &str) -> Option<Intrinsic> { |
| if !name.starts_with("nvptx") { return None } |
| Some(match &name["nvptx".len()..] { |
| "_syncthreads" => Intrinsic { |
| inputs: { static INPUTS: [&'static Type; 0] = []; &INPUTS }, |
| output: &::VOID, |
| definition: Named("llvm.cuda.syncthreads") |
| }, |
| "_block_dim_x" => Intrinsic { |
| inputs: { static INPUTS: [&'static Type; 0] = []; &INPUTS }, |
| output: &::I32, |
| definition: Named("llvm.nvvm.read.ptx.sreg.ntid.x") |
| }, |
| "_block_dim_y" => Intrinsic { |
| inputs: { static INPUTS: [&'static Type; 0] = []; &INPUTS }, |
| output: &::I32, |
| definition: Named("llvm.nvvm.read.ptx.sreg.ntid.y") |
| }, |
| "_block_dim_z" => Intrinsic { |
| inputs: { static INPUTS: [&'static Type; 0] = []; &INPUTS }, |
| output: &::I32, |
| definition: Named("llvm.nvvm.read.ptx.sreg.ntid.z") |
| }, |
| "_block_idx_x" => Intrinsic { |
| inputs: { static INPUTS: [&'static Type; 0] = []; &INPUTS }, |
| output: &::I32, |
| definition: Named("llvm.nvvm.read.ptx.sreg.ctaid.x") |
| }, |
| "_block_idx_y" => Intrinsic { |
| inputs: { static INPUTS: [&'static Type; 0] = []; &INPUTS }, |
| output: &::I32, |
| definition: Named("llvm.nvvm.read.ptx.sreg.ctaid.y") |
| }, |
| "_block_idx_z" => Intrinsic { |
| inputs: { static INPUTS: [&'static Type; 0] = []; &INPUTS }, |
| output: &::I32, |
| definition: Named("llvm.nvvm.read.ptx.sreg.ctaid.z") |
| }, |
| "_grid_dim_x" => Intrinsic { |
| inputs: { static INPUTS: [&'static Type; 0] = []; &INPUTS }, |
| output: &::I32, |
| definition: Named("llvm.nvvm.read.ptx.sreg.nctaid.x") |
| }, |
| "_grid_dim_y" => Intrinsic { |
| inputs: { static INPUTS: [&'static Type; 0] = []; &INPUTS }, |
| output: &::I32, |
| definition: Named("llvm.nvvm.read.ptx.sreg.nctaid.y") |
| }, |
| "_grid_dim_z" => Intrinsic { |
| inputs: { static INPUTS: [&'static Type; 0] = []; &INPUTS }, |
| output: &::I32, |
| definition: Named("llvm.nvvm.read.ptx.sreg.nctaid.z") |
| }, |
| "_thread_idx_x" => Intrinsic { |
| inputs: { static INPUTS: [&'static Type; 0] = []; &INPUTS }, |
| output: &::I32, |
| definition: Named("llvm.nvvm.read.ptx.sreg.tid.x") |
| }, |
| "_thread_idx_y" => Intrinsic { |
| inputs: { static INPUTS: [&'static Type; 0] = []; &INPUTS }, |
| output: &::I32, |
| definition: Named("llvm.nvvm.read.ptx.sreg.tid.y") |
| }, |
| "_thread_idx_z" => Intrinsic { |
| inputs: { static INPUTS: [&'static Type; 0] = []; &INPUTS }, |
| output: &::I32, |
| definition: Named("llvm.nvvm.read.ptx.sreg.tid.z") |
| }, |
| _ => return None, |
| }) |
| } |