Thanks LDChen, that seems to work.
I was getting a small compilation error, so I changed the function declaration so it now reads...
#define vec_mult _vec_mult
INLINE int _vec_mult(int x, int y)
{
int res_hi, res_lo;
__asm__ __volatile__
("smull\t%1,%0,%2,%3"
: "=r"(res_hi)...