From 44ccdca7681fcac69518528e08b56a7c7fd4aed4 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Sun, 23 Oct 2022 20:46:29 -0400 Subject: [PATCH] agx: Implement {i,u}mul_2x32_64 With support for MRT in the driver (not included here), passes: dEQP-GLES31.functional.shaders.builtin_functions.integer.imulextended.int_highp_fragment dEQP-GLES31.functional.shaders.builtin_functions.integer.umulextended.int_highp_fragment Signed-off-by: Alyssa Rosenzweig Part-of: --- src/asahi/compiler/agx_compile.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/asahi/compiler/agx_compile.c b/src/asahi/compiler/agx_compile.c index 83fe5b056c5..0a0efc6503f 100644 --- a/src/asahi/compiler/agx_compile.c +++ b/src/asahi/compiler/agx_compile.c @@ -892,6 +892,8 @@ agx_emit_alu(agx_builder *b, nir_alu_instr *instr) case nir_op_isub: return agx_iadd_to(b, dst, s0, agx_neg(s1), 0); case nir_op_ineg: return agx_iadd_to(b, dst, agx_zero(), agx_neg(s0), 0); case nir_op_imul: return agx_imad_to(b, dst, s0, s1, agx_zero(), 0); + case nir_op_umul_2x32_64: return agx_imad_to(b, dst, agx_abs(s0), agx_abs(s1), agx_zero(), 0); + case nir_op_imul_2x32_64: return agx_imad_to(b, dst, s0, s1, agx_zero(), 0); case nir_op_umul_high: return agx_umul_high_to(b, dst, s0, s1); case nir_op_ishl: return agx_bfi_to(b, dst, agx_zero(), s0, s1, 0);