[llvm] [AMDGPU] Form V_MAD_U64_U32 from mul24 (PR #72393)

Jay Foad via llvm-commits llvm-commits at lists.llvm.org
Fri Dec 8 03:55:30 PST 2023


================
@@ -676,6 +676,16 @@ multiclass IMAD32_Pats <VOP3_Pseudo inst> {
         (ThreeOpFragSDAG<mul, add> i32:$src0, i32:$src1, (i32 imm:$src2)),
         (EXTRACT_SUBREG (inst $src0, $src1, (i64 (as_i64imm $src2)), 0 /* clamp */), sub0)
         >;
+
+  // Handle cases where amdgpu-codegenprepare-mul24 made a mul24 instead of a normal mul.
----------------
jayfoad wrote:

On a "full rate doubles" machine do you also want to use V_MAD_U64_U32 when there is no addend, just to get a plain 32 * 32 -> 64 bit multiply?

I.e. (i64 (AMDGPUmul_u24 i32:$src0, i32:$src1)) -> (inst $src0, $src1, 0 /* src2 */, 0 /* clamp */)

https://github.com/llvm/llvm-project/pull/72393


More information about the llvm-commits mailing list