[CI] install packaging before running lldb tests on Windows (#201112)
https://ci-external.swift.org/job/lldb-windows/job/main/ is failing
because lldb API tests require the `packaging` module.
This patch installs it before running the `check-lldb` target.
[AMDGPU] Fix LowerDIVREM24 lowering for the unsigned case
The code was not properly checking that the operands were
24-bit integers for the unsigned case.
[llvm][RISCV][MC] Fix arithmetic error in pseudo parsing (#200217)
When arithmetic was used in RISCV pseudo instructions, like lla, the
custom parsing breaks the associativity of the operators by parsing the
entire remainder of an expression. This would lead to scenarios where we
would parse `top - 0x100 -0x10` as `top - (0x100 -0x10)` and yield the
wrong offset (`0xF0`(wrong) vs. `0x110`(correct)).
Instead, don't advance the parser and just examine the token to
determine if it's an identifier and if we should handle this case or
bail out. In cases we do handle, just use `parseExpression()`, which
will handle this correctly.
[LifetimeSafety] Refactor buildOriginFlowChain to use PImpl pattern (#201071)
Move `buildOriginFlowChain` into `AnalysisImpl`, removing `FactManager`
parameter
[OFFLOAD][L0] Move dataFence logic to L0Queue (#201046)
The dataFence device operation logic was still on L0Device. With this all the operations working on command lists have their logic consolidated in L0Queue.
[VectorUtils] Replace maskIsAll{Zero,One}OrUndef with PatternMatch (#200040)
As part of the ongoing effort to deprecate UndefValue, and also to take
better advantage of pattern matching, eliminate the VectorUtils
functions `maskIsAllZeroOrUndef`/`maskIsAllOneOrUndef` and replace them
with new matchers `m_ZeroOrPoison` and `m_AllOnesOrPoison`.
The new matchers are simply `m_CombineOr` on `m_Zero`/`m_AllOnes` and
`m_Poison`. `m_Zero` and `m_AllOnes` already match vectors where some
(but not all) elements are poison, so these matchers were created to
also match the case where all elements are poison.
This affects InstCombine/InstSimplify with a mask containing `undef` for
the intrinsics `llvm.masked.load`, `llvm.masked.store`,
`llvm.masked.gather`, and `llvm.masked.scatter`.
Some relevant tests were altered to use poison instead of undef, and
test coverage for masked loads/stores with poison was increased.
[AMDGPU] RewriteMFMAFormStage: fix SpillCost early-return missing reset (#199708)
Extract resetRewriteCandsToVGPR() to consolidate the logic that restores
MFMA candidates from AGPR form back to VGPR form after cost analysis.
getRewriteCost() returned early when SpillCost > 0 without resetting the
AGPR-form register classes set by initHeuristics(), leaving MRI in a
corrupted state. Call resetRewriteCandsToVGPR() on both the early-return
path and the normal exit path to fix this.
Also change getRewriteCost() and rewrite() to take ArrayRef instead of
const std::vector& for cleaner API.
---------
Co-authored-by: Claude Sonnet 4 (1M context) <noreply at anthropic.com>
devel/libffi33: fix build on powerpc64le
ld: error: version script assignment of 'LIBFFI_BASE_7.0' to symbol 'ffi_type_longdouble' failed: symbol not defined
[X86] Merge BT with a matching BTR/BTS/BTC (#193612)
Fixes #165291.
BTR/BTS/BTC set CF from the pre-operation bit value, so a subsequent BT
on the same source and bit index produces the same CF and is redundant.
We were emitting both.
```ll
define i1 @btr_eq_i32(ptr %word, i32 %position) nounwind {
%ofs = and i32 %position, 31
%bit = shl nuw i32 1, %ofs
%mask = xor i32 %bit, -1
%ld = load i32, ptr %word
%test = and i32 %ld, %bit
%res = and i32 %ld, %mask
%cmp = icmp eq i32 %test, 0
store i32 %res, ptr %word
ret i1 %cmp
[37 lines not shown]
devel/rye: Remove expired port
2026-06-01 devel/rye: Rye is no longer developed. All users should migrate to uv, the successor project from the same maintainers, which is actively maintained and much more widely used.
[SPIR-V] Select int-to-int convert opcode from source signedness (#201116)
OpSConvert/OpUConvert sext/zext is determined by the source operand, not
the destination type. Discovered in
https://github.com/llvm/llvm-project/pull/200791/changes#r3341230426
Fix a regression caused by #200791
[OpenMP][OMPT] Remove unused var in archer (#201140)
Working on enabling the build of OpenMP and Offload in pre-merge checks
surfaced this unused var and pre-merge checks run with -Werror.
As I did not see where it should be used, remove the variable to address
the warning.
The pre-merge running into the warning as error is
https://github.com/llvm/llvm-project/actions/runs/26826349862/job/79094823845?pr=174955