That was a bit overblown, due to my lack of knowlage about MMX. It has a lot more things than MMX.
But the core idea behind the P extension was to reuse the GPRs to do SIMD operations with little additional implementation cost.
As sibling said, stripped down in the sense it doesn’t have dedicated registers. In terms of supported functions it’s somewhere close to MMX.
I don’t personally like it because it still ends up with all the headache of building most of a vector subsystem (data path, functional units,…) while _only_ pretty much reducing one special vector file.
The spec is currently all over the place, the best reference is currently probably the WIP intrinsics documentation: https://github.com/topperc/p-ext-intrinsics/blob/main/source...
P is not meant to compete/be an alternative for RVV. It's meant for hardware targets you can't scale RVV down to.