diff --git a/src/front/wgsl/lexer.rs b/src/front/wgsl/lexer.rs index 91986d552a..212e41f2bf 100644 --- a/src/front/wgsl/lexer.rs +++ b/src/front/wgsl/lexer.rs @@ -544,6 +544,9 @@ impl<'a> Lexer<'a> { pub(super) fn next_ident_with_span(&mut self) -> Result<(&'a str, Span), Error<'a>> { match self.next() { + (Token::Word(word), span) if word == "_" => { + Err(Error::InvalidIdentifierUnderscore(span)) + } (Token::Word(word), span) if word.starts_with("__") => { Err(Error::ReservedIdentifierPrefix(span)) } diff --git a/src/front/wgsl/mod.rs b/src/front/wgsl/mod.rs index 610c8c5f89..5e5502f4b5 100644 --- a/src/front/wgsl/mod.rs +++ b/src/front/wgsl/mod.rs @@ -147,6 +147,7 @@ pub enum Error<'a> { InvalidForInitializer(Span), InvalidGatherComponent(Span, i32), InvalidConstructorComponentType(Span, i32), + InvalidIdentifierUnderscore(Span), ReservedIdentifierPrefix(Span), UnknownAddressSpace(Span), UnknownAttribute(Span), @@ -362,6 +363,11 @@ impl<'a> Error<'a> { labels: vec![(bad_span.clone(), "invalid component type".into())], notes: vec![], }, + Error::InvalidIdentifierUnderscore(ref bad_span) => ParseError { + message: "Identifier can't be '_'".to_string(), + labels: vec![(bad_span.clone(), "invalid identifier".into())], + notes: vec!["Use phony assignment instead ('_ =' notice the absence of 'let' or 'var')".to_string()], + }, Error::ReservedIdentifierPrefix(ref bad_span) => ParseError { message: format!("Identifier starts with a reserved prefix: '{}'", &source[bad_span.clone()]), labels: vec![(bad_span.clone(), "invalid identifier".into())], @@ -3489,6 +3495,21 @@ impl Parser { (Token::Word(word), _) => { let mut emitter = super::Emitter::default(); let statement = match word { + "_" => { + let _ = lexer.next(); + emitter.start(context.expressions); + lexer.expect(Token::Operation('='))?; + let expr_id = self.parse_general_expression( + lexer, + context.as_expression(block, &mut emitter), + )?; + lexer.expect(Token::Separator(';'))?; + block.extend(emitter.finish(context.expressions)); + // TODO: the situation here could be improved but + // for now this is necessary to get the expressions emitted + context.named_expressions.insert(expr_id, "_".to_string()); + None + } "let" => { let _ = lexer.next(); emitter.start(context.expressions); diff --git a/tests/in/access.wgsl b/tests/in/access.wgsl index 4ad05f2014..c80d0349d3 100644 --- a/tests/in/access.wgsl +++ b/tests/in/access.wgsl @@ -28,13 +28,13 @@ fn test_matrix_within_struct_accesses() { idx--; // loads - var _ = baz.m; - var _ = baz.m[0]; - var _ = baz.m[idx]; - var _ = baz.m[0][1]; - var _ = baz.m[0][idx]; - var _ = baz.m[idx][1]; - var _ = baz.m[idx][idx]; + _ = baz.m; + _ = baz.m[0]; + _ = baz.m[idx]; + _ = baz.m[0][1]; + _ = baz.m[0][idx]; + _ = baz.m[idx][1]; + _ = baz.m[idx][idx]; var t = Baz(mat3x2(vec2(1.0), vec2(2.0), vec2(3.0))); @@ -83,7 +83,7 @@ fn foo_vert(@builtin(vertex_index) vi: u32) -> @builtin(position) vec4 { c[vi + 1u] = 42; let value = c[vi]; - var _ = test_arr_as_arg(array, 5>()); + _ = test_arr_as_arg(array, 5>()); return vec4(_matrix * vec4(vec4(value)), 2.0); } diff --git a/tests/in/globals.wgsl b/tests/in/globals.wgsl index 6e571e2718..89ab106f9d 100644 --- a/tests/in/globals.wgsl +++ b/tests/in/globals.wgsl @@ -39,17 +39,17 @@ fn test_msl_packed_vec3() { let data = alignment; // loads - let _ = data.v3; - let _ = data.v3.zx; + _ = data.v3; + _ = data.v3.zx; test_msl_packed_vec3_as_arg(data.v3); // matrix vector multiplication - let _ = data.v3 * mat3x3(); - let _ = mat3x3() * data.v3; + _ = data.v3 * mat3x3(); + _ = mat3x3() * data.v3; // scalar vector multiplication - let _ = data.v3 * 2.0; - let _ = 2.0 * data.v3; + _ = data.v3 * 2.0; + _ = 2.0 * data.v3; } @compute @workgroup_size(1) diff --git a/tests/in/operators.wgsl b/tests/in/operators.wgsl index f623294991..cfc5896595 100644 --- a/tests/in/operators.wgsl +++ b/tests/in/operators.wgsl @@ -54,211 +54,211 @@ fn constructors() -> f32 { ); // zero value constructors - var _ = bool(); - var _ = i32(); - var _ = u32(); - var _ = f32(); - var _ = vec2(); - var _ = mat2x2(); - var _ = array(); - var _ = Foo(); + _ = bool(); + _ = i32(); + _ = u32(); + _ = f32(); + _ = vec2(); + _ = mat2x2(); + _ = array(); + _ = Foo(); // constructors that infer their type from their parameters - var _ = vec2(0u); - var _ = mat2x2(vec2(0.), vec2(0.)); - var _ = array(0, 1, 2, 3); + _ = vec2(0u); + _ = mat2x2(vec2(0.), vec2(0.)); + _ = array(0, 1, 2, 3); return foo.a.x; } fn logical() { // unary - let _ = !true; - let _ = !vec2(true); + _ = !true; + _ = !vec2(true); // binary - let _ = true || false; - let _ = true && false; - let _ = true | false; - let _ = vec3(true) | vec3(false); - let _ = true & false; - let _ = vec4(true) & vec4(false); + _ = true || false; + _ = true && false; + _ = true | false; + _ = vec3(true) | vec3(false); + _ = true & false; + _ = vec4(true) & vec4(false); } fn arithmetic() { // unary // TODO: uncomment when we get the changes from https://github.com/gfx-rs/rspirv/pull/231 - // let _ = -1; - let _ = -1.0; - let _ = -vec2(1); - let _ = -vec2(1.0); + // _ = -1; + _ = -1.0; + _ = -vec2(1); + _ = -vec2(1.0); // binary // Addition - let _ = 2 + 1; - let _ = 2u + 1u; - let _ = 2.0 + 1.0; - let _ = vec2(2) + vec2(1); - let _ = vec3(2u) + vec3(1u); - let _ = vec4(2.0) + vec4(1.0); + _ = 2 + 1; + _ = 2u + 1u; + _ = 2.0 + 1.0; + _ = vec2(2) + vec2(1); + _ = vec3(2u) + vec3(1u); + _ = vec4(2.0) + vec4(1.0); // Subtraction - let _ = 2 - 1; - let _ = 2u - 1u; - let _ = 2.0 - 1.0; - let _ = vec2(2) - vec2(1); - let _ = vec3(2u) - vec3(1u); - let _ = vec4(2.0) - vec4(1.0); + _ = 2 - 1; + _ = 2u - 1u; + _ = 2.0 - 1.0; + _ = vec2(2) - vec2(1); + _ = vec3(2u) - vec3(1u); + _ = vec4(2.0) - vec4(1.0); // Multiplication - let _ = 2 * 1; - let _ = 2u * 1u; - let _ = 2.0 * 1.0; - let _ = vec2(2) * vec2(1); - let _ = vec3(2u) * vec3(1u); - let _ = vec4(2.0) * vec4(1.0); + _ = 2 * 1; + _ = 2u * 1u; + _ = 2.0 * 1.0; + _ = vec2(2) * vec2(1); + _ = vec3(2u) * vec3(1u); + _ = vec4(2.0) * vec4(1.0); // Division - let _ = 2 / 1; - let _ = 2u / 1u; - let _ = 2.0 / 1.0; - let _ = vec2(2) / vec2(1); - let _ = vec3(2u) / vec3(1u); - let _ = vec4(2.0) / vec4(1.0); + _ = 2 / 1; + _ = 2u / 1u; + _ = 2.0 / 1.0; + _ = vec2(2) / vec2(1); + _ = vec3(2u) / vec3(1u); + _ = vec4(2.0) / vec4(1.0); // Remainder - let _ = 2 % 1; - let _ = 2u % 1u; - let _ = 2.0 % 1.0; - let _ = vec2(2) % vec2(1); - let _ = vec3(2u) % vec3(1u); - let _ = vec4(2.0) % vec4(1.0); + _ = 2 % 1; + _ = 2u % 1u; + _ = 2.0 % 1.0; + _ = vec2(2) % vec2(1); + _ = vec3(2u) % vec3(1u); + _ = vec4(2.0) % vec4(1.0); // Binary arithmetic expressions with mixed scalar and vector operands - let _ = vec2(2) + 1; - let _ = 2 + vec2(1); - let _ = vec2(2u) + 1u; - let _ = 2u + vec2(1u); - let _ = vec2(2.0) + 1.0; - let _ = 2.0 + vec2(1.0); - - let _ = vec2(2) - 1; - let _ = 2 - vec2(1); - let _ = vec2(2u) - 1u; - let _ = 2u - vec2(1u); - let _ = vec2(2.0) - 1.0; - let _ = 2.0 - vec2(1.0); - - let _ = vec2(2) * 1; - let _ = 2 * vec2(1); - let _ = vec2(2u) * 1u; - let _ = 2u * vec2(1u); - let _ = vec2(2.0) * 1.0; - let _ = 2.0 * vec2(1.0); - - let _ = vec2(2) / 1; - let _ = 2 / vec2(1); - let _ = vec2(2u) / 1u; - let _ = 2u / vec2(1u); - let _ = vec2(2.0) / 1.0; - let _ = 2.0 / vec2(1.0); - - let _ = vec2(2) % 1; - let _ = 2 % vec2(1); - let _ = vec2(2u) % 1u; - let _ = 2u % vec2(1u); - let _ = vec2(2.0) % 1.0; - let _ = 2.0 % vec2(1.0); + _ = vec2(2) + 1; + _ = 2 + vec2(1); + _ = vec2(2u) + 1u; + _ = 2u + vec2(1u); + _ = vec2(2.0) + 1.0; + _ = 2.0 + vec2(1.0); + + _ = vec2(2) - 1; + _ = 2 - vec2(1); + _ = vec2(2u) - 1u; + _ = 2u - vec2(1u); + _ = vec2(2.0) - 1.0; + _ = 2.0 - vec2(1.0); + + _ = vec2(2) * 1; + _ = 2 * vec2(1); + _ = vec2(2u) * 1u; + _ = 2u * vec2(1u); + _ = vec2(2.0) * 1.0; + _ = 2.0 * vec2(1.0); + + _ = vec2(2) / 1; + _ = 2 / vec2(1); + _ = vec2(2u) / 1u; + _ = 2u / vec2(1u); + _ = vec2(2.0) / 1.0; + _ = 2.0 / vec2(1.0); + + _ = vec2(2) % 1; + _ = 2 % vec2(1); + _ = vec2(2u) % 1u; + _ = 2u % vec2(1u); + _ = vec2(2.0) % 1.0; + _ = 2.0 % vec2(1.0); // Matrix arithmetic - let _ = mat3x3() + mat3x3(); - let _ = mat3x3() - mat3x3(); + _ = mat3x3() + mat3x3(); + _ = mat3x3() - mat3x3(); - let _ = mat3x3() * 1.0; - let _ = 2.0 * mat3x3(); + _ = mat3x3() * 1.0; + _ = 2.0 * mat3x3(); - let _ = mat4x3() * vec4(1.0); - let _ = vec3(2.0) * mat4x3(); + _ = mat4x3() * vec4(1.0); + _ = vec3(2.0) * mat4x3(); - let _ = mat4x3() * mat3x4(); + _ = mat4x3() * mat3x4(); } fn bit() { // unary - let _ = ~1; - let _ = ~1u; - let _ = ~vec2(1); - let _ = ~vec3(1u); + _ = ~1; + _ = ~1u; + _ = ~vec2(1); + _ = ~vec3(1u); // binary - let _ = 2 | 1; - let _ = 2u | 1u; - let _ = vec2(2) | vec2(1); - let _ = vec3(2u) | vec3(1u); - - let _ = 2 & 1; - let _ = 2u & 1u; - let _ = vec2(2) & vec2(1); - let _ = vec3(2u) & vec3(1u); - - let _ = 2 ^ 1; - let _ = 2u ^ 1u; - let _ = vec2(2) ^ vec2(1); - let _ = vec3(2u) ^ vec3(1u); - - let _ = 2 << 1u; - let _ = 2u << 1u; - let _ = vec2(2) << vec2(1u); - let _ = vec3(2u) << vec3(1u); - - let _ = 2 >> 1u; - let _ = 2u >> 1u; - let _ = vec2(2) >> vec2(1u); - let _ = vec3(2u) >> vec3(1u); + _ = 2 | 1; + _ = 2u | 1u; + _ = vec2(2) | vec2(1); + _ = vec3(2u) | vec3(1u); + + _ = 2 & 1; + _ = 2u & 1u; + _ = vec2(2) & vec2(1); + _ = vec3(2u) & vec3(1u); + + _ = 2 ^ 1; + _ = 2u ^ 1u; + _ = vec2(2) ^ vec2(1); + _ = vec3(2u) ^ vec3(1u); + + _ = 2 << 1u; + _ = 2u << 1u; + _ = vec2(2) << vec2(1u); + _ = vec3(2u) << vec3(1u); + + _ = 2 >> 1u; + _ = 2u >> 1u; + _ = vec2(2) >> vec2(1u); + _ = vec3(2u) >> vec3(1u); } fn comparison() { - let _ = 2 == 1; - let _ = 2u == 1u; - let _ = 2.0 == 1.0; - let _ = vec2(2) == vec2(1); - let _ = vec3(2u) == vec3(1u); - let _ = vec4(2.0) == vec4(1.0); - - let _ = 2 != 1; - let _ = 2u != 1u; - let _ = 2.0 != 1.0; - let _ = vec2(2) != vec2(1); - let _ = vec3(2u) != vec3(1u); - let _ = vec4(2.0) != vec4(1.0); - - let _ = 2 < 1; - let _ = 2u < 1u; - let _ = 2.0 < 1.0; - let _ = vec2(2) < vec2(1); - let _ = vec3(2u) < vec3(1u); - let _ = vec4(2.0) < vec4(1.0); - - let _ = 2 <= 1; - let _ = 2u <= 1u; - let _ = 2.0 <= 1.0; - let _ = vec2(2) <= vec2(1); - let _ = vec3(2u) <= vec3(1u); - let _ = vec4(2.0) <= vec4(1.0); - - let _ = 2 > 1; - let _ = 2u > 1u; - let _ = 2.0 > 1.0; - let _ = vec2(2) > vec2(1); - let _ = vec3(2u) > vec3(1u); - let _ = vec4(2.0) > vec4(1.0); - - let _ = 2 >= 1; - let _ = 2u >= 1u; - let _ = 2.0 >= 1.0; - let _ = vec2(2) >= vec2(1); - let _ = vec3(2u) >= vec3(1u); - let _ = vec4(2.0) >= vec4(1.0); + _ = 2 == 1; + _ = 2u == 1u; + _ = 2.0 == 1.0; + _ = vec2(2) == vec2(1); + _ = vec3(2u) == vec3(1u); + _ = vec4(2.0) == vec4(1.0); + + _ = 2 != 1; + _ = 2u != 1u; + _ = 2.0 != 1.0; + _ = vec2(2) != vec2(1); + _ = vec3(2u) != vec3(1u); + _ = vec4(2.0) != vec4(1.0); + + _ = 2 < 1; + _ = 2u < 1u; + _ = 2.0 < 1.0; + _ = vec2(2) < vec2(1); + _ = vec3(2u) < vec3(1u); + _ = vec4(2.0) < vec4(1.0); + + _ = 2 <= 1; + _ = 2u <= 1u; + _ = 2.0 <= 1.0; + _ = vec2(2) <= vec2(1); + _ = vec3(2u) <= vec3(1u); + _ = vec4(2.0) <= vec4(1.0); + + _ = 2 > 1; + _ = 2u > 1u; + _ = 2.0 > 1.0; + _ = vec2(2) > vec2(1); + _ = vec3(2u) > vec3(1u); + _ = vec4(2.0) > vec4(1.0); + + _ = 2 >= 1; + _ = 2u >= 1u; + _ = 2.0 >= 1.0; + _ = vec2(2) >= vec2(1); + _ = vec3(2u) >= vec3(1u); + _ = vec4(2.0) >= vec4(1.0); } fn assignment() { @@ -281,10 +281,10 @@ fn assignment() { @compute @workgroup_size(1) fn main() { - let _ = builtins(); - let _ = splat(); - let _ = bool_cast(v_f32_one.xyz); - let _ = constructors(); + _ = builtins(); + _ = splat(); + _ = bool_cast(v_f32_one.xyz); + _ = constructors(); logical(); arithmetic(); diff --git a/tests/out/glsl/access.foo_vert.Vertex.glsl b/tests/out/glsl/access.foo_vert.Vertex.glsl index 267dc2cea1..b5b4804d76 100644 --- a/tests/out/glsl/access.foo_vert.Vertex.glsl +++ b/tests/out/glsl/access.foo_vert.Vertex.glsl @@ -22,50 +22,36 @@ uniform Baz_block_1Vertex { Baz _group_0_binding_1_vs; }; void test_matrix_within_struct_accesses() { int idx = 9; - mat3x2 unnamed_1 = mat3x2(0.0); - vec2 unnamed_2 = vec2(0.0); - vec2 unnamed_3 = vec2(0.0); - float unnamed_4 = 0.0; - float unnamed_5 = 0.0; - float unnamed_6 = 0.0; - float unnamed_7 = 0.0; Baz t = Baz(mat3x2(0.0)); int _e4 = idx; idx = (_e4 - 1); - mat3x2 _e8 = _group_0_binding_1_vs.m; - unnamed_1 = _e8; - vec2 _e13 = _group_0_binding_1_vs.m[0]; - unnamed_2 = _e13; - int _e16 = idx; - vec2 _e18 = _group_0_binding_1_vs.m[_e16]; - unnamed_3 = _e18; - float _e25 = _group_0_binding_1_vs.m[0][1]; - unnamed_4 = _e25; + mat3x2 unnamed = _group_0_binding_1_vs.m; + vec2 unnamed_1 = _group_0_binding_1_vs.m[0]; + int _e14 = idx; + vec2 unnamed_2 = _group_0_binding_1_vs.m[_e14]; + float unnamed_3 = _group_0_binding_1_vs.m[0][1]; + int _e26 = idx; + float unnamed_4 = _group_0_binding_1_vs.m[0][_e26]; int _e30 = idx; - float _e32 = _group_0_binding_1_vs.m[0][_e30]; - unnamed_5 = _e32; - int _e35 = idx; - float _e39 = _group_0_binding_1_vs.m[_e35][1]; - unnamed_6 = _e39; - int _e42 = idx; - int _e44 = idx; - float _e46 = _group_0_binding_1_vs.m[_e42][_e44]; - unnamed_7 = _e46; + float unnamed_5 = _group_0_binding_1_vs.m[_e30][1]; + int _e36 = idx; + int _e38 = idx; + float unnamed_6 = _group_0_binding_1_vs.m[_e36][_e38]; t = Baz(mat3x2(vec2(1.0), vec2(2.0), vec2(3.0))); - int _e57 = idx; - idx = (_e57 + 1); + int _e50 = idx; + idx = (_e50 + 1); t.m = mat3x2(vec2(6.0), vec2(5.0), vec2(4.0)); t.m[0] = vec2(9.0); - int _e74 = idx; - t.m[_e74] = vec2(90.0); + int _e67 = idx; + t.m[_e67] = vec2(90.0); t.m[0][1] = 10.0; - int _e87 = idx; - t.m[0][_e87] = 20.0; - int _e91 = idx; - t.m[_e91][1] = 30.0; - int _e97 = idx; - int _e99 = idx; - t.m[_e97][_e99] = 40.0; + int _e80 = idx; + t.m[0][_e80] = 20.0; + int _e84 = idx; + t.m[_e84][1] = 30.0; + int _e90 = idx; + int _e92 = idx; + t.m[_e90][_e92] = 40.0; return; } @@ -82,7 +68,6 @@ void main() { uint vi = uint(gl_VertexID); float foo = 0.0; int c[5] = int[5](0, 0, 0, 0, 0); - float unnamed = 0.0; float baz_1 = foo; foo = 1.0; test_matrix_within_struct_accesses(); @@ -95,7 +80,6 @@ void main() { c[(vi + 1u)] = 42; int value = c[vi]; float _e42 = test_arr_as_arg(float[5][10](float[10](0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0), float[10](0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0), float[10](0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0), float[10](0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0), float[10](0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0))); - unnamed = _e42; gl_Position = vec4((_matrix * vec4(ivec4(value))), 2.0); gl_Position.yz = vec2(-gl_Position.y, gl_Position.z * 2.0 - gl_Position.w); return; diff --git a/tests/out/glsl/operators.main.Compute.glsl b/tests/out/glsl/operators.main.Compute.glsl index bf7a7d847c..a27e97939a 100644 --- a/tests/out/glsl/operators.main.Compute.glsl +++ b/tests/out/glsl/operators.main.Compute.glsl @@ -35,174 +35,163 @@ vec3 bool_cast(vec3 x) { float constructors() { Foo foo = Foo(vec4(0.0), 0); - bool unnamed = false; - int unnamed_1 = 0; - uint unnamed_2 = 0u; - float unnamed_3 = 0.0; - uvec2 unnamed_4 = uvec2(0u, 0u); - mat2x2 unnamed_5 = mat2x2(vec2(0.0, 0.0), vec2(0.0, 0.0)); - Foo unnamed_6[3] = Foo[3](Foo(vec4(0.0, 0.0, 0.0, 0.0), 0), Foo(vec4(0.0, 0.0, 0.0, 0.0), 0), Foo(vec4(0.0, 0.0, 0.0, 0.0), 0)); - Foo unnamed_7 = Foo(vec4(0.0, 0.0, 0.0, 0.0), 0); - uvec2 unnamed_8 = uvec2(0u); - mat2x2 unnamed_9 = mat2x2(0.0); - int unnamed_10[4] = int[4](0, 0, 0, 0); foo = Foo(vec4(1.0), 1); mat2x2 mat2comp = mat2x2(vec2(1.0, 0.0), vec2(0.0, 1.0)); mat4x4 mat4comp = mat4x4(vec4(1.0, 0.0, 0.0, 0.0), vec4(0.0, 1.0, 0.0, 0.0), vec4(0.0, 0.0, 1.0, 0.0), vec4(0.0, 0.0, 0.0, 1.0)); - unnamed_8 = uvec2(0u); - unnamed_9 = mat2x2(vec2(0.0), vec2(0.0)); - unnamed_10 = int[4](0, 1, 2, 3); - float _e70 = foo.a.x; - return _e70; + uvec2 unnamed = uvec2(0u); + mat2x2 unnamed_1 = mat2x2(vec2(0.0), vec2(0.0)); + int unnamed_2[4] = int[4](0, 1, 2, 3); + float _e59 = foo.a.x; + return _e59; } void logical() { - bool unnamed_11 = (!true); - bvec2 unnamed_12 = not(bvec2(true)); - bool unnamed_13 = (true || false); - bool unnamed_14 = (true && false); - bool unnamed_15 = (true || false); - bvec3 unnamed_16 = bvec3(bvec3(true).x || bvec3(false).x, bvec3(true).y || bvec3(false).y, bvec3(true).z || bvec3(false).z); - bool unnamed_17 = (true && false); - bvec4 unnamed_18 = bvec4(bvec4(true).x && bvec4(false).x, bvec4(true).y && bvec4(false).y, bvec4(true).z && bvec4(false).z, bvec4(true).w && bvec4(false).w); + bool unnamed_3 = (!true); + bvec2 unnamed_4 = not(bvec2(true)); + bool unnamed_5 = (true || false); + bool unnamed_6 = (true && false); + bool unnamed_7 = (true || false); + bvec3 unnamed_8 = bvec3(bvec3(true).x || bvec3(false).x, bvec3(true).y || bvec3(false).y, bvec3(true).z || bvec3(false).z); + bool unnamed_9 = (true && false); + bvec4 unnamed_10 = bvec4(bvec4(true).x && bvec4(false).x, bvec4(true).y && bvec4(false).y, bvec4(true).z && bvec4(false).z, bvec4(true).w && bvec4(false).w); } void arithmetic() { - ivec2 unnamed_19 = (-ivec2(1)); - vec2 unnamed_20 = (-vec2(1.0)); - int unnamed_21 = (2 + 1); - uint unnamed_22 = (2u + 1u); - float unnamed_23 = (2.0 + 1.0); - ivec2 unnamed_24 = (ivec2(2) + ivec2(1)); - uvec3 unnamed_25 = (uvec3(2u) + uvec3(1u)); - vec4 unnamed_26 = (vec4(2.0) + vec4(1.0)); - int unnamed_27 = (2 - 1); - uint unnamed_28 = (2u - 1u); - float unnamed_29 = (2.0 - 1.0); - ivec2 unnamed_30 = (ivec2(2) - ivec2(1)); - uvec3 unnamed_31 = (uvec3(2u) - uvec3(1u)); - vec4 unnamed_32 = (vec4(2.0) - vec4(1.0)); - int unnamed_33 = (2 * 1); - uint unnamed_34 = (2u * 1u); - float unnamed_35 = (2.0 * 1.0); - ivec2 unnamed_36 = (ivec2(2) * ivec2(1)); - uvec3 unnamed_37 = (uvec3(2u) * uvec3(1u)); - vec4 unnamed_38 = (vec4(2.0) * vec4(1.0)); - int unnamed_39 = (2 / 1); - uint unnamed_40 = (2u / 1u); - float unnamed_41 = (2.0 / 1.0); - ivec2 unnamed_42 = (ivec2(2) / ivec2(1)); - uvec3 unnamed_43 = (uvec3(2u) / uvec3(1u)); - vec4 unnamed_44 = (vec4(2.0) / vec4(1.0)); - int unnamed_45 = (2 % 1); - uint unnamed_46 = (2u % 1u); - float unnamed_47 = (2.0 - 1.0 * trunc(2.0 / 1.0)); - ivec2 unnamed_48 = (ivec2(2) % ivec2(1)); - uvec3 unnamed_49 = (uvec3(2u) % uvec3(1u)); - vec4 unnamed_50 = (vec4(2.0) - vec4(1.0) * trunc(vec4(2.0) / vec4(1.0))); - ivec2 unnamed_51 = (ivec2(2) + ivec2(1)); - ivec2 unnamed_52 = (ivec2(2) + ivec2(1)); - uvec2 unnamed_53 = (uvec2(2u) + uvec2(1u)); - uvec2 unnamed_54 = (uvec2(2u) + uvec2(1u)); - vec2 unnamed_55 = (vec2(2.0) + vec2(1.0)); - vec2 unnamed_56 = (vec2(2.0) + vec2(1.0)); - ivec2 unnamed_57 = (ivec2(2) - ivec2(1)); - ivec2 unnamed_58 = (ivec2(2) - ivec2(1)); - uvec2 unnamed_59 = (uvec2(2u) - uvec2(1u)); - uvec2 unnamed_60 = (uvec2(2u) - uvec2(1u)); - vec2 unnamed_61 = (vec2(2.0) - vec2(1.0)); - vec2 unnamed_62 = (vec2(2.0) - vec2(1.0)); - ivec2 unnamed_63 = (ivec2(2) * 1); - ivec2 unnamed_64 = (2 * ivec2(1)); - uvec2 unnamed_65 = (uvec2(2u) * 1u); - uvec2 unnamed_66 = (2u * uvec2(1u)); - vec2 unnamed_67 = (vec2(2.0) * 1.0); - vec2 unnamed_68 = (2.0 * vec2(1.0)); - ivec2 unnamed_69 = (ivec2(2) / ivec2(1)); - ivec2 unnamed_70 = (ivec2(2) / ivec2(1)); - uvec2 unnamed_71 = (uvec2(2u) / uvec2(1u)); - uvec2 unnamed_72 = (uvec2(2u) / uvec2(1u)); - vec2 unnamed_73 = (vec2(2.0) / vec2(1.0)); - vec2 unnamed_74 = (vec2(2.0) / vec2(1.0)); - ivec2 unnamed_75 = (ivec2(2) % ivec2(1)); - ivec2 unnamed_76 = (ivec2(2) % ivec2(1)); - uvec2 unnamed_77 = (uvec2(2u) % uvec2(1u)); - uvec2 unnamed_78 = (uvec2(2u) % uvec2(1u)); - vec2 unnamed_79 = (vec2(2.0) - vec2(1.0) * trunc(vec2(2.0) / vec2(1.0))); - vec2 unnamed_80 = (vec2(2.0) - vec2(1.0) * trunc(vec2(2.0) / vec2(1.0))); - mat3x3 unnamed_81 = (mat3x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0)) + mat3x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0))); - mat3x3 unnamed_82 = (mat3x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0)) - mat3x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0))); - mat3x3 unnamed_83 = (mat3x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0)) * 1.0); - mat3x3 unnamed_84 = (2.0 * mat3x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0))); - vec3 unnamed_85 = (mat4x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0)) * vec4(1.0)); - vec4 unnamed_86 = (vec3(2.0) * mat4x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0))); - mat3x3 unnamed_87 = (mat4x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0)) * mat3x4(vec4(0.0, 0.0, 0.0, 0.0), vec4(0.0, 0.0, 0.0, 0.0), vec4(0.0, 0.0, 0.0, 0.0))); + ivec2 unnamed_11 = (-ivec2(1)); + vec2 unnamed_12 = (-vec2(1.0)); + int unnamed_13 = (2 + 1); + uint unnamed_14 = (2u + 1u); + float unnamed_15 = (2.0 + 1.0); + ivec2 unnamed_16 = (ivec2(2) + ivec2(1)); + uvec3 unnamed_17 = (uvec3(2u) + uvec3(1u)); + vec4 unnamed_18 = (vec4(2.0) + vec4(1.0)); + int unnamed_19 = (2 - 1); + uint unnamed_20 = (2u - 1u); + float unnamed_21 = (2.0 - 1.0); + ivec2 unnamed_22 = (ivec2(2) - ivec2(1)); + uvec3 unnamed_23 = (uvec3(2u) - uvec3(1u)); + vec4 unnamed_24 = (vec4(2.0) - vec4(1.0)); + int unnamed_25 = (2 * 1); + uint unnamed_26 = (2u * 1u); + float unnamed_27 = (2.0 * 1.0); + ivec2 unnamed_28 = (ivec2(2) * ivec2(1)); + uvec3 unnamed_29 = (uvec3(2u) * uvec3(1u)); + vec4 unnamed_30 = (vec4(2.0) * vec4(1.0)); + int unnamed_31 = (2 / 1); + uint unnamed_32 = (2u / 1u); + float unnamed_33 = (2.0 / 1.0); + ivec2 unnamed_34 = (ivec2(2) / ivec2(1)); + uvec3 unnamed_35 = (uvec3(2u) / uvec3(1u)); + vec4 unnamed_36 = (vec4(2.0) / vec4(1.0)); + int unnamed_37 = (2 % 1); + uint unnamed_38 = (2u % 1u); + float unnamed_39 = (2.0 - 1.0 * trunc(2.0 / 1.0)); + ivec2 unnamed_40 = (ivec2(2) % ivec2(1)); + uvec3 unnamed_41 = (uvec3(2u) % uvec3(1u)); + vec4 unnamed_42 = (vec4(2.0) - vec4(1.0) * trunc(vec4(2.0) / vec4(1.0))); + ivec2 unnamed_43 = (ivec2(2) + ivec2(1)); + ivec2 unnamed_44 = (ivec2(2) + ivec2(1)); + uvec2 unnamed_45 = (uvec2(2u) + uvec2(1u)); + uvec2 unnamed_46 = (uvec2(2u) + uvec2(1u)); + vec2 unnamed_47 = (vec2(2.0) + vec2(1.0)); + vec2 unnamed_48 = (vec2(2.0) + vec2(1.0)); + ivec2 unnamed_49 = (ivec2(2) - ivec2(1)); + ivec2 unnamed_50 = (ivec2(2) - ivec2(1)); + uvec2 unnamed_51 = (uvec2(2u) - uvec2(1u)); + uvec2 unnamed_52 = (uvec2(2u) - uvec2(1u)); + vec2 unnamed_53 = (vec2(2.0) - vec2(1.0)); + vec2 unnamed_54 = (vec2(2.0) - vec2(1.0)); + ivec2 unnamed_55 = (ivec2(2) * 1); + ivec2 unnamed_56 = (2 * ivec2(1)); + uvec2 unnamed_57 = (uvec2(2u) * 1u); + uvec2 unnamed_58 = (2u * uvec2(1u)); + vec2 unnamed_59 = (vec2(2.0) * 1.0); + vec2 unnamed_60 = (2.0 * vec2(1.0)); + ivec2 unnamed_61 = (ivec2(2) / ivec2(1)); + ivec2 unnamed_62 = (ivec2(2) / ivec2(1)); + uvec2 unnamed_63 = (uvec2(2u) / uvec2(1u)); + uvec2 unnamed_64 = (uvec2(2u) / uvec2(1u)); + vec2 unnamed_65 = (vec2(2.0) / vec2(1.0)); + vec2 unnamed_66 = (vec2(2.0) / vec2(1.0)); + ivec2 unnamed_67 = (ivec2(2) % ivec2(1)); + ivec2 unnamed_68 = (ivec2(2) % ivec2(1)); + uvec2 unnamed_69 = (uvec2(2u) % uvec2(1u)); + uvec2 unnamed_70 = (uvec2(2u) % uvec2(1u)); + vec2 unnamed_71 = (vec2(2.0) - vec2(1.0) * trunc(vec2(2.0) / vec2(1.0))); + vec2 unnamed_72 = (vec2(2.0) - vec2(1.0) * trunc(vec2(2.0) / vec2(1.0))); + mat3x3 unnamed_73 = (mat3x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0)) + mat3x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0))); + mat3x3 unnamed_74 = (mat3x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0)) - mat3x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0))); + mat3x3 unnamed_75 = (mat3x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0)) * 1.0); + mat3x3 unnamed_76 = (2.0 * mat3x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0))); + vec3 unnamed_77 = (mat4x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0)) * vec4(1.0)); + vec4 unnamed_78 = (vec3(2.0) * mat4x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0))); + mat3x3 unnamed_79 = (mat4x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0)) * mat3x4(vec4(0.0, 0.0, 0.0, 0.0), vec4(0.0, 0.0, 0.0, 0.0), vec4(0.0, 0.0, 0.0, 0.0))); } void bit() { - int unnamed_88 = (~1); - uint unnamed_89 = (~1u); - ivec2 unnamed_90 = (~ivec2(1)); - uvec3 unnamed_91 = (~uvec3(1u)); - int unnamed_92 = (2 | 1); - uint unnamed_93 = (2u | 1u); - ivec2 unnamed_94 = (ivec2(2) | ivec2(1)); - uvec3 unnamed_95 = (uvec3(2u) | uvec3(1u)); - int unnamed_96 = (2 & 1); - uint unnamed_97 = (2u & 1u); - ivec2 unnamed_98 = (ivec2(2) & ivec2(1)); - uvec3 unnamed_99 = (uvec3(2u) & uvec3(1u)); - int unnamed_100 = (2 ^ 1); - uint unnamed_101 = (2u ^ 1u); - ivec2 unnamed_102 = (ivec2(2) ^ ivec2(1)); - uvec3 unnamed_103 = (uvec3(2u) ^ uvec3(1u)); - int unnamed_104 = (2 << 1u); - uint unnamed_105 = (2u << 1u); - ivec2 unnamed_106 = (ivec2(2) << uvec2(1u)); - uvec3 unnamed_107 = (uvec3(2u) << uvec3(1u)); - int unnamed_108 = (2 >> 1u); - uint unnamed_109 = (2u >> 1u); - ivec2 unnamed_110 = (ivec2(2) >> uvec2(1u)); - uvec3 unnamed_111 = (uvec3(2u) >> uvec3(1u)); + int unnamed_80 = (~1); + uint unnamed_81 = (~1u); + ivec2 unnamed_82 = (~ivec2(1)); + uvec3 unnamed_83 = (~uvec3(1u)); + int unnamed_84 = (2 | 1); + uint unnamed_85 = (2u | 1u); + ivec2 unnamed_86 = (ivec2(2) | ivec2(1)); + uvec3 unnamed_87 = (uvec3(2u) | uvec3(1u)); + int unnamed_88 = (2 & 1); + uint unnamed_89 = (2u & 1u); + ivec2 unnamed_90 = (ivec2(2) & ivec2(1)); + uvec3 unnamed_91 = (uvec3(2u) & uvec3(1u)); + int unnamed_92 = (2 ^ 1); + uint unnamed_93 = (2u ^ 1u); + ivec2 unnamed_94 = (ivec2(2) ^ ivec2(1)); + uvec3 unnamed_95 = (uvec3(2u) ^ uvec3(1u)); + int unnamed_96 = (2 << 1u); + uint unnamed_97 = (2u << 1u); + ivec2 unnamed_98 = (ivec2(2) << uvec2(1u)); + uvec3 unnamed_99 = (uvec3(2u) << uvec3(1u)); + int unnamed_100 = (2 >> 1u); + uint unnamed_101 = (2u >> 1u); + ivec2 unnamed_102 = (ivec2(2) >> uvec2(1u)); + uvec3 unnamed_103 = (uvec3(2u) >> uvec3(1u)); } void comparison() { - bool unnamed_112 = (2 == 1); - bool unnamed_113 = (2u == 1u); - bool unnamed_114 = (2.0 == 1.0); - bvec2 unnamed_115 = equal(ivec2(2), ivec2(1)); - bvec3 unnamed_116 = equal(uvec3(2u), uvec3(1u)); - bvec4 unnamed_117 = equal(vec4(2.0), vec4(1.0)); - bool unnamed_118 = (2 != 1); - bool unnamed_119 = (2u != 1u); - bool unnamed_120 = (2.0 != 1.0); - bvec2 unnamed_121 = notEqual(ivec2(2), ivec2(1)); - bvec3 unnamed_122 = notEqual(uvec3(2u), uvec3(1u)); - bvec4 unnamed_123 = notEqual(vec4(2.0), vec4(1.0)); - bool unnamed_124 = (2 < 1); - bool unnamed_125 = (2u < 1u); - bool unnamed_126 = (2.0 < 1.0); - bvec2 unnamed_127 = lessThan(ivec2(2), ivec2(1)); - bvec3 unnamed_128 = lessThan(uvec3(2u), uvec3(1u)); - bvec4 unnamed_129 = lessThan(vec4(2.0), vec4(1.0)); - bool unnamed_130 = (2 <= 1); - bool unnamed_131 = (2u <= 1u); - bool unnamed_132 = (2.0 <= 1.0); - bvec2 unnamed_133 = lessThanEqual(ivec2(2), ivec2(1)); - bvec3 unnamed_134 = lessThanEqual(uvec3(2u), uvec3(1u)); - bvec4 unnamed_135 = lessThanEqual(vec4(2.0), vec4(1.0)); - bool unnamed_136 = (2 > 1); - bool unnamed_137 = (2u > 1u); - bool unnamed_138 = (2.0 > 1.0); - bvec2 unnamed_139 = greaterThan(ivec2(2), ivec2(1)); - bvec3 unnamed_140 = greaterThan(uvec3(2u), uvec3(1u)); - bvec4 unnamed_141 = greaterThan(vec4(2.0), vec4(1.0)); - bool unnamed_142 = (2 >= 1); - bool unnamed_143 = (2u >= 1u); - bool unnamed_144 = (2.0 >= 1.0); - bvec2 unnamed_145 = greaterThanEqual(ivec2(2), ivec2(1)); - bvec3 unnamed_146 = greaterThanEqual(uvec3(2u), uvec3(1u)); - bvec4 unnamed_147 = greaterThanEqual(vec4(2.0), vec4(1.0)); + bool unnamed_104 = (2 == 1); + bool unnamed_105 = (2u == 1u); + bool unnamed_106 = (2.0 == 1.0); + bvec2 unnamed_107 = equal(ivec2(2), ivec2(1)); + bvec3 unnamed_108 = equal(uvec3(2u), uvec3(1u)); + bvec4 unnamed_109 = equal(vec4(2.0), vec4(1.0)); + bool unnamed_110 = (2 != 1); + bool unnamed_111 = (2u != 1u); + bool unnamed_112 = (2.0 != 1.0); + bvec2 unnamed_113 = notEqual(ivec2(2), ivec2(1)); + bvec3 unnamed_114 = notEqual(uvec3(2u), uvec3(1u)); + bvec4 unnamed_115 = notEqual(vec4(2.0), vec4(1.0)); + bool unnamed_116 = (2 < 1); + bool unnamed_117 = (2u < 1u); + bool unnamed_118 = (2.0 < 1.0); + bvec2 unnamed_119 = lessThan(ivec2(2), ivec2(1)); + bvec3 unnamed_120 = lessThan(uvec3(2u), uvec3(1u)); + bvec4 unnamed_121 = lessThan(vec4(2.0), vec4(1.0)); + bool unnamed_122 = (2 <= 1); + bool unnamed_123 = (2u <= 1u); + bool unnamed_124 = (2.0 <= 1.0); + bvec2 unnamed_125 = lessThanEqual(ivec2(2), ivec2(1)); + bvec3 unnamed_126 = lessThanEqual(uvec3(2u), uvec3(1u)); + bvec4 unnamed_127 = lessThanEqual(vec4(2.0), vec4(1.0)); + bool unnamed_128 = (2 > 1); + bool unnamed_129 = (2u > 1u); + bool unnamed_130 = (2.0 > 1.0); + bvec2 unnamed_131 = greaterThan(ivec2(2), ivec2(1)); + bvec3 unnamed_132 = greaterThan(uvec3(2u), uvec3(1u)); + bvec4 unnamed_133 = greaterThan(vec4(2.0), vec4(1.0)); + bool unnamed_134 = (2 >= 1); + bool unnamed_135 = (2u >= 1u); + bool unnamed_136 = (2.0 >= 1.0); + bvec2 unnamed_137 = greaterThanEqual(ivec2(2), ivec2(1)); + bvec3 unnamed_138 = greaterThanEqual(uvec3(2u), uvec3(1u)); + bvec4 unnamed_139 = greaterThanEqual(vec4(2.0), vec4(1.0)); } void assignment() { diff --git a/tests/out/hlsl/access.hlsl b/tests/out/hlsl/access.hlsl index b94bc16bc8..3403cb39ee 100644 --- a/tests/out/hlsl/access.hlsl +++ b/tests/out/hlsl/access.hlsl @@ -58,51 +58,37 @@ Baz ConstructBaz(float3x2 arg0) { void test_matrix_within_struct_accesses() { int idx = 9; - float3x2 unnamed_1 = (float3x2)0; - float2 unnamed_2 = (float2)0; - float2 unnamed_3 = (float2)0; - float unnamed_4 = (float)0; - float unnamed_5 = (float)0; - float unnamed_6 = (float)0; - float unnamed_7 = (float)0; Baz t = (Baz)0; int _expr4 = idx; idx = (_expr4 - 1); - float3x2 _expr8 = GetMatmOnBaz(baz); - unnamed_1 = _expr8; - float2 _expr13 = GetMatmOnBaz(baz)[0]; - unnamed_2 = _expr13; - int _expr16 = idx; - float2 _expr18 = GetMatmOnBaz(baz)[_expr16]; - unnamed_3 = _expr18; - float _expr25 = GetMatmOnBaz(baz)[0][1]; - unnamed_4 = _expr25; + float3x2 unnamed = GetMatmOnBaz(baz); + float2 unnamed_1 = GetMatmOnBaz(baz)[0]; + int _expr14 = idx; + float2 unnamed_2 = GetMatmOnBaz(baz)[_expr14]; + float unnamed_3 = GetMatmOnBaz(baz)[0][1]; + int _expr26 = idx; + float unnamed_4 = GetMatmOnBaz(baz)[0][_expr26]; int _expr30 = idx; - float _expr32 = GetMatmOnBaz(baz)[0][_expr30]; - unnamed_5 = _expr32; - int _expr35 = idx; - float _expr39 = GetMatmOnBaz(baz)[_expr35][1]; - unnamed_6 = _expr39; - int _expr42 = idx; - int _expr44 = idx; - float _expr46 = GetMatmOnBaz(baz)[_expr42][_expr44]; - unnamed_7 = _expr46; + float unnamed_5 = GetMatmOnBaz(baz)[_expr30][1]; + int _expr36 = idx; + int _expr38 = idx; + float unnamed_6 = GetMatmOnBaz(baz)[_expr36][_expr38]; t = ConstructBaz(float3x2((1.0).xx, (2.0).xx, (3.0).xx)); - int _expr57 = idx; - idx = (_expr57 + 1); + int _expr50 = idx; + idx = (_expr50 + 1); SetMatmOnBaz(t, float3x2((6.0).xx, (5.0).xx, (4.0).xx)); t.m_0 = (9.0).xx; - int _expr74 = idx; - SetMatVecmOnBaz(t, (90.0).xx, _expr74); + int _expr67 = idx; + SetMatVecmOnBaz(t, (90.0).xx, _expr67); t.m_0[1] = 10.0; - int _expr87 = idx; - t.m_0[_expr87] = 20.0; - int _expr91 = idx; - SetMatScalarmOnBaz(t, 30.0, _expr91, 1); - int _expr97 = idx; - int _expr99 = idx; - SetMatScalarmOnBaz(t, 40.0, _expr97, _expr99); + int _expr80 = idx; + t.m_0[_expr80] = 20.0; + int _expr84 = idx; + SetMatScalarmOnBaz(t, 30.0, _expr84, 1); + int _expr90 = idx; + int _expr92 = idx; + SetMatScalarmOnBaz(t, 40.0, _expr90, _expr92); return; } @@ -133,7 +119,6 @@ float4 foo_vert(uint vi : SV_VertexID) : SV_Position { float foo = 0.0; int c[5] = {(int)0,(int)0,(int)0,(int)0,(int)0}; - float unnamed = (float)0; float baz_1 = foo; foo = 1.0; @@ -150,7 +135,6 @@ float4 foo_vert(uint vi : SV_VertexID) : SV_Position c[(vi + 1u)] = 42; int value = c[vi]; const float _e42 = test_arr_as_arg(Constructarray5_array10_float__(Constructarray10_float_(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0), Constructarray10_float_(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0), Constructarray10_float_(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0), Constructarray10_float_(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0), Constructarray10_float_(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0))); - unnamed = _e42; return float4(mul(float4((value).xxxx), _matrix), 2.0); } diff --git a/tests/out/hlsl/operators.hlsl b/tests/out/hlsl/operators.hlsl index b23d47799f..020a28ca40 100644 --- a/tests/out/hlsl/operators.hlsl +++ b/tests/out/hlsl/operators.hlsl @@ -57,182 +57,168 @@ int Constructarray4_int_(int arg0, int arg1, int arg2, int arg3)[4] { float constructors() { Foo foo = (Foo)0; - bool unnamed = false; - int unnamed_1 = 0; - uint unnamed_2 = 0u; - float unnamed_3 = 0.0; - uint2 unnamed_4 = uint2(0u, 0u); - float2x2 unnamed_5 = float2x2(float2(0.0, 0.0), float2(0.0, 0.0)); - Foo unnamed_6[3] = Constructarray3_Foo_(ConstructFoo(float4(0.0, 0.0, 0.0, 0.0), 0), ConstructFoo(float4(0.0, 0.0, 0.0, 0.0), 0), ConstructFoo(float4(0.0, 0.0, 0.0, 0.0), 0)); - Foo unnamed_7 = ConstructFoo(float4(0.0, 0.0, 0.0, 0.0), 0); - uint2 unnamed_8 = (uint2)0; - float2x2 unnamed_9 = (float2x2)0; - int unnamed_10[4] = {(int)0,(int)0,(int)0,(int)0}; foo = ConstructFoo((1.0).xxxx, 1); float2x2 mat2comp = float2x2(float2(1.0, 0.0), float2(0.0, 1.0)); float4x4 mat4comp = float4x4(float4(1.0, 0.0, 0.0, 0.0), float4(0.0, 1.0, 0.0, 0.0), float4(0.0, 0.0, 1.0, 0.0), float4(0.0, 0.0, 0.0, 1.0)); - unnamed_8 = (0u).xx; - unnamed_9 = float2x2((0.0).xx, (0.0).xx); - { - int _result[4]=Constructarray4_int_(0, 1, 2, 3); - for(int _i=0; _i<4; ++_i) unnamed_10[_i] = _result[_i]; - } - float _expr70 = foo.a.x; - return _expr70; + uint2 unnamed = (0u).xx; + float2x2 unnamed_1 = float2x2((0.0).xx, (0.0).xx); + int unnamed_2[4] = Constructarray4_int_(0, 1, 2, 3); + float _expr59 = foo.a.x; + return _expr59; } void logical() { - bool unnamed_11 = !true; - bool2 unnamed_12 = !(true).xx; - bool unnamed_13 = (true || false); - bool unnamed_14 = (true && false); - bool unnamed_15 = (true | false); - bool3 unnamed_16 = ((true).xxx | (false).xxx); - bool unnamed_17 = (true & false); - bool4 unnamed_18 = ((true).xxxx & (false).xxxx); + bool unnamed_3 = !true; + bool2 unnamed_4 = !(true).xx; + bool unnamed_5 = (true || false); + bool unnamed_6 = (true && false); + bool unnamed_7 = (true | false); + bool3 unnamed_8 = ((true).xxx | (false).xxx); + bool unnamed_9 = (true & false); + bool4 unnamed_10 = ((true).xxxx & (false).xxxx); } void arithmetic() { - int2 unnamed_19 = -(1).xx; - float2 unnamed_20 = -(1.0).xx; - int unnamed_21 = (2 + 1); - uint unnamed_22 = (2u + 1u); - float unnamed_23 = (2.0 + 1.0); - int2 unnamed_24 = ((2).xx + (1).xx); - uint3 unnamed_25 = ((2u).xxx + (1u).xxx); - float4 unnamed_26 = ((2.0).xxxx + (1.0).xxxx); - int unnamed_27 = (2 - 1); - uint unnamed_28 = (2u - 1u); - float unnamed_29 = (2.0 - 1.0); - int2 unnamed_30 = ((2).xx - (1).xx); - uint3 unnamed_31 = ((2u).xxx - (1u).xxx); - float4 unnamed_32 = ((2.0).xxxx - (1.0).xxxx); - int unnamed_33 = (2 * 1); - uint unnamed_34 = (2u * 1u); - float unnamed_35 = (2.0 * 1.0); - int2 unnamed_36 = ((2).xx * (1).xx); - uint3 unnamed_37 = ((2u).xxx * (1u).xxx); - float4 unnamed_38 = ((2.0).xxxx * (1.0).xxxx); - int unnamed_39 = (2 / 1); - uint unnamed_40 = (2u / 1u); - float unnamed_41 = (2.0 / 1.0); - int2 unnamed_42 = ((2).xx / (1).xx); - uint3 unnamed_43 = ((2u).xxx / (1u).xxx); - float4 unnamed_44 = ((2.0).xxxx / (1.0).xxxx); - int unnamed_45 = (2 % 1); - uint unnamed_46 = (2u % 1u); - float unnamed_47 = (2.0 % 1.0); - int2 unnamed_48 = ((2).xx % (1).xx); - uint3 unnamed_49 = ((2u).xxx % (1u).xxx); - float4 unnamed_50 = ((2.0).xxxx % (1.0).xxxx); - int2 unnamed_51 = ((2).xx + (1).xx); - int2 unnamed_52 = ((2).xx + (1).xx); - uint2 unnamed_53 = ((2u).xx + (1u).xx); - uint2 unnamed_54 = ((2u).xx + (1u).xx); - float2 unnamed_55 = ((2.0).xx + (1.0).xx); - float2 unnamed_56 = ((2.0).xx + (1.0).xx); - int2 unnamed_57 = ((2).xx - (1).xx); - int2 unnamed_58 = ((2).xx - (1).xx); - uint2 unnamed_59 = ((2u).xx - (1u).xx); - uint2 unnamed_60 = ((2u).xx - (1u).xx); - float2 unnamed_61 = ((2.0).xx - (1.0).xx); - float2 unnamed_62 = ((2.0).xx - (1.0).xx); - int2 unnamed_63 = ((2).xx * 1); - int2 unnamed_64 = (2 * (1).xx); - uint2 unnamed_65 = ((2u).xx * 1u); - uint2 unnamed_66 = (2u * (1u).xx); - float2 unnamed_67 = ((2.0).xx * 1.0); - float2 unnamed_68 = (2.0 * (1.0).xx); - int2 unnamed_69 = ((2).xx / (1).xx); - int2 unnamed_70 = ((2).xx / (1).xx); - uint2 unnamed_71 = ((2u).xx / (1u).xx); - uint2 unnamed_72 = ((2u).xx / (1u).xx); - float2 unnamed_73 = ((2.0).xx / (1.0).xx); - float2 unnamed_74 = ((2.0).xx / (1.0).xx); - int2 unnamed_75 = ((2).xx % (1).xx); - int2 unnamed_76 = ((2).xx % (1).xx); - uint2 unnamed_77 = ((2u).xx % (1u).xx); - uint2 unnamed_78 = ((2u).xx % (1u).xx); - float2 unnamed_79 = ((2.0).xx % (1.0).xx); - float2 unnamed_80 = ((2.0).xx % (1.0).xx); - float3x3 unnamed_81 = (float3x3(float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0)) + float3x3(float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0))); - float3x3 unnamed_82 = (float3x3(float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0)) - float3x3(float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0))); - float3x3 unnamed_83 = mul(1.0, float3x3(float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0))); - float3x3 unnamed_84 = mul(float3x3(float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0)), 2.0); - float3 unnamed_85 = mul((1.0).xxxx, float4x3(float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0))); - float4 unnamed_86 = mul(float4x3(float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0)), (2.0).xxx); - float3x3 unnamed_87 = mul(float3x4(float4(0.0, 0.0, 0.0, 0.0), float4(0.0, 0.0, 0.0, 0.0), float4(0.0, 0.0, 0.0, 0.0)), float4x3(float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0))); + int2 unnamed_11 = -(1).xx; + float2 unnamed_12 = -(1.0).xx; + int unnamed_13 = (2 + 1); + uint unnamed_14 = (2u + 1u); + float unnamed_15 = (2.0 + 1.0); + int2 unnamed_16 = ((2).xx + (1).xx); + uint3 unnamed_17 = ((2u).xxx + (1u).xxx); + float4 unnamed_18 = ((2.0).xxxx + (1.0).xxxx); + int unnamed_19 = (2 - 1); + uint unnamed_20 = (2u - 1u); + float unnamed_21 = (2.0 - 1.0); + int2 unnamed_22 = ((2).xx - (1).xx); + uint3 unnamed_23 = ((2u).xxx - (1u).xxx); + float4 unnamed_24 = ((2.0).xxxx - (1.0).xxxx); + int unnamed_25 = (2 * 1); + uint unnamed_26 = (2u * 1u); + float unnamed_27 = (2.0 * 1.0); + int2 unnamed_28 = ((2).xx * (1).xx); + uint3 unnamed_29 = ((2u).xxx * (1u).xxx); + float4 unnamed_30 = ((2.0).xxxx * (1.0).xxxx); + int unnamed_31 = (2 / 1); + uint unnamed_32 = (2u / 1u); + float unnamed_33 = (2.0 / 1.0); + int2 unnamed_34 = ((2).xx / (1).xx); + uint3 unnamed_35 = ((2u).xxx / (1u).xxx); + float4 unnamed_36 = ((2.0).xxxx / (1.0).xxxx); + int unnamed_37 = (2 % 1); + uint unnamed_38 = (2u % 1u); + float unnamed_39 = (2.0 % 1.0); + int2 unnamed_40 = ((2).xx % (1).xx); + uint3 unnamed_41 = ((2u).xxx % (1u).xxx); + float4 unnamed_42 = ((2.0).xxxx % (1.0).xxxx); + int2 unnamed_43 = ((2).xx + (1).xx); + int2 unnamed_44 = ((2).xx + (1).xx); + uint2 unnamed_45 = ((2u).xx + (1u).xx); + uint2 unnamed_46 = ((2u).xx + (1u).xx); + float2 unnamed_47 = ((2.0).xx + (1.0).xx); + float2 unnamed_48 = ((2.0).xx + (1.0).xx); + int2 unnamed_49 = ((2).xx - (1).xx); + int2 unnamed_50 = ((2).xx - (1).xx); + uint2 unnamed_51 = ((2u).xx - (1u).xx); + uint2 unnamed_52 = ((2u).xx - (1u).xx); + float2 unnamed_53 = ((2.0).xx - (1.0).xx); + float2 unnamed_54 = ((2.0).xx - (1.0).xx); + int2 unnamed_55 = ((2).xx * 1); + int2 unnamed_56 = (2 * (1).xx); + uint2 unnamed_57 = ((2u).xx * 1u); + uint2 unnamed_58 = (2u * (1u).xx); + float2 unnamed_59 = ((2.0).xx * 1.0); + float2 unnamed_60 = (2.0 * (1.0).xx); + int2 unnamed_61 = ((2).xx / (1).xx); + int2 unnamed_62 = ((2).xx / (1).xx); + uint2 unnamed_63 = ((2u).xx / (1u).xx); + uint2 unnamed_64 = ((2u).xx / (1u).xx); + float2 unnamed_65 = ((2.0).xx / (1.0).xx); + float2 unnamed_66 = ((2.0).xx / (1.0).xx); + int2 unnamed_67 = ((2).xx % (1).xx); + int2 unnamed_68 = ((2).xx % (1).xx); + uint2 unnamed_69 = ((2u).xx % (1u).xx); + uint2 unnamed_70 = ((2u).xx % (1u).xx); + float2 unnamed_71 = ((2.0).xx % (1.0).xx); + float2 unnamed_72 = ((2.0).xx % (1.0).xx); + float3x3 unnamed_73 = (float3x3(float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0)) + float3x3(float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0))); + float3x3 unnamed_74 = (float3x3(float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0)) - float3x3(float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0))); + float3x3 unnamed_75 = mul(1.0, float3x3(float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0))); + float3x3 unnamed_76 = mul(float3x3(float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0)), 2.0); + float3 unnamed_77 = mul((1.0).xxxx, float4x3(float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0))); + float4 unnamed_78 = mul(float4x3(float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0)), (2.0).xxx); + float3x3 unnamed_79 = mul(float3x4(float4(0.0, 0.0, 0.0, 0.0), float4(0.0, 0.0, 0.0, 0.0), float4(0.0, 0.0, 0.0, 0.0)), float4x3(float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0), float3(0.0, 0.0, 0.0))); } void bit() { - int unnamed_88 = ~1; - uint unnamed_89 = ~1u; - int2 unnamed_90 = ~(1).xx; - uint3 unnamed_91 = ~(1u).xxx; - int unnamed_92 = (2 | 1); - uint unnamed_93 = (2u | 1u); - int2 unnamed_94 = ((2).xx | (1).xx); - uint3 unnamed_95 = ((2u).xxx | (1u).xxx); - int unnamed_96 = (2 & 1); - uint unnamed_97 = (2u & 1u); - int2 unnamed_98 = ((2).xx & (1).xx); - uint3 unnamed_99 = ((2u).xxx & (1u).xxx); - int unnamed_100 = (2 ^ 1); - uint unnamed_101 = (2u ^ 1u); - int2 unnamed_102 = ((2).xx ^ (1).xx); - uint3 unnamed_103 = ((2u).xxx ^ (1u).xxx); - int unnamed_104 = (2 << 1u); - uint unnamed_105 = (2u << 1u); - int2 unnamed_106 = ((2).xx << (1u).xx); - uint3 unnamed_107 = ((2u).xxx << (1u).xxx); - int unnamed_108 = (2 >> 1u); - uint unnamed_109 = (2u >> 1u); - int2 unnamed_110 = ((2).xx >> (1u).xx); - uint3 unnamed_111 = ((2u).xxx >> (1u).xxx); + int unnamed_80 = ~1; + uint unnamed_81 = ~1u; + int2 unnamed_82 = ~(1).xx; + uint3 unnamed_83 = ~(1u).xxx; + int unnamed_84 = (2 | 1); + uint unnamed_85 = (2u | 1u); + int2 unnamed_86 = ((2).xx | (1).xx); + uint3 unnamed_87 = ((2u).xxx | (1u).xxx); + int unnamed_88 = (2 & 1); + uint unnamed_89 = (2u & 1u); + int2 unnamed_90 = ((2).xx & (1).xx); + uint3 unnamed_91 = ((2u).xxx & (1u).xxx); + int unnamed_92 = (2 ^ 1); + uint unnamed_93 = (2u ^ 1u); + int2 unnamed_94 = ((2).xx ^ (1).xx); + uint3 unnamed_95 = ((2u).xxx ^ (1u).xxx); + int unnamed_96 = (2 << 1u); + uint unnamed_97 = (2u << 1u); + int2 unnamed_98 = ((2).xx << (1u).xx); + uint3 unnamed_99 = ((2u).xxx << (1u).xxx); + int unnamed_100 = (2 >> 1u); + uint unnamed_101 = (2u >> 1u); + int2 unnamed_102 = ((2).xx >> (1u).xx); + uint3 unnamed_103 = ((2u).xxx >> (1u).xxx); } void comparison() { - bool unnamed_112 = (2 == 1); - bool unnamed_113 = (2u == 1u); - bool unnamed_114 = (2.0 == 1.0); - bool2 unnamed_115 = ((2).xx == (1).xx); - bool3 unnamed_116 = ((2u).xxx == (1u).xxx); - bool4 unnamed_117 = ((2.0).xxxx == (1.0).xxxx); - bool unnamed_118 = (2 != 1); - bool unnamed_119 = (2u != 1u); - bool unnamed_120 = (2.0 != 1.0); - bool2 unnamed_121 = ((2).xx != (1).xx); - bool3 unnamed_122 = ((2u).xxx != (1u).xxx); - bool4 unnamed_123 = ((2.0).xxxx != (1.0).xxxx); - bool unnamed_124 = (2 < 1); - bool unnamed_125 = (2u < 1u); - bool unnamed_126 = (2.0 < 1.0); - bool2 unnamed_127 = ((2).xx < (1).xx); - bool3 unnamed_128 = ((2u).xxx < (1u).xxx); - bool4 unnamed_129 = ((2.0).xxxx < (1.0).xxxx); - bool unnamed_130 = (2 <= 1); - bool unnamed_131 = (2u <= 1u); - bool unnamed_132 = (2.0 <= 1.0); - bool2 unnamed_133 = ((2).xx <= (1).xx); - bool3 unnamed_134 = ((2u).xxx <= (1u).xxx); - bool4 unnamed_135 = ((2.0).xxxx <= (1.0).xxxx); - bool unnamed_136 = (2 > 1); - bool unnamed_137 = (2u > 1u); - bool unnamed_138 = (2.0 > 1.0); - bool2 unnamed_139 = ((2).xx > (1).xx); - bool3 unnamed_140 = ((2u).xxx > (1u).xxx); - bool4 unnamed_141 = ((2.0).xxxx > (1.0).xxxx); - bool unnamed_142 = (2 >= 1); - bool unnamed_143 = (2u >= 1u); - bool unnamed_144 = (2.0 >= 1.0); - bool2 unnamed_145 = ((2).xx >= (1).xx); - bool3 unnamed_146 = ((2u).xxx >= (1u).xxx); - bool4 unnamed_147 = ((2.0).xxxx >= (1.0).xxxx); + bool unnamed_104 = (2 == 1); + bool unnamed_105 = (2u == 1u); + bool unnamed_106 = (2.0 == 1.0); + bool2 unnamed_107 = ((2).xx == (1).xx); + bool3 unnamed_108 = ((2u).xxx == (1u).xxx); + bool4 unnamed_109 = ((2.0).xxxx == (1.0).xxxx); + bool unnamed_110 = (2 != 1); + bool unnamed_111 = (2u != 1u); + bool unnamed_112 = (2.0 != 1.0); + bool2 unnamed_113 = ((2).xx != (1).xx); + bool3 unnamed_114 = ((2u).xxx != (1u).xxx); + bool4 unnamed_115 = ((2.0).xxxx != (1.0).xxxx); + bool unnamed_116 = (2 < 1); + bool unnamed_117 = (2u < 1u); + bool unnamed_118 = (2.0 < 1.0); + bool2 unnamed_119 = ((2).xx < (1).xx); + bool3 unnamed_120 = ((2u).xxx < (1u).xxx); + bool4 unnamed_121 = ((2.0).xxxx < (1.0).xxxx); + bool unnamed_122 = (2 <= 1); + bool unnamed_123 = (2u <= 1u); + bool unnamed_124 = (2.0 <= 1.0); + bool2 unnamed_125 = ((2).xx <= (1).xx); + bool3 unnamed_126 = ((2u).xxx <= (1u).xxx); + bool4 unnamed_127 = ((2.0).xxxx <= (1.0).xxxx); + bool unnamed_128 = (2 > 1); + bool unnamed_129 = (2u > 1u); + bool unnamed_130 = (2.0 > 1.0); + bool2 unnamed_131 = ((2).xx > (1).xx); + bool3 unnamed_132 = ((2u).xxx > (1u).xxx); + bool4 unnamed_133 = ((2.0).xxxx > (1.0).xxxx); + bool unnamed_134 = (2 >= 1); + bool unnamed_135 = (2u >= 1u); + bool unnamed_136 = (2.0 >= 1.0); + bool2 unnamed_137 = ((2).xx >= (1).xx); + bool3 unnamed_138 = ((2u).xxx >= (1u).xxx); + bool4 unnamed_139 = ((2.0).xxxx >= (1.0).xxxx); } void assignment() diff --git a/tests/out/msl/access.msl b/tests/out/msl/access.msl index 8ba6750c7e..5bcdd7d498 100644 --- a/tests/out/msl/access.msl +++ b/tests/out/msl/access.msl @@ -29,66 +29,52 @@ struct Bar { struct Baz { metal::float3x2 m; }; -struct type_12 { +struct type_11 { float inner[10]; }; -struct type_13 { - type_12 inner[5]; +struct type_12 { + type_11 inner[5]; }; -struct type_17 { +struct type_16 { int inner[5]; }; -constant type_12 const_type_12_ = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}; -constant type_13 const_type_13_ = {const_type_12_, const_type_12_, const_type_12_, const_type_12_, const_type_12_}; +constant type_11 const_type_11_ = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}; +constant type_12 const_type_12_ = {const_type_11_, const_type_11_, const_type_11_, const_type_11_, const_type_11_}; void test_matrix_within_struct_accesses( constant Baz& baz ) { int idx = 9; - metal::float3x2 unnamed_1; - metal::float2 unnamed_2; - metal::float2 unnamed_3; - float unnamed_4; - float unnamed_5; - float unnamed_6; - float unnamed_7; Baz t; int _e4 = idx; idx = _e4 - 1; - metal::float3x2 _e8 = baz.m; - unnamed_1 = _e8; - metal::float2 _e13 = baz.m[0]; - unnamed_2 = _e13; - int _e16 = idx; - metal::float2 _e18 = baz.m[_e16]; - unnamed_3 = _e18; - float _e25 = baz.m[0].y; - unnamed_4 = _e25; + metal::float3x2 unnamed = baz.m; + metal::float2 unnamed_1 = baz.m[0]; + int _e14 = idx; + metal::float2 unnamed_2 = baz.m[_e14]; + float unnamed_3 = baz.m[0].y; + int _e26 = idx; + float unnamed_4 = baz.m[0][_e26]; int _e30 = idx; - float _e32 = baz.m[0][_e30]; - unnamed_5 = _e32; - int _e35 = idx; - float _e39 = baz.m[_e35].y; - unnamed_6 = _e39; - int _e42 = idx; - int _e44 = idx; - float _e46 = baz.m[_e42][_e44]; - unnamed_7 = _e46; + float unnamed_5 = baz.m[_e30].y; + int _e36 = idx; + int _e38 = idx; + float unnamed_6 = baz.m[_e36][_e38]; t = Baz {metal::float3x2(metal::float2(1.0), metal::float2(2.0), metal::float2(3.0))}; - int _e57 = idx; - idx = _e57 + 1; + int _e50 = idx; + idx = _e50 + 1; t.m = metal::float3x2(metal::float2(6.0), metal::float2(5.0), metal::float2(4.0)); t.m[0] = metal::float2(9.0); - int _e74 = idx; - t.m[_e74] = metal::float2(90.0); + int _e67 = idx; + t.m[_e67] = metal::float2(90.0); t.m[0].y = 10.0; - int _e87 = idx; - t.m[0][_e87] = 20.0; - int _e91 = idx; - t.m[_e91].y = 30.0; - int _e97 = idx; - int _e99 = idx; - t.m[_e97][_e99] = 40.0; + int _e80 = idx; + t.m[0][_e80] = 20.0; + int _e84 = idx; + t.m[_e84].y = 30.0; + int _e90 = idx; + int _e92 = idx; + t.m[_e90][_e92] = 40.0; return; } @@ -100,7 +86,7 @@ float read_from_private( } float test_arr_as_arg( - type_13 a + type_12 a ) { return a.inner[4].inner[9]; } @@ -117,8 +103,7 @@ vertex foo_vertOutput foo_vert( , constant _mslBufferSizes& _buffer_sizes [[buffer(24)]] ) { float foo = 0.0; - type_17 c; - float unnamed; + type_16 c; float baz_1 = foo; foo = 1.0; test_matrix_within_struct_accesses(baz); @@ -127,11 +112,10 @@ vertex foo_vertOutput foo_vert( float b = bar._matrix[3].x; int a_1 = bar.data[(1 + (_buffer_sizes.size0 - 120 - 8) / 8) - 2u].value; float _e28 = read_from_private(foo); - for(int _i=0; _i<5; ++_i) c.inner[_i] = type_17 {a_1, static_cast(b), 3, 4, 5}.inner[_i]; + for(int _i=0; _i<5; ++_i) c.inner[_i] = type_16 {a_1, static_cast(b), 3, 4, 5}.inner[_i]; c.inner[vi + 1u] = 42; int value = c.inner[vi]; - float _e42 = test_arr_as_arg(const_type_13_); - unnamed = _e42; + float _e42 = test_arr_as_arg(const_type_12_); return foo_vertOutput { metal::float4(_matrix * static_cast(metal::int4(value)), 2.0) }; } diff --git a/tests/out/msl/operators.msl b/tests/out/msl/operators.msl index 02a9fd6f79..d47f543be4 100644 --- a/tests/out/msl/operators.msl +++ b/tests/out/msl/operators.msl @@ -59,178 +59,167 @@ metal::float3 bool_cast( float constructors( ) { Foo foo; - bool unnamed = false; - int unnamed_1 = 0; - uint unnamed_2 = 0u; - float unnamed_3 = 0.0; - metal::uint2 unnamed_4 = const_type_11_; - metal::float2x2 unnamed_5 = const_type_7_; - type_12 unnamed_6 = const_type_12_; - Foo unnamed_7 = const_Foo; - metal::uint2 unnamed_8; - metal::float2x2 unnamed_9; - type_13 unnamed_10; foo = Foo {metal::float4(1.0), 1}; metal::float2x2 mat2comp = metal::float2x2(metal::float2(1.0, 0.0), metal::float2(0.0, 1.0)); metal::float4x4 mat4comp = metal::float4x4(metal::float4(1.0, 0.0, 0.0, 0.0), metal::float4(0.0, 1.0, 0.0, 0.0), metal::float4(0.0, 0.0, 1.0, 0.0), metal::float4(0.0, 0.0, 0.0, 1.0)); - unnamed_8 = metal::uint2(0u); - unnamed_9 = metal::float2x2(metal::float2(0.0), metal::float2(0.0)); - for(int _i=0; _i<4; ++_i) unnamed_10.inner[_i] = type_13 {0, 1, 2, 3}.inner[_i]; - float _e70 = foo.a.x; - return _e70; + metal::uint2 unnamed = metal::uint2(0u); + metal::float2x2 unnamed_1 = metal::float2x2(metal::float2(0.0), metal::float2(0.0)); + type_13 unnamed_2 = type_13 {0, 1, 2, 3}; + float _e59 = foo.a.x; + return _e59; } void logical( ) { - bool unnamed_11 = !true; - metal::bool2 unnamed_12 = !metal::bool2(true); - bool unnamed_13 = true || false; - bool unnamed_14 = true && false; - bool unnamed_15 = true | false; - metal::bool3 unnamed_16 = metal::bool3(true) | metal::bool3(false); - bool unnamed_17 = true & false; - metal::bool4 unnamed_18 = metal::bool4(true) & metal::bool4(false); + bool unnamed_3 = !true; + metal::bool2 unnamed_4 = !metal::bool2(true); + bool unnamed_5 = true || false; + bool unnamed_6 = true && false; + bool unnamed_7 = true | false; + metal::bool3 unnamed_8 = metal::bool3(true) | metal::bool3(false); + bool unnamed_9 = true & false; + metal::bool4 unnamed_10 = metal::bool4(true) & metal::bool4(false); } void arithmetic( ) { - metal::int2 unnamed_19 = -metal::int2(1); - metal::float2 unnamed_20 = -metal::float2(1.0); - int unnamed_21 = 2 + 1; - uint unnamed_22 = 2u + 1u; - float unnamed_23 = 2.0 + 1.0; - metal::int2 unnamed_24 = metal::int2(2) + metal::int2(1); - metal::uint3 unnamed_25 = metal::uint3(2u) + metal::uint3(1u); - metal::float4 unnamed_26 = metal::float4(2.0) + metal::float4(1.0); - int unnamed_27 = 2 - 1; - uint unnamed_28 = 2u - 1u; - float unnamed_29 = 2.0 - 1.0; - metal::int2 unnamed_30 = metal::int2(2) - metal::int2(1); - metal::uint3 unnamed_31 = metal::uint3(2u) - metal::uint3(1u); - metal::float4 unnamed_32 = metal::float4(2.0) - metal::float4(1.0); - int unnamed_33 = 2 * 1; - uint unnamed_34 = 2u * 1u; - float unnamed_35 = 2.0 * 1.0; - metal::int2 unnamed_36 = metal::int2(2) * metal::int2(1); - metal::uint3 unnamed_37 = metal::uint3(2u) * metal::uint3(1u); - metal::float4 unnamed_38 = metal::float4(2.0) * metal::float4(1.0); - int unnamed_39 = 2 / 1; - uint unnamed_40 = 2u / 1u; - float unnamed_41 = 2.0 / 1.0; - metal::int2 unnamed_42 = metal::int2(2) / metal::int2(1); - metal::uint3 unnamed_43 = metal::uint3(2u) / metal::uint3(1u); - metal::float4 unnamed_44 = metal::float4(2.0) / metal::float4(1.0); - int unnamed_45 = 2 % 1; - uint unnamed_46 = 2u % 1u; - float unnamed_47 = metal::fmod(2.0, 1.0); - metal::int2 unnamed_48 = metal::int2(2) % metal::int2(1); - metal::uint3 unnamed_49 = metal::uint3(2u) % metal::uint3(1u); - metal::float4 unnamed_50 = metal::fmod(metal::float4(2.0), metal::float4(1.0)); - metal::int2 unnamed_51 = metal::int2(2) + metal::int2(1); - metal::int2 unnamed_52 = metal::int2(2) + metal::int2(1); - metal::uint2 unnamed_53 = metal::uint2(2u) + metal::uint2(1u); - metal::uint2 unnamed_54 = metal::uint2(2u) + metal::uint2(1u); - metal::float2 unnamed_55 = metal::float2(2.0) + metal::float2(1.0); - metal::float2 unnamed_56 = metal::float2(2.0) + metal::float2(1.0); - metal::int2 unnamed_57 = metal::int2(2) - metal::int2(1); - metal::int2 unnamed_58 = metal::int2(2) - metal::int2(1); - metal::uint2 unnamed_59 = metal::uint2(2u) - metal::uint2(1u); - metal::uint2 unnamed_60 = metal::uint2(2u) - metal::uint2(1u); - metal::float2 unnamed_61 = metal::float2(2.0) - metal::float2(1.0); - metal::float2 unnamed_62 = metal::float2(2.0) - metal::float2(1.0); - metal::int2 unnamed_63 = metal::int2(2) * 1; - metal::int2 unnamed_64 = 2 * metal::int2(1); - metal::uint2 unnamed_65 = metal::uint2(2u) * 1u; - metal::uint2 unnamed_66 = 2u * metal::uint2(1u); - metal::float2 unnamed_67 = metal::float2(2.0) * 1.0; - metal::float2 unnamed_68 = 2.0 * metal::float2(1.0); - metal::int2 unnamed_69 = metal::int2(2) / metal::int2(1); - metal::int2 unnamed_70 = metal::int2(2) / metal::int2(1); - metal::uint2 unnamed_71 = metal::uint2(2u) / metal::uint2(1u); - metal::uint2 unnamed_72 = metal::uint2(2u) / metal::uint2(1u); - metal::float2 unnamed_73 = metal::float2(2.0) / metal::float2(1.0); - metal::float2 unnamed_74 = metal::float2(2.0) / metal::float2(1.0); - metal::int2 unnamed_75 = metal::int2(2) % metal::int2(1); - metal::int2 unnamed_76 = metal::int2(2) % metal::int2(1); - metal::uint2 unnamed_77 = metal::uint2(2u) % metal::uint2(1u); - metal::uint2 unnamed_78 = metal::uint2(2u) % metal::uint2(1u); - metal::float2 unnamed_79 = metal::fmod(metal::float2(2.0), metal::float2(1.0)); - metal::float2 unnamed_80 = metal::fmod(metal::float2(2.0), metal::float2(1.0)); - metal::float3x3 unnamed_81 = const_type_14_ + const_type_14_; - metal::float3x3 unnamed_82 = const_type_14_ - const_type_14_; - metal::float3x3 unnamed_83 = const_type_14_ * 1.0; - metal::float3x3 unnamed_84 = 2.0 * const_type_14_; - metal::float3 unnamed_85 = const_type_15_ * metal::float4(1.0); - metal::float4 unnamed_86 = metal::float3(2.0) * const_type_15_; - metal::float3x3 unnamed_87 = const_type_15_ * const_type_16_; + metal::int2 unnamed_11 = -metal::int2(1); + metal::float2 unnamed_12 = -metal::float2(1.0); + int unnamed_13 = 2 + 1; + uint unnamed_14 = 2u + 1u; + float unnamed_15 = 2.0 + 1.0; + metal::int2 unnamed_16 = metal::int2(2) + metal::int2(1); + metal::uint3 unnamed_17 = metal::uint3(2u) + metal::uint3(1u); + metal::float4 unnamed_18 = metal::float4(2.0) + metal::float4(1.0); + int unnamed_19 = 2 - 1; + uint unnamed_20 = 2u - 1u; + float unnamed_21 = 2.0 - 1.0; + metal::int2 unnamed_22 = metal::int2(2) - metal::int2(1); + metal::uint3 unnamed_23 = metal::uint3(2u) - metal::uint3(1u); + metal::float4 unnamed_24 = metal::float4(2.0) - metal::float4(1.0); + int unnamed_25 = 2 * 1; + uint unnamed_26 = 2u * 1u; + float unnamed_27 = 2.0 * 1.0; + metal::int2 unnamed_28 = metal::int2(2) * metal::int2(1); + metal::uint3 unnamed_29 = metal::uint3(2u) * metal::uint3(1u); + metal::float4 unnamed_30 = metal::float4(2.0) * metal::float4(1.0); + int unnamed_31 = 2 / 1; + uint unnamed_32 = 2u / 1u; + float unnamed_33 = 2.0 / 1.0; + metal::int2 unnamed_34 = metal::int2(2) / metal::int2(1); + metal::uint3 unnamed_35 = metal::uint3(2u) / metal::uint3(1u); + metal::float4 unnamed_36 = metal::float4(2.0) / metal::float4(1.0); + int unnamed_37 = 2 % 1; + uint unnamed_38 = 2u % 1u; + float unnamed_39 = metal::fmod(2.0, 1.0); + metal::int2 unnamed_40 = metal::int2(2) % metal::int2(1); + metal::uint3 unnamed_41 = metal::uint3(2u) % metal::uint3(1u); + metal::float4 unnamed_42 = metal::fmod(metal::float4(2.0), metal::float4(1.0)); + metal::int2 unnamed_43 = metal::int2(2) + metal::int2(1); + metal::int2 unnamed_44 = metal::int2(2) + metal::int2(1); + metal::uint2 unnamed_45 = metal::uint2(2u) + metal::uint2(1u); + metal::uint2 unnamed_46 = metal::uint2(2u) + metal::uint2(1u); + metal::float2 unnamed_47 = metal::float2(2.0) + metal::float2(1.0); + metal::float2 unnamed_48 = metal::float2(2.0) + metal::float2(1.0); + metal::int2 unnamed_49 = metal::int2(2) - metal::int2(1); + metal::int2 unnamed_50 = metal::int2(2) - metal::int2(1); + metal::uint2 unnamed_51 = metal::uint2(2u) - metal::uint2(1u); + metal::uint2 unnamed_52 = metal::uint2(2u) - metal::uint2(1u); + metal::float2 unnamed_53 = metal::float2(2.0) - metal::float2(1.0); + metal::float2 unnamed_54 = metal::float2(2.0) - metal::float2(1.0); + metal::int2 unnamed_55 = metal::int2(2) * 1; + metal::int2 unnamed_56 = 2 * metal::int2(1); + metal::uint2 unnamed_57 = metal::uint2(2u) * 1u; + metal::uint2 unnamed_58 = 2u * metal::uint2(1u); + metal::float2 unnamed_59 = metal::float2(2.0) * 1.0; + metal::float2 unnamed_60 = 2.0 * metal::float2(1.0); + metal::int2 unnamed_61 = metal::int2(2) / metal::int2(1); + metal::int2 unnamed_62 = metal::int2(2) / metal::int2(1); + metal::uint2 unnamed_63 = metal::uint2(2u) / metal::uint2(1u); + metal::uint2 unnamed_64 = metal::uint2(2u) / metal::uint2(1u); + metal::float2 unnamed_65 = metal::float2(2.0) / metal::float2(1.0); + metal::float2 unnamed_66 = metal::float2(2.0) / metal::float2(1.0); + metal::int2 unnamed_67 = metal::int2(2) % metal::int2(1); + metal::int2 unnamed_68 = metal::int2(2) % metal::int2(1); + metal::uint2 unnamed_69 = metal::uint2(2u) % metal::uint2(1u); + metal::uint2 unnamed_70 = metal::uint2(2u) % metal::uint2(1u); + metal::float2 unnamed_71 = metal::fmod(metal::float2(2.0), metal::float2(1.0)); + metal::float2 unnamed_72 = metal::fmod(metal::float2(2.0), metal::float2(1.0)); + metal::float3x3 unnamed_73 = const_type_14_ + const_type_14_; + metal::float3x3 unnamed_74 = const_type_14_ - const_type_14_; + metal::float3x3 unnamed_75 = const_type_14_ * 1.0; + metal::float3x3 unnamed_76 = 2.0 * const_type_14_; + metal::float3 unnamed_77 = const_type_15_ * metal::float4(1.0); + metal::float4 unnamed_78 = metal::float3(2.0) * const_type_15_; + metal::float3x3 unnamed_79 = const_type_15_ * const_type_16_; } void bit( ) { - int unnamed_88 = ~1; - uint unnamed_89 = ~1u; - metal::int2 unnamed_90 = ~metal::int2(1); - metal::uint3 unnamed_91 = ~metal::uint3(1u); - int unnamed_92 = 2 | 1; - uint unnamed_93 = 2u | 1u; - metal::int2 unnamed_94 = metal::int2(2) | metal::int2(1); - metal::uint3 unnamed_95 = metal::uint3(2u) | metal::uint3(1u); - int unnamed_96 = 2 & 1; - uint unnamed_97 = 2u & 1u; - metal::int2 unnamed_98 = metal::int2(2) & metal::int2(1); - metal::uint3 unnamed_99 = metal::uint3(2u) & metal::uint3(1u); - int unnamed_100 = 2 ^ 1; - uint unnamed_101 = 2u ^ 1u; - metal::int2 unnamed_102 = metal::int2(2) ^ metal::int2(1); - metal::uint3 unnamed_103 = metal::uint3(2u) ^ metal::uint3(1u); - int unnamed_104 = 2 << 1u; - uint unnamed_105 = 2u << 1u; - metal::int2 unnamed_106 = metal::int2(2) << metal::uint2(1u); - metal::uint3 unnamed_107 = metal::uint3(2u) << metal::uint3(1u); - int unnamed_108 = 2 >> 1u; - uint unnamed_109 = 2u >> 1u; - metal::int2 unnamed_110 = metal::int2(2) >> metal::uint2(1u); - metal::uint3 unnamed_111 = metal::uint3(2u) >> metal::uint3(1u); + int unnamed_80 = ~1; + uint unnamed_81 = ~1u; + metal::int2 unnamed_82 = ~metal::int2(1); + metal::uint3 unnamed_83 = ~metal::uint3(1u); + int unnamed_84 = 2 | 1; + uint unnamed_85 = 2u | 1u; + metal::int2 unnamed_86 = metal::int2(2) | metal::int2(1); + metal::uint3 unnamed_87 = metal::uint3(2u) | metal::uint3(1u); + int unnamed_88 = 2 & 1; + uint unnamed_89 = 2u & 1u; + metal::int2 unnamed_90 = metal::int2(2) & metal::int2(1); + metal::uint3 unnamed_91 = metal::uint3(2u) & metal::uint3(1u); + int unnamed_92 = 2 ^ 1; + uint unnamed_93 = 2u ^ 1u; + metal::int2 unnamed_94 = metal::int2(2) ^ metal::int2(1); + metal::uint3 unnamed_95 = metal::uint3(2u) ^ metal::uint3(1u); + int unnamed_96 = 2 << 1u; + uint unnamed_97 = 2u << 1u; + metal::int2 unnamed_98 = metal::int2(2) << metal::uint2(1u); + metal::uint3 unnamed_99 = metal::uint3(2u) << metal::uint3(1u); + int unnamed_100 = 2 >> 1u; + uint unnamed_101 = 2u >> 1u; + metal::int2 unnamed_102 = metal::int2(2) >> metal::uint2(1u); + metal::uint3 unnamed_103 = metal::uint3(2u) >> metal::uint3(1u); } void comparison( ) { - bool unnamed_112 = 2 == 1; - bool unnamed_113 = 2u == 1u; - bool unnamed_114 = 2.0 == 1.0; - metal::bool2 unnamed_115 = metal::int2(2) == metal::int2(1); - metal::bool3 unnamed_116 = metal::uint3(2u) == metal::uint3(1u); - metal::bool4 unnamed_117 = metal::float4(2.0) == metal::float4(1.0); - bool unnamed_118 = 2 != 1; - bool unnamed_119 = 2u != 1u; - bool unnamed_120 = 2.0 != 1.0; - metal::bool2 unnamed_121 = metal::int2(2) != metal::int2(1); - metal::bool3 unnamed_122 = metal::uint3(2u) != metal::uint3(1u); - metal::bool4 unnamed_123 = metal::float4(2.0) != metal::float4(1.0); - bool unnamed_124 = 2 < 1; - bool unnamed_125 = 2u < 1u; - bool unnamed_126 = 2.0 < 1.0; - metal::bool2 unnamed_127 = metal::int2(2) < metal::int2(1); - metal::bool3 unnamed_128 = metal::uint3(2u) < metal::uint3(1u); - metal::bool4 unnamed_129 = metal::float4(2.0) < metal::float4(1.0); - bool unnamed_130 = 2 <= 1; - bool unnamed_131 = 2u <= 1u; - bool unnamed_132 = 2.0 <= 1.0; - metal::bool2 unnamed_133 = metal::int2(2) <= metal::int2(1); - metal::bool3 unnamed_134 = metal::uint3(2u) <= metal::uint3(1u); - metal::bool4 unnamed_135 = metal::float4(2.0) <= metal::float4(1.0); - bool unnamed_136 = 2 > 1; - bool unnamed_137 = 2u > 1u; - bool unnamed_138 = 2.0 > 1.0; - metal::bool2 unnamed_139 = metal::int2(2) > metal::int2(1); - metal::bool3 unnamed_140 = metal::uint3(2u) > metal::uint3(1u); - metal::bool4 unnamed_141 = metal::float4(2.0) > metal::float4(1.0); - bool unnamed_142 = 2 >= 1; - bool unnamed_143 = 2u >= 1u; - bool unnamed_144 = 2.0 >= 1.0; - metal::bool2 unnamed_145 = metal::int2(2) >= metal::int2(1); - metal::bool3 unnamed_146 = metal::uint3(2u) >= metal::uint3(1u); - metal::bool4 unnamed_147 = metal::float4(2.0) >= metal::float4(1.0); + bool unnamed_104 = 2 == 1; + bool unnamed_105 = 2u == 1u; + bool unnamed_106 = 2.0 == 1.0; + metal::bool2 unnamed_107 = metal::int2(2) == metal::int2(1); + metal::bool3 unnamed_108 = metal::uint3(2u) == metal::uint3(1u); + metal::bool4 unnamed_109 = metal::float4(2.0) == metal::float4(1.0); + bool unnamed_110 = 2 != 1; + bool unnamed_111 = 2u != 1u; + bool unnamed_112 = 2.0 != 1.0; + metal::bool2 unnamed_113 = metal::int2(2) != metal::int2(1); + metal::bool3 unnamed_114 = metal::uint3(2u) != metal::uint3(1u); + metal::bool4 unnamed_115 = metal::float4(2.0) != metal::float4(1.0); + bool unnamed_116 = 2 < 1; + bool unnamed_117 = 2u < 1u; + bool unnamed_118 = 2.0 < 1.0; + metal::bool2 unnamed_119 = metal::int2(2) < metal::int2(1); + metal::bool3 unnamed_120 = metal::uint3(2u) < metal::uint3(1u); + metal::bool4 unnamed_121 = metal::float4(2.0) < metal::float4(1.0); + bool unnamed_122 = 2 <= 1; + bool unnamed_123 = 2u <= 1u; + bool unnamed_124 = 2.0 <= 1.0; + metal::bool2 unnamed_125 = metal::int2(2) <= metal::int2(1); + metal::bool3 unnamed_126 = metal::uint3(2u) <= metal::uint3(1u); + metal::bool4 unnamed_127 = metal::float4(2.0) <= metal::float4(1.0); + bool unnamed_128 = 2 > 1; + bool unnamed_129 = 2u > 1u; + bool unnamed_130 = 2.0 > 1.0; + metal::bool2 unnamed_131 = metal::int2(2) > metal::int2(1); + metal::bool3 unnamed_132 = metal::uint3(2u) > metal::uint3(1u); + metal::bool4 unnamed_133 = metal::float4(2.0) > metal::float4(1.0); + bool unnamed_134 = 2 >= 1; + bool unnamed_135 = 2u >= 1u; + bool unnamed_136 = 2.0 >= 1.0; + metal::bool2 unnamed_137 = metal::int2(2) >= metal::int2(1); + metal::bool3 unnamed_138 = metal::uint3(2u) >= metal::uint3(1u); + metal::bool4 unnamed_139 = metal::float4(2.0) >= metal::float4(1.0); } void assignment( diff --git a/tests/out/spv/access.spvasm b/tests/out/spv/access.spvasm index a50474190c..fa5c64395e 100644 --- a/tests/out/spv/access.spvasm +++ b/tests/out/spv/access.spvasm @@ -1,16 +1,16 @@ ; SPIR-V ; Version: 1.1 ; Generator: rspirv -; Bound: 227 +; Bound: 218 OpCapability Shader OpExtension "SPV_KHR_storage_buffer_storage_class" %1 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 -OpEntryPoint Vertex %150 "foo_vert" %145 %148 -OpEntryPoint Fragment %187 "foo_frag" %186 -OpEntryPoint GLCompute %204 "atomics" -OpExecutionMode %187 OriginUpperLeft -OpExecutionMode %204 LocalSize 1 1 1 +OpEntryPoint Vertex %141 "foo_vert" %136 %139 +OpEntryPoint Fragment %178 "foo_frag" %177 +OpEntryPoint GLCompute %195 "atomics" +OpExecutionMode %178 OriginUpperLeft +OpExecutionMode %195 LocalSize 1 1 1 OpSource GLSL 450 OpMemberName %32 0 "value" OpName %32 "AlignedWrapper" @@ -25,27 +25,19 @@ OpName %43 "Baz" OpName %52 "bar" OpName %54 "baz" OpName %57 "idx" -OpName %59 "_" -OpName %61 "_" -OpName %63 "_" -OpName %64 "_" -OpName %65 "_" -OpName %66 "_" -OpName %67 "_" -OpName %68 "t" -OpName %71 "test_matrix_within_struct_accesses" -OpName %128 "foo" -OpName %129 "read_from_private" -OpName %134 "a" -OpName %135 "test_arr_as_arg" -OpName %140 "foo" -OpName %141 "c" -OpName %143 "_" -OpName %145 "vi" -OpName %150 "foo_vert" -OpName %187 "foo_frag" -OpName %202 "tmp" -OpName %204 "atomics" +OpName %59 "t" +OpName %62 "test_matrix_within_struct_accesses" +OpName %120 "foo" +OpName %121 "read_from_private" +OpName %126 "a" +OpName %127 "test_arr_as_arg" +OpName %132 "foo" +OpName %133 "c" +OpName %136 "vi" +OpName %141 "foo_vert" +OpName %178 "foo_frag" +OpName %193 "tmp" +OpName %195 "atomics" OpMemberDecorate %32 0 Offset 0 OpDecorate %37 ArrayStride 16 OpDecorate %39 ArrayStride 8 @@ -72,9 +64,9 @@ OpDecorate %54 DescriptorSet 0 OpDecorate %54 Binding 1 OpDecorate %55 Block OpMemberDecorate %55 0 Offset 0 -OpDecorate %145 BuiltIn VertexIndex -OpDecorate %148 BuiltIn Position -OpDecorate %186 Location 0 +OpDecorate %136 BuiltIn VertexIndex +OpDecorate %139 BuiltIn Position +OpDecorate %177 Location 0 %2 = OpTypeVoid %4 = OpTypeInt 32 1 %3 = OpConstant %4 2 @@ -131,226 +123,209 @@ OpDecorate %186 Location 0 %56 = OpTypePointer Uniform %55 %54 = OpVariable %56 Uniform %58 = OpTypePointer Function %4 -%60 = OpTypePointer Function %42 -%62 = OpTypePointer Function %36 -%69 = OpTypePointer Function %43 -%72 = OpTypeFunction %2 -%73 = OpTypePointer Uniform %43 -%78 = OpTypePointer Uniform %42 -%81 = OpTypePointer Uniform %36 -%87 = OpTypePointer Uniform %9 -%112 = OpTypePointer Function %36 -%118 = OpTypePointer Function %9 -%130 = OpTypeFunction %9 %44 -%136 = OpTypeFunction %9 %46 -%142 = OpTypePointer Function %49 -%146 = OpTypePointer Input %26 -%145 = OpVariable %146 Input -%149 = OpTypePointer Output %47 -%148 = OpVariable %149 Output -%155 = OpTypePointer StorageBuffer %33 -%158 = OpTypePointer StorageBuffer %39 -%161 = OpTypePointer StorageBuffer %34 -%162 = OpTypePointer StorageBuffer %9 -%165 = OpTypePointer StorageBuffer %40 -%168 = OpTypePointer StorageBuffer %32 -%169 = OpConstant %26 4 -%180 = OpTypeVector %4 4 -%186 = OpVariable %149 Output -%206 = OpTypePointer StorageBuffer %4 -%209 = OpConstant %26 64 -%71 = OpFunction %2 None %72 -%70 = OpLabel -%66 = OpVariable %44 Function -%63 = OpVariable %62 Function +%60 = OpTypePointer Function %43 +%63 = OpTypeFunction %2 +%64 = OpTypePointer Uniform %43 +%69 = OpTypePointer Uniform %42 +%72 = OpTypePointer Uniform %36 +%78 = OpTypePointer Uniform %9 +%98 = OpTypePointer Function %42 +%104 = OpTypePointer Function %36 +%110 = OpTypePointer Function %9 +%122 = OpTypeFunction %9 %44 +%128 = OpTypeFunction %9 %46 +%134 = OpTypePointer Function %49 +%137 = OpTypePointer Input %26 +%136 = OpVariable %137 Input +%140 = OpTypePointer Output %47 +%139 = OpVariable %140 Output +%146 = OpTypePointer StorageBuffer %33 +%149 = OpTypePointer StorageBuffer %39 +%152 = OpTypePointer StorageBuffer %34 +%153 = OpTypePointer StorageBuffer %9 +%156 = OpTypePointer StorageBuffer %40 +%159 = OpTypePointer StorageBuffer %32 +%160 = OpConstant %26 4 +%171 = OpTypeVector %4 4 +%177 = OpVariable %140 Output +%197 = OpTypePointer StorageBuffer %4 +%200 = OpConstant %26 64 +%62 = OpFunction %2 None %63 +%61 = OpLabel %57 = OpVariable %58 Function %5 -%67 = OpVariable %44 Function -%64 = OpVariable %44 Function %59 = OpVariable %60 Function -%68 = OpVariable %69 Function -%65 = OpVariable %44 Function -%61 = OpVariable %62 Function -%74 = OpAccessChain %73 %54 %31 -OpBranch %75 -%75 = OpLabel -%76 = OpLoad %4 %57 -%77 = OpISub %4 %76 %6 -OpStore %57 %77 -%79 = OpAccessChain %78 %74 %31 -%80 = OpLoad %42 %79 -OpStore %59 %80 -%82 = OpAccessChain %81 %74 %31 %31 -%83 = OpLoad %36 %82 -OpStore %61 %83 +%65 = OpAccessChain %64 %54 %31 +OpBranch %66 +%66 = OpLabel +%67 = OpLoad %4 %57 +%68 = OpISub %4 %67 %6 +OpStore %57 %68 +%70 = OpAccessChain %69 %65 %31 +%71 = OpLoad %42 %70 +%73 = OpAccessChain %72 %65 %31 %31 +%74 = OpLoad %36 %73 +%75 = OpLoad %4 %57 +%76 = OpAccessChain %72 %65 %31 %75 +%77 = OpLoad %36 %76 +%79 = OpAccessChain %78 %65 %31 %31 %29 +%80 = OpLoad %9 %79 +%81 = OpLoad %4 %57 +%82 = OpAccessChain %78 %65 %31 %31 %81 +%83 = OpLoad %9 %82 %84 = OpLoad %4 %57 -%85 = OpAccessChain %81 %74 %31 %84 -%86 = OpLoad %36 %85 -OpStore %63 %86 -%88 = OpAccessChain %87 %74 %31 %31 %29 -%89 = OpLoad %9 %88 -OpStore %64 %89 -%90 = OpLoad %4 %57 -%91 = OpAccessChain %87 %74 %31 %31 %90 -%92 = OpLoad %9 %91 -OpStore %65 %92 -%93 = OpLoad %4 %57 -%94 = OpAccessChain %87 %74 %31 %93 %29 -%95 = OpLoad %9 %94 -OpStore %66 %95 +%85 = OpAccessChain %78 %65 %31 %84 %29 +%86 = OpLoad %9 %85 +%87 = OpLoad %4 %57 +%88 = OpLoad %4 %57 +%89 = OpAccessChain %78 %65 %31 %87 %88 +%90 = OpLoad %9 %89 +%91 = OpCompositeConstruct %36 %8 %8 +%92 = OpCompositeConstruct %36 %10 %10 +%93 = OpCompositeConstruct %36 %11 %11 +%94 = OpCompositeConstruct %42 %91 %92 %93 +%95 = OpCompositeConstruct %43 %94 +OpStore %59 %95 %96 = OpLoad %4 %57 -%97 = OpLoad %4 %57 -%98 = OpAccessChain %87 %74 %31 %96 %97 -%99 = OpLoad %9 %98 -OpStore %67 %99 -%100 = OpCompositeConstruct %36 %8 %8 -%101 = OpCompositeConstruct %36 %10 %10 -%102 = OpCompositeConstruct %36 %11 %11 -%103 = OpCompositeConstruct %42 %100 %101 %102 -%104 = OpCompositeConstruct %43 %103 -OpStore %68 %104 -%105 = OpLoad %4 %57 -%106 = OpIAdd %4 %105 %6 -OpStore %57 %106 -%107 = OpCompositeConstruct %36 %12 %12 -%108 = OpCompositeConstruct %36 %13 %13 -%109 = OpCompositeConstruct %36 %14 %14 -%110 = OpCompositeConstruct %42 %107 %108 %109 -%111 = OpAccessChain %60 %68 %31 -OpStore %111 %110 -%113 = OpCompositeConstruct %36 %15 %15 -%114 = OpAccessChain %112 %68 %31 %31 -OpStore %114 %113 -%115 = OpLoad %4 %57 -%116 = OpCompositeConstruct %36 %16 %16 -%117 = OpAccessChain %112 %68 %31 %115 -OpStore %117 %116 -%119 = OpAccessChain %118 %68 %31 %31 %29 -OpStore %119 %17 -%120 = OpLoad %4 %57 -%121 = OpAccessChain %118 %68 %31 %31 %120 -OpStore %121 %18 -%122 = OpLoad %4 %57 -%123 = OpAccessChain %118 %68 %31 %122 %29 -OpStore %123 %19 -%124 = OpLoad %4 %57 -%125 = OpLoad %4 %57 -%126 = OpAccessChain %118 %68 %31 %124 %125 -OpStore %126 %20 +%97 = OpIAdd %4 %96 %6 +OpStore %57 %97 +%99 = OpCompositeConstruct %36 %12 %12 +%100 = OpCompositeConstruct %36 %13 %13 +%101 = OpCompositeConstruct %36 %14 %14 +%102 = OpCompositeConstruct %42 %99 %100 %101 +%103 = OpAccessChain %98 %59 %31 +OpStore %103 %102 +%105 = OpCompositeConstruct %36 %15 %15 +%106 = OpAccessChain %104 %59 %31 %31 +OpStore %106 %105 +%107 = OpLoad %4 %57 +%108 = OpCompositeConstruct %36 %16 %16 +%109 = OpAccessChain %104 %59 %31 %107 +OpStore %109 %108 +%111 = OpAccessChain %110 %59 %31 %31 %29 +OpStore %111 %17 +%112 = OpLoad %4 %57 +%113 = OpAccessChain %110 %59 %31 %31 %112 +OpStore %113 %18 +%114 = OpLoad %4 %57 +%115 = OpAccessChain %110 %59 %31 %114 %29 +OpStore %115 %19 +%116 = OpLoad %4 %57 +%117 = OpLoad %4 %57 +%118 = OpAccessChain %110 %59 %31 %116 %117 +OpStore %118 %20 OpReturn OpFunctionEnd -%129 = OpFunction %9 None %130 -%128 = OpFunctionParameter %44 -%127 = OpLabel -OpBranch %131 -%131 = OpLabel -%132 = OpLoad %9 %128 -OpReturnValue %132 +%121 = OpFunction %9 None %122 +%120 = OpFunctionParameter %44 +%119 = OpLabel +OpBranch %123 +%123 = OpLabel +%124 = OpLoad %9 %120 +OpReturnValue %124 OpFunctionEnd -%135 = OpFunction %9 None %136 -%134 = OpFunctionParameter %46 -%133 = OpLabel -OpBranch %137 -%137 = OpLabel -%138 = OpCompositeExtract %45 %134 4 -%139 = OpCompositeExtract %9 %138 9 -OpReturnValue %139 +%127 = OpFunction %9 None %128 +%126 = OpFunctionParameter %46 +%125 = OpLabel +OpBranch %129 +%129 = OpLabel +%130 = OpCompositeExtract %45 %126 4 +%131 = OpCompositeExtract %9 %130 9 +OpReturnValue %131 OpFunctionEnd -%150 = OpFunction %2 None %72 -%144 = OpLabel -%140 = OpVariable %44 Function %24 -%141 = OpVariable %142 Function -%143 = OpVariable %44 Function -%147 = OpLoad %26 %145 -%151 = OpAccessChain %73 %54 %31 -OpBranch %152 -%152 = OpLabel -%153 = OpLoad %9 %140 -OpStore %140 %8 -%154 = OpFunctionCall %2 %71 -%156 = OpAccessChain %155 %52 %31 -%157 = OpLoad %33 %156 -%159 = OpAccessChain %158 %52 %25 -%160 = OpLoad %39 %159 -%163 = OpAccessChain %162 %52 %31 %25 %31 -%164 = OpLoad %9 %163 -%166 = OpArrayLength %26 %52 4 -%167 = OpISub %26 %166 %27 -%170 = OpAccessChain %48 %52 %169 %167 %31 -%171 = OpLoad %4 %170 -%172 = OpFunctionCall %9 %129 %140 -%173 = OpConvertFToS %4 %164 -%174 = OpCompositeConstruct %49 %171 %173 %28 %23 %22 -OpStore %141 %174 -%175 = OpIAdd %26 %147 %29 -%176 = OpAccessChain %58 %141 %175 -OpStore %176 %30 -%177 = OpAccessChain %58 %141 %147 -%178 = OpLoad %4 %177 -%179 = OpFunctionCall %9 %135 %51 -OpStore %143 %179 -%181 = OpCompositeConstruct %180 %178 %178 %178 %178 -%182 = OpConvertSToF %47 %181 -%183 = OpMatrixTimesVector %34 %157 %182 -%184 = OpCompositeConstruct %47 %183 %10 -OpStore %148 %184 +%141 = OpFunction %2 None %63 +%135 = OpLabel +%132 = OpVariable %44 Function %24 +%133 = OpVariable %134 Function +%138 = OpLoad %26 %136 +%142 = OpAccessChain %64 %54 %31 +OpBranch %143 +%143 = OpLabel +%144 = OpLoad %9 %132 +OpStore %132 %8 +%145 = OpFunctionCall %2 %62 +%147 = OpAccessChain %146 %52 %31 +%148 = OpLoad %33 %147 +%150 = OpAccessChain %149 %52 %25 +%151 = OpLoad %39 %150 +%154 = OpAccessChain %153 %52 %31 %25 %31 +%155 = OpLoad %9 %154 +%157 = OpArrayLength %26 %52 4 +%158 = OpISub %26 %157 %27 +%161 = OpAccessChain %48 %52 %160 %158 %31 +%162 = OpLoad %4 %161 +%163 = OpFunctionCall %9 %121 %132 +%164 = OpConvertFToS %4 %155 +%165 = OpCompositeConstruct %49 %162 %164 %28 %23 %22 +OpStore %133 %165 +%166 = OpIAdd %26 %138 %29 +%167 = OpAccessChain %58 %133 %166 +OpStore %167 %30 +%168 = OpAccessChain %58 %133 %138 +%169 = OpLoad %4 %168 +%170 = OpFunctionCall %9 %127 %51 +%172 = OpCompositeConstruct %171 %169 %169 %169 %169 +%173 = OpConvertSToF %47 %172 +%174 = OpMatrixTimesVector %34 %148 %173 +%175 = OpCompositeConstruct %47 %174 %10 +OpStore %139 %175 OpReturn OpFunctionEnd -%187 = OpFunction %2 None %72 -%185 = OpLabel -OpBranch %188 -%188 = OpLabel -%189 = OpAccessChain %162 %52 %31 %29 %27 -OpStore %189 %8 -%190 = OpCompositeConstruct %34 %24 %24 %24 -%191 = OpCompositeConstruct %34 %8 %8 %8 -%192 = OpCompositeConstruct %34 %10 %10 %10 -%193 = OpCompositeConstruct %34 %11 %11 %11 -%194 = OpCompositeConstruct %33 %190 %191 %192 %193 -%195 = OpAccessChain %155 %52 %31 -OpStore %195 %194 -%196 = OpCompositeConstruct %38 %31 %31 -%197 = OpCompositeConstruct %38 %29 %29 -%198 = OpCompositeConstruct %39 %196 %197 -%199 = OpAccessChain %158 %52 %25 -OpStore %199 %198 -%200 = OpAccessChain %48 %52 %169 %29 %31 -OpStore %200 %6 -%201 = OpCompositeConstruct %47 %24 %24 %24 %24 -OpStore %186 %201 +%178 = OpFunction %2 None %63 +%176 = OpLabel +OpBranch %179 +%179 = OpLabel +%180 = OpAccessChain %153 %52 %31 %29 %27 +OpStore %180 %8 +%181 = OpCompositeConstruct %34 %24 %24 %24 +%182 = OpCompositeConstruct %34 %8 %8 %8 +%183 = OpCompositeConstruct %34 %10 %10 %10 +%184 = OpCompositeConstruct %34 %11 %11 %11 +%185 = OpCompositeConstruct %33 %181 %182 %183 %184 +%186 = OpAccessChain %146 %52 %31 +OpStore %186 %185 +%187 = OpCompositeConstruct %38 %31 %31 +%188 = OpCompositeConstruct %38 %29 %29 +%189 = OpCompositeConstruct %39 %187 %188 +%190 = OpAccessChain %149 %52 %25 +OpStore %190 %189 +%191 = OpAccessChain %48 %52 %160 %29 %31 +OpStore %191 %6 +%192 = OpCompositeConstruct %47 %24 %24 %24 %24 +OpStore %177 %192 OpReturn OpFunctionEnd -%204 = OpFunction %2 None %72 -%203 = OpLabel -%202 = OpVariable %58 Function -OpBranch %205 -%205 = OpLabel -%207 = OpAccessChain %206 %52 %27 -%208 = OpAtomicLoad %4 %207 %6 %209 -%211 = OpAccessChain %206 %52 %27 -%210 = OpAtomicIAdd %4 %211 %6 %209 %22 -OpStore %202 %210 -%213 = OpAccessChain %206 %52 %27 -%212 = OpAtomicISub %4 %213 %6 %209 %22 -OpStore %202 %212 -%215 = OpAccessChain %206 %52 %27 -%214 = OpAtomicAnd %4 %215 %6 %209 %22 -OpStore %202 %214 -%217 = OpAccessChain %206 %52 %27 -%216 = OpAtomicOr %4 %217 %6 %209 %22 -OpStore %202 %216 -%219 = OpAccessChain %206 %52 %27 -%218 = OpAtomicXor %4 %219 %6 %209 %22 -OpStore %202 %218 -%221 = OpAccessChain %206 %52 %27 -%220 = OpAtomicSMin %4 %221 %6 %209 %22 -OpStore %202 %220 -%223 = OpAccessChain %206 %52 %27 -%222 = OpAtomicSMax %4 %223 %6 %209 %22 -OpStore %202 %222 -%225 = OpAccessChain %206 %52 %27 -%224 = OpAtomicExchange %4 %225 %6 %209 %22 -OpStore %202 %224 -%226 = OpAccessChain %206 %52 %27 -OpAtomicStore %226 %6 %209 %208 +%195 = OpFunction %2 None %63 +%194 = OpLabel +%193 = OpVariable %58 Function +OpBranch %196 +%196 = OpLabel +%198 = OpAccessChain %197 %52 %27 +%199 = OpAtomicLoad %4 %198 %6 %200 +%202 = OpAccessChain %197 %52 %27 +%201 = OpAtomicIAdd %4 %202 %6 %200 %22 +OpStore %193 %201 +%204 = OpAccessChain %197 %52 %27 +%203 = OpAtomicISub %4 %204 %6 %200 %22 +OpStore %193 %203 +%206 = OpAccessChain %197 %52 %27 +%205 = OpAtomicAnd %4 %206 %6 %200 %22 +OpStore %193 %205 +%208 = OpAccessChain %197 %52 %27 +%207 = OpAtomicOr %4 %208 %6 %200 %22 +OpStore %193 %207 +%210 = OpAccessChain %197 %52 %27 +%209 = OpAtomicXor %4 %210 %6 %200 %22 +OpStore %193 %209 +%212 = OpAccessChain %197 %52 %27 +%211 = OpAtomicSMin %4 %212 %6 %200 %22 +OpStore %193 %211 +%214 = OpAccessChain %197 %52 %27 +%213 = OpAtomicSMax %4 %214 %6 %200 %22 +OpStore %193 %213 +%216 = OpAccessChain %197 %52 %27 +%215 = OpAtomicExchange %4 %216 %6 %200 %22 +OpStore %193 %215 +%217 = OpAccessChain %197 %52 %27 +OpAtomicStore %217 %6 %200 %199 OpReturn OpFunctionEnd \ No newline at end of file diff --git a/tests/out/spv/operators.spvasm b/tests/out/spv/operators.spvasm index 8801c2f24e..8de46ea3da 100644 --- a/tests/out/spv/operators.spvasm +++ b/tests/out/spv/operators.spvasm @@ -1,12 +1,12 @@ ; SPIR-V ; Version: 1.1 ; Generator: rspirv -; Bound: 519 +; Bound: 501 OpCapability Shader %1 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 -OpEntryPoint GLCompute %507 "main" -OpExecutionMode %507 LocalSize 1 1 1 +OpEntryPoint GLCompute %489 "main" +OpExecutionMode %489 LocalSize 1 1 1 OpMemberDecorate %30 0 Offset 0 OpMemberDecorate %30 1 Offset 16 OpDecorate %35 ArrayStride 32 @@ -67,21 +67,14 @@ OpDecorate %36 ArrayStride 4 %98 = OpTypeFunction %29 %29 %100 = OpTypeVector %10 3 %107 = OpTypePointer Function %30 -%109 = OpTypePointer Function %10 -%111 = OpTypePointer Function %8 -%113 = OpTypePointer Function %20 -%115 = OpTypePointer Function %4 -%117 = OpTypePointer Function %34 -%119 = OpTypePointer Function %32 -%121 = OpTypePointer Function %35 -%126 = OpTypePointer Function %36 -%129 = OpTypeFunction %4 -%146 = OpTypePointer Function %26 -%147 = OpTypePointer Function %4 -%152 = OpTypeFunction %2 -%155 = OpTypeVector %10 2 -%171 = OpTypeVector %8 2 -%182 = OpTypeVector %20 3 +%110 = OpTypeFunction %4 +%127 = OpTypePointer Function %26 +%128 = OpTypePointer Function %4 +%133 = OpTypeFunction %2 +%136 = OpTypeVector %10 2 +%152 = OpTypeVector %8 2 +%163 = OpTypeVector %20 3 +%458 = OpTypePointer Function %8 %55 = OpFunction %26 None %56 %54 = OpLabel OpBranch %57 @@ -140,437 +133,423 @@ OpBranch %99 %105 = OpSelect %29 %102 %104 %103 OpReturnValue %105 OpFunctionEnd -%128 = OpFunction %4 None %129 -%127 = OpLabel -%123 = OpVariable %117 Function -%118 = OpVariable %119 Function %46 -%112 = OpVariable %113 Function %19 +%109 = OpFunction %4 None %110 +%108 = OpLabel %106 = OpVariable %107 Function -%124 = OpVariable %119 Function -%120 = OpVariable %121 Function %49 -%114 = OpVariable %115 Function %5 -%108 = OpVariable %109 Function %12 -%125 = OpVariable %126 Function -%122 = OpVariable %107 Function %48 -%116 = OpVariable %117 Function %44 -%110 = OpVariable %111 Function %11 -OpBranch %130 -%130 = OpLabel -%131 = OpCompositeConstruct %26 %3 %3 %3 %3 -%132 = OpCompositeConstruct %30 %131 %7 -OpStore %106 %132 -%133 = OpCompositeConstruct %31 %3 %5 -%134 = OpCompositeConstruct %31 %5 %3 -%135 = OpCompositeConstruct %32 %133 %134 -%136 = OpCompositeConstruct %26 %3 %5 %5 %5 -%137 = OpCompositeConstruct %26 %5 %3 %5 %5 -%138 = OpCompositeConstruct %26 %5 %5 %3 %5 -%139 = OpCompositeConstruct %26 %5 %5 %5 %3 -%140 = OpCompositeConstruct %33 %136 %137 %138 %139 -%141 = OpCompositeConstruct %34 %19 %19 -OpStore %123 %141 -%142 = OpCompositeConstruct %31 %5 %5 -%143 = OpCompositeConstruct %31 %5 %5 -%144 = OpCompositeConstruct %32 %142 %143 -OpStore %124 %144 -%145 = OpCompositeConstruct %36 %11 %7 %18 %21 -OpStore %125 %145 -%148 = OpAccessChain %147 %106 %19 %19 -%149 = OpLoad %4 %148 -OpReturnValue %149 +OpBranch %111 +%111 = OpLabel +%112 = OpCompositeConstruct %26 %3 %3 %3 %3 +%113 = OpCompositeConstruct %30 %112 %7 +OpStore %106 %113 +%114 = OpCompositeConstruct %31 %3 %5 +%115 = OpCompositeConstruct %31 %5 %3 +%116 = OpCompositeConstruct %32 %114 %115 +%117 = OpCompositeConstruct %26 %3 %5 %5 %5 +%118 = OpCompositeConstruct %26 %5 %3 %5 %5 +%119 = OpCompositeConstruct %26 %5 %5 %3 %5 +%120 = OpCompositeConstruct %26 %5 %5 %5 %3 +%121 = OpCompositeConstruct %33 %117 %118 %119 %120 +%122 = OpCompositeConstruct %34 %19 %19 +%123 = OpCompositeConstruct %31 %5 %5 +%124 = OpCompositeConstruct %31 %5 %5 +%125 = OpCompositeConstruct %32 %123 %124 +%126 = OpCompositeConstruct %36 %11 %7 %18 %21 +%129 = OpAccessChain %128 %106 %19 %19 +%130 = OpLoad %4 %129 +OpReturnValue %130 OpFunctionEnd -%151 = OpFunction %2 None %152 -%150 = OpLabel -OpBranch %153 -%153 = OpLabel -%154 = OpLogicalNot %10 %9 -%156 = OpCompositeConstruct %155 %9 %9 -%157 = OpLogicalNot %155 %156 -%158 = OpLogicalOr %10 %9 %12 -%159 = OpLogicalAnd %10 %9 %12 -%160 = OpLogicalOr %10 %9 %12 -%161 = OpCompositeConstruct %100 %9 %9 %9 -%162 = OpCompositeConstruct %100 %12 %12 %12 -%163 = OpLogicalOr %100 %161 %162 -%164 = OpLogicalAnd %10 %9 %12 -%165 = OpCompositeConstruct %28 %9 %9 %9 %9 -%166 = OpCompositeConstruct %28 %12 %12 %12 %12 -%167 = OpLogicalAnd %28 %165 %166 +%132 = OpFunction %2 None %133 +%131 = OpLabel +OpBranch %134 +%134 = OpLabel +%135 = OpLogicalNot %10 %9 +%137 = OpCompositeConstruct %136 %9 %9 +%138 = OpLogicalNot %136 %137 +%139 = OpLogicalOr %10 %9 %12 +%140 = OpLogicalAnd %10 %9 %12 +%141 = OpLogicalOr %10 %9 %12 +%142 = OpCompositeConstruct %100 %9 %9 %9 +%143 = OpCompositeConstruct %100 %12 %12 %12 +%144 = OpLogicalOr %100 %142 %143 +%145 = OpLogicalAnd %10 %9 %12 +%146 = OpCompositeConstruct %28 %9 %9 %9 %9 +%147 = OpCompositeConstruct %28 %12 %12 %12 %12 +%148 = OpLogicalAnd %28 %146 %147 OpReturn OpFunctionEnd -%169 = OpFunction %2 None %152 -%168 = OpLabel -OpBranch %170 -%170 = OpLabel -%172 = OpCompositeConstruct %171 %7 %7 -%173 = OpSNegate %171 %172 -%174 = OpCompositeConstruct %31 %3 %3 -%175 = OpFNegate %31 %174 -%176 = OpIAdd %8 %18 %7 -%177 = OpIAdd %20 %24 %25 -%178 = OpFAdd %4 %14 %3 -%179 = OpCompositeConstruct %171 %18 %18 -%180 = OpCompositeConstruct %171 %7 %7 -%181 = OpIAdd %171 %179 %180 -%183 = OpCompositeConstruct %182 %24 %24 %24 -%184 = OpCompositeConstruct %182 %25 %25 %25 -%185 = OpIAdd %182 %183 %184 -%186 = OpCompositeConstruct %26 %14 %14 %14 %14 -%187 = OpCompositeConstruct %26 %3 %3 %3 %3 -%188 = OpFAdd %26 %186 %187 -%189 = OpISub %8 %18 %7 -%190 = OpISub %20 %24 %25 -%191 = OpFSub %4 %14 %3 -%192 = OpCompositeConstruct %171 %18 %18 -%193 = OpCompositeConstruct %171 %7 %7 -%194 = OpISub %171 %192 %193 -%195 = OpCompositeConstruct %182 %24 %24 %24 -%196 = OpCompositeConstruct %182 %25 %25 %25 -%197 = OpISub %182 %195 %196 -%198 = OpCompositeConstruct %26 %14 %14 %14 %14 -%199 = OpCompositeConstruct %26 %3 %3 %3 %3 -%200 = OpFSub %26 %198 %199 -%201 = OpIMul %8 %18 %7 -%202 = OpIMul %20 %24 %25 -%203 = OpFMul %4 %14 %3 -%204 = OpCompositeConstruct %171 %18 %18 -%205 = OpCompositeConstruct %171 %7 %7 -%206 = OpIMul %171 %204 %205 -%207 = OpCompositeConstruct %182 %24 %24 %24 -%208 = OpCompositeConstruct %182 %25 %25 %25 -%209 = OpIMul %182 %207 %208 -%210 = OpCompositeConstruct %26 %14 %14 %14 %14 -%211 = OpCompositeConstruct %26 %3 %3 %3 %3 -%212 = OpFMul %26 %210 %211 -%213 = OpSDiv %8 %18 %7 -%214 = OpUDiv %20 %24 %25 -%215 = OpFDiv %4 %14 %3 -%216 = OpCompositeConstruct %171 %18 %18 -%217 = OpCompositeConstruct %171 %7 %7 -%218 = OpSDiv %171 %216 %217 -%219 = OpCompositeConstruct %182 %24 %24 %24 -%220 = OpCompositeConstruct %182 %25 %25 %25 -%221 = OpUDiv %182 %219 %220 -%222 = OpCompositeConstruct %26 %14 %14 %14 %14 -%223 = OpCompositeConstruct %26 %3 %3 %3 %3 -%224 = OpFDiv %26 %222 %223 -%225 = OpSMod %8 %18 %7 -%226 = OpUMod %20 %24 %25 -%227 = OpFRem %4 %14 %3 -%228 = OpCompositeConstruct %171 %18 %18 -%229 = OpCompositeConstruct %171 %7 %7 -%230 = OpSMod %171 %228 %229 -%231 = OpCompositeConstruct %182 %24 %24 %24 -%232 = OpCompositeConstruct %182 %25 %25 %25 -%233 = OpUMod %182 %231 %232 -%234 = OpCompositeConstruct %26 %14 %14 %14 %14 -%235 = OpCompositeConstruct %26 %3 %3 %3 %3 -%236 = OpFRem %26 %234 %235 -%237 = OpCompositeConstruct %171 %18 %18 -%238 = OpCompositeConstruct %171 %7 %7 -%239 = OpIAdd %171 %237 %238 -%240 = OpCompositeConstruct %171 %7 %7 -%241 = OpCompositeConstruct %171 %18 %18 -%242 = OpIAdd %171 %241 %240 -%243 = OpCompositeConstruct %34 %24 %24 -%244 = OpCompositeConstruct %34 %25 %25 -%245 = OpIAdd %34 %243 %244 -%246 = OpCompositeConstruct %34 %25 %25 -%247 = OpCompositeConstruct %34 %24 %24 -%248 = OpIAdd %34 %247 %246 -%249 = OpCompositeConstruct %31 %14 %14 -%250 = OpCompositeConstruct %31 %3 %3 -%251 = OpFAdd %31 %249 %250 -%252 = OpCompositeConstruct %31 %3 %3 -%253 = OpCompositeConstruct %31 %14 %14 -%254 = OpFAdd %31 %253 %252 -%255 = OpCompositeConstruct %171 %18 %18 -%256 = OpCompositeConstruct %171 %7 %7 -%257 = OpISub %171 %255 %256 -%258 = OpCompositeConstruct %171 %7 %7 -%259 = OpCompositeConstruct %171 %18 %18 -%260 = OpISub %171 %259 %258 -%261 = OpCompositeConstruct %34 %24 %24 +%150 = OpFunction %2 None %133 +%149 = OpLabel +OpBranch %151 +%151 = OpLabel +%153 = OpCompositeConstruct %152 %7 %7 +%154 = OpSNegate %152 %153 +%155 = OpCompositeConstruct %31 %3 %3 +%156 = OpFNegate %31 %155 +%157 = OpIAdd %8 %18 %7 +%158 = OpIAdd %20 %24 %25 +%159 = OpFAdd %4 %14 %3 +%160 = OpCompositeConstruct %152 %18 %18 +%161 = OpCompositeConstruct %152 %7 %7 +%162 = OpIAdd %152 %160 %161 +%164 = OpCompositeConstruct %163 %24 %24 %24 +%165 = OpCompositeConstruct %163 %25 %25 %25 +%166 = OpIAdd %163 %164 %165 +%167 = OpCompositeConstruct %26 %14 %14 %14 %14 +%168 = OpCompositeConstruct %26 %3 %3 %3 %3 +%169 = OpFAdd %26 %167 %168 +%170 = OpISub %8 %18 %7 +%171 = OpISub %20 %24 %25 +%172 = OpFSub %4 %14 %3 +%173 = OpCompositeConstruct %152 %18 %18 +%174 = OpCompositeConstruct %152 %7 %7 +%175 = OpISub %152 %173 %174 +%176 = OpCompositeConstruct %163 %24 %24 %24 +%177 = OpCompositeConstruct %163 %25 %25 %25 +%178 = OpISub %163 %176 %177 +%179 = OpCompositeConstruct %26 %14 %14 %14 %14 +%180 = OpCompositeConstruct %26 %3 %3 %3 %3 +%181 = OpFSub %26 %179 %180 +%182 = OpIMul %8 %18 %7 +%183 = OpIMul %20 %24 %25 +%184 = OpFMul %4 %14 %3 +%185 = OpCompositeConstruct %152 %18 %18 +%186 = OpCompositeConstruct %152 %7 %7 +%187 = OpIMul %152 %185 %186 +%188 = OpCompositeConstruct %163 %24 %24 %24 +%189 = OpCompositeConstruct %163 %25 %25 %25 +%190 = OpIMul %163 %188 %189 +%191 = OpCompositeConstruct %26 %14 %14 %14 %14 +%192 = OpCompositeConstruct %26 %3 %3 %3 %3 +%193 = OpFMul %26 %191 %192 +%194 = OpSDiv %8 %18 %7 +%195 = OpUDiv %20 %24 %25 +%196 = OpFDiv %4 %14 %3 +%197 = OpCompositeConstruct %152 %18 %18 +%198 = OpCompositeConstruct %152 %7 %7 +%199 = OpSDiv %152 %197 %198 +%200 = OpCompositeConstruct %163 %24 %24 %24 +%201 = OpCompositeConstruct %163 %25 %25 %25 +%202 = OpUDiv %163 %200 %201 +%203 = OpCompositeConstruct %26 %14 %14 %14 %14 +%204 = OpCompositeConstruct %26 %3 %3 %3 %3 +%205 = OpFDiv %26 %203 %204 +%206 = OpSMod %8 %18 %7 +%207 = OpUMod %20 %24 %25 +%208 = OpFRem %4 %14 %3 +%209 = OpCompositeConstruct %152 %18 %18 +%210 = OpCompositeConstruct %152 %7 %7 +%211 = OpSMod %152 %209 %210 +%212 = OpCompositeConstruct %163 %24 %24 %24 +%213 = OpCompositeConstruct %163 %25 %25 %25 +%214 = OpUMod %163 %212 %213 +%215 = OpCompositeConstruct %26 %14 %14 %14 %14 +%216 = OpCompositeConstruct %26 %3 %3 %3 %3 +%217 = OpFRem %26 %215 %216 +%218 = OpCompositeConstruct %152 %18 %18 +%219 = OpCompositeConstruct %152 %7 %7 +%220 = OpIAdd %152 %218 %219 +%221 = OpCompositeConstruct %152 %7 %7 +%222 = OpCompositeConstruct %152 %18 %18 +%223 = OpIAdd %152 %222 %221 +%224 = OpCompositeConstruct %34 %24 %24 +%225 = OpCompositeConstruct %34 %25 %25 +%226 = OpIAdd %34 %224 %225 +%227 = OpCompositeConstruct %34 %25 %25 +%228 = OpCompositeConstruct %34 %24 %24 +%229 = OpIAdd %34 %228 %227 +%230 = OpCompositeConstruct %31 %14 %14 +%231 = OpCompositeConstruct %31 %3 %3 +%232 = OpFAdd %31 %230 %231 +%233 = OpCompositeConstruct %31 %3 %3 +%234 = OpCompositeConstruct %31 %14 %14 +%235 = OpFAdd %31 %234 %233 +%236 = OpCompositeConstruct %152 %18 %18 +%237 = OpCompositeConstruct %152 %7 %7 +%238 = OpISub %152 %236 %237 +%239 = OpCompositeConstruct %152 %7 %7 +%240 = OpCompositeConstruct %152 %18 %18 +%241 = OpISub %152 %240 %239 +%242 = OpCompositeConstruct %34 %24 %24 +%243 = OpCompositeConstruct %34 %25 %25 +%244 = OpISub %34 %242 %243 +%245 = OpCompositeConstruct %34 %25 %25 +%246 = OpCompositeConstruct %34 %24 %24 +%247 = OpISub %34 %246 %245 +%248 = OpCompositeConstruct %31 %14 %14 +%249 = OpCompositeConstruct %31 %3 %3 +%250 = OpFSub %31 %248 %249 +%251 = OpCompositeConstruct %31 %3 %3 +%252 = OpCompositeConstruct %31 %14 %14 +%253 = OpFSub %31 %252 %251 +%254 = OpCompositeConstruct %152 %18 %18 +%256 = OpCompositeConstruct %152 %7 %7 +%255 = OpIMul %152 %254 %256 +%257 = OpCompositeConstruct %152 %7 %7 +%259 = OpCompositeConstruct %152 %18 %18 +%258 = OpIMul %152 %257 %259 +%260 = OpCompositeConstruct %34 %24 %24 %262 = OpCompositeConstruct %34 %25 %25 -%263 = OpISub %34 %261 %262 -%264 = OpCompositeConstruct %34 %25 %25 +%261 = OpIMul %34 %260 %262 +%263 = OpCompositeConstruct %34 %25 %25 %265 = OpCompositeConstruct %34 %24 %24 -%266 = OpISub %34 %265 %264 -%267 = OpCompositeConstruct %31 %14 %14 +%264 = OpIMul %34 %263 %265 +%266 = OpCompositeConstruct %31 %14 %14 +%267 = OpVectorTimesScalar %31 %266 %3 %268 = OpCompositeConstruct %31 %3 %3 -%269 = OpFSub %31 %267 %268 -%270 = OpCompositeConstruct %31 %3 %3 -%271 = OpCompositeConstruct %31 %14 %14 -%272 = OpFSub %31 %271 %270 -%273 = OpCompositeConstruct %171 %18 %18 -%275 = OpCompositeConstruct %171 %7 %7 -%274 = OpIMul %171 %273 %275 -%276 = OpCompositeConstruct %171 %7 %7 -%278 = OpCompositeConstruct %171 %18 %18 -%277 = OpIMul %171 %276 %278 -%279 = OpCompositeConstruct %34 %24 %24 -%281 = OpCompositeConstruct %34 %25 %25 -%280 = OpIMul %34 %279 %281 -%282 = OpCompositeConstruct %34 %25 %25 -%284 = OpCompositeConstruct %34 %24 %24 -%283 = OpIMul %34 %282 %284 -%285 = OpCompositeConstruct %31 %14 %14 -%286 = OpVectorTimesScalar %31 %285 %3 -%287 = OpCompositeConstruct %31 %3 %3 -%288 = OpVectorTimesScalar %31 %287 %14 -%289 = OpCompositeConstruct %171 %18 %18 -%290 = OpCompositeConstruct %171 %7 %7 -%291 = OpSDiv %171 %289 %290 -%292 = OpCompositeConstruct %171 %7 %7 -%293 = OpCompositeConstruct %171 %18 %18 -%294 = OpSDiv %171 %293 %292 -%295 = OpCompositeConstruct %34 %24 %24 -%296 = OpCompositeConstruct %34 %25 %25 -%297 = OpUDiv %34 %295 %296 -%298 = OpCompositeConstruct %34 %25 %25 -%299 = OpCompositeConstruct %34 %24 %24 -%300 = OpUDiv %34 %299 %298 -%301 = OpCompositeConstruct %31 %14 %14 -%302 = OpCompositeConstruct %31 %3 %3 -%303 = OpFDiv %31 %301 %302 -%304 = OpCompositeConstruct %31 %3 %3 -%305 = OpCompositeConstruct %31 %14 %14 -%306 = OpFDiv %31 %305 %304 -%307 = OpCompositeConstruct %171 %18 %18 -%308 = OpCompositeConstruct %171 %7 %7 -%309 = OpSMod %171 %307 %308 -%310 = OpCompositeConstruct %171 %7 %7 -%311 = OpCompositeConstruct %171 %18 %18 -%312 = OpSMod %171 %311 %310 -%313 = OpCompositeConstruct %34 %24 %24 -%314 = OpCompositeConstruct %34 %25 %25 -%315 = OpUMod %34 %313 %314 -%316 = OpCompositeConstruct %34 %25 %25 -%317 = OpCompositeConstruct %34 %24 %24 -%318 = OpUMod %34 %317 %316 -%319 = OpCompositeConstruct %31 %14 %14 -%320 = OpCompositeConstruct %31 %3 %3 -%321 = OpFRem %31 %319 %320 -%322 = OpCompositeConstruct %31 %3 %3 -%323 = OpCompositeConstruct %31 %14 %14 -%324 = OpFRem %31 %323 %322 -%326 = OpCompositeExtract %29 %51 0 -%327 = OpCompositeExtract %29 %51 0 -%328 = OpFAdd %29 %326 %327 -%329 = OpCompositeExtract %29 %51 1 -%330 = OpCompositeExtract %29 %51 1 -%331 = OpFAdd %29 %329 %330 -%332 = OpCompositeExtract %29 %51 2 -%333 = OpCompositeExtract %29 %51 2 -%334 = OpFAdd %29 %332 %333 -%325 = OpCompositeConstruct %37 %328 %331 %334 -%336 = OpCompositeExtract %29 %51 0 -%337 = OpCompositeExtract %29 %51 0 -%338 = OpFSub %29 %336 %337 -%339 = OpCompositeExtract %29 %51 1 -%340 = OpCompositeExtract %29 %51 1 -%341 = OpFSub %29 %339 %340 -%342 = OpCompositeExtract %29 %51 2 -%343 = OpCompositeExtract %29 %51 2 -%344 = OpFSub %29 %342 %343 -%335 = OpCompositeConstruct %37 %338 %341 %344 -%345 = OpMatrixTimesScalar %37 %51 %3 -%346 = OpMatrixTimesScalar %37 %51 %14 -%347 = OpCompositeConstruct %26 %3 %3 %3 %3 -%348 = OpMatrixTimesVector %29 %52 %347 -%349 = OpCompositeConstruct %29 %14 %14 %14 -%350 = OpVectorTimesMatrix %26 %349 %52 -%351 = OpMatrixTimesMatrix %37 %52 %53 +%269 = OpVectorTimesScalar %31 %268 %14 +%270 = OpCompositeConstruct %152 %18 %18 +%271 = OpCompositeConstruct %152 %7 %7 +%272 = OpSDiv %152 %270 %271 +%273 = OpCompositeConstruct %152 %7 %7 +%274 = OpCompositeConstruct %152 %18 %18 +%275 = OpSDiv %152 %274 %273 +%276 = OpCompositeConstruct %34 %24 %24 +%277 = OpCompositeConstruct %34 %25 %25 +%278 = OpUDiv %34 %276 %277 +%279 = OpCompositeConstruct %34 %25 %25 +%280 = OpCompositeConstruct %34 %24 %24 +%281 = OpUDiv %34 %280 %279 +%282 = OpCompositeConstruct %31 %14 %14 +%283 = OpCompositeConstruct %31 %3 %3 +%284 = OpFDiv %31 %282 %283 +%285 = OpCompositeConstruct %31 %3 %3 +%286 = OpCompositeConstruct %31 %14 %14 +%287 = OpFDiv %31 %286 %285 +%288 = OpCompositeConstruct %152 %18 %18 +%289 = OpCompositeConstruct %152 %7 %7 +%290 = OpSMod %152 %288 %289 +%291 = OpCompositeConstruct %152 %7 %7 +%292 = OpCompositeConstruct %152 %18 %18 +%293 = OpSMod %152 %292 %291 +%294 = OpCompositeConstruct %34 %24 %24 +%295 = OpCompositeConstruct %34 %25 %25 +%296 = OpUMod %34 %294 %295 +%297 = OpCompositeConstruct %34 %25 %25 +%298 = OpCompositeConstruct %34 %24 %24 +%299 = OpUMod %34 %298 %297 +%300 = OpCompositeConstruct %31 %14 %14 +%301 = OpCompositeConstruct %31 %3 %3 +%302 = OpFRem %31 %300 %301 +%303 = OpCompositeConstruct %31 %3 %3 +%304 = OpCompositeConstruct %31 %14 %14 +%305 = OpFRem %31 %304 %303 +%307 = OpCompositeExtract %29 %51 0 +%308 = OpCompositeExtract %29 %51 0 +%309 = OpFAdd %29 %307 %308 +%310 = OpCompositeExtract %29 %51 1 +%311 = OpCompositeExtract %29 %51 1 +%312 = OpFAdd %29 %310 %311 +%313 = OpCompositeExtract %29 %51 2 +%314 = OpCompositeExtract %29 %51 2 +%315 = OpFAdd %29 %313 %314 +%306 = OpCompositeConstruct %37 %309 %312 %315 +%317 = OpCompositeExtract %29 %51 0 +%318 = OpCompositeExtract %29 %51 0 +%319 = OpFSub %29 %317 %318 +%320 = OpCompositeExtract %29 %51 1 +%321 = OpCompositeExtract %29 %51 1 +%322 = OpFSub %29 %320 %321 +%323 = OpCompositeExtract %29 %51 2 +%324 = OpCompositeExtract %29 %51 2 +%325 = OpFSub %29 %323 %324 +%316 = OpCompositeConstruct %37 %319 %322 %325 +%326 = OpMatrixTimesScalar %37 %51 %3 +%327 = OpMatrixTimesScalar %37 %51 %14 +%328 = OpCompositeConstruct %26 %3 %3 %3 %3 +%329 = OpMatrixTimesVector %29 %52 %328 +%330 = OpCompositeConstruct %29 %14 %14 %14 +%331 = OpVectorTimesMatrix %26 %330 %52 +%332 = OpMatrixTimesMatrix %37 %52 %53 OpReturn OpFunctionEnd -%353 = OpFunction %2 None %152 -%352 = OpLabel -OpBranch %354 -%354 = OpLabel -%355 = OpNot %8 %7 -%356 = OpNot %20 %25 -%357 = OpCompositeConstruct %171 %7 %7 -%358 = OpNot %171 %357 -%359 = OpCompositeConstruct %182 %25 %25 %25 -%360 = OpNot %182 %359 -%361 = OpBitwiseOr %8 %18 %7 -%362 = OpBitwiseOr %20 %24 %25 -%363 = OpCompositeConstruct %171 %18 %18 -%364 = OpCompositeConstruct %171 %7 %7 -%365 = OpBitwiseOr %171 %363 %364 -%366 = OpCompositeConstruct %182 %24 %24 %24 -%367 = OpCompositeConstruct %182 %25 %25 %25 -%368 = OpBitwiseOr %182 %366 %367 -%369 = OpBitwiseAnd %8 %18 %7 -%370 = OpBitwiseAnd %20 %24 %25 -%371 = OpCompositeConstruct %171 %18 %18 -%372 = OpCompositeConstruct %171 %7 %7 -%373 = OpBitwiseAnd %171 %371 %372 -%374 = OpCompositeConstruct %182 %24 %24 %24 -%375 = OpCompositeConstruct %182 %25 %25 %25 -%376 = OpBitwiseAnd %182 %374 %375 -%377 = OpBitwiseXor %8 %18 %7 -%378 = OpBitwiseXor %20 %24 %25 -%379 = OpCompositeConstruct %171 %18 %18 -%380 = OpCompositeConstruct %171 %7 %7 -%381 = OpBitwiseXor %171 %379 %380 -%382 = OpCompositeConstruct %182 %24 %24 %24 -%383 = OpCompositeConstruct %182 %25 %25 %25 -%384 = OpBitwiseXor %182 %382 %383 -%385 = OpShiftLeftLogical %8 %18 %25 -%386 = OpShiftLeftLogical %20 %24 %25 -%387 = OpCompositeConstruct %171 %18 %18 -%388 = OpCompositeConstruct %34 %25 %25 -%389 = OpShiftLeftLogical %171 %387 %388 -%390 = OpCompositeConstruct %182 %24 %24 %24 -%391 = OpCompositeConstruct %182 %25 %25 %25 -%392 = OpShiftLeftLogical %182 %390 %391 -%393 = OpShiftRightArithmetic %8 %18 %25 -%394 = OpShiftRightLogical %20 %24 %25 -%395 = OpCompositeConstruct %171 %18 %18 -%396 = OpCompositeConstruct %34 %25 %25 -%397 = OpShiftRightArithmetic %171 %395 %396 -%398 = OpCompositeConstruct %182 %24 %24 %24 -%399 = OpCompositeConstruct %182 %25 %25 %25 -%400 = OpShiftRightLogical %182 %398 %399 +%334 = OpFunction %2 None %133 +%333 = OpLabel +OpBranch %335 +%335 = OpLabel +%336 = OpNot %8 %7 +%337 = OpNot %20 %25 +%338 = OpCompositeConstruct %152 %7 %7 +%339 = OpNot %152 %338 +%340 = OpCompositeConstruct %163 %25 %25 %25 +%341 = OpNot %163 %340 +%342 = OpBitwiseOr %8 %18 %7 +%343 = OpBitwiseOr %20 %24 %25 +%344 = OpCompositeConstruct %152 %18 %18 +%345 = OpCompositeConstruct %152 %7 %7 +%346 = OpBitwiseOr %152 %344 %345 +%347 = OpCompositeConstruct %163 %24 %24 %24 +%348 = OpCompositeConstruct %163 %25 %25 %25 +%349 = OpBitwiseOr %163 %347 %348 +%350 = OpBitwiseAnd %8 %18 %7 +%351 = OpBitwiseAnd %20 %24 %25 +%352 = OpCompositeConstruct %152 %18 %18 +%353 = OpCompositeConstruct %152 %7 %7 +%354 = OpBitwiseAnd %152 %352 %353 +%355 = OpCompositeConstruct %163 %24 %24 %24 +%356 = OpCompositeConstruct %163 %25 %25 %25 +%357 = OpBitwiseAnd %163 %355 %356 +%358 = OpBitwiseXor %8 %18 %7 +%359 = OpBitwiseXor %20 %24 %25 +%360 = OpCompositeConstruct %152 %18 %18 +%361 = OpCompositeConstruct %152 %7 %7 +%362 = OpBitwiseXor %152 %360 %361 +%363 = OpCompositeConstruct %163 %24 %24 %24 +%364 = OpCompositeConstruct %163 %25 %25 %25 +%365 = OpBitwiseXor %163 %363 %364 +%366 = OpShiftLeftLogical %8 %18 %25 +%367 = OpShiftLeftLogical %20 %24 %25 +%368 = OpCompositeConstruct %152 %18 %18 +%369 = OpCompositeConstruct %34 %25 %25 +%370 = OpShiftLeftLogical %152 %368 %369 +%371 = OpCompositeConstruct %163 %24 %24 %24 +%372 = OpCompositeConstruct %163 %25 %25 %25 +%373 = OpShiftLeftLogical %163 %371 %372 +%374 = OpShiftRightArithmetic %8 %18 %25 +%375 = OpShiftRightLogical %20 %24 %25 +%376 = OpCompositeConstruct %152 %18 %18 +%377 = OpCompositeConstruct %34 %25 %25 +%378 = OpShiftRightArithmetic %152 %376 %377 +%379 = OpCompositeConstruct %163 %24 %24 %24 +%380 = OpCompositeConstruct %163 %25 %25 %25 +%381 = OpShiftRightLogical %163 %379 %380 OpReturn OpFunctionEnd -%402 = OpFunction %2 None %152 -%401 = OpLabel -OpBranch %403 -%403 = OpLabel -%404 = OpIEqual %10 %18 %7 -%405 = OpIEqual %10 %24 %25 -%406 = OpFOrdEqual %10 %14 %3 -%407 = OpCompositeConstruct %171 %18 %18 -%408 = OpCompositeConstruct %171 %7 %7 -%409 = OpIEqual %155 %407 %408 -%410 = OpCompositeConstruct %182 %24 %24 %24 -%411 = OpCompositeConstruct %182 %25 %25 %25 -%412 = OpIEqual %100 %410 %411 -%413 = OpCompositeConstruct %26 %14 %14 %14 %14 -%414 = OpCompositeConstruct %26 %3 %3 %3 %3 -%415 = OpFOrdEqual %28 %413 %414 -%416 = OpINotEqual %10 %18 %7 -%417 = OpINotEqual %10 %24 %25 -%418 = OpFOrdNotEqual %10 %14 %3 -%419 = OpCompositeConstruct %171 %18 %18 -%420 = OpCompositeConstruct %171 %7 %7 -%421 = OpINotEqual %155 %419 %420 -%422 = OpCompositeConstruct %182 %24 %24 %24 -%423 = OpCompositeConstruct %182 %25 %25 %25 -%424 = OpINotEqual %100 %422 %423 -%425 = OpCompositeConstruct %26 %14 %14 %14 %14 -%426 = OpCompositeConstruct %26 %3 %3 %3 %3 -%427 = OpFOrdNotEqual %28 %425 %426 -%428 = OpSLessThan %10 %18 %7 -%429 = OpULessThan %10 %24 %25 -%430 = OpFOrdLessThan %10 %14 %3 -%431 = OpCompositeConstruct %171 %18 %18 -%432 = OpCompositeConstruct %171 %7 %7 -%433 = OpSLessThan %155 %431 %432 -%434 = OpCompositeConstruct %182 %24 %24 %24 -%435 = OpCompositeConstruct %182 %25 %25 %25 -%436 = OpULessThan %100 %434 %435 -%437 = OpCompositeConstruct %26 %14 %14 %14 %14 -%438 = OpCompositeConstruct %26 %3 %3 %3 %3 -%439 = OpFOrdLessThan %28 %437 %438 -%440 = OpSLessThanEqual %10 %18 %7 -%441 = OpULessThanEqual %10 %24 %25 -%442 = OpFOrdLessThanEqual %10 %14 %3 -%443 = OpCompositeConstruct %171 %18 %18 -%444 = OpCompositeConstruct %171 %7 %7 -%445 = OpSLessThanEqual %155 %443 %444 -%446 = OpCompositeConstruct %182 %24 %24 %24 -%447 = OpCompositeConstruct %182 %25 %25 %25 -%448 = OpULessThanEqual %100 %446 %447 -%449 = OpCompositeConstruct %26 %14 %14 %14 %14 -%450 = OpCompositeConstruct %26 %3 %3 %3 %3 -%451 = OpFOrdLessThanEqual %28 %449 %450 -%452 = OpSGreaterThan %10 %18 %7 -%453 = OpUGreaterThan %10 %24 %25 -%454 = OpFOrdGreaterThan %10 %14 %3 -%455 = OpCompositeConstruct %171 %18 %18 -%456 = OpCompositeConstruct %171 %7 %7 -%457 = OpSGreaterThan %155 %455 %456 -%458 = OpCompositeConstruct %182 %24 %24 %24 -%459 = OpCompositeConstruct %182 %25 %25 %25 -%460 = OpUGreaterThan %100 %458 %459 -%461 = OpCompositeConstruct %26 %14 %14 %14 %14 -%462 = OpCompositeConstruct %26 %3 %3 %3 %3 -%463 = OpFOrdGreaterThan %28 %461 %462 -%464 = OpSGreaterThanEqual %10 %18 %7 -%465 = OpUGreaterThanEqual %10 %24 %25 -%466 = OpFOrdGreaterThanEqual %10 %14 %3 -%467 = OpCompositeConstruct %171 %18 %18 -%468 = OpCompositeConstruct %171 %7 %7 -%469 = OpSGreaterThanEqual %155 %467 %468 -%470 = OpCompositeConstruct %182 %24 %24 %24 -%471 = OpCompositeConstruct %182 %25 %25 %25 -%472 = OpUGreaterThanEqual %100 %470 %471 -%473 = OpCompositeConstruct %26 %14 %14 %14 %14 -%474 = OpCompositeConstruct %26 %3 %3 %3 %3 -%475 = OpFOrdGreaterThanEqual %28 %473 %474 +%383 = OpFunction %2 None %133 +%382 = OpLabel +OpBranch %384 +%384 = OpLabel +%385 = OpIEqual %10 %18 %7 +%386 = OpIEqual %10 %24 %25 +%387 = OpFOrdEqual %10 %14 %3 +%388 = OpCompositeConstruct %152 %18 %18 +%389 = OpCompositeConstruct %152 %7 %7 +%390 = OpIEqual %136 %388 %389 +%391 = OpCompositeConstruct %163 %24 %24 %24 +%392 = OpCompositeConstruct %163 %25 %25 %25 +%393 = OpIEqual %100 %391 %392 +%394 = OpCompositeConstruct %26 %14 %14 %14 %14 +%395 = OpCompositeConstruct %26 %3 %3 %3 %3 +%396 = OpFOrdEqual %28 %394 %395 +%397 = OpINotEqual %10 %18 %7 +%398 = OpINotEqual %10 %24 %25 +%399 = OpFOrdNotEqual %10 %14 %3 +%400 = OpCompositeConstruct %152 %18 %18 +%401 = OpCompositeConstruct %152 %7 %7 +%402 = OpINotEqual %136 %400 %401 +%403 = OpCompositeConstruct %163 %24 %24 %24 +%404 = OpCompositeConstruct %163 %25 %25 %25 +%405 = OpINotEqual %100 %403 %404 +%406 = OpCompositeConstruct %26 %14 %14 %14 %14 +%407 = OpCompositeConstruct %26 %3 %3 %3 %3 +%408 = OpFOrdNotEqual %28 %406 %407 +%409 = OpSLessThan %10 %18 %7 +%410 = OpULessThan %10 %24 %25 +%411 = OpFOrdLessThan %10 %14 %3 +%412 = OpCompositeConstruct %152 %18 %18 +%413 = OpCompositeConstruct %152 %7 %7 +%414 = OpSLessThan %136 %412 %413 +%415 = OpCompositeConstruct %163 %24 %24 %24 +%416 = OpCompositeConstruct %163 %25 %25 %25 +%417 = OpULessThan %100 %415 %416 +%418 = OpCompositeConstruct %26 %14 %14 %14 %14 +%419 = OpCompositeConstruct %26 %3 %3 %3 %3 +%420 = OpFOrdLessThan %28 %418 %419 +%421 = OpSLessThanEqual %10 %18 %7 +%422 = OpULessThanEqual %10 %24 %25 +%423 = OpFOrdLessThanEqual %10 %14 %3 +%424 = OpCompositeConstruct %152 %18 %18 +%425 = OpCompositeConstruct %152 %7 %7 +%426 = OpSLessThanEqual %136 %424 %425 +%427 = OpCompositeConstruct %163 %24 %24 %24 +%428 = OpCompositeConstruct %163 %25 %25 %25 +%429 = OpULessThanEqual %100 %427 %428 +%430 = OpCompositeConstruct %26 %14 %14 %14 %14 +%431 = OpCompositeConstruct %26 %3 %3 %3 %3 +%432 = OpFOrdLessThanEqual %28 %430 %431 +%433 = OpSGreaterThan %10 %18 %7 +%434 = OpUGreaterThan %10 %24 %25 +%435 = OpFOrdGreaterThan %10 %14 %3 +%436 = OpCompositeConstruct %152 %18 %18 +%437 = OpCompositeConstruct %152 %7 %7 +%438 = OpSGreaterThan %136 %436 %437 +%439 = OpCompositeConstruct %163 %24 %24 %24 +%440 = OpCompositeConstruct %163 %25 %25 %25 +%441 = OpUGreaterThan %100 %439 %440 +%442 = OpCompositeConstruct %26 %14 %14 %14 %14 +%443 = OpCompositeConstruct %26 %3 %3 %3 %3 +%444 = OpFOrdGreaterThan %28 %442 %443 +%445 = OpSGreaterThanEqual %10 %18 %7 +%446 = OpUGreaterThanEqual %10 %24 %25 +%447 = OpFOrdGreaterThanEqual %10 %14 %3 +%448 = OpCompositeConstruct %152 %18 %18 +%449 = OpCompositeConstruct %152 %7 %7 +%450 = OpSGreaterThanEqual %136 %448 %449 +%451 = OpCompositeConstruct %163 %24 %24 %24 +%452 = OpCompositeConstruct %163 %25 %25 %25 +%453 = OpUGreaterThanEqual %100 %451 %452 +%454 = OpCompositeConstruct %26 %14 %14 %14 %14 +%455 = OpCompositeConstruct %26 %3 %3 %3 %3 +%456 = OpFOrdGreaterThanEqual %28 %454 %455 OpReturn OpFunctionEnd -%478 = OpFunction %2 None %152 -%477 = OpLabel -%476 = OpVariable %111 Function %7 -OpBranch %479 -%479 = OpLabel -%480 = OpLoad %8 %476 -%481 = OpIAdd %8 %480 %7 -OpStore %476 %481 -%482 = OpLoad %8 %476 -%483 = OpISub %8 %482 %7 -OpStore %476 %483 -%484 = OpLoad %8 %476 -%485 = OpLoad %8 %476 -%486 = OpIMul %8 %484 %485 -OpStore %476 %486 -%487 = OpLoad %8 %476 -%488 = OpLoad %8 %476 -%489 = OpSDiv %8 %487 %488 -OpStore %476 %489 -%490 = OpLoad %8 %476 -%491 = OpSMod %8 %490 %7 -OpStore %476 %491 -%492 = OpLoad %8 %476 -%493 = OpBitwiseAnd %8 %492 %11 -OpStore %476 %493 -%494 = OpLoad %8 %476 -%495 = OpBitwiseOr %8 %494 %11 -OpStore %476 %495 -%496 = OpLoad %8 %476 -%497 = OpBitwiseXor %8 %496 %11 -OpStore %476 %497 -%498 = OpLoad %8 %476 -%499 = OpShiftLeftLogical %8 %498 %24 -OpStore %476 %499 -%500 = OpLoad %8 %476 -%501 = OpShiftRightArithmetic %8 %500 %25 -OpStore %476 %501 -%502 = OpLoad %8 %476 -%503 = OpIAdd %8 %502 %7 -OpStore %476 %503 -%504 = OpLoad %8 %476 -%505 = OpISub %8 %504 %7 -OpStore %476 %505 +%460 = OpFunction %2 None %133 +%459 = OpLabel +%457 = OpVariable %458 Function %7 +OpBranch %461 +%461 = OpLabel +%462 = OpLoad %8 %457 +%463 = OpIAdd %8 %462 %7 +OpStore %457 %463 +%464 = OpLoad %8 %457 +%465 = OpISub %8 %464 %7 +OpStore %457 %465 +%466 = OpLoad %8 %457 +%467 = OpLoad %8 %457 +%468 = OpIMul %8 %466 %467 +OpStore %457 %468 +%469 = OpLoad %8 %457 +%470 = OpLoad %8 %457 +%471 = OpSDiv %8 %469 %470 +OpStore %457 %471 +%472 = OpLoad %8 %457 +%473 = OpSMod %8 %472 %7 +OpStore %457 %473 +%474 = OpLoad %8 %457 +%475 = OpBitwiseAnd %8 %474 %11 +OpStore %457 %475 +%476 = OpLoad %8 %457 +%477 = OpBitwiseOr %8 %476 %11 +OpStore %457 %477 +%478 = OpLoad %8 %457 +%479 = OpBitwiseXor %8 %478 %11 +OpStore %457 %479 +%480 = OpLoad %8 %457 +%481 = OpShiftLeftLogical %8 %480 %24 +OpStore %457 %481 +%482 = OpLoad %8 %457 +%483 = OpShiftRightArithmetic %8 %482 %25 +OpStore %457 %483 +%484 = OpLoad %8 %457 +%485 = OpIAdd %8 %484 %7 +OpStore %457 %485 +%486 = OpLoad %8 %457 +%487 = OpISub %8 %486 %7 +OpStore %457 %487 OpReturn OpFunctionEnd -%507 = OpFunction %2 None %152 -%506 = OpLabel -OpBranch %508 -%508 = OpLabel -%509 = OpFunctionCall %26 %55 -%510 = OpFunctionCall %26 %80 -%511 = OpVectorShuffle %29 %40 %40 0 1 2 -%512 = OpFunctionCall %29 %97 %511 -%513 = OpFunctionCall %4 %128 -%514 = OpFunctionCall %2 %151 -%515 = OpFunctionCall %2 %169 -%516 = OpFunctionCall %2 %353 -%517 = OpFunctionCall %2 %402 -%518 = OpFunctionCall %2 %478 +%489 = OpFunction %2 None %133 +%488 = OpLabel +OpBranch %490 +%490 = OpLabel +%491 = OpFunctionCall %26 %55 +%492 = OpFunctionCall %26 %80 +%493 = OpVectorShuffle %29 %40 %40 0 1 2 +%494 = OpFunctionCall %29 %97 %493 +%495 = OpFunctionCall %4 %109 +%496 = OpFunctionCall %2 %132 +%497 = OpFunctionCall %2 %150 +%498 = OpFunctionCall %2 %334 +%499 = OpFunctionCall %2 %383 +%500 = OpFunctionCall %2 %460 OpReturn OpFunctionEnd \ No newline at end of file diff --git a/tests/out/wgsl/access.wgsl b/tests/out/wgsl/access.wgsl index 0fd4b7fd3a..98d53fb9ba 100644 --- a/tests/out/wgsl/access.wgsl +++ b/tests/out/wgsl/access.wgsl @@ -21,51 +21,37 @@ var baz: Baz; fn test_matrix_within_struct_accesses() { var idx: i32 = 9; - var unnamed_1: mat3x2; - var unnamed_2: vec2; - var unnamed_3: vec2; - var unnamed_4: f32; - var unnamed_5: f32; - var unnamed_6: f32; - var unnamed_7: f32; var t: Baz; let _e4 = idx; idx = (_e4 - 1); - let _e8 = baz.m; - unnamed_1 = _e8; - let _e13 = baz.m[0]; - unnamed_2 = _e13; - let _e16 = idx; - let _e18 = baz.m[_e16]; - unnamed_3 = _e18; - let _e25 = baz.m[0][1]; - unnamed_4 = _e25; + let unnamed = baz.m; + let unnamed_1 = baz.m[0]; + let _e14 = idx; + let unnamed_2 = baz.m[_e14]; + let unnamed_3 = baz.m[0][1]; + let _e26 = idx; + let unnamed_4 = baz.m[0][_e26]; let _e30 = idx; - let _e32 = baz.m[0][_e30]; - unnamed_5 = _e32; - let _e35 = idx; - let _e39 = baz.m[_e35][1]; - unnamed_6 = _e39; - let _e42 = idx; - let _e44 = idx; - let _e46 = baz.m[_e42][_e44]; - unnamed_7 = _e46; + let unnamed_5 = baz.m[_e30][1]; + let _e36 = idx; + let _e38 = idx; + let unnamed_6 = baz.m[_e36][_e38]; t = Baz(mat3x2(vec2(1.0), vec2(2.0), vec2(3.0))); - let _e57 = idx; - idx = (_e57 + 1); + let _e50 = idx; + idx = (_e50 + 1); t.m = mat3x2(vec2(6.0), vec2(5.0), vec2(4.0)); t.m[0] = vec2(9.0); - let _e74 = idx; - t.m[_e74] = vec2(90.0); + let _e67 = idx; + t.m[_e67] = vec2(90.0); t.m[0][1] = 10.0; - let _e87 = idx; - t.m[0][_e87] = 20.0; - let _e91 = idx; - t.m[_e91][1] = 30.0; - let _e97 = idx; - let _e99 = idx; - t.m[_e97][_e99] = 40.0; + let _e80 = idx; + t.m[0][_e80] = 20.0; + let _e84 = idx; + t.m[_e84][1] = 30.0; + let _e90 = idx; + let _e92 = idx; + t.m[_e90][_e92] = 40.0; return; } @@ -82,7 +68,6 @@ fn test_arr_as_arg(a: array,5>) -> f32 { fn foo_vert(@builtin(vertex_index) vi: u32) -> @builtin(position) vec4 { var foo: f32 = 0.0; var c: array; - var unnamed: f32; let baz_1 = foo; foo = 1.0; @@ -97,7 +82,6 @@ fn foo_vert(@builtin(vertex_index) vi: u32) -> @builtin(position) vec4 { c[(vi + 1u)] = 42; let value = c[vi]; let _e42 = test_arr_as_arg(array,5>(array(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0), array(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0), array(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0), array(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0), array(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0))); - unnamed = _e42; return vec4((_matrix * vec4(vec4(value))), 2.0); } diff --git a/tests/out/wgsl/operators.wgsl b/tests/out/wgsl/operators.wgsl index 19660d36d4..f9144dd772 100644 --- a/tests/out/wgsl/operators.wgsl +++ b/tests/out/wgsl/operators.wgsl @@ -32,175 +32,164 @@ fn bool_cast(x: vec3) -> vec3 { fn constructors() -> f32 { var foo: Foo; - var unnamed: bool = false; - var unnamed_1: i32 = 0; - var unnamed_2: u32 = 0u; - var unnamed_3: f32 = 0.0; - var unnamed_4: vec2 = vec2(0u, 0u); - var unnamed_5: mat2x2 = mat2x2(vec2(0.0, 0.0), vec2(0.0, 0.0)); - var unnamed_6: array = array(Foo(vec4(0.0, 0.0, 0.0, 0.0), 0), Foo(vec4(0.0, 0.0, 0.0, 0.0), 0), Foo(vec4(0.0, 0.0, 0.0, 0.0), 0)); - var unnamed_7: Foo = Foo(vec4(0.0, 0.0, 0.0, 0.0), 0); - var unnamed_8: vec2; - var unnamed_9: mat2x2; - var unnamed_10: array; foo = Foo(vec4(1.0), 1); let mat2comp = mat2x2(vec2(1.0, 0.0), vec2(0.0, 1.0)); let mat4comp = mat4x4(vec4(1.0, 0.0, 0.0, 0.0), vec4(0.0, 1.0, 0.0, 0.0), vec4(0.0, 0.0, 1.0, 0.0), vec4(0.0, 0.0, 0.0, 1.0)); - unnamed_8 = vec2(0u); - unnamed_9 = mat2x2(vec2(0.0), vec2(0.0)); - unnamed_10 = array(0, 1, 2, 3); - let _e70 = foo.a.x; - return _e70; + let unnamed = vec2(0u); + let unnamed_1 = mat2x2(vec2(0.0), vec2(0.0)); + let unnamed_2 = array(0, 1, 2, 3); + let _e59 = foo.a.x; + return _e59; } fn logical() { - let unnamed_11 = !(true); - let unnamed_12 = !(vec2(true)); - let unnamed_13 = (true || false); - let unnamed_14 = (true && false); - let unnamed_15 = (true | false); - let unnamed_16 = (vec3(true) | vec3(false)); - let unnamed_17 = (true & false); - let unnamed_18 = (vec4(true) & vec4(false)); + let unnamed_3 = !(true); + let unnamed_4 = !(vec2(true)); + let unnamed_5 = (true || false); + let unnamed_6 = (true && false); + let unnamed_7 = (true | false); + let unnamed_8 = (vec3(true) | vec3(false)); + let unnamed_9 = (true & false); + let unnamed_10 = (vec4(true) & vec4(false)); } fn arithmetic() { - let unnamed_19 = -(vec2(1)); - let unnamed_20 = -(vec2(1.0)); - let unnamed_21 = (2 + 1); - let unnamed_22 = (2u + 1u); - let unnamed_23 = (2.0 + 1.0); - let unnamed_24 = (vec2(2) + vec2(1)); - let unnamed_25 = (vec3(2u) + vec3(1u)); - let unnamed_26 = (vec4(2.0) + vec4(1.0)); - let unnamed_27 = (2 - 1); - let unnamed_28 = (2u - 1u); - let unnamed_29 = (2.0 - 1.0); - let unnamed_30 = (vec2(2) - vec2(1)); - let unnamed_31 = (vec3(2u) - vec3(1u)); - let unnamed_32 = (vec4(2.0) - vec4(1.0)); - let unnamed_33 = (2 * 1); - let unnamed_34 = (2u * 1u); - let unnamed_35 = (2.0 * 1.0); - let unnamed_36 = (vec2(2) * vec2(1)); - let unnamed_37 = (vec3(2u) * vec3(1u)); - let unnamed_38 = (vec4(2.0) * vec4(1.0)); - let unnamed_39 = (2 / 1); - let unnamed_40 = (2u / 1u); - let unnamed_41 = (2.0 / 1.0); - let unnamed_42 = (vec2(2) / vec2(1)); - let unnamed_43 = (vec3(2u) / vec3(1u)); - let unnamed_44 = (vec4(2.0) / vec4(1.0)); - let unnamed_45 = (2 % 1); - let unnamed_46 = (2u % 1u); - let unnamed_47 = (2.0 % 1.0); - let unnamed_48 = (vec2(2) % vec2(1)); - let unnamed_49 = (vec3(2u) % vec3(1u)); - let unnamed_50 = (vec4(2.0) % vec4(1.0)); - let unnamed_51 = (vec2(2) + vec2(1)); - let unnamed_52 = (vec2(2) + vec2(1)); - let unnamed_53 = (vec2(2u) + vec2(1u)); - let unnamed_54 = (vec2(2u) + vec2(1u)); - let unnamed_55 = (vec2(2.0) + vec2(1.0)); - let unnamed_56 = (vec2(2.0) + vec2(1.0)); - let unnamed_57 = (vec2(2) - vec2(1)); - let unnamed_58 = (vec2(2) - vec2(1)); - let unnamed_59 = (vec2(2u) - vec2(1u)); - let unnamed_60 = (vec2(2u) - vec2(1u)); - let unnamed_61 = (vec2(2.0) - vec2(1.0)); - let unnamed_62 = (vec2(2.0) - vec2(1.0)); - let unnamed_63 = (vec2(2) * 1); - let unnamed_64 = (2 * vec2(1)); - let unnamed_65 = (vec2(2u) * 1u); - let unnamed_66 = (2u * vec2(1u)); - let unnamed_67 = (vec2(2.0) * 1.0); - let unnamed_68 = (2.0 * vec2(1.0)); - let unnamed_69 = (vec2(2) / vec2(1)); - let unnamed_70 = (vec2(2) / vec2(1)); - let unnamed_71 = (vec2(2u) / vec2(1u)); - let unnamed_72 = (vec2(2u) / vec2(1u)); - let unnamed_73 = (vec2(2.0) / vec2(1.0)); - let unnamed_74 = (vec2(2.0) / vec2(1.0)); - let unnamed_75 = (vec2(2) % vec2(1)); - let unnamed_76 = (vec2(2) % vec2(1)); - let unnamed_77 = (vec2(2u) % vec2(1u)); - let unnamed_78 = (vec2(2u) % vec2(1u)); - let unnamed_79 = (vec2(2.0) % vec2(1.0)); - let unnamed_80 = (vec2(2.0) % vec2(1.0)); - let unnamed_81 = (mat3x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0)) + mat3x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0))); - let unnamed_82 = (mat3x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0)) - mat3x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0))); - let unnamed_83 = (mat3x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0)) * 1.0); - let unnamed_84 = (2.0 * mat3x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0))); - let unnamed_85 = (mat4x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0)) * vec4(1.0)); - let unnamed_86 = (vec3(2.0) * mat4x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0))); - let unnamed_87 = (mat4x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0)) * mat3x4(vec4(0.0, 0.0, 0.0, 0.0), vec4(0.0, 0.0, 0.0, 0.0), vec4(0.0, 0.0, 0.0, 0.0))); + let unnamed_11 = -(vec2(1)); + let unnamed_12 = -(vec2(1.0)); + let unnamed_13 = (2 + 1); + let unnamed_14 = (2u + 1u); + let unnamed_15 = (2.0 + 1.0); + let unnamed_16 = (vec2(2) + vec2(1)); + let unnamed_17 = (vec3(2u) + vec3(1u)); + let unnamed_18 = (vec4(2.0) + vec4(1.0)); + let unnamed_19 = (2 - 1); + let unnamed_20 = (2u - 1u); + let unnamed_21 = (2.0 - 1.0); + let unnamed_22 = (vec2(2) - vec2(1)); + let unnamed_23 = (vec3(2u) - vec3(1u)); + let unnamed_24 = (vec4(2.0) - vec4(1.0)); + let unnamed_25 = (2 * 1); + let unnamed_26 = (2u * 1u); + let unnamed_27 = (2.0 * 1.0); + let unnamed_28 = (vec2(2) * vec2(1)); + let unnamed_29 = (vec3(2u) * vec3(1u)); + let unnamed_30 = (vec4(2.0) * vec4(1.0)); + let unnamed_31 = (2 / 1); + let unnamed_32 = (2u / 1u); + let unnamed_33 = (2.0 / 1.0); + let unnamed_34 = (vec2(2) / vec2(1)); + let unnamed_35 = (vec3(2u) / vec3(1u)); + let unnamed_36 = (vec4(2.0) / vec4(1.0)); + let unnamed_37 = (2 % 1); + let unnamed_38 = (2u % 1u); + let unnamed_39 = (2.0 % 1.0); + let unnamed_40 = (vec2(2) % vec2(1)); + let unnamed_41 = (vec3(2u) % vec3(1u)); + let unnamed_42 = (vec4(2.0) % vec4(1.0)); + let unnamed_43 = (vec2(2) + vec2(1)); + let unnamed_44 = (vec2(2) + vec2(1)); + let unnamed_45 = (vec2(2u) + vec2(1u)); + let unnamed_46 = (vec2(2u) + vec2(1u)); + let unnamed_47 = (vec2(2.0) + vec2(1.0)); + let unnamed_48 = (vec2(2.0) + vec2(1.0)); + let unnamed_49 = (vec2(2) - vec2(1)); + let unnamed_50 = (vec2(2) - vec2(1)); + let unnamed_51 = (vec2(2u) - vec2(1u)); + let unnamed_52 = (vec2(2u) - vec2(1u)); + let unnamed_53 = (vec2(2.0) - vec2(1.0)); + let unnamed_54 = (vec2(2.0) - vec2(1.0)); + let unnamed_55 = (vec2(2) * 1); + let unnamed_56 = (2 * vec2(1)); + let unnamed_57 = (vec2(2u) * 1u); + let unnamed_58 = (2u * vec2(1u)); + let unnamed_59 = (vec2(2.0) * 1.0); + let unnamed_60 = (2.0 * vec2(1.0)); + let unnamed_61 = (vec2(2) / vec2(1)); + let unnamed_62 = (vec2(2) / vec2(1)); + let unnamed_63 = (vec2(2u) / vec2(1u)); + let unnamed_64 = (vec2(2u) / vec2(1u)); + let unnamed_65 = (vec2(2.0) / vec2(1.0)); + let unnamed_66 = (vec2(2.0) / vec2(1.0)); + let unnamed_67 = (vec2(2) % vec2(1)); + let unnamed_68 = (vec2(2) % vec2(1)); + let unnamed_69 = (vec2(2u) % vec2(1u)); + let unnamed_70 = (vec2(2u) % vec2(1u)); + let unnamed_71 = (vec2(2.0) % vec2(1.0)); + let unnamed_72 = (vec2(2.0) % vec2(1.0)); + let unnamed_73 = (mat3x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0)) + mat3x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0))); + let unnamed_74 = (mat3x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0)) - mat3x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0))); + let unnamed_75 = (mat3x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0)) * 1.0); + let unnamed_76 = (2.0 * mat3x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0))); + let unnamed_77 = (mat4x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0)) * vec4(1.0)); + let unnamed_78 = (vec3(2.0) * mat4x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0))); + let unnamed_79 = (mat4x3(vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0), vec3(0.0, 0.0, 0.0)) * mat3x4(vec4(0.0, 0.0, 0.0, 0.0), vec4(0.0, 0.0, 0.0, 0.0), vec4(0.0, 0.0, 0.0, 0.0))); } fn bit() { - let unnamed_88 = ~(1); - let unnamed_89 = ~(1u); - let unnamed_90 = !(vec2(1)); - let unnamed_91 = !(vec3(1u)); - let unnamed_92 = (2 | 1); - let unnamed_93 = (2u | 1u); - let unnamed_94 = (vec2(2) | vec2(1)); - let unnamed_95 = (vec3(2u) | vec3(1u)); - let unnamed_96 = (2 & 1); - let unnamed_97 = (2u & 1u); - let unnamed_98 = (vec2(2) & vec2(1)); - let unnamed_99 = (vec3(2u) & vec3(1u)); - let unnamed_100 = (2 ^ 1); - let unnamed_101 = (2u ^ 1u); - let unnamed_102 = (vec2(2) ^ vec2(1)); - let unnamed_103 = (vec3(2u) ^ vec3(1u)); - let unnamed_104 = (2 << 1u); - let unnamed_105 = (2u << 1u); - let unnamed_106 = (vec2(2) << vec2(1u)); - let unnamed_107 = (vec3(2u) << vec3(1u)); - let unnamed_108 = (2 >> 1u); - let unnamed_109 = (2u >> 1u); - let unnamed_110 = (vec2(2) >> vec2(1u)); - let unnamed_111 = (vec3(2u) >> vec3(1u)); + let unnamed_80 = ~(1); + let unnamed_81 = ~(1u); + let unnamed_82 = !(vec2(1)); + let unnamed_83 = !(vec3(1u)); + let unnamed_84 = (2 | 1); + let unnamed_85 = (2u | 1u); + let unnamed_86 = (vec2(2) | vec2(1)); + let unnamed_87 = (vec3(2u) | vec3(1u)); + let unnamed_88 = (2 & 1); + let unnamed_89 = (2u & 1u); + let unnamed_90 = (vec2(2) & vec2(1)); + let unnamed_91 = (vec3(2u) & vec3(1u)); + let unnamed_92 = (2 ^ 1); + let unnamed_93 = (2u ^ 1u); + let unnamed_94 = (vec2(2) ^ vec2(1)); + let unnamed_95 = (vec3(2u) ^ vec3(1u)); + let unnamed_96 = (2 << 1u); + let unnamed_97 = (2u << 1u); + let unnamed_98 = (vec2(2) << vec2(1u)); + let unnamed_99 = (vec3(2u) << vec3(1u)); + let unnamed_100 = (2 >> 1u); + let unnamed_101 = (2u >> 1u); + let unnamed_102 = (vec2(2) >> vec2(1u)); + let unnamed_103 = (vec3(2u) >> vec3(1u)); } fn comparison() { - let unnamed_112 = (2 == 1); - let unnamed_113 = (2u == 1u); - let unnamed_114 = (2.0 == 1.0); - let unnamed_115 = (vec2(2) == vec2(1)); - let unnamed_116 = (vec3(2u) == vec3(1u)); - let unnamed_117 = (vec4(2.0) == vec4(1.0)); - let unnamed_118 = (2 != 1); - let unnamed_119 = (2u != 1u); - let unnamed_120 = (2.0 != 1.0); - let unnamed_121 = (vec2(2) != vec2(1)); - let unnamed_122 = (vec3(2u) != vec3(1u)); - let unnamed_123 = (vec4(2.0) != vec4(1.0)); - let unnamed_124 = (2 < 1); - let unnamed_125 = (2u < 1u); - let unnamed_126 = (2.0 < 1.0); - let unnamed_127 = (vec2(2) < vec2(1)); - let unnamed_128 = (vec3(2u) < vec3(1u)); - let unnamed_129 = (vec4(2.0) < vec4(1.0)); - let unnamed_130 = (2 <= 1); - let unnamed_131 = (2u <= 1u); - let unnamed_132 = (2.0 <= 1.0); - let unnamed_133 = (vec2(2) <= vec2(1)); - let unnamed_134 = (vec3(2u) <= vec3(1u)); - let unnamed_135 = (vec4(2.0) <= vec4(1.0)); - let unnamed_136 = (2 > 1); - let unnamed_137 = (2u > 1u); - let unnamed_138 = (2.0 > 1.0); - let unnamed_139 = (vec2(2) > vec2(1)); - let unnamed_140 = (vec3(2u) > vec3(1u)); - let unnamed_141 = (vec4(2.0) > vec4(1.0)); - let unnamed_142 = (2 >= 1); - let unnamed_143 = (2u >= 1u); - let unnamed_144 = (2.0 >= 1.0); - let unnamed_145 = (vec2(2) >= vec2(1)); - let unnamed_146 = (vec3(2u) >= vec3(1u)); - let unnamed_147 = (vec4(2.0) >= vec4(1.0)); + let unnamed_104 = (2 == 1); + let unnamed_105 = (2u == 1u); + let unnamed_106 = (2.0 == 1.0); + let unnamed_107 = (vec2(2) == vec2(1)); + let unnamed_108 = (vec3(2u) == vec3(1u)); + let unnamed_109 = (vec4(2.0) == vec4(1.0)); + let unnamed_110 = (2 != 1); + let unnamed_111 = (2u != 1u); + let unnamed_112 = (2.0 != 1.0); + let unnamed_113 = (vec2(2) != vec2(1)); + let unnamed_114 = (vec3(2u) != vec3(1u)); + let unnamed_115 = (vec4(2.0) != vec4(1.0)); + let unnamed_116 = (2 < 1); + let unnamed_117 = (2u < 1u); + let unnamed_118 = (2.0 < 1.0); + let unnamed_119 = (vec2(2) < vec2(1)); + let unnamed_120 = (vec3(2u) < vec3(1u)); + let unnamed_121 = (vec4(2.0) < vec4(1.0)); + let unnamed_122 = (2 <= 1); + let unnamed_123 = (2u <= 1u); + let unnamed_124 = (2.0 <= 1.0); + let unnamed_125 = (vec2(2) <= vec2(1)); + let unnamed_126 = (vec3(2u) <= vec3(1u)); + let unnamed_127 = (vec4(2.0) <= vec4(1.0)); + let unnamed_128 = (2 > 1); + let unnamed_129 = (2u > 1u); + let unnamed_130 = (2.0 > 1.0); + let unnamed_131 = (vec2(2) > vec2(1)); + let unnamed_132 = (vec3(2u) > vec3(1u)); + let unnamed_133 = (vec4(2.0) > vec4(1.0)); + let unnamed_134 = (2 >= 1); + let unnamed_135 = (2u >= 1u); + let unnamed_136 = (2.0 >= 1.0); + let unnamed_137 = (vec2(2) >= vec2(1)); + let unnamed_138 = (vec3(2u) >= vec3(1u)); + let unnamed_139 = (vec4(2.0) >= vec4(1.0)); } fn assignment() { diff --git a/tests/wgsl-errors.rs b/tests/wgsl-errors.rs index caf855e1b6..e5823c2501 100644 --- a/tests/wgsl-errors.rs +++ b/tests/wgsl-errors.rs @@ -171,14 +171,14 @@ fn type_not_constructible() { check( r#" fn x() { - var _ = atomic(0); + _ = atomic(0); } "#, r#"error: type `atomic` is not constructible - ┌─ wgsl:3:25 + ┌─ wgsl:3:21 │ -3 │ var _ = atomic(0); - │ ^^^^^^ type is not constructible +3 │ _ = atomic(0); + │ ^^^^^^ type is not constructible "#, ); @@ -189,14 +189,14 @@ fn type_not_inferrable() { check( r#" fn x() { - var _ = vec2(); + _ = vec2(); } "#, r#"error: type can't be inferred - ┌─ wgsl:3:25 + ┌─ wgsl:3:21 │ -3 │ var _ = vec2(); - │ ^^^^ type can't be inferred +3 │ _ = vec2(); + │ ^^^^ type can't be inferred "#, ); @@ -207,14 +207,14 @@ fn unexpected_constructor_parameters() { check( r#" fn x() { - var _ = i32(0, 1); + _ = i32(0, 1); } "#, r#"error: unexpected components - ┌─ wgsl:3:31 + ┌─ wgsl:3:27 │ -3 │ var _ = i32(0, 1); - │ ^^ unexpected components +3 │ _ = i32(0, 1); + │ ^^ unexpected components "#, ); @@ -225,14 +225,14 @@ fn constructor_parameter_type_mismatch() { check( r#" fn x() { - var _ = mat2x2(array(0, 1), vec2(2, 3)); + _ = mat2x2(array(0, 1), vec2(2, 3)); } "#, r#"error: invalid type for constructor component at index [0] - ┌─ wgsl:3:37 + ┌─ wgsl:3:33 │ -3 │ var _ = mat2x2(array(0, 1), vec2(2, 3)); - │ ^^^^^^^^^^^ invalid component type +3 │ _ = mat2x2(array(0, 1), vec2(2, 3)); + │ ^^^^^^^^^^^ invalid component type "#, );