Worked on shuffle and wrote up a report about the simd word not issues and finished software backend

For shuffling, I made it so everything works as expected, which required
flipping the order of things internally, but I still use the c backend, which is
not great. I tried to make it so the immedite is always a constant, and it is
because I use a case statement. but it won't show up in the assembly as an
immediate, I'm sure there's some way to do it, well I hope so, but I'm not sure
how.

Also I finished and cleaned up the software implementation, I still need a way to
detect if it's needed and  substute it, but it seems to work fine on its own.