If we did this, I would want to copy Open CL's behaviour regarding 3-element vectors though and silently extend them to size 4. Given how common they are and that the LLVM back-end would almost certainly extend them up to that anyway.

Obviously, this behaviour would be documented.