IR: Remove llvm.convert.to.fp16 and llvm.convert.from.fp16 intrinsics (#174484)
These are long overdue for removal. These were originally a hack
to support loading half values before there was any / decent support
for the half type through the backend. There's no reason to continue
supporting these, they're equivalent to fpext/fptrunc with a bitcast.
SelectionDAG stopped translating these directly, and used the
bitcast + fp cast since f7a02c17628e825, so there's been no reason
to use these since 2014.
[mlir][tosa] Add support for assert equal shape op (#176900)
Adds support for assert_equal_shape operation after spec change:
https://github.com/arm/tosa-specification/commit/575a50016de50d227eb517775eb4e7b137421fa1
This includes:
- Operator definition
- Tests
Change-Id: I6652bbcbd5e3716f140681b9d73ef8940564d7d3
Signed-off-by: Iliyan Georgiev <Iliyan.Georgiev at arm.com>
[InstCombine] fold addrcast+load through selects (#176352)
Add support for:
load(addrspacecast(select(Cond, &V1, &V2))) =>
select(Cond, load(addrspacecast(&V1)), load(addrspacecast(&V2)))
Note: alive does not support addrspacecasts and thus proofs are omitted.
[clang] Implement __builtin_stdc_rotate_left, __builtin_stdc_rotate_right (#160259)
This patch adds type-generic rotate builtins that accept any unsigned
integer
type. These builtins provide:
- Support for all unsigned integer types, including _BitInt
- Constexpr evaluation capability
- Automatic normalization of rotation counts modulo the bit-width
- Proper handling of negative rotation counts (converted to equivalent
positive rotations in the opposite direction)
- Implicit conversion support for both arguments for
types with conversion operators.
The builtins follow C23 naming conventions.
Resolves https://github.com/llvm/llvm-project/issues/122819
[flang][acc][NFC] move recipe generation in FIROpenACCUtils (#176924)
Move the code that generates private, firstprivate, and reduction from
Lower/OpenACC.cpp to Optimizer/OpenACC/Support/FIROpenACCUtils.cpp so
that it can be used in passes too.
[AArch64] Protect against unexpected SIGN_EXTEND_INREG in performBuildShuffleExtendCombine (#176733)
Apparently this code is only expecting shuffle of SIGN_EXTEND or
ZERO_EXTEND, but can sometimes see a SIGN_EXTEND_INREG of the second
vector operand. Add a check that the second operand has the same
constraints as the first.
Fixes #176314
[CoroFrame] Save frame ptr in entry funclets (#176766)
The logic deciding whether to save the frame pointer using an Alloca was
flawed: it must be the opposite of deciding whether to use EntryValue,
since those are the only methods allowing debuggers to find the frame
pointer (and therefore variables) reliably. This commit fixes the logic.
[clang-tidy][NFC] Enable RemoveSemicolon in clang-format config (#176926)
Welcome everyone to YAFI (yet another format improvements) in 2026:)
Starting from `clang-format-16` we have quite useful option
`RemoveSemicolon`.
InstCombine: Implement SimplifyDemandedFPClass for fma
This can't do much filtering on the sources, except for nans.
We can also attempt to introduce ninf/nnan.