### 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) -- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/51#note_17278