use crate::ffi::c_void;
#[allow(improper_ctypes)]
extern "C" {
#[link_name = "llvm.nvvm.barrier0"]
fn syncthreads() -> ();
#[link_name = "llvm.nvvm.read.ptx.sreg.ntid.x"]
fn block_dim_x() -> i32;
#[link_name = "llvm.nvvm.read.ptx.sreg.ntid.y"]
fn block_dim_y() -> i32;
#[link_name = "llvm.nvvm.read.ptx.sreg.ntid.z"]
fn block_dim_z() -> i32;
#[link_name = "llvm.nvvm.read.ptx.sreg.ctaid.x"]
fn block_idx_x() -> i32;
#[link_name = "llvm.nvvm.read.ptx.sreg.ctaid.y"]
fn block_idx_y() -> i32;
#[link_name = "llvm.nvvm.read.ptx.sreg.ctaid.z"]
fn block_idx_z() -> i32;
#[link_name = "llvm.nvvm.read.ptx.sreg.nctaid.x"]
fn grid_dim_x() -> i32;
#[link_name = "llvm.nvvm.read.ptx.sreg.nctaid.y"]
fn grid_dim_y() -> i32;
#[link_name = "llvm.nvvm.read.ptx.sreg.nctaid.z"]
fn grid_dim_z() -> i32;
#[link_name = "llvm.nvvm.read.ptx.sreg.tid.x"]
fn thread_idx_x() -> i32;
#[link_name = "llvm.nvvm.read.ptx.sreg.tid.y"]
fn thread_idx_y() -> i32;
#[link_name = "llvm.nvvm.read.ptx.sreg.tid.z"]
fn thread_idx_z() -> i32;
}
#[inline]
pub unsafe fn _syncthreads() -> () {
syncthreads()
}
#[inline]
pub unsafe fn _block_dim_x() -> i32 {
block_dim_x()
}
#[inline]
pub unsafe fn _block_dim_y() -> i32 {
block_dim_y()
}
#[inline]
pub unsafe fn _block_dim_z() -> i32 {
block_dim_z()
}
#[inline]
pub unsafe fn _block_idx_x() -> i32 {
block_idx_x()
}
#[inline]
pub unsafe fn _block_idx_y() -> i32 {
block_idx_y()
}
#[inline]
pub unsafe fn _block_idx_z() -> i32 {
block_idx_z()
}
#[inline]
pub unsafe fn _grid_dim_x() -> i32 {
grid_dim_x()
}
#[inline]
pub unsafe fn _grid_dim_y() -> i32 {
grid_dim_y()
}
#[inline]
pub unsafe fn _grid_dim_z() -> i32 {
grid_dim_z()
}
#[inline]
pub unsafe fn _thread_idx_x() -> i32 {
thread_idx_x()
}
#[inline]
pub unsafe fn _thread_idx_y() -> i32 {
thread_idx_y()
}
#[inline]
pub unsafe fn _thread_idx_z() -> i32 {
thread_idx_z()
}
#[inline]
pub unsafe fn trap() -> ! {
crate::intrinsics::abort()
}
extern "C" {
pub fn vprintf(format: *const u8, valist: *const c_void) -> i32;
pub fn malloc(size: usize) -> *mut c_void;
pub fn free(ptr: *mut c_void);
fn __assertfail(
message: *const u8,
file: *const u8,
line: u32,
function: *const u8,
char_size: usize,
);
}
#[inline]
pub unsafe fn __assert_fail(message: *const u8, file: *const u8, line: u32, function: *const u8) {
__assertfail(message, file, line, function, 1)
}