Landing: 5be7b70e769e
Project / Subsystem
gcc / i386
Date
2026-07-03
Author
liuhongt
Commit
5be7b70e769e6e992dbf631cd37e24bd9da9e05e
Source
github
Perf win
No
Breaking
No
All attributes
- project
- gcc
- subsystem
- i386
- patch_id
- —
- commit_hash
- 5be7b70e769e6e992dbf631cd37e24bd9da9e05e
- source_type
- github
- headline
- i386: Enable 512-bit byte dot-product only under AVX512BW
- tldr
- Fixes an instruction selection bug for byte dot-product operations on x86.
- author
- liuhongt
- outcome
- committed
- performance_win
- false
- breaking_change
- false
- series_id
- —
- series_parts
- []
- tags
-
- • x86
- • avx512
- • optimization
- discussion_id_link
- —
- bugzilla_pr
- —
- date
- 2026-07-03T00:00:00.000Z
This commit corrects the enablement of 512-bit byte dot-product (sdot_prod/udot_prod) instructions on i386. Previously, these operations were incorrectly enabled under AVX512BW or AVX512VNNI, but the VNNI instruction set lacks a direct same-sign byte instruction. This led to an ICE when the compiler attempted to emulate the operation using vpmovsxwb, which requires AVX512BW. By using the VI1_AVX512 iterator instead of VI1_AVX512VNNIBW for V64QI, the operations are now correctly enabled only when AVX512BW is available, resolving the ICE and ensuring correct instruction selection.