LLVM/project 04ce25b — llvm/lib/Target/AMDGPU SIPeepholeSDWA.cpp, llvm/test/CodeGen/AMDGPU sdwa-peephole-instr-combine-sel-dst.mir sdwa-peephole-instr-combine-sel-src.mir

[AMDGPU] Fix SDWA selection combining (#218512)

Fix miscompile when the combined SDWA instruction computes a different
value than the two instructions it replaces

- Stop merging dst_sel, because two dst_sel cannot be merged into one
- Stop merging equal high src_sel, because the operand already shifted
its field down to the low bits
- Use the operand sext only when the instruction reads the whole dword,
otherwise keep the instruction sext
DeltaFile
+87-0llvm/test/CodeGen/AMDGPU/sdwa-peephole-instr-combine-sel-src.mir
+35-40llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp
+10-8llvm/test/CodeGen/AMDGPU/sdwa-peephole-instr-combine-sel-dst.mir
+132-483 files

LLVM/project 02f9f41 — llvm/test/Transforms/SLPVectorizer/X86 loop-accumulator-no-reassoc.ll

[SLP][NFC]Add test with incorrect flags propagations, NFC



Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/231526
DeltaFile
+80-0llvm/test/Transforms/SLPVectorizer/X86/loop-accumulator-no-reassoc.ll
+80-01 files

LLVM/project d0a5603 — llvm/include/llvm/Support KnownFPClass.h, llvm/lib/Support KnownFPClass.cpp

[KnownFPClass] Remove propagateDenormal and propagateCanonicalizingSrc (#229898)

Removes `propagateDenormal` and `propagateCanonicalizingSrc` since there
are no remaining in-tree uses for these functions, and because there are
no unit tests for these functions.

https://github.com/llvm/llvm-project/pull/225904 removes the last
remaining in-tree uses for
`propagateDenormal` and `propagateCanonicalizingSrc`, which was only
used to handle the special case of `ldexp(x, 0) --> x`.

It may be worth exploring re-adding these functions back in the future,
as they are non-trivial to implement.

Also removed references to `propagateCanonicalizingSrc` in the
documentation for `KnownFPClass::canonicalize`.
DeltaFile
+0-37llvm/lib/Support/KnownFPClass.cpp
+1-19llvm/include/llvm/Support/KnownFPClass.h
+1-562 files

LLVM/project d231352 — libc/cmake/modules LLVMLibCObjectRules.cmake

[libc] Make entrypoint object linting incremental (#231311)

The entrypoint lint rules used add_custom_target directly, forcing all
lint targets to re-run every time libc-lint was invoked.

Switch to add_custom_command with a stamp file so targets are only
re-linted when their sources or dependencies change.

Assisted-by: Automated tooling, human reviewed.
DeltaFile
+12-8libc/cmake/modules/LLVMLibCObjectRules.cmake
+12-81 files

LLVM/project 0ffa235 — llvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp, llvm/test/CodeGen/NVPTX insertelt-dynamic.ll

[DAGCombiner] `visitANY_EXTEND` - fold `(aext (freeze (load x)))` -> `(aext (truncate (freeze (extload x))))` (#218454)

Adds the fold `aext (freeze (load x))` (no multiple uses of `load x`
supported with `freeze`):

1. `freeze (extload x )` when one use of `freeze (load x)`
2. `freeze (extload x )` & when multiple uses of `freeze (load x)` are
there, the `freeze (load x)` is replaced with `truncate (freeze (extload
x ))`

while keeping the existing behaviour where `aext (load x)` is folded to:

1. `extload x` when one use of `load x`
2. `extload x` & when multiple uses of `load x` are there, the `load x`
is replaced with `truncate (extload x )`
DeltaFile
+484-602llvm/test/CodeGen/X86/vector-compress.ll
+34-63llvm/test/CodeGen/X86/var-permute-128.ll
+43-53llvm/test/CodeGen/NVPTX/insertelt-dynamic.ll
+37-37llvm/test/CodeGen/X86/midpoint-int.ll
+36-26llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+25-25llvm/test/CodeGen/X86/shift-i512.ll
+659-8066 files not shown
+685-83212 files

LLVM/project c2236e7 — llvm/test/CodeGen/AMDGPU memory-legalizer-single-wave-workgroup-lds-dma-async.ll memory-legalizer-single-wave-workgroup-lds-dma.ll

[NFC][AMDGPU] Pre-commit tests for workgroup to wavefront demotion
DeltaFile
+3,158-0llvm/test/CodeGen/AMDGPU/memory-legalizer-single-wave-workgroup-memops.ll
+181-0llvm/test/CodeGen/AMDGPU/memory-legalizer-single-wave-workgroup-lds-dma.ll
+49-0llvm/test/CodeGen/AMDGPU/memory-legalizer-single-wave-workgroup-lds-dma-async.ll
+3,388-03 files

LLVM/project a7e7b6c — llvm/test/CodeGen/AMDGPU memory-legalizer-single-wave-workgroup-lds-dma-async.ll memory-legalizer-single-wave-workgroup-lds-dma.ll

Remove `amdgpu_kernel` on tests

Needed to add a bit of extra plumbing on some tests so that they still
test the same thing
DeltaFile
+2,021-1,601llvm/test/CodeGen/AMDGPU/memory-legalizer-single-wave-workgroup-memops.ll
+96-123llvm/test/CodeGen/AMDGPU/memory-legalizer-single-wave-workgroup-lds-dma.ll
+15-25llvm/test/CodeGen/AMDGPU/memory-legalizer-single-wave-workgroup-lds-dma-async.ll
+2,132-1,7493 files

LLVM/project 4f738bb — llvm/test/CodeGen/AMDGPU memory-legalizer-single-wave-workgroup-lds-dma-async.ll memory-legalizer-single-wave-workgroup-lds-dma.ll

Add `nounwind` and run tests to the end
DeltaFile
+2,874-3,784llvm/test/CodeGen/AMDGPU/memory-legalizer-single-wave-workgroup-memops.ll
+216-154llvm/test/CodeGen/AMDGPU/memory-legalizer-single-wave-workgroup-lds-dma.ll
+48-30llvm/test/CodeGen/AMDGPU/memory-legalizer-single-wave-workgroup-lds-dma-async.ll
+3,138-3,9683 files

LLVM/project abe9dad — llvm/test/CodeGen/AMDGPU memory-legalizer-single-wave-workgroup-memops.ll

Add more monotonic tests
DeltaFile
+828-0llvm/test/CodeGen/AMDGPU/memory-legalizer-single-wave-workgroup-memops.ll
+828-01 files

LLVM/project b7c1796 — llvm/lib/Target/X86 X86ISelLowering.cpp, llvm/test/CodeGen/X86 vector-shuffle-combining-avx2.ll

[X86] combineX86ShufflesRecursively - bail on any illegal type or if the type is larger than the root (#231505)

MVT now supports various non-pow2 types, so we can't just check for
isSimple() and assert on the sizes anymore - check for legality instead.

Fixes #231453
DeltaFile
+18-0llvm/test/CodeGen/X86/vector-shuffle-combining-avx2.ll
+6-5llvm/lib/Target/X86/X86ISelLowering.cpp
+24-52 files

LLVM/project f4c7eb7 — llvm/lib/Transforms/Utils SimplifyLibCalls.cpp, llvm/test/Transforms/InstCombine float-shrink-compare.ll sqrt.ll

[SimplifyLibCalls] Fold more FP libcalls to intrinsics. (#227697)

Previously SimplifyLibCalls would only replace a subset of libcalls with
intrinsics.

It looks like a number of intrinsics are currently not handled, but that
looks unintentional unless I am missing something.

This patch adds a number of missing intrinsics to be converted.

This should ensure middle-end passes only have to deal with the
intrinsic versions.

Should mostly be NFC end-to-end:
https://github.com/dtcxzyw/llvm-opt-benchmark-nightly/pull/1505.

PR: https://github.com/llvm/llvm-project/pull/227697
DeltaFile
+483-0llvm/test/Transforms/InstCombine/X86/fp-libcall-to-intrinsic.ll
+25-3llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
+5-5llvm/test/Transforms/InstCombine/sqrt.ll
+1-1llvm/test/Transforms/InstCombine/float-shrink-compare.ll
+514-94 files

LLVM/project 80ac744 — libc/cmake/modules LLVMLibCCompileOptionRules.cmake LLVMLibCTestRules.cmake

[libc][cmake] Cache compile options from config and arch to speed up configuration. (#225438)

Caching the results of `_get_compile_options_from_config`,
`_get_compile_options_from_arch`, and `_get_common_compile_options`
reduces redundant option computation during the CMake configuration
stage across hundreds of entrypoint objects. Also adds an early return
in `_get_compile_options_from_flags` when no flags are supplied.
DeltaFile
+43-9libc/cmake/modules/LLVMLibCTestRules.cmake
+15-6libc/cmake/modules/LLVMLibCCompileOptionRules.cmake
+58-152 files

LLVM/project e5f8dce — llvm/docs ReleaseNotes.md, llvm/lib/CodeGen/SelectionDAG ScheduleDAGFast.cpp ScheduleDAGRRList.cpp

[SelectionDAG] Don't unfold a load in the pre-RA schedulers if the unfolded load already exists (#226652)

Fixes #204079

When the pre-RA scheduler has to duplicate a flags-producing instruction
with a folded load (a `CMP32mi` here) to break an EFLAGS interference,
it first tries to unfold it into a plain load and a register operation.
`X86InstrInfo::unfoldMemoryOperand` builds that load with
`getMachineNode`, which CSEs it with a load of the same address that is
already in the DAG, and `TryUnfoldSU` then redirects the chain uses of
the folded node to that existing load. Its chain result already had
users, so one of the redirected `TokenFactor`s became a duplicate of
another one and `ReplaceAllUsesOfValueWith` deleted it, while the
scheduler still had an SUnit pointing at it. The emitter later ran into
the freed node, hence the `<<Deleted Node!>>` in the report.
`ScheduleDAGFast` carries the same code and crashes the same way with
`-pre-RA-sched=fast`.

Both schedulers now give up on unfolding when the unfolded load already

    [7 lines not shown]
DeltaFile
+119-0llvm/test/CodeGen/X86/pr204079.ll
+32-56llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp
+55-0llvm/test/CodeGen/X86/sched-unfold-existing-load.ll
+18-29llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp
+5-2llvm/test/CodeGen/X86/pr37916.ll
+5-0llvm/docs/ReleaseNotes.md
+234-876 files

LLVM/project 10b7dcc — llvm/test/Bitcode compatibility.ll, llvm/test/CodeGen/WebAssembly lower-em-sjlj.ll lower-em-ehsjlj.ll

IR: Add wasm_emscripten_invokecc calling convention keyword

WASM_EmscriptenInvoke had no textual IR spelling and was printed as
cc99. Tests using cc99 as an arbitrary custom convention now use cc1000.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+5-5llvm/test/Transforms/DeadStoreElimination/noop-stores.ll
+3-3llvm/test/Transforms/LowerGuardIntrinsic/with-calling-conv.ll
+3-3llvm/test/CodeGen/WebAssembly/lower-em-exceptions.ll
+2-2llvm/test/CodeGen/WebAssembly/lower-em-sjlj.ll
+2-2llvm/test/CodeGen/WebAssembly/lower-em-ehsjlj.ll
+4-0llvm/test/Bitcode/compatibility.ll
+19-156 files not shown
+30-1712 files

LLVM/project 9ebbef5 — llvm/lib/Target/X86 X86ISelLowering.cpp X86InstrAVX512.td, llvm/test/CodeGen/X86 avx512fp16-novl.ll

[X86][FP16] Widen v8f16/v16f16 compares to 512 bits without VLX (#231437)

With AVX512FP16 but without AVX512VL, v8f16/v16f16 compares are
scalarized: one VUCOMISH and SETcc per element, then the mask is rebuilt
with VPINSRB/VPMOVZXBQ/VPTESTMQ. This also makes the FP logic conversion
in convertIntLogicToFPLogic a loss for scalar f16 compares, which it
combines as v8f16 compares.

Mark v8f16/v16f16 SETCC as Custom whenever AVX512FP16 is available, and
select the resulting CMPM nodes without VLX by widening them to a
512-bit VCMPPH, as is already done for f32 and f64. Strict compares are
left alone, since widening them could raise exceptions for the upper
elements.

The first commit precommits tests in `avx512fp16-novl.ll` (register,
masked and broadcast forms, and a pair of scalar compares); the existing
`select` test also improves.

Split out of #226222, so that its f16 FP logic conversion no longer

    [2 lines not shown]
DeltaFile
+121-34llvm/test/CodeGen/X86/avx512fp16-novl.ll
+5-0llvm/lib/Target/X86/X86InstrAVX512.td
+4-0llvm/lib/Target/X86/X86ISelLowering.cpp
+130-343 files

LLVM/project 5276a2f — llvm/lib/Target/X86 X86ISelLowering.cpp, llvm/test/CodeGen/X86 sjlj-shadow-stack-dead-eflags.ll

Reapply "X86: Mark the dead EFLAGS clobbers in the SjLj expansions (#227271)" (#231476)

This reverts commit 0e802c072a9f7f7845d83e57fd1baea9f5b1cad3.
DeltaFile
+113-0llvm/test/CodeGen/X86/sjlj-shadow-stack-dead-eflags.ll
+10-5llvm/lib/Target/X86/X86ISelLowering.cpp
+123-52 files

LLVM/project e8a1865 — llvm/test/CodeGen/AMDGPU/GlobalISel ashr.ll lshr.ll

[AMDGPU][GISel] Match constrained shifts across register bank copies

The constrained shift PatFrags (csh_mask_* wrapped by cshl_/csrl_/csra_)
supply GISelPredicateCode and are imported into the GlobalISel match
table, but they never fired for a divergent shift. AMDGPURegBankLegalize
places a cross-bank COPY in two positions inside the shape they match:

 - the mask constant stays in the SGPR bank, so a divergent G_AND reads
   it through a COPY and the frag's imm operand is not a G_CONSTANT;
 - a uniform G_AND feeding a divergent shift is copied to the VGPR bank,
   so the shift's amount operand is not a G_AND.

Either way GIM_CheckOpcode rejects the rule before isUnneededShiftMask
is ever consulted, and the redundant v_and_b32 survives into the output.

Set GIIgnoreCopies so the matcher emits GIM_RecordInsnIgnoreCopies for
those operands. A frag's flags only govern how its own operands are
found, so the first position needs the flag on csh_mask_* while the
second needs it on the node holding the shift; split the masked

    [17 lines not shown]
DeltaFile
+2,872-3,442llvm/test/CodeGen/AMDGPU/GlobalISel/fshl.ll
+2,649-3,150llvm/test/CodeGen/AMDGPU/GlobalISel/fshr.ll
+316-0llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-shift-amount-mask.mir
+15-33llvm/test/CodeGen/AMDGPU/GlobalISel/lshr.ll
+48-0llvm/test/CodeGen/AMDGPU/GlobalISel/regbanklegalize-fadd-v2-fneg-lo.ll
+14-32llvm/test/CodeGen/AMDGPU/GlobalISel/ashr.ll
+5,914-6,6575 files not shown
+5,955-6,71211 files

LLVM/project 6cceb8e — offload/include Program.h, offload/libompaccsupport PluginManager.cpp device.cpp

[offload][omp] Load and resolve device binaries through liboffload

Migrate DeviceTy::loadBinary and global/kernel symbol resolution off
GenericPluginTy::load_binary/get_global/get_function onto liboffload's
Program/Symbol API, encapsulated in a new ProgramTy abstraction that wraps
an ol_program_handle_t. Kernel symbol resolution still needs the plugin's
opaque GenericKernelTy* handle for the legacy launch path, obtained via a
temporary __ol_tgt_GetKernelFromSymbol helper rather than new public
liboffload API surface. Removes the now-dead __tgt_device_binary type and
the corresponding GenericPluginTy methods and exports entries.
DeltaFile
+0-75offload/plugins-nextgen/common/src/PluginInterface.cpp
+69-0offload/libompaccsupport/Program.cpp
+43-22offload/libompaccsupport/device.cpp
+47-0offload/include/Program.h
+23-17offload/libompaccsupport/PluginManager.cpp
+0-13offload/plugins-nextgen/common/include/PluginInterface.h
+182-1274 files not shown
+196-13310 files

LLVM/project e7f642e — llvm/lib/Transforms/IPO AttributorAttributes.cpp, llvm/test/Transforms/Attributor invariant-load-indirect-call.ll

Attributor: Don't crash on indirect calls in AAInvariantLoadPointer

AAInvariantLoadPointerCallSiteReturned assumed every call has a known
callee, and dereferenced the missing function of an indirect call. This
crashed on most of CTMark with -attributor-enable=full. Nothing is known
about the result of an indirect call, so give up on it.

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>

DeltaFile
+16-0llvm/test/Transforms/Attributor/invariant-load-indirect-call.ll
+5-1llvm/lib/Transforms/IPO/AttributorAttributes.cpp
+21-12 files

LLVM/project bd4c454 — lldb/source/Plugins/Process/Utility CMakeLists.txt RegisterContextPOSIX_x86.h, llvm/utils/gn/secondary/lldb/source/Plugins/Process/Utility BUILD.gn

[lldb] Split register descriptions from ProcessUtility (#222330)

Register-related code has cluttered up the `Process/Utility` and the
naming `RegisterContext/RegisterInfo` is also inconsistent across
different files. Create a new lldb library `lldbRegisterSupport` to
isolate classes derived from `RegisterInfoInterface`. The classes named
`RegisterContext*` that are derived from `RegisterInfoInterface` will be
renamed to `RegisterInfo*` in following commits.

Move some x86 register descriptions from `RegisterContextPOSIX_x86` to
`RegisterContext_x86` since they are independent from the POSIX
interface.

Assisted-by: GPT
DeltaFile
+200-0lldb/source/Plugins/Process/Utility/RegisterContext_x86.cpp
+0-198lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.cpp
+96-0lldb/source/Plugins/Process/Utility/RegisterContext_x86.h
+0-94lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.h
+39-23llvm/utils/gn/secondary/lldb/source/Plugins/Process/Utility/BUILD.gn
+37-23lldb/source/Plugins/Process/Utility/CMakeLists.txt
+372-33813 files not shown
+427-36819 files

LLVM/project e3650b1 — libc/src/__support/OSUtil/linux/syscall_wrappers CMakeLists.txt sched_yield.h, libc/src/sched/linux CMakeLists.txt sched_yield.cpp

[libc] Use a syscall wrapper for sched_yield
DeltaFile
+33-0libc/src/__support/OSUtil/linux/syscall_wrappers/sched_yield.h
+28-0utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+12-0libc/src/__support/OSUtil/linux/syscall_wrappers/CMakeLists.txt
+4-7libc/src/sched/linux/sched_yield.cpp
+4-2libc/src/sched/linux/CMakeLists.txt
+81-95 files

LLVM/project 48d5cbc — libcxx/include/__utility assume.h, libcxx/include/__vector layout.h

[libc++] Assume separate storage in vector (#225325)

The compiler doesn't know in general that `this` and `this->__begin_`
don't alias. Since we do know that `operator new`'s returned pointers
don't alias anything else we can at least inform the compiler that they
don't alias if we have a `std::allocator`.

Fixes #181249
DeltaFile
+22-0libcxx/test/benchmarks/containers/sequence/sequence_container_benchmarks.h
+16-0libcxx/include/__utility/assume.h
+9-0libcxx/include/__vector/layout.h
+1-0libcxx/test/benchmarks/containers/sequence/vector.bench.cpp
+48-04 files

LLVM/project b5dc304 — lldb/include/lldb/Target Process.h, lldb/source/Target Process.cpp

lldb: Wait for the private state thread before destroying a process

StopForDestroyOrDetach only halted the process if the public or private
state was running. After an SBProcess::Continue from another thread, the
public state can still say stopped, and the private state says stopped as
soon as the next stop arrives, while the private state thread is still
handling it and may decide to resume. DestroyImpl then discarded thread
plans concurrently with it, which hit the "Can't pop the base thread
plan" assert.

Let the private state thread finish its pending events first, and use
the state it last handled instead of the private state.

This fixes the flaky test_sb_api_listener_resume, so re-enable it on
Linux. Under heavy load it failed 10 of 1344 runs before and 0 of 4416
after. Keep it disabled on Windows until verified there (#231113).

Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
DeltaFile
+18-2lldb/source/Target/Process.cpp
+4-0lldb/include/lldb/Target/Process.h
+0-1lldb/test/API/api/multithreaded/TestMultithreaded.py
+22-33 files

LLVM/project 20d41fe — libcxx/include/__algorithm search_n.h, libcxx/test/std/algorithms/alg.nonmodifying/alg.search search_n.pass.cpp ranges.search_n.pass.cpp

[libc++] Fix search_n with an invalid count (#223747)

search_n would incorrectly compute pointer offsets based on the
user-provided count, which wasn't checked for being negative. This patch
adds checks for negativity to prevent computing and accessing
potentially out-of-bounds pointers.
DeltaFile
+11-5libcxx/include/__algorithm/search_n.h
+16-0libcxx/test/std/algorithms/alg.nonmodifying/alg.search/ranges.search_n.pass.cpp
+14-0libcxx/test/std/algorithms/alg.nonmodifying/alg.search/search_n.pass.cpp
+41-53 files

LLVM/project be52f71 — llvm/lib/Transforms/InstCombine InstCombineCLOptions.td InstCombineCasts.cpp

[InstCombine] Move type evaluation depth limit to TableGen options (#231408)

Follow up to #217879 per review. Move
instcombine-max-type-eval-depth to TableGen options.
DeltaFile
+16-13llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
+2-0llvm/lib/Transforms/InstCombine/InstCombineCLOptions.td
+18-132 files

LLVM/project cc84d6a — llvm/lib/Support KnownFPClass.cpp, llvm/test/Transforms/Attributor nofpclass-bitcast-int-to-fp-x87.ll

[KnownFPClass] Refine `KnownFPClass::bitcast` deductions for `x86_fp80` (#224072)

Improves `KnownFPClass` deductions `i80` to `x86_fp80` bitcasts.

Non-canonical NaN's are treated as `fcSNan` if the quiet bit is known
clear, and `fcQNan` if the quiet bit is known set.

AI Disclosure:
I used ChatGPT Codex (5.6 sol and Astra-6) and Claude (Sonnet/Opus 5) to
help generate the tests and to review the code.
DeltaFile
+960-0llvm/test/Transforms/Attributor/nofpclass-bitcast-int-to-fp-x87.ll
+106-24llvm/unittests/Support/KnownFPClassTest.cpp
+80-1llvm/lib/Support/KnownFPClass.cpp
+1,146-253 files

LLVM/project 6880a2a — libcxx/include/__charconv traits.h, libcxx/test/std/utilities/charconv/charconv.from.chars integral.pass.cpp floating_point.pass.cpp

[libc++] Suppress unsigned-integer-overflow warning in <charconv> (#225801)

Invoking __complement with 0 as parameter triggers the unsigned integer
overflow UBSan.
DeltaFile
+186-192libcxx/test/std/utilities/charconv/charconv.to.chars/integral.pass.cpp
+10-64libcxx/test/support/charconv_test_helpers.h
+30-34libcxx/test/std/utilities/charconv/charconv.from.chars/integral.roundtrip.pass.cpp
+13-11libcxx/test/std/utilities/charconv/charconv.from.chars/floating_point.pass.cpp
+16-4libcxx/test/std/utilities/charconv/charconv.from.chars/integral.pass.cpp
+2-1libcxx/include/__charconv/traits.h
+257-3066 files

LLVM/project da7ae36 — lldb/test/API/functionalities/process_save_core_minidump_size_of_image TestMinidumpSizeOfImage.py

[lldb][minidump][test] Disable test_size_of_image... when remote testing (#231498)

The test assumes that the program can load the shared library, which it
cannot unless we copy it to the remote.

The shared library is also built outside of the usual build process, so
it's using the host compiler and possibly other host things.
DeltaFile
+2-0lldb/test/API/functionalities/process_save_core_minidump_size_of_image/TestMinidumpSizeOfImage.py
+2-01 files

LLVM/project 630f72e — llvm/lib/Target/X86 X86ISelLowering.cpp, llvm/test/CodeGen/X86 fmaddsub-combine-bf16.ll fmaddsub-combine-fp16.ll

[X86] Don't form (FM)ADDSUB for bf16, or for narrow f16 vectors without VLX (#231445)

The shuffle combines that form (FM)ADDSUB only check for FMA, and only
exclude f16 from ADDSUB. There are no bf16 (FM)ADDSUB instructions, and
the AVX512-FP16 FMADDSUB needs VLX for 128/256-bit vectors. So an
add/sub shuffle of `<8 x half>` with `+avx512fp16` but no VLX, or of `<8
x bfloat>` (from FSUB/FADD or from FMA/FMSUB) with `+avx10.2`, fails to
select:

```
LLVM ERROR: Cannot select: t16: v8f16 = X86ISD::FMADDSUB t2, t4, t6
LLVM ERROR: Cannot select: t20: v8bf16 = X86ISD::FMADDSUB t7, t8, t9
```

Check the element type in both combines: reject bf16, and accept f16
only where f16 FMA is legal for the vector type (512-bit with
AVX512-FP16, 128/256-bit also with VLX). The new tests cover
128/256/512-bit f16 with and without VLX, and bf16 with and without
`contract` and from FMAs; the f16 no-VLX and bf16 RUN lines crash

    [6 lines not shown]
DeltaFile
+168-0llvm/test/CodeGen/X86/fmaddsub-combine-fp16.ll
+49-0llvm/test/CodeGen/X86/fmaddsub-combine-bf16.ll
+15-2llvm/lib/Target/X86/X86ISelLowering.cpp
+232-23 files

LLVM/project 4fdc737 — flang/lib/Evaluate fold-logical.cpp, flang/test/Evaluate fold-out_of_range.f90 fold-out-of-range-integer-8.f90

[flang] Fix null pointer dereference in OUT_OF_RANGE folding (#224270)

Folding `OUT_OF_RANGE` could crash when the default logical kind is
8:`CompareUnsigned` assumed intrinsic comparisons always yield
`LogicalResult`(LOGICAL(4)). Unwrap as `SomeLogical` and convert to
`LogicalResult`.
Add a `fold-out_of_range.f90` RUN line with `-fdefault-integer-8` and
a`test_kind` check.

Fixes #212392
DeltaFile
+15-0flang/test/Evaluate/fold-out-of-range-integer-8.f90
+2-1flang/lib/Evaluate/fold-logical.cpp
+2-0flang/test/Evaluate/fold-out_of_range.f90
+19-13 files