So OpenCL has built-in gentypes and vector ops. Who knew?