[CIR] Add support for atomic-to-non-atomic cast (#193784)
This patch adds support for atomic-to-non-atomic casts in CIR.
Related to #192319 .
Assisted-by: Github Copilot / GPT-5.4
[RISCV] Expand vp.shl, vp.lshr, vp.ashr (#193603)
Part of the work to remove trivial VP intrinsics from the RISC-V
backend, see
https://discourse.llvm.org/t/rfc-remove-codegen-support-for-trivial-vp-intrinsics-in-the-risc-v-backend/87999
This splits off 3 intrinsics from #179622. The codegen is left in for
now as other places can generate those nodes. performVP_TRUNCATECombine
needs to be updated to match the plain non-VP node when forming vaaddu.
[SCEVExp] Use Builder.CreateBinOp in InsertBinOp. (#154148)
SCEVExpander's builder already uses InstSimplifyFolder. Use it to
construct binary ops via CreateBinOp instead of BinaryOperator::Create.
This helps to simplify away a few more instructions during SCEV
expansion.
PR: https://github.com/llvm/llvm-project/pull/154148
[flang][OpenMP] Clear branch labels in all program units (#194152)
The semantic check for branching in or out of an OpenMP construct did
not reset its label information in some cases, leading to false positive
error messages in valid Fortran code.
[flang][OpenMP] Clear branch labels in all program units
The semantic check for branching in or out of an OpenMP construct
did not reset its label information in some cases, leading to false
positive error messages in valid Fortran code.
[GlobalISel] Remove duplicate patterns. NFC (#194131)
This looks like a merge conflict from #194010 cause a duplicate line to
appear, causing warning about constant_fold_cast_op and fabs_fneg_fold
being used multiple times.
[ARM][MVE] Transform sext and zext of i1 buildvector (#192519)
This helps by avoiding the difficult predicate generation in scalar, using
natural extends to all-zero or all-ones in scalar as opposed to re-extending
them in vector registers.
[Clang][RISCV] Introduce OFP8(E4M3, E5M2) RISC-V vector types (#191349)
Currently there's no OFP8 scalar type supported in both clang and llvm
type system, the vector OFP8 RVV types are lowered to i8 llvm types for
now.
The reason to support only clang type is because of intrinsics
definition capability. If we make the clang type also using uint8 vector
types, it's not able to distinguish between E4M3 type and E5M2 type so
that we have to append additional type suffix to it.
intrinsic spec update pr:
https://github.com/riscv-non-isa/riscv-rvv-intrinsic-doc/pull/432
vreinterpret intrinsic PR:
https://github.com/llvm/llvm-project/pull/191626
DONT MERGE: We have to get the intrinsic spec merged first to be able to
make zvfofp8min change
[X86] dag-topological-sort.ll - add additional test coverage (#194135)
The PR134602 test codegen will converge after #193987
Ensure we test with -combiner-topological-sorting=false as well
[CIR] Upstream missing support for fixed point literal (#193445)
- Upstream CIR CodeGen for fixed point builtin types `_Fract`, `_Accum`
and `_Sat`.
- Upstream CIR CodeGen for fixed point literal
- Part of task https://github.com/llvm/llvm-project/issues/192316
[SLP]Initial support for non-power-of-2 vectorization
Enables non-power-of-2 vectorization within the SLP tree. The root nodes
are still required to be power-of-2, will be addressed in a follow-up
patches.
Reviewers: bababuck, RKSimon, preames, hiraditya, HanKuanChen
Pull Request: https://github.com/llvm/llvm-project/pull/151530
[libc++] Remove full header path from assertion messages (#190060)
This creates additional bloat in programs or debug info, without much
additional value beyond just the file name.
Fixes #190058
[libc++] Implement P1899 `ranges::stride_view` (#65200)
Implement `ranges::stride_view` in libc++. This PR was migrated from
Phabricator (https://reviews.llvm.org/D156924).
Closes #105198
Co-authored-by: Louis Dionne <ldionne.2 at gmail.com>
Co-authored-by: A. Jiang <de34 at live.cn>