I guess the error isn't about the const_int 0, but about operand 0. Any ideas?
Yes, you need this:
[(set (match_operand:SI 0 "register_operand" "=r")
(match_operand:SI 1 "register_operand" "r"))
(unspec_volatile [(const_int 0)] UNSPECV_VSWAPMOV)]
Paolo
