### The swizzle issue
(a) in its current form is not addressing swizzles.
Consider the following shader:
``` Texture2D t; uniform int i;
float4 main() : sv_target { int3 a = {1, 2, i}; return t.Load(int3(0, 1, 2), a.xy); } ```
even with (a), this results in:
``` 2: int | i 3: int | 1 4: uint | 0 5: | = (a[@4].x @3) 6: int | 2 7: uint | 1 8: | = (a[@7].x @6) 9: uint | 2 10: | = (a[@9].x @2) 11: int3 | {0 1 2 } 12: int3 | a 13: int2 | @12.xy 14: float4 | load_resource(resource = t, sampler = (nil), coords = @11, offset = @13) 15: | return 16: | = (<output-sv_target0> @14) ```
and the offset cannot be resolved as a constant int2.
This may be a good reason to also include (b) + (d)