LLVM/project 2a25e24 — llvm/lib/Transforms/Vectorize VPlanRecipes.cpp VPlan.h

Address review comments
DeltaFile
+6-5llvm/lib/Transforms/Vectorize/VPlanPredicator.cpp
+0-3llvm/lib/Transforms/Vectorize/VPlan.h
+2-0llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp
+8-83 files

LLVM/project 82d6b30 — clang/lib/CIR/CodeGen CIRGenClass.cpp CIRGenModule.h, clang/lib/CIR/Dialect/IR CIRDialect.cpp

[CIR] Use the global address space for the VTT parameter (#240548)

Match classic CodeGen, which types the VTT as a pointer into the target
global address space

Let cir.vtt.address_point carry that address space
DeltaFile
+49-0clang/test/CIR/CodeGenCUDA/vtt-addrspace.cu
+10-10clang/lib/CIR/CodeGen/CIRGenModule.h
+11-9clang/lib/CIR/CodeGen/CIRGenItaniumCXXABI.cpp
+12-2clang/lib/CIR/Dialect/IR/CIRDialect.cpp
+11-0clang/test/CIR/IR/invalid-vtable.cir
+5-3clang/lib/CIR/CodeGen/CIRGenClass.cpp
+98-241 files not shown
+100-257 files

LLVM/project 73b2fd3 — llvm/unittests/Transforms/Vectorize/SandboxVectorizer DependencyGraphTest.cpp

[SandboxVec][DAG] Fix bad IR in test (NFC) (#240873)
DeltaFile
+1-1llvm/unittests/Transforms/Vectorize/SandboxVectorizer/DependencyGraphTest.cpp
+1-11 files

LLVM/project 24ce967 — lld/MachO SyntheticSections.cpp Relocations.cpp

[lld] Replace PointerUnion::dyn_cast with llvm::dyn_cast_if_present (NFC) (#240739)

PointerUnion::dyn_cast has been soft-deprecated in favor of
llvm::dyn_cast and llvm::dyn_cast_if_present.  This patch replaces
PointerUnion::dyn_cast with llvm::dyn_cast_if_present at the remaining
call sites under lld/MachO/.

Note that Relocation::referent can be null under certain conditions, as
confirmed with local testing.

This patch completes the migration away from PointerUnion::dyn_cast
under lld/.

Assisted-by: Antigravity
DeltaFile
+3-3lld/MachO/UnwindInfoSection.cpp
+3-3lld/MachO/ObjC.cpp
+2-2lld/MachO/InputFiles.cpp
+2-1lld/MachO/Writer.cpp
+1-1lld/MachO/SyntheticSections.cpp
+1-1lld/MachO/Relocations.cpp
+12-116 files

LLVM/project f678fc6 — bolt/lib/Passes StokeInfo.cpp, llvm/include/llvm/ADT BitVector.h

[ADT] Add LLVM_ATTRIBUTE_WARN_UNUSED to BitVector (#240738)

This patch adds LLVM_ATTRIBUTE_WARN_UNUSED to BitVector so that
compilers can diagnose unused BitVector variables even though BitVector
has a non-trivial constructor and destructor.

This patch also cleans up two existing warnings uncovered by the
attribute:

- StokeInfo::checkInstr in BOLT had an unused local variable RegV, which
  this patch removes.
- BitVectorTest.EmptyVector declared TypeParam F while mistakenly
  calling reset and testEmpty on E instead of F, which this patch fixes.

Assisted-by: Antigravity
DeltaFile
+2-2llvm/unittests/ADT/BitVectorTest.cpp
+2-1llvm/include/llvm/ADT/BitVector.h
+0-1bolt/lib/Passes/StokeInfo.cpp
+4-43 files

LLVM/project 2c64967 — llvm/lib/Target/SystemZ/MCTargetDesc SystemZTargetStreamer.cpp, llvm/test/CodeGen/SystemZ zos-ppa1.ll zos-section-1.ll

[SystemZ][z/OS] Don't pad the PPA1 name when it is already word aligned (#240707)

The padding after the PPA1 function name was 4 - (2 + len) % 4, so a
name where 2 + len is already a multiple of 4 got a whole extra word of
zeros. LE Vendor Interfaces (SA38-0688) wants zero to three bytes so the
next optional field starts on a word boundary, so use offsetToAlignment.
zos-section-1.ll moves because its function `me` is the aligned case.
DeltaFile
+20-20llvm/test/CodeGen/SystemZ/zos-section-1.ll
+1-1llvm/lib/Target/SystemZ/MCTargetDesc/SystemZTargetStreamer.cpp
+0-1llvm/test/CodeGen/SystemZ/zos-ppa1.ll
+21-223 files

LLVM/project 155cff5 — llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes LoadStoreVec.h, llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes LoadStoreVec.cpp

[SandboxVec][LoadStoreVec] Avoid redundant canVectorize() check (NFC) (#237339)

We used to call canVectorize() twice when vectorizing loads because of
the canVectorize() call in createVectorLoad().
This patch moves the canVectorize() check out of createVectorLoad().

Should be an NFC.
DeltaFile
+4-9llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/LoadStoreVec.cpp
+1-2llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/LoadStoreVec.h
+5-112 files

LLVM/project 720cfaa — clang/include/clang/CIR/Dialect/IR CIROps.td, clang/lib/CIR/Lowering/DirectToLLVM LowerToLLVM.h LowerToLLVM.cpp

[CIR] Let llvmOp lowering forward properties to the LLVM op (#240540)

Lowering patterns generated from `llvmOp` build the LLVM op with default
properties, so every CIR op whose flags map to an LLVM property needed a
hand-written pattern. The new `llvmOpProps` field names the CIR
arguments to forward, e.g. `(ins $overflow_flags)`. The emitter derives
the CIR getter and the LLVM setter from that name, a string gives the
LLVM name when it differs (`(ins "is_zero_poison":$poison_zero)`), and
the value is converted by the `convertToLLVMProperty` overload for its
C++ type. This removes 14 hand-written patterns: `cir.add`/`sub`/`mul`,
the FP vector reductions, `cir.clz`, `cir.ctz`, `cir.abs` and
`cir.is_fp_class` use `llvmOpProps`, and `cir.popcount`,
`cir.vec.extract` and `cir.vec.insert` need only `llvmOp`.

Ops whose LLVM properties come from types or constants, or that
synthesize operands, still lower by hand.

Assisted-by: Claude Code (Claude Opus 5.5).
DeltaFile
+19-146clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
+56-13clang/include/clang/CIR/Dialect/IR/CIROps.td
+46-18clang/utils/TableGen/CIRLoweringEmitter.cpp
+12-0clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.h
+133-1774 files

LLVM/project 009251b — llvm/unittests/ProfileData InstrProfTest.cpp

[spr] update

Created using spr 2.0.0-beta.2
DeltaFile
+15-19llvm/unittests/ProfileData/InstrProfTest.cpp
+15-191 files

LLVM/project 245b187 — llvm/include/llvm/ProfileData InstrProf.h, llvm/lib/ProfileData InstrProf.cpp

[spr] update

Created using spr 2.0.0-beta.2
DeltaFile
+17-1llvm/unittests/ProfileData/InstrProfTest.cpp
+3-2llvm/lib/ProfileData/InstrProf.cpp
+2-2llvm/include/llvm/ProfileData/InstrProf.h
+22-53 files

LLVM/project f113d8c — llvm/include/llvm/ProfileData InstrProf.h, llvm/lib/ProfileData InstrProf.cpp

[spr] update

Created using spr 2.0.0-beta.2
DeltaFile
+9-29llvm/unittests/ProfileData/InstrProfTest.cpp
+2-3llvm/lib/ProfileData/InstrProf.cpp
+2-2llvm/include/llvm/ProfileData/InstrProf.h
+13-343 files

LLVM/project c9be707 — llvm/include/llvm/Transforms/IPO Attributor.h

Attributor: Get the associated value of a call site argument from its use

IRPosition::getAssociatedValue computed the argument number of a call site
argument from its use to look up the argument operand, which is the value
of the use. NFC.

CTMark instructions:u with -attributor-enable=light changes by O3 -0.19%,
ThinLTO -0.20%. The attributor-light pass itself is 2.1-4.2% faster
(callgrind), and 1.2-1.6% faster with the other pending Attributor
compile-time changes applied.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+4-5llvm/include/llvm/Transforms/IPO/Attributor.h
+4-51 files

LLVM/project 6c0bc64 — llvm/include/llvm/Transforms/IPO Attributor.h

Attributor: Only look for callback arguments of call site arguments

IRPosition::getArgNo called getAssociatedArgument for any position when
asked for the callee argument number, e.g., for the attribute index of
every argument position, although only call site arguments can be
associated with a different argument. NFC.

Exact instructions (callgrind) on pre-optimization CTMark bitcode, on top
of the other Attributor compile-time changes:
                     light module  light CGSCC  module   CGSCC
  sqlite3              -0.32%        -0.28%     -0.10%   -0.13%
  kimwitu++ k.cc       -0.44%        -0.36%     -0.23%   -0.24%
  SPASS cnf.c          -0.30%        -0.27%     -0.13%   -0.37%

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+5-3llvm/include/llvm/Transforms/IPO/Attributor.h
+5-31 files

LLVM/project bdf4eba — llvm/lib/Transforms/InstCombine InstCombineSimplifyDemanded.cpp, llvm/test/Transforms/InstCombine simplify-demanded-fpclass-fptrunc.ll simplify-demanded-fpclass-fptrunc-round.ll

[InstCombine] Fix demanded classes for fptrunc/fptrunc_round (#240523)

Fixes `simplifyDemandedUseFPClassFPTrunc` so that `bf16 = fptrunc(f32)`
and `f80 = fptrunc(f128)` both demand a `fcSubnormal` source for a
`fcNormal` result. This is because `bf16 =
fptrunc(float32-max-subnormal)` rounds up to `bfloat16-min-normal`.

This PR also adds non-trivial test coverage for `fptrunc.round`.

AI Disclosure:
I used Claude Opus 5 to help write the tests.
DeltaFile
+612-0llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fptrunc-round.ll
+238-0llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-fptrunc.ll
+17-4llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+867-43 files

LLVM/project 44d0e05 — llvm/lib/Transforms/InstCombine InstCombineSimplifyDemanded.cpp, llvm/test/Transforms/InstCombine simplify-demanded-fpclass-rounding-intrinsics.ll

 [InstCombine] Correctly handle input denormal modes for roundToIntegral subnormal folds (#238204)

Fixes https://github.com/llvm/llvm-project/issues/237855

Corrects input denormal handling for the subnormal and copysign folds
for the `roundToIntegral` family of functions. Also adds test coverage
for these folds.
DeltaFile
+751-0llvm/test/Transforms/InstCombine/simplify-demanded-fpclass-rounding-intrinsics.ll
+9-5llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+760-52 files

LLVM/project 987cfaa — clang/lib/CIR/CodeGen CIRGenModule.cpp, clang/test/CIR/CodeGen ctor-alias-prev-decl.cpp unnamed-addr.cpp

[CIR] Do not assume function aliases are dso_local under PIC (#234753)

For PIC code that is not a PIE, shouldAssumeDSOLocal marks a function
dso_local when it can use a local alias, as classic codegen does.
Classic applies that only to real functions, never to aliases. CIR
represents a function alias as a FuncOp with an aliasee, so the check
now skips aliases. The flag does not reach LLVM IR yet, because MLIR's
translation drops dso_local on aliases. #234012 fixes that.

Assisted-by: Cursor / claude-opus-5.5
DeltaFile
+22-4clang/test/CIR/CodeGen/attr-alias.c
+4-4clang/test/CIR/CodeGenHIP/hip-weak-alias.hip
+3-3clang/test/CIR/CodeGen/unnamed-addr.cpp
+3-3clang/test/CIR/CodeGen/attr-alias-no-proto.c
+2-1clang/lib/CIR/CodeGen/CIRGenModule.cpp
+1-1clang/test/CIR/CodeGen/ctor-alias-prev-decl.cpp
+35-164 files not shown
+39-2010 files

LLVM/project 65ed5b5 — mlir/include/mlir/Dialect/GPU/IR GPUOps.td, mlir/test/Dialect/GPU side-effects.mlir bufferization-buffer-deallocation.mlir

[mlir][gpu] Declare memory effects on gpu.launch_func (#234427)
DeltaFile
+20-1mlir/test/Dialect/GPU/bufferization-buffer-deallocation.mlir
+14-0mlir/test/Dialect/GPU/side-effects.mlir
+2-0mlir/include/mlir/Dialect/GPU/IR/GPUOps.td
+36-13 files

LLVM/project b23f7aa — llvm/test/CodeGen/X86 vector-deinterleave7-i16.ll vector-deinterleave8-i64.ll

Merge branch 'main' into users/chinmaydd/builtin-convert-from-arbitrary-fp
DeltaFile
+29,293-0llvm/test/CodeGen/X86/vector-interleave7-i16.ll
+29,228-0llvm/test/CodeGen/X86/vector-interleaved7-i8.ll
+27,225-0llvm/test/CodeGen/X86/vector-interleave7-i32.ll
+26,140-0llvm/test/CodeGen/X86/vector-deinterleave7-i8.ll
+25,861-0llvm/test/CodeGen/X86/vector-deinterleave8-i64.ll
+25,769-0llvm/test/CodeGen/X86/vector-deinterleave7-i16.ll
+163,516-014,719 files not shown
+1,253,436-212,86114,725 files

LLVM/project 4bf3bdf — libcxx/include/__pstl/backends libdispatch.h, llvm/include/llvm/IR IntrinsicsHexagonDep.td

Merge branch 'main' into users/arsenm/arm/gprsp-not-allocatable
DeltaFile
+2,968-0llvm/test/CodeGen/Mips/GlobalISel/llvm-ir/is_fpclass.ll
+2,305-0llvm/lib/Target/Hexagon/HexagonDepInstrInfo.td
+814-0llvm/test/MC/Hexagon/HexagonTestWriter/v85_hlx.s
+742-0llvm/include/llvm/IR/IntrinsicsHexagonDep.td
+0-465libcxx/include/__pstl/backends/libdispatch.h
+94-255llvm/lib/Transforms/IPO/SampleProfile.cpp
+6,923-720262 files not shown
+12,515-4,725268 files

LLVM/project 6810032 — clang/include/clang/Basic Builtins.td, clang/test/TableGen target-builtins-prototype-parser.td

[clang][Builtins] West Const (#240926)

Make these more consistent with the rest of the code base, despite not
documenting the preference in the style guide. The builtins emitter
needs an update as a result.

Link:
https://github.com/llvm/llvm-project/pull/231696#discussion_r4492428422
DeltaFile
+139-139clang/include/clang/Basic/Builtins.td
+75-84clang/utils/TableGen/ClangBuiltinsEmitter.cpp
+42-0clang/test/TableGen/target-builtins-prototype-parser.td
+256-2233 files

LLVM/project 4cbeda2 — llvm/lib/Transforms/IPO AttributorAttributes.cpp

Attributor: Query the memory effects of a call site once (#240725)

Instead of separately checking mayRead / mayWrite, directly compute
the full memory effects.

attributor-light is 0.1-0.25% faster (callgrind).

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+4-3llvm/lib/Transforms/IPO/AttributorAttributes.cpp
+4-31 files

LLVM/project 007fead — llvm/test/CodeGen/Mips newpm-pipeline.ll

[Mips] Update newpm-pipeline.ll after #235051 (#240924)

#235051 dropped the emit-debug-entry-values parameter from the printed
live-debug-values pass and updated the X86 and RISC-V pipeline tests,
but the Mips NewPM pipeline test had gained checks for it in the
meantime, so it fails on main.

Assisted-by: Claude Opus 5.5
DeltaFile
+3-3llvm/test/CodeGen/Mips/newpm-pipeline.ll
+3-31 files

LLVM/project 11b2942 — llvm/lib/Target/AMDGPU AMDGPUInstCombineIntrinsic.cpp, llvm/test/Transforms/InstCombine/AMDGPU amdgcn-demanded-vector-elts.ll

[AMDGPU] Reduce resource align when shrinking buffer loads

Since the `align` on buffer intrinsics includes the offset argument,
the demand, `simplifyAMDGCNMemoryIntrinsicDemanded` needs to account
for the value added to that offset, which might reduce the alignment
of the load.

AI disclosure: Claude wrote the code, I looked at it and wrote the
commit message.

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+14-2llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp
+5-5llvm/test/Transforms/InstCombine/AMDGPU/amdgcn-demanded-vector-elts.ll
+19-72 files

LLVM/project f0d4b64 — llvm/lib/Target/AMDGPU GCNHazardRecognizer.cpp

Fix comment again
DeltaFile
+0-1llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
+0-11 files

LLVM/project 36c964e — mlir/include/mlir/Interfaces MemorySlotInterfaces.td, mlir/lib/Interfaces MemorySlotInterfaces.cpp

[mlir][mem2reg] Allow memory operations to own wrapped blocking uses (#233705)

Allow PromotableMemOpInterface operations to own blocking uses of a
wrapped memory access, enabling Mem2Reg to promote loads and stores
through the wrapper. Add Test dialect coverage for supported and
rejected cases.

This is to extend mem2reg mechanism to handle masked
trasnfer_read/write, where mask op uses region just to embed one op. See
follow-up PR for the interface usage:
https://github.com/llvm/llvm-project/pull/234251

assisted-by-claude

---------

Co-authored-by: Claude Opus 5.5 (1M context) <noreply at anthropic.com>
DeltaFile
+160-0mlir/test/Transforms/Mem2Reg/mem2reg.mlir
+64-0mlir/test/lib/Dialect/Test/TestOpDefs.cpp
+23-4mlir/lib/Transforms/Mem2Reg.cpp
+25-0mlir/lib/Interfaces/MemorySlotInterfaces.cpp
+22-0mlir/test/lib/Dialect/Test/TestOps.td
+20-0mlir/include/mlir/Interfaces/MemorySlotInterfaces.td
+314-41 files not shown
+320-57 files

LLVM/project 0488f17 — llvm/test/Transforms/InstCombine/AMDGPU amdgcn-demanded-vector-elts.ll

[AMDGPU] Pre-commit tests for buffer load shrinking with align

Buffer load demanded elements analysis isn't shrinking the `align`
annotated on the intrinsic correctly.

AI disclosure: Claude wrote these, I wrote this message

Co-Authored-By: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+78-0llvm/test/Transforms/InstCombine/AMDGPU/amdgcn-demanded-vector-elts.ll
+78-01 files

LLVM/project 6543651 — flang/test/Lower/OpenMP depend-iterator.f90, mlir/lib/Target/LLVMIR/Dialect/OpenMP OpenMPToLLVMIRTranslation.cpp

[mlir][flang][OpenMP] Honor inclusive iterator bounds in translation

Translation of omp.iterator ignored the `inclusive` flag and always treated
the upper bound as inclusive, so `(%c1 to %c5 step %c1)` produced five
iterations instead of four.

Compute each range's trip count according to the flag, and document that a
range excludes its upper bound unless `inclusive` is specified. Flang now
marks the iterators it creates as `inclusive`, so its DEPEND and AFFINITY
lists are unchanged.

Translation flattens all ranges into one loop and recovers each iterator
value by dividing by its range's trip count. An empty range makes the loop
run zero times, but with constant bounds the body still contained a division
by zero. Divide by one in that case; the body only runs when every trip
count is nonzero, so results are unchanged. Equal bounds now form an empty
range unless `inclusive` is set, which makes this case more common.

Assisted with Claude Opus 5.5.
DeltaFile
+137-13mlir/test/Target/LLVMIR/openmp-iterator.mlir
+25-25flang/test/Lower/OpenMP/depend-iterator.f90
+15-7mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+16-3mlir/test/Dialect/OpenMP/iterator-empty.mlir
+7-7mlir/test/Target/LLVMIR/openmp-iterator-wide.mlir
+6-6mlir/test/Target/LLVMIR/openmp-iterator-multi-block.mlir
+206-616 files not shown
+235-7112 files

LLVM/project 040f7db — libc/test/UnitTest LibcTest.h, libc/test/src/__support integer_to_string_test.cpp

[libc][test][NFC] Align typed test macros and names with GoogleTest (#240608)

LibcTest's typed test support used 3-argument TYPED_TEST and
TYPED_TEST_F
macros, testing::TypeList, ParamType, and manual REGISTER_TYPE_NAME
specializations. GoogleTest instead uses testing::Types,
TYPED_TEST_SUITE,
and a 2-argument TYPED_TEST macro that exposes TypeParam.

Align LibcTest and its typed unit tests with GoogleTest's macro
signatures
and type names so typed tests compile unchanged against either backend.
Naming the GetTypeName template parameter TypeParam produces
"[TypeParam = ...]" directly from __PRETTY_FUNCTION__ without
<typeinfo>,
making the unused REGISTER_TYPE_NAME macro unnecessary.

Part of #91630

Assisted-by: Gemini
DeltaFile
+57-78libc/test/UnitTest/LibcTest.h
+58-65libc/test/src/__support/printf_core/converter_test.cpp
+57-61libc/test/src/__support/printf_core/parser_test.cpp
+48-45libc/test/src/__support/integer_to_string_test.cpp
+39-41libc/test/src/__support/printf_core/writer_test.cpp
+28-31libc/test/src/__support/wchar/string_converter_test.cpp
+287-32111 files not shown
+515-47617 files

LLVM/project cbc7d9d — llvm/include/llvm/Transforms/IPO Attributor.h, llvm/lib/Target/AMDGPU AMDGPUAttributor.cpp

Attributor: Test the allowed kinds of abstract attributes with a bit mask (#240914)

The set of enabled AAs was previously a dense set of the attribute ID
pointers which were constructed every run and have many hash table
collisions. Replace it with a compile time bitmask and array. The
kinds declared in Attributor.h are tested with a compile-time computed
bitmask and other kinds declared in AMDGPUAttributor use the array.

CTMark instructions:u with -attributor-enable=light changes by O3
-0.07%,
ThinLTO -0.09%. attributor-light is 0.7-4.4% faster (callgrind).

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+92-3llvm/include/llvm/Transforms/IPO/Attributor.h
+22-9llvm/lib/Transforms/IPO/Attributor.cpp
+21-9llvm/lib/Target/AMDGPU/AMDGPUAttributor.cpp
+135-213 files

LLVM/project 9fc5379 — llvm/lib/Target/AMDGPU SIFoldOperands.cpp, llvm/test/CodeGen/AMDGPU si-fold-operands-lshl-add.ll si-fold-operands-lshl-add.mir

[AMDGPU] Fold shift-add with zero addend to a shift (#234631)

Fold `V_LSHL_ADD_U32_e64` with a zero addend into `V_LSHLREV_B32_e64` in
`SIFoldOperands`. Handle both immediate and materialized zero addends.

This allows subsequent instruction shrinking to select the 32-bit
encoding when the operands permit it. This pattern occurs in vLLM
UltraQuant attention and TurboQuant cache-store kernels on gfx950,
saving four bytes in each tested specialization.

Add tests for immediate and materialized zero, scalar data, dynamic
shift amounts, and a nonzero addend.
DeltaFile
+95-0llvm/test/CodeGen/AMDGPU/si-fold-operands-lshl-add.mir
+32-0llvm/test/CodeGen/AMDGPU/si-fold-operands-lshl-add.ll
+17-0llvm/lib/Target/AMDGPU/SIFoldOperands.cpp
+144-03 files