I'm wondering if this is portable? Some compilers (SUN) would only allow initialization of struct with constants. SUN is history, but I'm not sure it's ancient history. Is it possible to just pass args and steps?

I also looks like this pattern would be a candidate for a macro, maybe something like `SIMD_UNARY_LOOP`?