This should be sufficient to allow you to write the SSE4.1 code at
least. When the right compiler arrives, then you can try turning on -
msse4.1, and see if it compiles. In the mean time, it shouldn't cause
any trouble (missing symbols aside) because it is hiding behind
__SSE4_1__.
As always, move code that uses optional vector extensions to its own
file. For example, if you have a function that just uses SSSE3 and
another function that uses SSSE3 and SSE4.1, they should be in
different files. Code intended to run on any MacOS X Intel machine
should not appear in those files. Pass -mssse3, -msse4.1, etc. to only
those files that need it.
I haven't checked the status of the assembler, but it seems reasonable
to expect that any GCC 4.1 compiler will be accompanied by a GCC 4.1
aware assembler. It may already know about it. If it doesn't, truly
desperate individuals can use .byte to insert the byte sequence for
the opcode into assembly with the existing assembler, but you'll have
to do your own register assignment, which probably rules out asms in
C. (I haven't really looked into that thoroughly, though, so maybe
there is a way to do that.)