AMDGPU: Add llvm.amdgcn.s.wait.event intrinsic
Exactly match the s_wait_event instruction. For some reason we already
had this instruction used through llvm.amdgcn.s.wait.event.export.ready,
but that hardcodes a specific value. This should really be a bitmask that
can combine multiple wait types.
gfx11 -> gfx12 broke compatabilty in a weird way, by inverting the
interpretation of the bit but also shifting the used bit by 1. Simplify
the selection of the old intrinsic by just using the magic number 2, which
should satisfy both cases.
InstCombine: Only propagate callsite attributes in sqrt->sqrtf (#180160)
This was propagating the callee's attributes instead of just the
callsite. It's illegal to set denormal_fpenv on a callsite. This
was also losing callsite attributes which may have been more useful;
there's no point in setting the callee's attributes on the callsite.
[AArch64][GloballISel] Put result of fp16 -> s16 convert intrinsic on fpr
Previously, RegBankSelect would place the result of an fp16 -> s16 conversion intrinsic on a gpr. This would cause Instruction Selection to fail, as there are no 16-bit gprs.
Floating point convert intrinsics affected:
fcvtnu / fcvtns
fcvtau / fcvtas
fcvtmu / fcvtms
fcvtpu / fcvtps
ccid: updated to 1.7.1
1.7.1 - 4 February 2026, Ludovic Rousseau
- Add support of
- ACS APG8201-B2
- BUDGET E-ID BUD001
- CHERRY Smart Board 1150
- CryptnoxCR CryptnoxCR
- Diebold Nixdorf PN7362au CCID
- FT BioPass FIDO2 Pro
- Nitrokey Nitrokey Passkey
- Add SCARD_CTL_CODE(3601): USB path of the reader
- Some other minor improvements
Allow scaling of the media size (-m arg)
Note that we cannot use gpt_size_get() as that needs gpt->secsz
to have been set already (ie: can only be used after gpt_open)
and treats unscaled numbers as multiples of sectors, whereas the
-m arg has always been a byte size.
For gpt_human_get() or simply using dehumanize_number() we
would need to handle 's' and 'b' suffixes by hand anyway, so it
is simpler to simply to the whole thing longhand in this case.
This also allows (with some hackery) for the media size to be
set as some number of sectors, when we do not yet know the
sector size - it gets corrected later once the sector size has
been determined.
[AMDGPU] Set MOThreadPrivate on memory accesses for spills (#179414)
Mark the memory operand of spill load/stores as MOThreadPrivate, so that
these loads and stores are emitted with `nv` set.
The reason is that scratch memory used by spills will never be shared by
another thread. It's purely thread local and thus a good fit for the
`nv` bit, which is controlled by the MOThreadPrivate flag.
Ensure sizes are a multiple of the sector size.
In gpt_size_get() ensure that the size returned is a multiple
of the sector size. This is automatic for unscaled numbers
(treated as multiples of the sector size) but in other cases
it is not automatic. Note that even nK is not guartamteed to
be a multiple of the sector size if that happens to be 4K and
n is not a multiple of 4.
[VPlan] Ignore poison incoming values when creating blend (#180005)
We have an optimization in VPPredicator when creating blends where if
all the incoming values are the same, we just return that value.
This extends it to handle cases like "phi [%x, %x, poison, %x]" by
ignoring poison values.
This is split off from #176143 to prevent regressions when maintaining
SSA by adding PHIs with a poison incoming value.
Revert "e1000: Try auto-negotiation for fixed 100 or 10 configuration"
We've gotten a report of this breaking a fixed no autoneg setup.
Since no link is worse than what this intends to fix (negotiating full
duplex at forced speed), revert for the undeway 15.0 release cycle
until this can be further reviewed.
PR: 288827
Differential Revision: https://reviews.freebsd.org/D47336
This reverts commit 645c45e297c0fcbbb9d2d24cdeeb124234825019.
(cherry picked from commit 3ff0231c87f360afa4521e635b46f6c711dc4ee3)