| #version 310 es |
| layout(local_size_x = 1) in; |
| |
| layout(binding = 0, std430) buffer SSBO |
| { |
| vec4 data; |
| int index; |
| }; |
| |
| void main() |
| { |
| // Tests defer-parens behavior where a binary expression is OpCompositeExtracted chained together |
| // with an OpCompositeConstruct optimization. |
| vec4 d = data; |
| data = vec4(d.x, d.yz + 10.0, d.w); |
| |
| // Verify binary ops. |
| data = d + d + d; |
| |
| // Verify swizzles. |
| data = (d.yz + 10.0).xxyy; |
| |
| // OpCompositeExtract |
| float t = (d.yz + 10.0).y; |
| data = vec4(t); |
| |
| // OpVectorExtractDynamic |
| t = (d.zw + 10.0)[index]; |
| data = vec4(t); |
| } |