[all-commits] [llvm/llvm-project] c0a41c: [AArch64][GlobalISel] Improve legalization for odd...

Jessica Paquette via All-commits all-commits at lists.llvm.org
Wed Jul 28 15:32:03 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: c0a41c3d3b53b0d64286947cf11751ff6889be30
      https://github.com/llvm/llvm-project/commit/c0a41c3d3b53b0d64286947cf11751ff6889be30
  Author: Jessica Paquette <jpaquette at apple.com>
  Date:   2021-07-28 (Wed, 28 Jul 2021)

  Changed paths:
    M llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
    M llvm/test/CodeGen/AArch64/GlobalISel/legalize-cmp.mir
    M llvm/test/CodeGen/AArch64/GlobalISel/legalize-constant.mir

  Log Message:
  -----------
  [AArch64][GlobalISel] Improve legalization for odd-sized G_ICMP/G_CONSTANT

We were handing types like s88 like

1) clamp to the range
2) widen to the next power of 2

This isn't desirable because it causes an odd breakdown for types like s88.
If we widen to the next power of 2 (s128) first, then we get a clean breakdown
when we clamp back to s64.

Differential Revision: https://reviews.llvm.org/D106998




More information about the All-commits mailing list