nv30 and nv40 support SEQ everywhere, and Marek's SEQ/DP4 seems optimal. BTW, the nVidia Cg compiler (which can tell us what nVidia does) doesn't seem to accept my naive attempts to index a vector in GLSL: is something special needed to do it? (some version directive, or special syntax?)