The Itanium was an interesting design and it wasn't even Intel's originally; Intel got in on HP's design, and HP was trying to leapfrog the superscalar designs by making parallelism the responsibility of software, akin to how the MIPS had made handling aggressive pipelining the responsibility of software: The Itanium design was to encode multiple instructions in very long instruction words, where all of the instructions in a given word can be executed at once. This removes the need for the hardware to do reordering, and shoves the responsibility for finding parallelism onto the human or compiler, both of which can, presumably, take a more global view of the problem than a piece of silicon can.
A problem with that was, apparently, figuring out good parallelism statically wasn't enough to get the performance gains Itanium needed to be competitive
https://stackoverflow.com/questions/1011760/what-are-the-tec...
For example, Itanium struggled with the non-deterministic nature of memory latency
https://softwareengineering.stackexchange.com/questions/2793...
AMD iterating on x86 to produce AMD64 and giving x86 code a compatible path to the 64-bit world certainly didn't help Itanium's prospects, either.
Also:
> There was no longer any real point to pure RISC instruction sets.
They are simpler to decode and execute, which is nice if you're making a small, cheap core aiming at low power consumption.