in reply to supporting SSE 128 bit data in Perl
I'd go for one of these two, and use them to write all the code that has to deal with SSE2 using them, I'm more inclined to think you want the first option since it gives you full control over everything:
These guys here seem to be using double * for the data types, maybe you want to use that too.. but regardless, that article is a good read.
As far as packing goes, I would suggest you bother with that only when your SSE2 calculations are done and you need the result visible in Perl. Then you can easily convert it to some C data type and then to an XS data type or whatever other data structure you need.