Loading Signed Data into Textures

I have a 32-bit floating point texture and need to load negative values into the texture. I have tried using glTexSubImage2D but the values seem to be clamped to 0. Is there a way of loading negative values from the CPU (PBO maybe?)?

try

glClampColorARB(GL_CLAMP_FRAGMENT_COLOR_ARB, GL_FALSE);
glClampColorARB(GL_CLAMP_VERTEX_COLOR_ARB, GL_FALSE);