You can’t declare integer typed attributes. From the spec:
The attribute qualifier can be used only with the data types float, vec2, vec3, vec4, mat2, mat3, and mat4.
Attribute variables cannot be declared as arrays or structures.
But…you actually can with the NVIDIA compiler. It allows integer attributes, obviously because it is allowed (?) in Cg. Unfortunately, it doesn’t work anywhere else. And most unfortunately, the low-level code generated when having float attributes and using casts, is considerabely worse than when you just use integer ones. Strange, but may be fixed in the future.