[PATCH] D113986: [AMDGPU] Implement widening multiplies with v_mad_i64_i32/v_mad_u64_u32

Jay Foad via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 16 04:28:35 PST 2021


foad added a comment.

The change in the instruction mix in the generated lit tests looks like this:

  $ git show | awk '/^-/&&$3~/[sv]_/{a[$3]--}/^+/&&$3~/[sv]_/{a[$3]++}END{for(i in a)if(a[i])printf"%+d %s\n",a[i],i}' | sort -n
  -604 v_mul_hi_u32
  -567 v_mul_lo_u32
  -31 s_mul_i32
  -15 v_mul_hi_i32
  -10 s_and_b32
  -4 v_cndmask_b32_e32
  -2 s_mov_b32
  -2 v_cmp_ne_u32_e32
  -2 v_lshlrev_b32_e32
  -2 v_lshrrev_b32_e32
  -2 v_mov_b32_e32
  +15 v_mad_i64_i32
  +1 v_mul_hi_i32_i24_e32
  +20 v_addc_u32_e32
  +21 v_add_i32_e32
  +2 s_waitcnt
  +2 v_cmp_ne_u32_e64
  +2 v_mul_i32_i24_e64
  +2 v_mul_u32_u24_e64
  +4 v_cndmask_b32_e64
  +4 v_mul_i32_i24_e32
  +4 v_mul_u32_u24_e32
  +617 v_mad_u64_u32

So it is mostly replacing v_mul_hi_u32+v_mul_lo_u32 with v_mad_u64_u32.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D113986/new/

https://reviews.llvm.org/D113986



More information about the llvm-commits mailing list