LLVM/project ffeb9c1clang/include/clang/ScalableStaticAnalysisFramework/Core/TUSummary TUSummaryBuilder.h TUSummaryExtractor.h, clang/lib/ScalableStaticAnalysisFramework/Frontend TUSummaryExtractorFrontendAction.cpp

[clang][ssaf][NFC] Make SSAFOptions available in Builders and Extractors (#204684)

Now that we have SSAFOptions, it would make it a lot more ergonomic if
it was accessible from builders and extractors.
This PR does exactly that.

Part of rdar://179151023

Co-authored-by: Jan Korous <jkorous at apple.com>
Co-authored-by: Claude Opus 4.7 <noreply at anthropic.com>
DeltaFile
+7-3clang/unittests/ScalableStaticAnalysisFramework/Registries/SummaryExtractorRegistryTest.cpp
+6-3clang/lib/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendAction.cpp
+7-1clang/include/clang/ScalableStaticAnalysisFramework/Core/TUSummary/TUSummaryBuilder.h
+3-1clang/unittests/ScalableStaticAnalysisFramework/Analyses/UnsafeBufferUsage/UnsafeBufferUsageTest.cpp
+3-1clang/unittests/ScalableStaticAnalysisFramework/Analyses/PointerFlow/PointerFlowTest.cpp
+4-0clang/include/clang/ScalableStaticAnalysisFramework/Core/TUSummary/TUSummaryExtractor.h
+30-94 files not shown
+41-1310 files

LLVM/project c1bc848clang/lib/CodeGen CGCall.cpp

[Clang][ABI] Validate consistency between ABI lowering implementation (#203281)

If the LLVM ABI library is used, and assertions are enabled, compute the
ABI both using Clang's implementation the the LLVM ABI library, and
verify that the results are the same.
DeltaFile
+117-3clang/lib/CodeGen/CGCall.cpp
+117-31 files

LLVM/project 639c5a0libc/src/__support/OSUtil/linux/syscall_wrappers ioctl.h CMakeLists.txt, libc/src/sys/ioctl/linux ioctl.cpp

[libc] Introduce the ioctl syscall wrapper and port all callers (#204640)

This patch adds an ioctl syscall wrapper in linux_syscalls namespace and
migrates all direct SYS_ioctl calls to use it.

To handle the polymorphic nature of ioctl arguments (where some commands
expect pointers, some expect scalar integers like queue_selector, and
some expect no argument at all), I use a helper struct IoctlArg with
implicit constructors. This avoids template bloat and overload
ambiguities (particularly around literal 0) while keeping call sites
clean.

Assisted by Gemini.
DeltaFile
+49-0libc/src/__support/OSUtil/linux/syscall_wrappers/ioctl.h
+7-14libc/src/termios/linux/CMakeLists.txt
+6-9libc/src/sys/ioctl/linux/ioctl.cpp
+5-8libc/src/unistd/linux/isatty.cpp
+13-0libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
+5-7libc/src/termios/linux/tcgetattr.cpp
+85-388 files not shown
+113-7614 files

LLVM/project 5765847orc-rt/include/orc-rt SPSAllocAction.h AllocAction.h, orc-rt/unittests AllocActionTest.cpp

[orc-rt] Add return serialization to AllocActionFunction::handle. (#205271)

Add a Serializer template parameter to AllocActionFunction::handle and
apply it to the handler's return value before forwarding as the action
result. This lets handler authors return types other than
WrapperFunctionBuffer.

For SPS, AllocActionSPSSerializer is the default Serializer used by
SPSAllocActionFunction::handle. It accepts either:
- WrapperFunctionBuffer (identity pass-through, the existing behavior),
or
- Error (success → empty WFB; failure → out-of-band-error WFB carrying
toString(Err)).

Adds AllocActionTest coverage for both Error-return paths.
DeltaFile
+36-0orc-rt/unittests/AllocActionTest.cpp
+17-1orc-rt/include/orc-rt/SPSAllocAction.h
+4-3orc-rt/include/orc-rt/AllocAction.h
+57-43 files

LLVM/project 19c5390llvm/include/llvm/TargetParser AMDGPUTargetParser.h, llvm/lib/Target/AMDGPU AMDGPUHSAMetadataStreamer.h

AMDGPU: Rename AMDGPUTargetID to TargetID

The AMDGPU prefix is redundant with the namespace.

Co-Authored-By: Claude <noreply at anthropic.com>
DeltaFile
+8-16llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
+9-10llvm/lib/TargetParser/AMDGPUTargetParser.cpp
+9-9llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
+8-8llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
+4-4llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
+4-4llvm/lib/Target/AMDGPU/AMDGPUHSAMetadataStreamer.h
+42-514 files not shown
+50-5910 files

LLVM/project d555192llvm/include/llvm/TargetParser AMDGPUTargetParser.h, llvm/lib/Target/AMDGPU/AsmParser AMDGPUAsmParser.cpp

AMDGPU: Move AMDGPUTargetID to AMDGPUTargetParser

Move the AMDGPUTargetID class and TargetIDSetting enum from
AMDGPUBaseInfo to AMDGPUTargetParser, making them available in the
MC-independent TargetParser library.

Currently there is this backend implementation, and a second one in
clang. Move this here so in the future the clang copy can be deleted.

Co-Authored-By: Claude <noreply at anthropic.com>
DeltaFile
+22-128llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
+9-108llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h
+107-0llvm/include/llvm/TargetParser/AMDGPUTargetParser.h
+105-0llvm/lib/TargetParser/AMDGPUTargetParser.cpp
+8-8llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
+8-8llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp
+259-2527 files not shown
+276-27913 files

LLVM/project 194da0fclang/include/clang/Frontend SSAFOptions.h CompilerInvocation.h, clang/lib/Frontend CompilerInvocation.cpp

Reland "[clang][ssaf][NFC] Move SSAF flags from FrontendOptions to a dedicated SSAFOptions" (#204798)

Second attempt of #204686

This class will help keeping SSAF options apart from generic
FrontendOptions. It is inspired by AnalyzerOptions.

This way all of these SSAF (and future) options will be at a
centralized place.

In preparation of rdar://179151023
DeltaFile
+27-26clang/unittests/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendActionTest.cpp
+52-0clang/include/clang/Frontend/SSAFOptions.h
+31-1clang/lib/Frontend/CompilerInvocation.cpp
+18-7clang/include/clang/Frontend/CompilerInvocation.h
+13-12clang/lib/ScalableStaticAnalysisFramework/Frontend/TUSummaryExtractorFrontendAction.cpp
+1-23clang/include/clang/Frontend/FrontendOptions.h
+142-693 files not shown
+156-759 files

LLVM/project c492c7dllvm/lib/Target/RISCV RISCVFrameLowering.cpp

[RISCV] Avoid implicit conversions from MCRegister to MCPhysReg. NFC (#205260)
DeltaFile
+8-7llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
+8-71 files

LLVM/project 3d8ca7eorc-rt/include/orc-rt AllocAction.h

[orc-rt] Replace AAHandlerTraits with CallableArgInfo. NFCI. (#205257)

CallableArgInfo provides a superset of AAHandlerTraits functionality, so
we don't need the latter.
DeltaFile
+2-23orc-rt/include/orc-rt/AllocAction.h
+2-231 files

LLVM/project f7ec732flang/lib/Semantics mod-file.cpp, flang/test/Semantics modfile84.f90

Revert "[flang][cuda][openacc] Emit an error when CUDA symbols are imported with CUDA disabled" (#205254)

Reverts llvm/llvm-project#205207
DeltaFile
+0-29flang/lib/Semantics/mod-file.cpp
+0-17flang/test/Semantics/modfile84.f90
+0-462 files

LLVM/project d147ad9llvm/docs ReleaseNotes.md, llvm/lib/Target/RISCV RISCVInstrInfoXqci.td

[RISCV] Update Xqcilo Pseudos (#196422)

This changes the Xqcilo pseudos to instead emit a sequence of
`qc.e.li` followed by a standard load/store annotated with %qc.access.
The new sequence is easier for our linker to relax.

This Change was written with the assistance of AI.
DeltaFile
+148-33llvm/test/MC/RISCV/xqcilo-pseudos-valid.s
+123-8llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
+9-9llvm/test/MC/RISCV/xqcilo-pseudos-invalid.s
+8-7llvm/lib/Target/RISCV/RISCVInstrInfoXqci.td
+1-0llvm/docs/ReleaseNotes.md
+289-575 files

LLVM/project ad72523clang/test/CIR/IR metadata.cir

add metadata verify-roundtrip test
DeltaFile
+43-0clang/test/CIR/IR/metadata.cir
+43-01 files

LLVM/project 6060731flang/lib/Semantics mod-file.cpp, flang/test/Semantics modfile84.f90

Revert "[flang][cuda][openacc] Emit an error when CUDA symbols are imported w…"

This reverts commit a6986f0b929d575728d564cd41bb0f9a6b6fdea4.
DeltaFile
+0-29flang/lib/Semantics/mod-file.cpp
+0-17flang/test/Semantics/modfile84.f90
+0-462 files

LLVM/project cdfd1e0llvm/lib/Passes PassRegistry.def, llvm/lib/Transforms/Scalar SROA.cpp

Patch tryCanonicalizeStructToVector to handle split slice tails (#201434)

We choose a vector alloca over a struct alloca when all users of the
alloca are memory or lifetime intrinsics. But we only accounted for
slices that start in the corresponding partition. We have to also check
that all split slice tails overlapping the partition are memory or
lifetime intrinsics

I also updated the `PassRegistry.def` to include the new pass option
because we forgot to add that.
DeltaFile
+44-0llvm/test/Transforms/SROA/struct-to-vector-subpartition.ll
+14-7llvm/lib/Transforms/Scalar/SROA.cpp
+1-1llvm/lib/Passes/PassRegistry.def
+59-83 files

LLVM/project 53fec04mlir/lib/Dialect/Arith/Transforms IntRangeOptimizations.cpp, mlir/test/Dialect/Arith int-range-opts-crash.mlir

[mlir][arith] Fix APInt bitwidth mismatch crash in int-range-optimizations (#205110)

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

When an op's `areTypesCompatible()` hook accepts integers of different
widths across a region boundary, the range analysis can propagate a
constant range whose APInt bitwidth does not match the IR type of the
destination value.
This caused `IntegerAttr::get` to `assert` in
`maybeReplaceWithConstant`.

Fix by bailing out in `maybeReplaceWithConstant` when the bitwidths
mismatch, and adding the same check to the needsReplacing lambda in
matchAndRewrite.

The second guard is necessary to mirror the existing isIntOrIndex()
guard — without it the pattern claims success without changing the IR,
causing the greedy rewrite driver to loop.


    [14 lines not shown]
DeltaFile
+22-7mlir/lib/Dialect/Arith/Transforms/IntRangeOptimizations.cpp
+14-0mlir/test/Dialect/Arith/int-range-opts-crash.mlir
+36-72 files

LLVM/project de1effcllvm/lib/Target/RISCV RISCVInstrInfoP.td, llvm/test/CodeGen/RISCV rvp-simd-64.ll rvp-simd-32.ll

[RISCV][P-ext] Rename pwcvt/pncvt pseudoinstructions for RV64. (#205227)

We need to add a 'w' to the suffix to indicate it operates on a word and
not a register pair like on RV32. See https://github.com/riscv/riscv-p-spec/pull/303
DeltaFile
+28-18llvm/test/CodeGen/RISCV/rvp-simd-64.ll
+16-16llvm/test/MC/RISCV/rv64p-aliases-valid.s
+8-9llvm/lib/Target/RISCV/RISCVInstrInfoP.td
+4-4llvm/test/CodeGen/RISCV/rvp-simd-32.ll
+56-474 files

LLVM/project 6604679clang/include/clang/CIR/Dialect/IR CIRAttrs.td CIROps.td, clang/lib/CIR/CodeGen CIRGenBuilder.h

[CIR] Add metadata type, attributes, and metadata_as_value op.
DeltaFile
+41-0clang/include/clang/CIR/Dialect/IR/CIRAttrs.td
+40-0clang/lib/CIR/Lowering/DirectToLLVM/LowerToLLVM.cpp
+37-0clang/test/CIR/Lowering/metadata-as-value.cir
+30-0clang/include/clang/CIR/Dialect/IR/CIROps.td
+14-1clang/include/clang/CIR/Dialect/IR/CIRTypes.td
+15-0clang/lib/CIR/CodeGen/CIRGenBuilder.h
+177-11 files not shown
+190-17 files

LLVM/project 4150a78llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes VecPassBase.h, llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes BottomUpVec.cpp TopDownVec.cpp

[SandboxVectorizer] Implement topdown vectorizer

This patch introduces the `top-down-vec` pass to the Sandbox Vectorizer,
adding the ability to traverse use-def chains top-down to discover and
collect vectorization opportunities.

Key changes include:
* TopDownVec Pass: Implemented `TopDownVec` which recursively processes
value bundles top-down, creates vectorization actions (widening, packing,
shuffles), and emits the final vector IR.
* Shared Infrastructure (VecPassBase): Extracted common IR emission logic
out of `BottomUpVec` and into a new shared base class, `VecPassBase`.
Functions for generating vector instructions, handling diamond reuse,
creating shuffles/packs, and collecting dead instructions are now shared
between the bottom-up and top-down vectorizers to prevent code
duplication.
* Pass Registration: Exposed `top-down-vec` in `PassRegistry.def` and
`SandboxVectorizerPassBuilder`, allowing it to be invoked within pass
pipelines via `opt`.

    [3 lines not shown]
DeltaFile
+2-281llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/BottomUpVec.cpp
+262-0llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/TopDownVec.cpp
+257-0llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/VecPassBase.cpp
+121-0llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/Passes/VecPassBase.h
+94-0llvm/test/Transforms/SandboxVectorizer/topdown_vec.ll
+68-9llvm/test/Transforms/SandboxVectorizer/pack.ll
+804-2907 files not shown
+923-34613 files

LLVM/project b0d6d79llvm/lib/Target/AMDGPU AMDGPUISelDAGToDAG.cpp, llvm/test/CodeGen/AMDGPU packed-fp64.ll

[AMDGPU] Select fneg modifier for v2f64 instructions
DeltaFile
+28-17llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
+12-23llvm/test/CodeGen/AMDGPU/packed-fp64.ll
+40-402 files

LLVM/project c91c9fcllvm/include/llvm/Support Allocator.h, llvm/unittests/Support AllocatorTest.cpp

Reland [Allocator] Keep bump pointer at a minimum alignment (#205240)

Reland #203718 (reverted in #205091) by making computation in integer
domain to avoid UB (nullptr + non-zero offset).

Add a `MinAlign` template parameter (default 8, sizeof(size_t) on 64-bit
platforms) so that the common case `Alignment <= MinAlign` can skip
realigning `CurPtr`.

This is achieved by rounding each allocation's size up to MinAlign, so
the bump pointer stays MinAlign-aligned between allocations.

SpecificBumpPtrAllocator::DestroyAll() walks objects at a fixed
sizeof(T) stride and needs tight packing, so it uses MinAlign=1.
(alignof(T) would
pack just as tightly and reuse the default instantiation, but T may be
incomplete here, e.g. `SpecificBumpPtrAllocator<MCSectionELF>`.)

Its `Allocate` still skips the realign: the slab is max_align_t-aligned

    [9 lines not shown]
DeltaFile
+41-17llvm/include/llvm/Support/Allocator.h
+19-0llvm/unittests/Support/AllocatorTest.cpp
+60-172 files

LLVM/project e2765f3llvm/lib/Transforms/IPO OpenMPOpt.cpp, llvm/test/Transforms/Attributor/reduced openmp_opt_constant_type_crash.ll

[OpenMPOpt][Attributor] Selectively seed deglobalization AAs (#198710)

This addresses a compile-time issue observed on a large generated C++
translation unit compiled with `-fopenmp`.

The source code is not OpenMP-heavy. It mainly consists of generated
function-registration wrappers, template instantiations, lambdas, and
small helper functions. However, because the TU is compiled with OpenMP
enabled, `OpenMPOptCGSCCPass` runs and drives Attributor on a module
with many functions.

`OpenMPOpt::registerAAsForFunction` currently eagerly creates the
deglobalization AAs for every function in OpenMP device modules:

* `AAHeapToShared`
* `AAHeapToStack`

Most generated wrapper/helper functions in the motivating workload do
not contain `__kmpc_alloc_shared`, removable allocations, or free-like

    [25 lines not shown]
DeltaFile
+34-13llvm/test/Transforms/Attributor/reduced/openmp_opt_constant_type_crash.ll
+34-10llvm/lib/Transforms/IPO/OpenMPOpt.cpp
+3-3llvm/test/Transforms/OpenMP/single_threaded_execution.ll
+71-263 files

LLVM/project 77879b4llvm/lib/Target/AMDGPU AMDGPUISelLowering.cpp SIISelLowering.cpp, llvm/test/CodeGen/AMDGPU s-barrier-signal-var-gep.ll

[AMDGPU] Fold constant offsets into named barrier addresses

Allow isOffsetFoldingLegal to fold a constant offset into an LDS
named-barrier global, and include the node offset when materializing the
LDS address in LowerGlobalAddress. s_barrier_signal_var on a GEP'd named
barrier now selects the immediate form, matching a bare global and GlobalISel.
With object linking the offset folds into the relocation addend.

Change-Id: I639bc723eb001573585cc05d0ad19f2773054f21
Assisted-by: Cursor
DeltaFile
+11-5llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
+12-1llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+2-5llvm/test/CodeGen/AMDGPU/s-barrier-signal-var-gep.ll
+25-113 files

LLVM/project 261d748llvm/test/CodeGen/AMDGPU s-barrier-signal-var-gep.ll

[AMDGPU] Pre-commit test for constant-offset named barrier signal_var

A GEP into a named-barrier array (&bars[1]) lowers s_barrier_signal_var to
the dynamic m0 form on SelectionDAG, unlike the bare global and GlobalISel.
With object linking it emits a runtime add of the offset instead of folding
it into the relocation addend.

Change-Id: I7cea0dd64d050eb3e2143841e7136355cbb3bc50
Assisted-by: Cursor
DeltaFile
+119-0llvm/test/CodeGen/AMDGPU/s-barrier-signal-var-gep.ll
+119-01 files

LLVM/project 86184abllvm/lib/Target/AMDGPU AMDGPUISelLowering.cpp SIISelLowering.cpp, llvm/test/CodeGen/AMDGPU s-barrier-signal-var-gep-object-linking.ll s-barrier-signal-var-gep.ll

[AMDGPU] Fold constant offsets into named barrier addresses

Allow isOffsetFoldingLegal to fold a constant offset into an LDS
named-barrier global, and include the node offset when materializing the
LDS address in LowerGlobalAddress. s_barrier_signal_var on a GEP'd named
barrier now selects the immediate form, matching a bare global and GlobalISel.
With object linking the offset folds into the relocation addend.

Change-Id: Ie05b8c8cd127604ff174c423a74340fd2de4e405
Assisted-by: Cursor
DeltaFile
+11-5llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
+12-1llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+2-2llvm/test/CodeGen/AMDGPU/s-barrier-signal-var-gep-object-linking.ll
+1-2llvm/test/CodeGen/AMDGPU/s-barrier-signal-var-gep.ll
+26-104 files

LLVM/project b820eb7llvm/test/CodeGen/AMDGPU s-barrier-signal-var-gep.ll s-barrier-signal-var-gep-object-linking.ll

[AMDGPU] Pre-commit test for constant-offset named barrier signal_var

A GEP into a named-barrier array (&bars[1]) lowers s_barrier_signal_var to
the dynamic m0 form on SelectionDAG, unlike the bare global and GlobalISel.
With object linking it emits a runtime add of the offset instead of folding
it into the relocation addend.

Change-Id: I59f0e6fe6a72b4c96c8efb926610f7f2d3833e38
Assisted-by: Cursor
DeltaFile
+59-0llvm/test/CodeGen/AMDGPU/s-barrier-signal-var-gep.ll
+40-0llvm/test/CodeGen/AMDGPU/s-barrier-signal-var-gep-object-linking.ll
+99-02 files

LLVM/project d853c05clang/include/clang/CIR/Dialect/Builder CIRBaseBuilder.h, clang/lib/CIR/CodeGen CIRGenBuiltin.cpp CIRGenExpr.cpp

[CIR] Add support for __builtin_nontemporal_store and __builtin_nontemporal_load (#197872)

Add nontemporal attribute to cir.load and cir.store ops.
DeltaFile
+77-0clang/test/CIR/CodeGenBuiltins/builtin-nontemporal.cpp
+12-8clang/lib/CIR/Dialect/Transforms/FlattenCFG.cpp
+18-2clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
+8-11clang/lib/CIR/CodeGen/CIRGenExpr.cpp
+9-7clang/include/clang/CIR/Dialect/Builder/CIRBaseBuilder.h
+7-5clang/lib/CIR/CodeGen/CIRGenBuilder.h
+131-3310 files not shown
+161-4716 files

LLVM/project 1cbfe8bllvm/include/llvm/IR GlobalValue.h, llvm/include/llvm/Transforms/Utils AssignGUID.h

Reland #184065
DeltaFile
+61-17llvm/lib/Bitcode/Reader/BitcodeReader.cpp
+45-30llvm/lib/LTO/LTO.cpp
+64-2llvm/lib/IR/Globals.cpp
+49-3llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
+45-5llvm/include/llvm/IR/GlobalValue.h
+49-0llvm/include/llvm/Transforms/Utils/AssignGUID.h
+313-57120 files not shown
+872-416126 files

LLVM/project 9b228b5llvm/lib/Transforms/IPO ThinLTOBitcodeWriter.cpp WholeProgramDevirt.cpp, llvm/test/ThinLTO/X86 devirt_function_alias2.ll

[CFI] Create an external linkage alias instead of promoting internals
DeltaFile
+20-33llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
+20-5llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
+10-7llvm/test/Transforms/ThinLTOBitcodeWriter/comdat.ll
+16-0llvm/lib/Transforms/IPO/LowerTypeTests.cpp
+6-4llvm/test/ThinLTO/X86/devirt_function_alias2.ll
+4-2llvm/test/Transforms/ThinLTOBitcodeWriter/split-vfunc-internal.ll
+76-513 files not shown
+83-569 files

LLVM/project f519bd9llvm/lib/IR Verifier.cpp, llvm/test/Verifier memprof-metadata-bad.ll

[Verifier] Require !callsite with !memprof metadata (#205053)

Fixes: https://github.com/llvm/llvm-project/issues/181237
DeltaFile
+10-6llvm/test/Verifier/memprof-metadata-bad.ll
+3-0llvm/lib/IR/Verifier.cpp
+13-62 files

LLVM/project 8995486llvm/include/llvm/IR IntrinsicsRISCV.td, llvm/lib/Target/RISCV RISCVISelLowering.cpp RISCVInstrInfoP.td

[RISCV][P-ext] packed exchanged add/sub codegen (#203473)

Wire up the already-defined exchanged add/sub instructions
pas/psa/psas/pssa/paas/pasa with llvm.riscv.* intrinsics and isel
patterns.
DeltaFile
+174-0llvm/test/CodeGen/RISCV/rvp-simd-64.ll
+68-2llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+54-0llvm/test/CodeGen/RISCV/rvp-simd-32.ll
+24-0llvm/lib/Target/RISCV/RISCVInstrInfoP.td
+8-0llvm/include/llvm/IR/IntrinsicsRISCV.td
+328-25 files