[all-commits] [llvm/llvm-project] 7b0612: [AArch64][GISel] and+or+shl => bfi

Jon Roelofs via All-commits all-commits at lists.llvm.org
Thu Jun 17 12:53:18 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 7b0612088289e4f57e089a792c5e6d1123a2b6e3
      https://github.com/llvm/llvm-project/commit/7b0612088289e4f57e089a792c5e6d1123a2b6e3
  Author: Jon Roelofs <jonathan_roelofs at apple.com>
  Date:   2021-06-17 (Thu, 17 Jun 2021)

  Changed paths:
    M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
    A llvm/test/CodeGen/AArch64/GlobalISel/select-bitfield-insert.ll

  Log Message:
  -----------
  [AArch64][GISel] and+or+shl => bfi

This fixes a GISEL vs SDAG regression that showed up at -Os in 256.bzip2

In `_getAndMoveToFrontDecode`:

gisel:
```
and w9, w0, #0xff
orr w9, w9, w8, lsl #8
```

sdag:
```
bfi w0, w8, #8, #24
```

Differential revision: https://reviews.llvm.org/D103291


  Commit: a2ab765029dd76756e98851847e6675795a973b6
      https://github.com/llvm/llvm-project/commit/a2ab765029dd76756e98851847e6675795a973b6
  Author: Jon Roelofs <jonathan_roelofs at apple.com>
  Date:   2021-06-17 (Thu, 17 Jun 2021)

  Changed paths:
    M llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
    M llvm/include/llvm/Target/GlobalISel/Combine.td
    M llvm/lib/CodeGen/GlobalISel/CombinerHelper.cpp
    A llvm/test/CodeGen/AArch64/GlobalISel/opt-overlapping-and.mir
    M llvm/test/CodeGen/AMDGPU/GlobalISel/cvt_f32_ubyte.ll
    M llvm/test/CodeGen/AMDGPU/GlobalISel/shl-ext-reduce.ll

  Log Message:
  -----------
  [GISel] Eliminate redundant bitmasking

This was a GISel vs SDAG regression that showed up at -Os on arm64 in:
SingleSource/Benchmarks/Adobe-C++/simple_types_constant_folding.test

https://llvm.godbolt.org/z/aecjodsjG

Differential revision: https://reviews.llvm.org/D103334


Compare: https://github.com/llvm/llvm-project/compare/9ac7388e3dd5...a2ab765029dd


More information about the All-commits mailing list