[PATCH] D56214: AggressiveInstCombine: Fold full mul i64 x i64 -> i128

Paweł Bylica via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Feb 5 05:24:39 PST 2019


chfast updated this revision to Diff 185287.
chfast added a comment.
Herald added a project: LLVM.

Hi again,

I believe I addressed most of the comments. Now HI and LO parts are matched independently, but when both are matched they will use the same i128 multiplication.
Now also DataLayout is checked for the max int size. The pass only replaces multiplication up to 2x native int size. E.g. it will produce max i64 multiplication on 32-bit targets.

The only think left to do is to address the comment about other uses of intermediate values.
The most restrictive approach would be to check all intermediate values if the number of uses matches the pattern?


Repository:
  rL LLVM

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

https://reviews.llvm.org/D56214

Files:
  lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp
  test/Transforms/AggressiveInstCombine/mul_full_32.ll
  test/Transforms/AggressiveInstCombine/mul_full_64.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D56214.185287.patch
Type: text/x-patch
Size: 23822 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190205/7633c2f9/attachment-0001.bin>


More information about the llvm-commits mailing list