Missuse of xmm register on X86-64

All,
        I've been working on a new scheduler and have
somehow affected register selection. My problem is that an
xmm register is being used as an index expression.
Specifically,

addss (%xmm1,%rax,4), %xmm0

I like the idea of a floating-point index, but, like the
assembler, I don't know what that means. Any suggestions
on where I should look for a solution to my problem?

Aran

What does llc -verify-machineinstrs say?