diff --git a/hercules_cg/src/gpu.rs b/hercules_cg/src/gpu.rs index 2151dc0dfd53526c8c39fb755912bfcc63cb6a08..23e58c14633141a8ec42c8bfdcf1eb9aaeed0554 100644 --- a/hercules_cg/src/gpu.rs +++ b/hercules_cg/src/gpu.rs @@ -470,6 +470,12 @@ namespace cg = cooperative_groups; DynamicConstant::Rem(left, right) => { write!(w, "\t{} = dc{} % dc{};\n", dc_val, left.idx(), right.idx())? } + DynamicConstant::Min(left, right) => { + write!(w, "\t{} = min(dc{}, dc{});\n", dc_val, left.idx(), right.idx())? + } + DynamicConstant::Max(left, right) => { + write!(w, "\t{} = max(dc{}, dc{});\n", dc_val, left.idx(), right.idx())? + } } } Ok(()) @@ -1880,8 +1886,8 @@ extern \"C\" {} {}(", if ret_primitive { ret_type.clone() } else { "void".to_str _ => "max", }, Intrinsic::Min => match ty { - Type::Float32 => "__fminf", - Type::Float64 => "__fmin", + Type::Float32 => "fminf", + Type::Float64 => "fmin", ty if ty.is_signed() => "smin", ty if ty.is_unsigned() => "umin", _ => "min",