Most of the problems with x86 are because Microsoft decides to only half-ass use Intel's features so Intel has to reinvent the feature that works with Microsoft Windows but still has to keep the old features in future versions of the chip. The rest of the problems are because although short-sighted designs like x87 and MMX get replaced by superior versions like SSE, Intel never removes the old features so the opcodes get longer and longer in a reverse-Huffman encoding where the shit nobody uses is one byte long and the optimized instructions Intel wants you to use are five or six bytes long. Intel or AMD could have replaced all x87 and slow 8-bit decimal opcodes with shorter forms of SSE in 64-bit mode, but they didn't.