Seven ways the GS gets values in and out of a vector, each written both
ways and counted: loading and storing a packed pair, building from four
ints or a splat, reading one lane, writing one lane, and the rect round
trip that reads several lanes by name, does scalar arithmetic and writes
them back.
Six compile identically on both compilers. The round trip is four
instructions shorter through the union under clang, which vectorises it
where the class's members stay scalar -- the shape GSDirtyRect uses, and
so far the only one where the difference is in the reading rather than
the operation.