Skip to main content

cubecl_cpp/metal/
general.rs

1use cubecl_core::ir::{dialect::cmp::*, prelude::*};
2
3use crate::metal::metal_op_with_out;
4
5metal_op_with_out!(SClampOp, |op, ctx| {
6    let input = op.input(ctx).name(ctx);
7    let min = op.min(ctx).name(ctx);
8    let max = op.max(ctx).name(ctx);
9    format!("clamp({input}, {min}, {max})")
10});
11
12metal_op_with_out!(UClampOp, |op, ctx| {
13    let input = op.input(ctx).name(ctx);
14    let min = op.min(ctx).name(ctx);
15    let max = op.max(ctx).name(ctx);
16    format!("clamp({input}, {min}, {max})")
17});
18
19metal_op_with_out!(FClampOp, |op, ctx| {
20    let input = op.input(ctx).name(ctx);
21    let min = op.min(ctx).name(ctx);
22    let max = op.max(ctx).name(ctx);
23    format!("clamp({input}, {min}, {max})")
24});