[HLSL] Add WaveMultiPrefixCountBits (#238132)
Add `WaveMultiPrefixCountBits`, with DirectX-only lowering.
This PR does not add SPIR-V support. SPIR-V calls report that the
builtin is not supported on the target.
Fixes #99211
Assisted by: Github Copilot
Co-authored-by: Copilot <223556219+Copilot at users.noreply.github.com>
Copilot-Session: 40997c2f-5aaa-41c6-8d1f-3e2e9ada315f
Revert 216506 Add PreLegalizer pattern matching for degrees GL extension (#239353)
This reverts commit 4e414afe0e3f1566b898c5c5741e2582c5c48514.
The combine rewrites fmul x, 180/pi into spv.degrees for all SPIR-V
targets. OpenCL requires fmul to be correctly rounded (0.5 ulp) while
degrees only has to be accurate to 2 ulp, so this loses precision on the
OpenCL path.
The discussions have been captured in the now closed PR about why we
want to revert it
https://github.com/llvm/llvm-project/pull/237935/changes
libc/locale: Check EILSEQ return
_citrus_iconv_std_iconv_convert can return EILSEQ without setting
invlen. As a result, we should check EILSEQ in the return value or it
will incorrectly return -2
Reviewed by: kevans
Fixes: e2030ca246a7 ("libc: fix c*rtomb/mbrtoc*")
MFC after: 2 days
Differential Revision: https://reviews.freebsd.org/D61151
(cherry picked from commit b138d017c70421e9d074096fcc3ac676f7e1c846)
[AMDGPU] Infer the global address space for llvm.amdgcn.flat.prefetch (#231968)
InferAddressSpaces rewrites the generic `llvm.prefetch` when it proves
that the prefetched pointer
is global, but it does not handle `llvm.amdgcn.flat.prefetch`, which
`__builtin_amdgcn_flat_prefetch`
emits. A flat prefetch of a pointer that is provably global, such as a
HIP kernel argument,
therefore stays a `flat_prefetch_b8`, while the loads and stores of the
same pointer, and
`__builtin_prefetch` of it, use global instructions.
Add `llvm.amdgcn.flat.prefetch` to the AMDGPU InferAddressSpaces hooks.
When its pointer is
inferred to be global, the call becomes `llvm.amdgcn.global.prefetch`
with the same cache policy
operand. Pointers inferred to be in any other address space are left
alone.
TableGen: Fix advancing past the end of an empty macro fusion list (#239397)
The MacroFusions list could be empty, so drop_begin went off the
end. This trapped on MSVC debug builds for targets without
fusions. Use adjacent_find to locate the duplicate instead.
Fixes regression from #239102.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
RuntimeLibcalls: Add signatures for the MIPS16 return helpers
MIPS16 functions call these to move a floating point return value into
floating point registers. Each takes the value being returned, with
complex values as a pair of floats or doubles.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
RuntimeLibcalls: Add the MIPS16 hard float helpers to "compiler-rt"
The __mips16_* hard float helpers were not in any library, so they
were never available. libgcc's mips16.S provides them for O32, but not
for R6. compiler-rt does not provide them, but we don't get try to
distinguish the 2.
Since these coexist with standard symbol names, this needs explicit
handling to prefer these implementations.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
[lldb] Find the end of a gdb-remote packet in linear time (#238530)
GDBRemoteCommunication::CheckForPacket appends each read, at most 8 KiB,
to m_bytes and then searches all of m_bytes for the '#' that ends the
first packet. A packet of S bytes is searched about S / 8 KiB times, so
receiving it takes time quadratic in S. With "process plugin packet
speed-test", a 32 MiB reply took 1.7 s, a 64 MiB reply 8.5 s and a 128
MiB reply 38.6 s. jThreadsInfo replies reach these sizes when a process
has tens of thousands of threads, as a GPU process can.
Resume the search where the previous call stopped. A packet cannot
contain an unescaped '#', so bytes already searched never need searching
again. Only the two paths that wait for more bytes record the position,
and neither changes m_bytes; every other path, including all of those
that remove bytes, leaves it at zero. DecompressPacket can rewrite
m_bytes before the search, so compressed connections still search from
the start. The 128 MiB reply now takes 0.73 s.
Searching only the bytes that the current call appends would not be
[8 lines not shown]
Merge branch 'users/void/ppc-asm-wide-gpr' into users/void/asm-goto-_Complext-types
Take main's InlineAsmLowering.cpp and arm64-fallback.ll. #238927 landed
the same GlobalISel fallback for tied multi-register inputs, so this PR
no longer carries its own copy.
mpv: Update to 0.42.0
pkgsrc changes:
- Bump BUILDLINK_ABI_DEPENDS.mpv due .so bump
Changes:
0.42.0
==============
We are excited to announce the release of mpv 0.42.0.
Key highlights:
* libcurl based network backend with HTTP/2, HTTP/3 and connection reuse
* DVD-Video, Blu-ray HDMV and BD-J menu navigation
* DVD-Audio playback
* Direct playback of .iso images of DVD-Video, DVD-Audio and Blu-ray discs
* Dolby Vision Profile 7 enhancement layer support in `gpu-next`
* MPEG-TS programs and HLS variants are exposed as editions
* DSD-over-PCM (DoP) passthrough with `--audio-spdif=dsd`
[15 lines not shown]