From e0b195cadbb85b33e4d3055f6e1beb8d45722843 Mon Sep 17 00:00:00 2001 From: Caio Oliveira Date: Tue, 18 Mar 2025 09:36:55 -0700 Subject: [PATCH] spirv: Use bfdot for SpvOpDot with BFloat16 Reviewed-by: Rohan Garg Reviewed-by: Ian Romanick Reviewed-by: Georg Lehmann Part-of: --- src/compiler/spirv/vtn_alu.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/compiler/spirv/vtn_alu.c b/src/compiler/spirv/vtn_alu.c index 544e820d1ea..a528b2e1b12 100644 --- a/src/compiler/spirv/vtn_alu.c +++ b/src/compiler/spirv/vtn_alu.c @@ -799,7 +799,9 @@ vtn_handle_alu(struct vtn_builder *b, SpvOp opcode, } case SpvOpDot: - dest->def = nir_fdot(&b->nb, src[0], src[1]); + dest->def = glsl_type_is_bfloat_16(dest_type) ? + nir_bfdot(&b->nb, src[0], src[1]) : + nir_fdot(&b->nb, src[0], src[1]); break; case SpvOpIAddCarry: