LLVM/project 519eea7llvm/lib/Target/AArch64 AArch64SVEInstrInfo.td, llvm/test/CodeGen/AArch64 sve-mul-imm-add-adr.ll sve2-histcnt.ll

[AArch64][SVE] Use ADD/ADR instead of MUL/MLA for x*N
DeltaFile
+242-0llvm/test/CodeGen/AArch64/sve-mul-imm-add-adr.ll
+115-0llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
+1-3llvm/test/CodeGen/AArch64/sve2-histcnt.ll
+1-1llvm/test/CodeGen/AArch64/sve-intrinsics-int-arith-undef.ll
+359-44 files

LLVM/project 1d9a81dclang/test/CodeGen/LoongArch/lasx builtin-alias.c builtin.c, llvm/test/CodeGen/AArch64 bf16-v8-instructions.ll bf16-v4-instructions.ll

Merge branch 'main' into users/kparzysz/s04-substring-check
DeltaFile
+8,895-3,632llvm/test/CodeGen/AArch64/bf16-v8-instructions.ll
+3,563-3,543llvm/test/CodeGen/AMDGPU/memintrinsic-unroll.ll
+6,598-111llvm/test/CodeGen/X86/clmul-vector.ll
+3,951-1,914llvm/test/CodeGen/AArch64/bf16-v4-instructions.ll
+2,749-2,749clang/test/CodeGen/LoongArch/lasx/builtin-alias.c
+2,745-2,745clang/test/CodeGen/LoongArch/lasx/builtin.c
+28,501-14,6943,515 files not shown
+242,985-95,2733,521 files

LLVM/project a2ec5c6flang/include/flang/Semantics openmp-utils.h, flang/lib/Semantics openmp-utils.cpp check-omp-structure.cpp

[flang][OpenMP] More detailed checks for argument list items in clauses (#201334)

For clauses that take list of variable, locator, and extended list
items, perform checks that the actual arguments meet the corresponding
requirements. This is version-based, since clause requirements have
changed over time.
DeltaFile
+224-1flang/lib/Semantics/openmp-utils.cpp
+122-89flang/lib/Semantics/check-omp-structure.cpp
+15-15flang/test/Semantics/OpenMP/declare-target01.f90
+25-0flang/include/flang/Semantics/openmp-utils.h
+4-4flang/test/Semantics/OpenMP/named-constants.f90
+2-2flang/test/Semantics/OpenMP/name-conflict.f90
+392-11112 files not shown
+404-12618 files

LLVM/project d65da63llvm/unittests/Support/DynamicLibrary DynamicLibraryTest.cpp

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+1-1llvm/unittests/Support/DynamicLibrary/DynamicLibraryTest.cpp
+1-11 files

LLVM/project 0497cbclld/test/MachO lc-linker-option-order.ll lc-linker-option-postprocess.ll, llvm/lib/Target/SPIRV SPIRVInstructionSelector.cpp

rebase

Created using spr 1.3.7
DeltaFile
+0-144lld/test/MachO/lc-linker-option-order.ll
+144-0lld/test/MachO/lc-linker-option-postprocess.ll
+130-0lld/test/MachO/lc-linker-option-sort.ll
+88-8llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.f16.fp8.ll
+59-0llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
+30-4llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.fp8.f16.ll
+451-15613 files not shown
+702-16719 files

LLVM/project 00578celld/test/MachO lc-linker-option-postprocess.ll lc-linker-option-order.ll, llvm/lib/Target/SPIRV SPIRVInstructionSelector.cpp

rebase

Created using spr 1.3.7
DeltaFile
+144-0lld/test/MachO/lc-linker-option-postprocess.ll
+0-144lld/test/MachO/lc-linker-option-order.ll
+130-0lld/test/MachO/lc-linker-option-sort.ll
+88-8llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.f16.fp8.ll
+59-0llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
+30-4llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.fp8.f16.ll
+451-15613 files not shown
+702-16719 files

LLVM/project 02cd239llvm/lib/Target/AMDGPU AMDGPURegBankLegalizeRules.cpp, llvm/test/CodeGen/AMDGPU llvm.amdgcn.cvt.f16.fp8.ll llvm.amdgcn.cvt.fp8.f16.ll

AMDGPU/GlobalISel: RegBankLegalize rules for cvt f16<->fp8/bf8 (#202361)

Small types are impemented using integers in LLVMIR,
because of this there are no irtranslator failures.
DeltaFile
+88-8llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.f16.fp8.ll
+30-4llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.fp8.f16.ll
+20-0llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
+1-1llvm/test/CodeGen/AMDGPU/llvm.amdgcn.cvt.pk.f16.ll
+139-134 files

LLVM/project f4ecab1llvm/lib/CodeGen/SelectionDAG LegalizeIntegerTypes.cpp, llvm/test/CodeGen/AArch64 ldexp.ll powi-ldexp-promote-libcall-error.ll

[SelectionDAG] Promote FPOWI/FLDEXP exponents where possible, and raise an error otherwise (#200621)

PromoteIntOp_ExpOp is reached when the exponent type is illegal.

- When the exponent type was smaller than int, we'd hit an assertion. In
builds where asserts were disabled, we actually ended up doing the right
thing; makeLibCall would sign-extend the value to int.

- When the exponent type was too large, we'd also hit an assertion. In
builds were asserts were disabled, we would *not* do the right thing;
we'd end up silently truncating the value. Now we explicitly raise an
error.
DeltaFile
+31-0llvm/test/CodeGen/AArch64/ldexp.ll
+24-0llvm/test/CodeGen/AArch64/powi-ldexp-promote-libcall-error.ll
+16-4llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
+71-43 files

LLVM/project cefb937llvm/lib/Target/SPIRV SPIRVInstructionSelector.cpp, llvm/test/CodeGen/SPIRV ptrmask-vec.ll ptrmask64-32.ll

[SPIRV] Add support for G_PTRMASK (#201450)

This instruction is generated by the
[llvm.ptrmask](https://llvm.org/docs/LangRef.html#llvm-ptrmask-intrinsic)
intrinsic, which is used for Clang builtins like
[__builtin_align_up](https://clang.llvm.org/docs/LanguageExtensions.html#alignment-builtins)
which is used in `libc`.

We are working on building `libc` for SPIR-V, so we hit this problem.

Signed-off-by: Nick Sarnie <nick.sarnie at intel.com>
Co-Authored-By: Claude Sonnet 4.5 <noreply at anthropic.com>

---------

Signed-off-by: Nick Sarnie <nick.sarnie at intel.com>
Co-authored-by: Claude Sonnet 4.5 <noreply at anthropic.com>
DeltaFile
+59-0llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
+31-0llvm/test/CodeGen/SPIRV/ptrmask-vec.ll
+25-0llvm/test/CodeGen/SPIRV/ptrmask64-32.ll
+24-0llvm/test/CodeGen/SPIRV/ptrmask64.ll
+24-0llvm/test/CodeGen/SPIRV/ptrmask32.ll
+16-0llvm/test/CodeGen/SPIRV/ptrmask-logical.ll
+179-01 files not shown
+191-07 files

LLVM/project e71b154llvm/tools/llvm-exegesis/lib Assembler.h

[𝘀𝗽𝗿] initial version

Created using spr 1.3.7
DeltaFile
+3-1llvm/tools/llvm-exegesis/lib/Assembler.h
+3-11 files

LLVM/project 8a8fc9cllvm/lib/Target/X86 X86ScheduleC864GM7.td, llvm/test/CodeGen/AArch64 bf16-v8-instructions.ll bf16-v4-instructions.ll

rebase

Created using spr 1.3.7
DeltaFile
+8,895-3,632llvm/test/CodeGen/AArch64/bf16-v8-instructions.ll
+3,951-1,914llvm/test/CodeGen/AArch64/bf16-v4-instructions.ll
+5,294-0llvm/test/tools/llvm-mca/X86/C864GM7/resources-avx512vl.s
+3,721-0llvm/lib/Target/X86/X86ScheduleC864GM7.td
+3,685-0llvm/test/CodeGen/AMDGPU/atomic_optimizations_local_pointer.ll
+3,264-0llvm/test/tools/llvm-mca/X86/C864GM7/resources-avx512.s
+28,810-5,546490 files not shown
+82,686-8,546496 files

LLVM/project 2ae3fa7lld/MachO Driver.cpp, lld/docs ReleaseNotes.rst

[lld-macho] Sort LC_LINKER_OPTIONS before processing (#201604)

Previously https://reviews.llvm.org/D157716 brought handling of
LC_LINKER_OPTIONS closer to Apple linker behavior by processing the
options at the end after all object files have been added.

This corrects another difference in behavior, processing frameworks
before regular libraries (linked with -lFoo), and processing each group
in sorted order.

Processing a LC_LINKER_OPTIONS can trigger loads of more object files
which in turn may have more LC_LINKER_OPTIONS. We iterate this to a
fixed point, walking this graph in BFS order, processing each "level" of
the graph in the order described above. This graph traversal order
hasn't changed in this commit, only the sorting has.

The diff of the linker map produced for the included test before and
after:
```

    [20 lines not shown]
DeltaFile
+144-0lld/test/MachO/lc-linker-option-postprocess.ll
+0-144lld/test/MachO/lc-linker-option-order.ll
+130-0lld/test/MachO/lc-linker-option-sort.ll
+25-6lld/MachO/Driver.cpp
+2-0lld/docs/ReleaseNotes.rst
+301-1505 files

LLVM/project 5402aa2llvm/lib/Target/AArch64 AArch64TargetTransformInfo.cpp, llvm/test/Transforms/InstCombine/AArch64 sve-intrinsic-mla-one.ll

[AArch64][SVE] add missing instcombine x+1 -> x

Split out from #198566
DeltaFile
+101-0llvm/test/Transforms/InstCombine/AArch64/sve-intrinsic-mla-one.ll
+30-0llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
+131-02 files

LLVM/project f8b0120clang/lib/Driver/ToolChains PS4CPU.cpp PS4CPU.h, clang/test/Driver ps4-ps5-toolchain.c

[Clang][Driver] default-on include path backslash warning on PS5 (#202300)

It seems like there is precedent for using addClangWarningOptions in the
driver to set warning default states per-target, in e.g. AMDGPU.

These warnings are usually disabled by default to avoid overdiagnosing
common patterns on Windows host+target builds which don't care about
portability. Since PS5 builds are cross-compiled it makes less sense to
assume things about the host, so we want to diagnose portability issues
more eagerly.
DeltaFile
+6-0clang/lib/Driver/ToolChains/PS4CPU.cpp
+5-0clang/test/Driver/ps4-ps5-toolchain.c
+2-0clang/lib/Driver/ToolChains/PS4CPU.h
+13-03 files

LLVM/project 859ee9dclang/lib/Driver Driver.cpp, clang/test/Driver hip-phases.hip hip-rdc-device-only.hip

[Clang] Set default LTO mode for AMDGCN/SPIR-V targets to full (#201457)

Summary:
Previously we had several layers of if conditions that functionally
amounted to pretending like we were in LTO-mode. The previous changes
moved the LTO settings into the toolchain so we can now override it for
our offloading toolchains. This allows us to respect the LTO mode, where
previously there was no way to override it.

The main artifact of this PR should be trimming up the massive if
statement.

Some slight by-products on the old-driver path, but this can be
recovered with `-fno-offload-lto` and the old driver should be deleted
in a few months anyways.
DeltaFile
+92-103clang/test/Driver/hip-phases.hip
+18-93clang/lib/Driver/Driver.cpp
+20-20clang/test/Driver/hip-rdc-device-only.hip
+13-12clang/test/Driver/hip-binding.hip
+10-9clang/test/Driver/hip-spirv-backend-phases.c
+15-3clang/test/Driver/hip-device-compile.hip
+168-24031 files not shown
+276-32537 files

LLVM/project 6c706edmlir/include/mlir/Dialect/LLVMIR NVVMOps.td, mlir/lib/Dialect/LLVMIR/IR NVVMDialect.cpp

[MLIR][NVVM] Add explicit aligned attribute to nvvm.barrier and nvvm.barrier.reduction (#200745)

This PR according to the third PR commitments in #192203 

This PR adds an explicit aligned boolean attribute to `nvvm.barrier`,
defaulting to true to preserve the existing semantic default, and
extends the op's LLVM IR lowering to pick between the `.aligned` and
non-`.aligned` spellings of the `@llvm.nvvm.barrier.cta.*` intrinsic
family.

Notes on using `BoolAttr` instead of UnitAttr: `nvvm.barrier`'s existing
lowering always emits an aligned intrinsic variant. Making aligned a
BoolAttr with default true captures that as the op's default, and the
`custom<Aligned>` described below only emits the keyword when
non-default.

(I am not able to merge branches, please help me)
DeltaFile
+40-26mlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp
+30-8mlir/test/Target/LLVMIR/nvvm/barrier.mlir
+15-10mlir/include/mlir/Dialect/LLVMIR/NVVMOps.td
+6-0mlir/test/Dialect/LLVMIR/nvvm.mlir
+91-444 files

LLVM/project 1723b7aclang/test/CodeGenSYCL filescope_asm.cpp filescope_asm.c, clang/test/Frontend sycl-c-input-error.cpp

[SYCL] Error on C inputs when compiling with -fsycl (#200318)

`SYCL` is a `C++`-based programming model and requires `C++` source
files.
Enforce this invariant in the frontend by rejecting `C` inputs when SYCL
mode is active, ensuring that `LangOpts.SYCL` implies
`LangOpts.CPlusPlus` regardless of how the compiler is invoked.
DeltaFile
+29-29clang/test/SemaSPIRV/BuiltIns/ids_and_ranges.c
+9-9clang/test/SemaSPIRV/BuiltIns/subgroup-errors.c
+7-6clang/unittests/Frontend/CompilerInvocationTest.cpp
+7-0clang/test/Frontend/sycl-c-input-error.cpp
+6-0clang/test/CodeGenSYCL/filescope_asm.cpp
+0-6clang/test/CodeGenSYCL/filescope_asm.c
+58-505 files not shown
+70-5311 files

LLVM/project 727ad9allvm/lib/Target/AMDGPU AMDGPU.td SIInsertWaitcnts.cpp

[AMDGPU] Add a feature for VOP3PX2 instructions incrementing VA_VDST twice (#202613)
DeltaFile
+6-0llvm/lib/Target/AMDGPU/AMDGPU.td
+2-1llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
+8-12 files

LLVM/project 3744981mlir/lib/Transforms Mem2Reg.cpp

Apply comment/description update suggestions

Co-authored-by: Théo Degioanni <tdegioanni at nvidia.com>
DeltaFile
+7-6mlir/lib/Transforms/Mem2Reg.cpp
+7-61 files

LLVM/project 569a46dllvm/include/llvm/CodeGen Rematerializer.h, llvm/lib/CodeGen Rematerializer.cpp

[CodeGen] Add initial multi-def rematerialization support

This significantly improves support for rematerializing registers
with more than one definition. In particular, this includes cases where
different lanes of a register are defined over multiple instructions.

There are still a few restrictions that can hopefully be relaxed in the
future.

- All defining instructions must be part of the same rematerialization
  region.
- No pure user of the register (i.e., an MI that doesn't also defined a
  part of the register) must read the register before its last
  definition.

These constraints ensure that the underlying DAG representation
maintained by the rematerializer is still valid, making this a
relatively incremental improvement.
DeltaFile
+307-127llvm/lib/CodeGen/Rematerializer.cpp
+231-23llvm/unittests/CodeGen/RematerializerTest.cpp
+69-38llvm/include/llvm/CodeGen/Rematerializer.h
+66-1llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+21-21llvm/test/CodeGen/AMDGPU/machine-scheduler-sink-trivial-remats.mir
+1-1llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp
+695-2116 files

LLVM/project e49c5e1llvm/include/llvm/CodeGen Rematerializer.h, llvm/lib/CodeGen Rematerializer.cpp

[CodeGen] Fine-grained LIS updates on remat and dead-def handling

This replaces the rematerializer's manual bulk LIS update paradigm in
favor of an automated fine-grained one that

1. performs LIS updates as rematerializations happen and
2. handles the removal of dead-definitions properly (this replaces the
   prior partial handling of live interval splitting).

The new approach should be less error-prone (clients do not have to
periodically update the LIS, which is now up-to-date at all times from
the clients's perspective) and faster in general (live intervals aren't
fully re-created every time a def or use of a register changes).

Handling dead-definitions (through a `LiveRangeEditor`) adds some
complexity to the rematerializer since unrematerializable MIs can now
also be deleted. This is exposed to listeners through a new event.
Furthermore, rematerializable registers can now become "permanently
dead" if all their users were unrematerializable MIs that became dead as

    [11 lines not shown]
DeltaFile
+307-100llvm/lib/CodeGen/Rematerializer.cpp
+135-50llvm/unittests/CodeGen/RematerializerTest.cpp
+66-22llvm/include/llvm/CodeGen/Rematerializer.h
+0-2llvm/test/CodeGen/AMDGPU/machine-scheduler-sink-trivial-remats.mir
+508-1744 files

LLVM/project f6e09bbllvm/include/llvm/CodeGen Rematerializer.h, llvm/lib/CodeGen Rematerializer.cpp

[CodeGen][AMDGPU] Prepare rematerializer for subreg remat support (NFC)

This makes some NFCs to the rematerializer before starting to improve
support for sub-register rematerialization. The main changes are the
replacement of `Rematerializer::Reg::Dependency` type (essentially a
pair of a machine operand index and a register index) in favor of a
simple register index, dropping the machine operand index. The latter
has no current uses and will lose meaning once we allow rematerializable
registers to be defined by multiple MIs. Similarly, and for the same
rationale, unrematerializable register dependencies are now tracked as
a register/lanemask pair instead of a machine operand index.

Other minor changes listed below.

- Removal of `DefRegion` argument to `Rematerializer::recreteReg`.
  Registers are always re-created in their original region so there is
  no need to set their region again.
- Removal of `InsertPos` unused argument to
  `Rematerializer::postRematerialization`.

    [3 lines not shown]
DeltaFile
+99-79llvm/lib/CodeGen/Rematerializer.cpp
+27-32llvm/include/llvm/CodeGen/Rematerializer.h
+21-14llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp
+23-3llvm/unittests/CodeGen/RematerializerTest.cpp
+170-1284 files

LLVM/project 65176c5llvm/include/llvm/CodeGen Rematerializer.h, llvm/lib/CodeGen Rematerializer.cpp

[CodeGen] Fix incorrect rematerialization rollback order

This fixes an issue in the rematerializer's rollbacker wherein adjacent
MIs that were deleted through rematerializations would
sometimes---depending on the exact order in which they were
deleted---not be re-created in their original
pre-rematerialization order. While this does not impact correctness
(i.e., use-def relations are always honored), this goes against the
rollbacker's intent to re-create the MIR exactly as it was
pre-rematerializations (up to slot index changes).
DeltaFile
+56-24llvm/unittests/CodeGen/RematerializerTest.cpp
+43-18llvm/lib/CodeGen/Rematerializer.cpp
+7-1llvm/include/llvm/CodeGen/Rematerializer.h
+106-433 files

LLVM/project d6b5e8fllvm/include/llvm/CodeGen Rematerializer.h, llvm/lib/CodeGen Rematerializer.cpp

Change rollback method to reduce tracking need
DeltaFile
+93-71llvm/lib/CodeGen/Rematerializer.cpp
+66-43llvm/include/llvm/CodeGen/Rematerializer.h
+72-0llvm/unittests/CodeGen/RematerializerTest.cpp
+231-1143 files

LLVM/project 26c72f1llvm/lib/Target/AMDGPU AMDGPURegBankLegalizeRules.cpp AMDGPURegBankLegalizeHelper.cpp, llvm/test/CodeGen/AMDGPU llvm.amdgcn.tensor.load.store.ll

AMDGPU/GlobalISel: RegBankLegalize rules for tensor load/store to lds (#202363)
DeltaFile
+7-0llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
+4-1llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeHelper.cpp
+1-1llvm/test/CodeGen/AMDGPU/llvm.amdgcn.tensor.load.store.ll
+1-0llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.h
+13-24 files

LLVM/project d7537e5llvm/unittests/CodeGen RematerializerTest.cpp

Format
DeltaFile
+2-1llvm/unittests/CodeGen/RematerializerTest.cpp
+2-11 files

LLVM/project 4d7ba1fllvm/lib/IR Instructions.cpp, llvm/test/Transforms/InstCombine addrspacecast.ll

[IR] Preserve pointer-byte bitcasts around addrspacecast (#202454)

This fixes cast-pair elimination for addrspacecast combined with
pointer/byte bitcast.

The LLVM LangRef defines [bN byte
types](https://llvm.org/docs/LangRef.html#byte-type) as raw memory data
in SSA registers, where each bit may be an integer bit, part of a
pointer value, or poison.

The LangRef permits pointer-to-byte bitcast: the [bitcast .. to
instruction](https://llvm.org/docs/LangRef.html#bitcast-to-instruction)
says that if the source type is a pointer, the destination type must be
a pointer or a byte/vector-of-bytes type of the same size.

The same [bitcast .. to
section](https://llvm.org/docs/LangRef.html#bitcast-to-instruction) also
defines byte-to-pointer behavior: when the destination type is a pointer
type, a byte value whose bits all come from the same correctly ordered

    [27 lines not shown]
DeltaFile
+23-0llvm/test/Transforms/InstCombine/addrspacecast.ll
+8-0llvm/lib/IR/Instructions.cpp
+31-02 files

LLVM/project 45f6ab0libsycl/src/detail program_manager.cpp

[libsycl] Fix _LIBSYCL_EXPORT placement (#201364)

Fixes another instance of _LIBSYCL_EXPORT causing compiilation errors on
Windows.
DeltaFile
+1-1libsycl/src/detail/program_manager.cpp
+1-11 files

LLVM/project 3f28adellvm/lib/Target/SPIRV SPIRVInstructionSelector.cpp, llvm/test/CodeGen/SPIRV concat-vectors.ll

[SPIRV] Support selection of G_CONCAT_VECTORS (#201686)

Implement the G_CONCAT_VECTOR opcode using `OpCompositeConstruct`. The
semantics are similar so the implementation is straightforward.

This opcode being generated is somewhat rare, in this case it seems to
have remained due to the non-power of 2 vector length ABI.

Co-Authored-By: Claude Opus 4.8 <noreply at anthropic.com>

Co-authored-by: Claude Opus 4.8 <noreply at anthropic.com>
DeltaFile
+25-0llvm/test/CodeGen/SPIRV/concat-vectors.ll
+25-0llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
+50-02 files

LLVM/project 1b136f5llvm/lib/Target/AMDGPU AMDGPURegBankLegalizeRules.cpp AMDGPURegBankLegalizeHelper.cpp, llvm/test/CodeGen/AMDGPU llvm.amdgcn.tensor.load.store.ll

AMDGPU/GlobalISel: RegBankLegalize rules for tensor load/store to lds
DeltaFile
+7-0llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
+4-1llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeHelper.cpp
+1-1llvm/test/CodeGen/AMDGPU/llvm.amdgcn.tensor.load.store.ll
+1-0llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.h
+13-24 files