[ir][spirv] Implement quantizeToF16()
This maps to OpQuantizeToF16.
Bug: tint:1906
Change-Id: I8b44ffaf5c29fd846a515522b4b1be651a99de7e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/142281
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Commit-Queue: James Price <jrprice@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
diff --git a/src/tint/lang/spirv/writer/generator_impl_ir.cc b/src/tint/lang/spirv/writer/generator_impl_ir.cc
index 60b4939..39a1f2b 100644
--- a/src/tint/lang/spirv/writer/generator_impl_ir.cc
+++ b/src/tint/lang/spirv/writer/generator_impl_ir.cc
@@ -1307,6 +1307,9 @@
case builtin::Function::kPow:
glsl_ext_inst(GLSLstd450Pow);
break;
+ case builtin::Function::kQuantizeToF16:
+ op = spv::Op::OpQuantizeToF16;
+ break;
case builtin::Function::kRadians:
glsl_ext_inst(GLSLstd450Radians);
break;
diff --git a/src/tint/lang/spirv/writer/generator_impl_ir_builtin_test.cc b/src/tint/lang/spirv/writer/generator_impl_ir_builtin_test.cc
index a94331f..c9f21f2 100644
--- a/src/tint/lang/spirv/writer/generator_impl_ir_builtin_test.cc
+++ b/src/tint/lang/spirv/writer/generator_impl_ir_builtin_test.cc
@@ -107,6 +107,7 @@
BuiltinTestCase{kF16, builtin::Function::kLog, "Log"},
BuiltinTestCase{kF32, builtin::Function::kLog2, "Log2"},
BuiltinTestCase{kF16, builtin::Function::kLog2, "Log2"},
+ BuiltinTestCase{kF32, builtin::Function::kQuantizeToF16, "OpQuantizeToF16"},
BuiltinTestCase{kF32, builtin::Function::kRadians, "Radians"},
BuiltinTestCase{kF16, builtin::Function::kRadians, "Radians"},
BuiltinTestCase{kI32, builtin::Function::kReverseBits, "OpBitReverse"},