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")),