pub trait DialectInstructions<D: Dialect> {
Show 32 methods
// Required methods
fn compile_instruction_sync_threads(f: &mut Formatter<'_>) -> Result;
fn compile_instruction_thread_fence(f: &mut Formatter<'_>) -> Result;
fn compile_instruction_find_first_set<T: Component<D>>(
f: &mut Formatter<'_>,
input: T,
out_elem: Elem<D>,
) -> Result;
fn compile_instruction_leading_zeros_scalar<T: Component<D>>(
f: &mut Formatter<'_>,
input: T,
out_elem: Elem<D>,
) -> Result;
fn compile_instruction_max_function_name(
f: &mut Formatter<'_>,
item: Item<D>,
) -> Result;
fn compile_instruction_min_function_name(
f: &mut Formatter<'_>,
item: Item<D>,
) -> Result;
fn compile_warp_shuffle(
f: &mut Formatter<'_>,
var: &str,
source: &str,
) -> Result;
fn compile_warp_shuffle_xor(
f: &mut Formatter<'_>,
var: &str,
elem: &Elem<D>,
offset: &str,
) -> Result;
fn compile_warp_shuffle_up(
f: &mut Formatter<'_>,
var: &str,
offset: &str,
) -> Result;
fn compile_warp_shuffle_down(
f: &mut Formatter<'_>,
var: &str,
offset: &str,
) -> Result;
fn compile_warp_all<T: Component<D>>(
f: &mut Formatter<'_>,
input: &T,
) -> Result;
fn compile_warp_any<T: Component<D>>(
f: &mut Formatter<'_>,
input: &T,
) -> Result;
fn compile_warp_ballot(
f: &mut Formatter<'_>,
input: &Variable<D>,
out_elem: &Elem<D>,
) -> Result;
// Provided methods
fn compile_atomic_add(
f: &mut Formatter<'_>,
lhs: &Variable<D>,
rhs: &Variable<D>,
out: &Variable<D>,
) -> Result { ... }
fn compile_atomic_and(
f: &mut Formatter<'_>,
lhs: &Variable<D>,
rhs: &Variable<D>,
out: &Variable<D>,
) -> Result { ... }
fn compile_atomic_cas(
f: &mut Formatter<'_>,
input: &Variable<D>,
cmp: &Variable<D>,
val: &Variable<D>,
out: &Variable<D>,
) -> Result { ... }
fn compile_atomic_load(
f: &mut Formatter<'_>,
input: &Variable<D>,
out: &Variable<D>,
) -> Result { ... }
fn compile_atomic_max(
f: &mut Formatter<'_>,
lhs: &Variable<D>,
rhs: &Variable<D>,
out: &Variable<D>,
) -> Result { ... }
fn compile_atomic_min(
f: &mut Formatter<'_>,
lhs: &Variable<D>,
rhs: &Variable<D>,
out: &Variable<D>,
) -> Result { ... }
fn compile_atomic_or(
f: &mut Formatter<'_>,
lhs: &Variable<D>,
rhs: &Variable<D>,
out: &Variable<D>,
) -> Result { ... }
fn compile_atomic_store(
f: &mut Formatter<'_>,
input: &Variable<D>,
out: &Variable<D>,
) -> Result { ... }
fn compile_atomic_sub(
f: &mut Formatter<'_>,
lhs: &Variable<D>,
rhs: &Variable<D>,
out: &Variable<D>,
) -> Result { ... }
fn compile_atomic_swap(
f: &mut Formatter<'_>,
lhs: &Variable<D>,
rhs: &Variable<D>,
out: &Variable<D>,
) -> Result { ... }
fn compile_atomic_xor(
f: &mut Formatter<'_>,
lhs: &Variable<D>,
rhs: &Variable<D>,
out: &Variable<D>,
) -> Result { ... }
fn compile_instruction_printf(
f: &mut Formatter<'_>,
format_string: &str,
args: &[Variable<D>],
) -> Result { ... }
fn compile_instruction_log1p_scalar<T: Component<D>>(
f: &mut Formatter<'_>,
input: T,
) -> Result { ... }
fn compile_instruction_tanh_scalar<T: Component<D>>(
f: &mut Formatter<'_>,
input: T,
) -> Result { ... }
fn compile_instruction_popcount_scalar<T: Component<D>>(
f: &mut Formatter<'_>,
input: T,
out_elem: Elem<D>,
) -> Result { ... }
fn compile_instruction_reverse_bits_scalar<T: Component<D>>(
f: &mut Formatter<'_>,
input: T,
out_elem: Elem<D>,
) -> Result { ... }
fn compile_instruction_powf(f: &mut Formatter<'_>) -> Result { ... }
fn compile_instruction_half_function_name_prefix() -> &'static str { ... }
fn compile_instruction_half2_function_name_prefix() -> &'static str { ... }
}
Required Methods§
fn compile_instruction_sync_threads(f: &mut Formatter<'_>) -> Result
fn compile_instruction_thread_fence(f: &mut Formatter<'_>) -> Result
fn compile_instruction_find_first_set<T: Component<D>>( f: &mut Formatter<'_>, input: T, out_elem: Elem<D>, ) -> Result
fn compile_instruction_leading_zeros_scalar<T: Component<D>>( f: &mut Formatter<'_>, input: T, out_elem: Elem<D>, ) -> Result
fn compile_instruction_max_function_name( f: &mut Formatter<'_>, item: Item<D>, ) -> Result
fn compile_instruction_min_function_name( f: &mut Formatter<'_>, item: Item<D>, ) -> Result
fn compile_warp_shuffle( f: &mut Formatter<'_>, var: &str, source: &str, ) -> Result
fn compile_warp_shuffle_xor( f: &mut Formatter<'_>, var: &str, elem: &Elem<D>, offset: &str, ) -> Result
fn compile_warp_shuffle_up( f: &mut Formatter<'_>, var: &str, offset: &str, ) -> Result
fn compile_warp_shuffle_down( f: &mut Formatter<'_>, var: &str, offset: &str, ) -> Result
fn compile_warp_all<T: Component<D>>(f: &mut Formatter<'_>, input: &T) -> Result
fn compile_warp_any<T: Component<D>>(f: &mut Formatter<'_>, input: &T) -> Result
fn compile_warp_ballot( f: &mut Formatter<'_>, input: &Variable<D>, out_elem: &Elem<D>, ) -> Result
Provided Methods§
fn compile_atomic_add( f: &mut Formatter<'_>, lhs: &Variable<D>, rhs: &Variable<D>, out: &Variable<D>, ) -> Result
fn compile_atomic_and( f: &mut Formatter<'_>, lhs: &Variable<D>, rhs: &Variable<D>, out: &Variable<D>, ) -> Result
fn compile_atomic_cas( f: &mut Formatter<'_>, input: &Variable<D>, cmp: &Variable<D>, val: &Variable<D>, out: &Variable<D>, ) -> Result
fn compile_atomic_load( f: &mut Formatter<'_>, input: &Variable<D>, out: &Variable<D>, ) -> Result
fn compile_atomic_max( f: &mut Formatter<'_>, lhs: &Variable<D>, rhs: &Variable<D>, out: &Variable<D>, ) -> Result
fn compile_atomic_min( f: &mut Formatter<'_>, lhs: &Variable<D>, rhs: &Variable<D>, out: &Variable<D>, ) -> Result
fn compile_atomic_or( f: &mut Formatter<'_>, lhs: &Variable<D>, rhs: &Variable<D>, out: &Variable<D>, ) -> Result
fn compile_atomic_store( f: &mut Formatter<'_>, input: &Variable<D>, out: &Variable<D>, ) -> Result
fn compile_atomic_sub( f: &mut Formatter<'_>, lhs: &Variable<D>, rhs: &Variable<D>, out: &Variable<D>, ) -> Result
fn compile_atomic_swap( f: &mut Formatter<'_>, lhs: &Variable<D>, rhs: &Variable<D>, out: &Variable<D>, ) -> Result
fn compile_atomic_xor( f: &mut Formatter<'_>, lhs: &Variable<D>, rhs: &Variable<D>, out: &Variable<D>, ) -> Result
fn compile_instruction_printf( f: &mut Formatter<'_>, format_string: &str, args: &[Variable<D>], ) -> Result
fn compile_instruction_log1p_scalar<T: Component<D>>( f: &mut Formatter<'_>, input: T, ) -> Result
fn compile_instruction_tanh_scalar<T: Component<D>>( f: &mut Formatter<'_>, input: T, ) -> Result
fn compile_instruction_popcount_scalar<T: Component<D>>( f: &mut Formatter<'_>, input: T, out_elem: Elem<D>, ) -> Result
fn compile_instruction_reverse_bits_scalar<T: Component<D>>( f: &mut Formatter<'_>, input: T, out_elem: Elem<D>, ) -> Result
fn compile_instruction_powf(f: &mut Formatter<'_>) -> Result
fn compile_instruction_half_function_name_prefix() -> &'static str
fn compile_instruction_half2_function_name_prefix() -> &'static str
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.