https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121047
Bug ID: 121047 Summary: Possible hardware issue with Raptor Lake processors for code that gcc may generate Product: gcc Version: 16.0 Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: tkoenig at gcc dot gnu.org Target Milestone: --- There is a blog post at https://fgiesen.wordpress.com/2025/05/21/oodle-2-9-14-and-intel-13th-14th-gen-cpus/ which says that Raptor Lake Intel processors have a bug which sometimes lets the processor store the bits 7:0 (registers like cl or dl) instead of bits 15:8 (ch or dh). Source for which such code is generated is below, with-O2 -mbmi2. This is not a gcc bug, so I am not sure what, if anything, gcc should or should not do about this. I also cannot confirm this on my own hardware, which is a different generation, but I thought I'd record this anyway; this may be something that should be closed as INVALID if gcc does not want to provide a workaround. #include <stdint.h> void decode_five(uint8_t* dest, uint64_t& bits_ref, const uint16_t* table) { uint64_t bits = bits_ref; uint16_t e; e = table[bits & 2047]; bits >>= e & 63; dest[0] = e >> 8; e = table[bits & 2047]; bits >>= e & 63; dest[1] = e >> 8; e = table[bits & 2047]; bits >>= e & 63; dest[2] = e >> 8; e = table[bits & 2047]; bits >>= e & 63; dest[3] = e >> 8; e = table[bits & 2047]; bits >>= e & 63; dest[4] = e >> 8; bits_ref = bits; }