From ac8a874f28155b3d55f31beeb991bc0409441daa Mon Sep 17 00:00:00 2001 From: 39ali Date: Mon, 4 May 2026 23:24:03 +0300 Subject: [PATCH] add memset const and dynamic support for f16 --- crates/rustc_codegen_spirv/src/builder/builder_methods.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/crates/rustc_codegen_spirv/src/builder/builder_methods.rs b/crates/rustc_codegen_spirv/src/builder/builder_methods.rs index d86db1cbd0..d387a95898 100644 --- a/crates/rustc_codegen_spirv/src/builder/builder_methods.rs +++ b/crates/rustc_codegen_spirv/src/builder/builder_methods.rs @@ -407,6 +407,11 @@ impl<'a, 'tcx> Builder<'a, 'tcx> { )), }, SpirvType::Float(width) => match width { + 16 => { + let ty = SpirvType::Float(16).def(self.span(), self); + self.def_constant(ty, SpirvConst::Scalar(memset_fill_u16(fill_byte) as u128)) + .def(self) + } 32 => self .constant_f32(self.span(), f32::from_bits(memset_fill_u32(fill_byte))) .def(self), @@ -461,6 +466,7 @@ impl<'a, 'tcx> Builder<'a, 'tcx> { )), }, SpirvType::Float(width) => match width { + 16 => memset_dynamic_scalar(self, fill_var, 2, true), 32 => memset_dynamic_scalar(self, fill_var, 4, true), 64 => memset_dynamic_scalar(self, fill_var, 8, true), _ => self.fatal(format!("memset on float width {width} not implemented yet")),