[AMDGPU] Fix miscompile folding math calls with poison/undef vector lanes (#216971)
A poison or undef lane made evaluateCall ConstantDataVector cast fail,
and evaluateScalarMathFunc silently treated the missing operand as 0.0,
producing wrong results instead of bailing out
[AMDGPU] Fix miscompile from stale value cache in LowerBufferFatPointers (#216962)
ConvertedForStore cached a p7->int conversion per Value across the whole
function, so a second store of the same fat pointer in a non-dominating
block reused an instruction from the first block, breaking dominance
[AMDGPU] Fix crash folding cos/sin table lookups on poison/undef vector lanes (#216972)
TDOFold cast the lane directly to ConstantFP, which aborts under
assertions when a lane is poison or undef instead of a table lookup
failure
[SPIR-V] Patch invoke/callbr call sites when legalizing function signatures (#217000)
Only CallInst was patched before RAUW, leaving invoke/callbr with a
stale FunctionType and a broken verifier
follow up change for https://github.com/llvm/llvm-project/pull/216638
[AMDGPU] Fix poison result on inttoptr a narrow integer to ptr addrspace(7) in LowerBufferFatPointers (#216966)
The unconditional shift by BufferOffsetWidth overshifted for narrower
sources, folding to poison instead of the correctly zero-extended null
resource half
[AArch64][SVE] Enable factor-3 scalable interleave operations (#200424)
This commit enables LoopVectorize to lower scalable
vector.[de]interleave3 to use SVE ld3/st3 instructions.
[AMDGPU][GlobalISel] Fix denormal handling in legalizeFlogUnsafe (#217008)
The scaled input was computed but never used, so the ldexp scaling was
dead and denormals produced -inf
RuntimeLibcalls: Stop providing __powitf2 on MSVCRT
MSVCRT does not provide the powi helpers, so gate the fp128 __powitf2 on
isNotOSMSVCRT alongside the f32/f64 __powisf2/__powidf2, instead of adding it
unconditionally. The unconditional add was a hack to satisfy a test that
expected a wrongly-typed powi call on windows-msvc.
Co-authored-by: Claude (Opus 4.8) <noreply at anthropic.com>
CodeGen: Use getDefBlock in MachineLoop::isLoopInvariant (#217018)
Look up the defining block of an operand's register directly with
getDefBlock() instead of calling getVRegDef() twice and relying on
contains() to walk to the instruction's parent. NFC.
Co-Authored-By: Claude <noreply at anthropic.com> claude-opus-4.8
[lldb] Guard CRT debug report calls with _MSC_VER (#216710)
mingw-w64's `crtdbg.h` expands `_CrtSetReportMode` and
`_CrtSetReportFile` to
no-ops unless `_DEBUG` is set, and declares them as real debug-CRT
imports
when it is.
That macro means both "this code is built in debug mode" and "a debug
CRT is
linked", which go together for MSVC but not for MinGW, where a debug
build
normally still links the release CRT. A debug MinGW build therefore
compiles
the `LLDB_DISABLE_CRASH_DIALOG` path but fails to link it; release MinGW
builds get the no-op macros, which is why the distributed MinGW packages
never hit it.
Guard the calls with `_MSC_VER`. `SetErrorMode` above them is a Win32
[3 lines not shown]