[all-commits] [llvm/llvm-project] 45a9dc: [AArch64][GlobalISel] Form G_DUPLANE32 for <2 x s3...

Amara Emerson via All-commits all-commits at lists.llvm.org
Tue Mar 9 11:37:09 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 45a9dca0150ec16e6365dfb9c270f11469337623
      https://github.com/llvm/llvm-project/commit/45a9dca0150ec16e6365dfb9c270f11469337623
  Author: Amara Emerson <amara at apple.com>
  Date:   2021-03-09 (Tue, 09 Mar 2021)

  Changed paths:
    M llvm/lib/Target/AArch64/GISel/AArch64PostLegalizerLowering.cpp
    M llvm/test/CodeGen/AArch64/GlobalISel/postlegalizer-lowering-shuffle-duplane.mir
    A llvm/test/CodeGen/AArch64/GlobalISel/select-fmul-indexed.mir

  Log Message:
  -----------
  [AArch64][GlobalISel] Form G_DUPLANE32 for <2 x s32> shufflevectors in lowering.

For <2 x s32>, we can use G_DUPLANE32, but with a <4 x s32> source. To make it
work, we can just widen the original source with a concat_vectors.

Doing this allows <2 x float> indexed fmul instruction selection patterns to
fire, which gives a nice 0.3% code size saving on Bullet with -Os.

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




More information about the All-commits mailing list