From 105cb9db3193e42c76e4b203698fc3731fdd5921 Mon Sep 17 00:00:00 2001 From: Samson <16504129+sagudev@users.noreply.github.com> Date: Mon, 2 Sep 2024 14:04:51 +0200 Subject: [PATCH] [naga wgsl-in] Proper singular generic in vec and matrix (#6189) Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com> --- naga/src/front/wgsl/lower/construction.rs | 30 +- naga/src/front/wgsl/lower/mod.rs | 32 +- naga/src/front/wgsl/parse/ast.rs | 12 +- naga/src/front/wgsl/parse/mod.rs | 229 ++++---- naga/tests/in/type-alias.wgsl | 5 + naga/tests/out/analysis/access.info.ron | 212 ++++---- .../out/glsl/access.foo_frag.Fragment.glsl | 2 +- .../out/glsl/access.foo_vert.Vertex.glsl | 2 +- .../out/glsl/shadow.fs_main.Fragment.glsl | 2 +- ...adow.fs_main_without_storage.Fragment.glsl | 2 +- naga/tests/out/ir/access.compact.ron | 80 +-- naga/tests/out/ir/access.ron | 80 +-- naga/tests/out/msl/abstract-types-const.msl | 14 +- naga/tests/out/msl/abstract-types-var.msl | 74 +-- naga/tests/out/msl/access.msl | 30 +- naga/tests/out/msl/constructors.msl | 4 +- naga/tests/out/msl/policy-mix.msl | 8 +- naga/tests/out/msl/shadow.msl | 8 +- .../tests/out/spv/abstract-types-const.spvasm | 50 +- naga/tests/out/spv/abstract-types-var.spvasm | 156 +++--- naga/tests/out/spv/access.spvasm | 106 ++-- naga/tests/out/spv/boids.spvasm | 168 +++--- naga/tests/out/spv/const-exprs.spvasm | 28 +- naga/tests/out/spv/constructors.spvasm | 32 +- .../out/spv/debug-symbol-large-source.spvasm | 498 +++++++++--------- naga/tests/out/spv/debug-symbol-simple.spvasm | 64 +-- .../tests/out/spv/debug-symbol-terrain.spvasm | 498 +++++++++--------- naga/tests/out/spv/fragment-output.spvasm | 86 +-- naga/tests/out/spv/interface.compute.spvasm | 8 +- naga/tests/out/spv/interface.fragment.spvasm | 34 +- naga/tests/out/spv/interface.vertex.spvasm | 24 +- .../spv/interface.vertex_two_structs.spvasm | 24 +- naga/tests/out/spv/interpolate.spvasm | 86 +-- naga/tests/out/spv/interpolate_compat.spvasm | 86 +-- naga/tests/out/spv/math-functions.spvasm | 58 +- naga/tests/out/spv/operators.spvasm | 280 +++++----- naga/tests/out/spv/padding.spvasm | 28 +- naga/tests/out/spv/pointers.spvasm | 18 +- naga/tests/out/spv/policy-mix.spvasm | 84 +-- naga/tests/out/spv/ray-query.spvasm | 68 +-- naga/tests/out/spv/shadow.spvasm | 196 +++---- naga/tests/out/spv/struct-layout.spvasm | 36 +- naga/tests/wgsl_errors.rs | 14 +- 43 files changed, 1812 insertions(+), 1744 deletions(-) diff --git a/naga/src/front/wgsl/lower/construction.rs b/naga/src/front/wgsl/lower/construction.rs index cb6ceb0613..dff2e9d6e4 100644 --- a/naga/src/front/wgsl/lower/construction.rs +++ b/naga/src/front/wgsl/lower/construction.rs @@ -578,8 +578,13 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { Constructor::Type(ty) } ast::ConstructorType::PartialVector { size } => Constructor::PartialVector { size }, - ast::ConstructorType::Vector { size, scalar } => { - let ty = ctx.ensure_type_exists(scalar.to_inner_vector(size)); + ast::ConstructorType::Vector { size, ty, ty_span } => { + let ty = self.resolve_ast_type(ty, &mut ctx.as_global())?; + let scalar = match ctx.module.types[ty].inner { + crate::TypeInner::Scalar(sc) => sc, + _ => return Err(Error::UnknownScalarType(ty_span)), + }; + let ty = ctx.ensure_type_exists(crate::TypeInner::Vector { size, scalar }); Constructor::Type(ty) } ast::ConstructorType::PartialMatrix { columns, rows } => { @@ -588,13 +593,22 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { ast::ConstructorType::Matrix { rows, columns, - width, + ty, + ty_span, } => { - let ty = ctx.ensure_type_exists(crate::TypeInner::Matrix { - columns, - rows, - scalar: crate::Scalar::float(width), - }); + let ty = self.resolve_ast_type(ty, &mut ctx.as_global())?; + let scalar = match ctx.module.types[ty].inner { + crate::TypeInner::Scalar(sc) => sc, + _ => return Err(Error::UnknownScalarType(ty_span)), + }; + let ty = match scalar.kind { + crate::ScalarKind::Float => ctx.ensure_type_exists(crate::TypeInner::Matrix { + columns, + rows, + scalar, + }), + _ => return Err(Error::BadMatrixScalarKind(ty_span, scalar)), + }; Constructor::Type(ty) } ast::ConstructorType::PartialArray => Constructor::PartialArray, diff --git a/naga/src/front/wgsl/lower/mod.rs b/naga/src/front/wgsl/lower/mod.rs index 2e6fa0533f..dbd16e041a 100644 --- a/naga/src/front/wgsl/lower/mod.rs +++ b/naga/src/front/wgsl/lower/mod.rs @@ -2965,16 +2965,34 @@ impl<'source, 'temp> Lowerer<'source, 'temp> { ) -> Result, Error<'source>> { let inner = match ctx.types[handle] { ast::Type::Scalar(scalar) => scalar.to_inner_scalar(), - ast::Type::Vector { size, scalar } => scalar.to_inner_vector(size), + ast::Type::Vector { size, ty, ty_span } => { + let ty = self.resolve_ast_type(ty, ctx)?; + let scalar = match ctx.module.types[ty].inner { + crate::TypeInner::Scalar(sc) => sc, + _ => return Err(Error::UnknownScalarType(ty_span)), + }; + crate::TypeInner::Vector { size, scalar } + } ast::Type::Matrix { rows, columns, - width, - } => crate::TypeInner::Matrix { - columns, - rows, - scalar: crate::Scalar::float(width), - }, + ty, + ty_span, + } => { + let ty = self.resolve_ast_type(ty, ctx)?; + let scalar = match ctx.module.types[ty].inner { + crate::TypeInner::Scalar(sc) => sc, + _ => return Err(Error::UnknownScalarType(ty_span)), + }; + match scalar.kind { + crate::ScalarKind::Float => crate::TypeInner::Matrix { + columns, + rows, + scalar, + }, + _ => return Err(Error::BadMatrixScalarKind(ty_span, scalar)), + } + } ast::Type::Atomic(scalar) => scalar.to_inner_atomic(), ast::Type::Pointer { base, space } => { let base = self.resolve_ast_type(base, ctx)?; diff --git a/naga/src/front/wgsl/parse/ast.rs b/naga/src/front/wgsl/parse/ast.rs index 76c9b04afa..1526251837 100644 --- a/naga/src/front/wgsl/parse/ast.rs +++ b/naga/src/front/wgsl/parse/ast.rs @@ -198,12 +198,14 @@ pub enum Type<'a> { Scalar(Scalar), Vector { size: crate::VectorSize, - scalar: Scalar, + ty: Handle>, + ty_span: Span, }, Matrix { columns: crate::VectorSize, rows: crate::VectorSize, - width: crate::Bytes, + ty: Handle>, + ty_span: Span, }, Atomic(Scalar), Pointer { @@ -330,7 +332,8 @@ pub enum ConstructorType<'a> { /// `vec3(1.0)`. Vector { size: crate::VectorSize, - scalar: Scalar, + ty: Handle>, + ty_span: Span, }, /// A matrix construction whose component type is inferred from the @@ -345,7 +348,8 @@ pub enum ConstructorType<'a> { Matrix { columns: crate::VectorSize, rows: crate::VectorSize, - width: crate::Bytes, + ty: Handle>, + ty_span: Span, }, /// An array whose component type and size are inferred from the arguments: diff --git a/naga/src/front/wgsl/parse/mod.rs b/naga/src/front/wgsl/parse/mod.rs index 4994f9cd37..34e19da1ea 100644 --- a/naga/src/front/wgsl/parse/mod.rs +++ b/naga/src/front/wgsl/parse/mod.rs @@ -111,6 +111,11 @@ impl<'a> ExpressionContext<'a, '_, '_> { Ok(handle) } } + + fn new_scalar(&mut self, scalar: Scalar) -> Handle> { + self.types + .append(ast::Type::Scalar(scalar), Span::UNDEFINED) + } } /// Which grammar rule we are in the midst of parsing. @@ -310,25 +315,22 @@ impl Parser { "vec2i" => { return Ok(Some(ast::ConstructorType::Vector { size: crate::VectorSize::Bi, - scalar: Scalar { - kind: crate::ScalarKind::Sint, - width: 4, - }, + ty: ctx.new_scalar(Scalar::I32), + ty_span: Span::UNDEFINED, })) } "vec2u" => { return Ok(Some(ast::ConstructorType::Vector { size: crate::VectorSize::Bi, - scalar: Scalar { - kind: crate::ScalarKind::Uint, - width: 4, - }, + ty: ctx.new_scalar(Scalar::U32), + ty_span: Span::UNDEFINED, })) } "vec2f" => { return Ok(Some(ast::ConstructorType::Vector { size: crate::VectorSize::Bi, - scalar: Scalar::F32, + ty: ctx.new_scalar(Scalar::F32), + ty_span: Span::UNDEFINED, })) } "vec3" => ast::ConstructorType::PartialVector { @@ -337,19 +339,22 @@ impl Parser { "vec3i" => { return Ok(Some(ast::ConstructorType::Vector { size: crate::VectorSize::Tri, - scalar: Scalar::I32, + ty: ctx.new_scalar(Scalar::I32), + ty_span: Span::UNDEFINED, })) } "vec3u" => { return Ok(Some(ast::ConstructorType::Vector { size: crate::VectorSize::Tri, - scalar: Scalar::U32, + ty: ctx.new_scalar(Scalar::U32), + ty_span: Span::UNDEFINED, })) } "vec3f" => { return Ok(Some(ast::ConstructorType::Vector { size: crate::VectorSize::Tri, - scalar: Scalar::F32, + ty: ctx.new_scalar(Scalar::F32), + ty_span: Span::UNDEFINED, })) } "vec4" => ast::ConstructorType::PartialVector { @@ -358,19 +363,22 @@ impl Parser { "vec4i" => { return Ok(Some(ast::ConstructorType::Vector { size: crate::VectorSize::Quad, - scalar: Scalar::I32, + ty: ctx.new_scalar(Scalar::I32), + ty_span: Span::UNDEFINED, })) } "vec4u" => { return Ok(Some(ast::ConstructorType::Vector { size: crate::VectorSize::Quad, - scalar: Scalar::U32, + ty: ctx.new_scalar(Scalar::U32), + ty_span: Span::UNDEFINED, })) } "vec4f" => { return Ok(Some(ast::ConstructorType::Vector { size: crate::VectorSize::Quad, - scalar: Scalar::F32, + ty: ctx.new_scalar(Scalar::F32), + ty_span: Span::UNDEFINED, })) } "mat2x2" => ast::ConstructorType::PartialMatrix { @@ -381,7 +389,8 @@ impl Parser { return Ok(Some(ast::ConstructorType::Matrix { columns: crate::VectorSize::Bi, rows: crate::VectorSize::Bi, - width: 4, + ty: ctx.new_scalar(Scalar::F32), + ty_span: Span::UNDEFINED, })) } "mat2x3" => ast::ConstructorType::PartialMatrix { @@ -392,7 +401,8 @@ impl Parser { return Ok(Some(ast::ConstructorType::Matrix { columns: crate::VectorSize::Bi, rows: crate::VectorSize::Tri, - width: 4, + ty: ctx.new_scalar(Scalar::F32), + ty_span: Span::UNDEFINED, })) } "mat2x4" => ast::ConstructorType::PartialMatrix { @@ -403,7 +413,8 @@ impl Parser { return Ok(Some(ast::ConstructorType::Matrix { columns: crate::VectorSize::Bi, rows: crate::VectorSize::Quad, - width: 4, + ty: ctx.new_scalar(Scalar::F32), + ty_span: Span::UNDEFINED, })) } "mat3x2" => ast::ConstructorType::PartialMatrix { @@ -414,7 +425,8 @@ impl Parser { return Ok(Some(ast::ConstructorType::Matrix { columns: crate::VectorSize::Tri, rows: crate::VectorSize::Bi, - width: 4, + ty: ctx.new_scalar(Scalar::F32), + ty_span: Span::UNDEFINED, })) } "mat3x3" => ast::ConstructorType::PartialMatrix { @@ -425,7 +437,8 @@ impl Parser { return Ok(Some(ast::ConstructorType::Matrix { columns: crate::VectorSize::Tri, rows: crate::VectorSize::Tri, - width: 4, + ty: ctx.new_scalar(Scalar::F32), + ty_span: Span::UNDEFINED, })) } "mat3x4" => ast::ConstructorType::PartialMatrix { @@ -436,7 +449,8 @@ impl Parser { return Ok(Some(ast::ConstructorType::Matrix { columns: crate::VectorSize::Tri, rows: crate::VectorSize::Quad, - width: 4, + ty: ctx.new_scalar(Scalar::F32), + ty_span: Span::UNDEFINED, })) } "mat4x2" => ast::ConstructorType::PartialMatrix { @@ -447,7 +461,8 @@ impl Parser { return Ok(Some(ast::ConstructorType::Matrix { columns: crate::VectorSize::Quad, rows: crate::VectorSize::Bi, - width: 4, + ty: ctx.new_scalar(Scalar::F32), + ty_span: Span::UNDEFINED, })) } "mat4x3" => ast::ConstructorType::PartialMatrix { @@ -458,7 +473,8 @@ impl Parser { return Ok(Some(ast::ConstructorType::Matrix { columns: crate::VectorSize::Quad, rows: crate::VectorSize::Tri, - width: 4, + ty: ctx.new_scalar(Scalar::F32), + ty_span: Span::UNDEFINED, })) } "mat4x4" => ast::ConstructorType::PartialMatrix { @@ -469,7 +485,8 @@ impl Parser { return Ok(Some(ast::ConstructorType::Matrix { columns: crate::VectorSize::Quad, rows: crate::VectorSize::Quad, - width: 4, + ty: ctx.new_scalar(Scalar::F32), + ty_span: Span::UNDEFINED, })) } "array" => ast::ConstructorType::PartialArray, @@ -502,19 +519,17 @@ impl Parser { // parse component type if present match (lexer.peek().0, partial) { (Token::Paren('<'), ast::ConstructorType::PartialVector { size }) => { - let scalar = lexer.next_scalar_generic()?; - Ok(Some(ast::ConstructorType::Vector { size, scalar })) + let (ty, ty_span) = self.singular_generic(lexer, ctx)?; + Ok(Some(ast::ConstructorType::Vector { size, ty, ty_span })) } (Token::Paren('<'), ast::ConstructorType::PartialMatrix { columns, rows }) => { - let (scalar, span) = lexer.next_scalar_generic_with_span()?; - match scalar.kind { - crate::ScalarKind::Float => Ok(Some(ast::ConstructorType::Matrix { - columns, - rows, - width: scalar.width, - })), - _ => Err(Error::BadMatrixScalarKind(span, scalar)), - } + let (ty, ty_span) = self.singular_generic(lexer, ctx)?; + Ok(Some(ast::ConstructorType::Matrix { + columns, + rows, + ty, + ty_span, + })) } (Token::Paren('<'), ast::ConstructorType::PartialArray) => { lexer.expect_generic_paren('<')?; @@ -570,11 +585,7 @@ impl Parser { let expr = match name { // bitcast looks like a function call, but it's an operator and must be handled differently. "bitcast" => { - lexer.expect_generic_paren('<')?; - let start = lexer.start_byte_offset(); - let to = self.type_decl(lexer, ctx)?; - let span = lexer.span_from(start); - lexer.expect_generic_paren('>')?; + let (to, span) = self.singular_generic(lexer, ctx)?; lexer.open_arguments()?; let expr = self.general_expression(lexer, ctx)?; @@ -1058,21 +1069,34 @@ impl Parser { Ok(members) } - fn matrix_scalar_type<'a>( + /// Parses ``, returning T and span of T + fn singular_generic<'a>( &mut self, lexer: &mut Lexer<'a>, + ctx: &mut ExpressionContext<'a, '_, '_>, + ) -> Result<(Handle>, Span), Error<'a>> { + lexer.expect_generic_paren('<')?; + let start = lexer.start_byte_offset(); + let ty = self.type_decl(lexer, ctx)?; + let span = lexer.span_from(start); + lexer.expect_generic_paren('>')?; + Ok((ty, span)) + } + + fn matrix_with_type<'a>( + &mut self, + lexer: &mut Lexer<'a>, + ctx: &mut ExpressionContext<'a, '_, '_>, columns: crate::VectorSize, rows: crate::VectorSize, ) -> Result, Error<'a>> { - let (scalar, span) = lexer.next_scalar_generic_with_span()?; - match scalar.kind { - crate::ScalarKind::Float => Ok(ast::Type::Matrix { - columns, - rows, - width: scalar.width, - }), - _ => Err(Error::BadMatrixScalarKind(span, scalar)), - } + let (ty, ty_span) = self.singular_generic(lexer, ctx)?; + Ok(ast::Type::Matrix { + columns, + rows, + ty, + ty_span, + }) } fn type_decl_impl<'a>( @@ -1087,151 +1111,154 @@ impl Parser { Ok(Some(match word { "vec2" => { - let scalar = lexer.next_scalar_generic()?; + let (ty, ty_span) = self.singular_generic(lexer, ctx)?; ast::Type::Vector { size: crate::VectorSize::Bi, - scalar, + ty, + ty_span, } } "vec2i" => ast::Type::Vector { size: crate::VectorSize::Bi, - scalar: Scalar { - kind: crate::ScalarKind::Sint, - width: 4, - }, + ty: ctx.new_scalar(Scalar::I32), + ty_span: Span::UNDEFINED, }, "vec2u" => ast::Type::Vector { size: crate::VectorSize::Bi, - scalar: Scalar { - kind: crate::ScalarKind::Uint, - width: 4, - }, + ty: ctx.new_scalar(Scalar::U32), + ty_span: Span::UNDEFINED, }, "vec2f" => ast::Type::Vector { size: crate::VectorSize::Bi, - scalar: Scalar::F32, + ty: ctx.new_scalar(Scalar::F32), + ty_span: Span::UNDEFINED, }, "vec3" => { - let scalar = lexer.next_scalar_generic()?; + let (ty, ty_span) = self.singular_generic(lexer, ctx)?; ast::Type::Vector { size: crate::VectorSize::Tri, - scalar, + ty, + ty_span, } } "vec3i" => ast::Type::Vector { size: crate::VectorSize::Tri, - scalar: Scalar { - kind: crate::ScalarKind::Sint, - width: 4, - }, + ty: ctx.new_scalar(Scalar::I32), + ty_span: Span::UNDEFINED, }, "vec3u" => ast::Type::Vector { size: crate::VectorSize::Tri, - scalar: Scalar { - kind: crate::ScalarKind::Uint, - width: 4, - }, + ty: ctx.new_scalar(Scalar::U32), + ty_span: Span::UNDEFINED, }, "vec3f" => ast::Type::Vector { size: crate::VectorSize::Tri, - scalar: Scalar::F32, + ty: ctx.new_scalar(Scalar::F32), + ty_span: Span::UNDEFINED, }, "vec4" => { - let scalar = lexer.next_scalar_generic()?; + let (ty, ty_span) = self.singular_generic(lexer, ctx)?; ast::Type::Vector { size: crate::VectorSize::Quad, - scalar, + ty, + ty_span, } } "vec4i" => ast::Type::Vector { size: crate::VectorSize::Quad, - scalar: Scalar { - kind: crate::ScalarKind::Sint, - width: 4, - }, + ty: ctx.new_scalar(Scalar::I32), + ty_span: Span::UNDEFINED, }, "vec4u" => ast::Type::Vector { size: crate::VectorSize::Quad, - scalar: Scalar { - kind: crate::ScalarKind::Uint, - width: 4, - }, + ty: ctx.new_scalar(Scalar::U32), + ty_span: Span::UNDEFINED, }, "vec4f" => ast::Type::Vector { size: crate::VectorSize::Quad, - scalar: Scalar::F32, + ty: ctx.new_scalar(Scalar::F32), + ty_span: Span::UNDEFINED, }, "mat2x2" => { - self.matrix_scalar_type(lexer, crate::VectorSize::Bi, crate::VectorSize::Bi)? + self.matrix_with_type(lexer, ctx, crate::VectorSize::Bi, crate::VectorSize::Bi)? } "mat2x2f" => ast::Type::Matrix { columns: crate::VectorSize::Bi, rows: crate::VectorSize::Bi, - width: 4, + ty: ctx.new_scalar(Scalar::F32), + ty_span: Span::UNDEFINED, }, "mat2x3" => { - self.matrix_scalar_type(lexer, crate::VectorSize::Bi, crate::VectorSize::Tri)? + self.matrix_with_type(lexer, ctx, crate::VectorSize::Bi, crate::VectorSize::Tri)? } "mat2x3f" => ast::Type::Matrix { columns: crate::VectorSize::Bi, rows: crate::VectorSize::Tri, - width: 4, + ty: ctx.new_scalar(Scalar::F32), + ty_span: Span::UNDEFINED, }, "mat2x4" => { - self.matrix_scalar_type(lexer, crate::VectorSize::Bi, crate::VectorSize::Quad)? + self.matrix_with_type(lexer, ctx, crate::VectorSize::Bi, crate::VectorSize::Quad)? } "mat2x4f" => ast::Type::Matrix { columns: crate::VectorSize::Bi, rows: crate::VectorSize::Quad, - width: 4, + ty: ctx.new_scalar(Scalar::F32), + ty_span: Span::UNDEFINED, }, "mat3x2" => { - self.matrix_scalar_type(lexer, crate::VectorSize::Tri, crate::VectorSize::Bi)? + self.matrix_with_type(lexer, ctx, crate::VectorSize::Tri, crate::VectorSize::Bi)? } "mat3x2f" => ast::Type::Matrix { columns: crate::VectorSize::Tri, rows: crate::VectorSize::Bi, - width: 4, + ty: ctx.new_scalar(Scalar::F32), + ty_span: Span::UNDEFINED, }, "mat3x3" => { - self.matrix_scalar_type(lexer, crate::VectorSize::Tri, crate::VectorSize::Tri)? + self.matrix_with_type(lexer, ctx, crate::VectorSize::Tri, crate::VectorSize::Tri)? } "mat3x3f" => ast::Type::Matrix { columns: crate::VectorSize::Tri, rows: crate::VectorSize::Tri, - width: 4, + ty: ctx.new_scalar(Scalar::F32), + ty_span: Span::UNDEFINED, }, "mat3x4" => { - self.matrix_scalar_type(lexer, crate::VectorSize::Tri, crate::VectorSize::Quad)? + self.matrix_with_type(lexer, ctx, crate::VectorSize::Tri, crate::VectorSize::Quad)? } "mat3x4f" => ast::Type::Matrix { columns: crate::VectorSize::Tri, rows: crate::VectorSize::Quad, - width: 4, + ty: ctx.new_scalar(Scalar::F32), + ty_span: Span::UNDEFINED, }, "mat4x2" => { - self.matrix_scalar_type(lexer, crate::VectorSize::Quad, crate::VectorSize::Bi)? + self.matrix_with_type(lexer, ctx, crate::VectorSize::Quad, crate::VectorSize::Bi)? } "mat4x2f" => ast::Type::Matrix { columns: crate::VectorSize::Quad, rows: crate::VectorSize::Bi, - width: 4, + ty: ctx.new_scalar(Scalar::F32), + ty_span: Span::UNDEFINED, }, "mat4x3" => { - self.matrix_scalar_type(lexer, crate::VectorSize::Quad, crate::VectorSize::Tri)? + self.matrix_with_type(lexer, ctx, crate::VectorSize::Quad, crate::VectorSize::Tri)? } "mat4x3f" => ast::Type::Matrix { columns: crate::VectorSize::Quad, rows: crate::VectorSize::Tri, - width: 4, + ty: ctx.new_scalar(Scalar::F32), + ty_span: Span::UNDEFINED, }, "mat4x4" => { - self.matrix_scalar_type(lexer, crate::VectorSize::Quad, crate::VectorSize::Quad)? + self.matrix_with_type(lexer, ctx, crate::VectorSize::Quad, crate::VectorSize::Quad)? } "mat4x4f" => ast::Type::Matrix { columns: crate::VectorSize::Quad, rows: crate::VectorSize::Quad, - width: 4, + ty: ctx.new_scalar(Scalar::F32), + ty_span: Span::UNDEFINED, }, "atomic" => { let scalar = lexer.next_scalar_generic()?; diff --git a/naga/tests/in/type-alias.wgsl b/naga/tests/in/type-alias.wgsl index 69c1eae4ef..cdc78451be 100644 --- a/naga/tests/in/type-alias.wgsl +++ b/naga/tests/in/type-alias.wgsl @@ -2,6 +2,8 @@ alias FVec3 = vec3; alias IVec3 = vec3i; alias Mat2 = mat2x2; alias Mat3 = mat3x3f; +alias I32 = i32; +alias F32 = f32; fn main() { let a = FVec3(0.0, 0.0, 0.0); @@ -12,4 +14,7 @@ fn main() { let f = Mat2(1.0, 2.0, 3.0, 4.0); let g = Mat3(a, a, a); + + let h = vec2(); + let i = mat2x2(); } diff --git a/naga/tests/out/analysis/access.info.ron b/naga/tests/out/analysis/access.info.ron index 52b0c020eb..308bb1a8b6 100644 --- a/naga/tests/out/analysis/access.info.ron +++ b/naga/tests/out/analysis/access.info.ron @@ -5,6 +5,7 @@ ("DATA | SIZED | COPY | IO_SHAREABLE | HOST_SHAREABLE | ARGUMENT | CONSTRUCTIBLE"), ("DATA | SIZED | COPY | IO_SHAREABLE | HOST_SHAREABLE | ARGUMENT | CONSTRUCTIBLE"), ("DATA | SIZED | COPY | IO_SHAREABLE | HOST_SHAREABLE | ARGUMENT | CONSTRUCTIBLE"), + ("DATA | SIZED | COPY | IO_SHAREABLE | HOST_SHAREABLE | ARGUMENT | CONSTRUCTIBLE"), ("DATA | SIZED | COPY | HOST_SHAREABLE | ARGUMENT | CONSTRUCTIBLE"), ("DATA | SIZED | COPY | HOST_SHAREABLE | ARGUMENT | CONSTRUCTIBLE"), ("DATA | SIZED | COPY | HOST_SHAREABLE | ARGUMENT | CONSTRUCTIBLE"), @@ -20,7 +21,6 @@ ("DATA | SIZED | COPY | HOST_SHAREABLE | ARGUMENT | CONSTRUCTIBLE"), ("DATA | SIZED | COPY | HOST_SHAREABLE | ARGUMENT | CONSTRUCTIBLE"), ("DATA | SIZED | COPY | HOST_SHAREABLE | ARGUMENT | CONSTRUCTIBLE"), - ("DATA | SIZED | COPY | IO_SHAREABLE | HOST_SHAREABLE | ARGUMENT | CONSTRUCTIBLE"), ("SIZED | COPY | ARGUMENT"), ("DATA | SIZED | COPY | HOST_SHAREABLE | ARGUMENT | CONSTRUCTIBLE"), ("DATA | SIZED | COPY | HOST_SHAREABLE | ARGUMENT | CONSTRUCTIBLE"), @@ -110,7 +110,7 @@ ref_count: 1, assignable_global: Some(2), ty: Value(Pointer( - base: 15, + base: 16, space: Uniform, )), ), @@ -122,7 +122,7 @@ ref_count: 1, assignable_global: Some(2), ty: Value(Pointer( - base: 14, + base: 15, space: Uniform, )), ), @@ -133,7 +133,7 @@ ), ref_count: 0, assignable_global: None, - ty: Handle(14), + ty: Handle(15), ), ( uniformity: ( @@ -143,7 +143,7 @@ ref_count: 1, assignable_global: Some(2), ty: Value(Pointer( - base: 15, + base: 16, space: Uniform, )), ), @@ -155,7 +155,7 @@ ref_count: 1, assignable_global: Some(2), ty: Value(Pointer( - base: 14, + base: 15, space: Uniform, )), ), @@ -198,7 +198,7 @@ ref_count: 1, assignable_global: Some(2), ty: Value(Pointer( - base: 15, + base: 16, space: Uniform, )), ), @@ -210,7 +210,7 @@ ref_count: 1, assignable_global: Some(2), ty: Value(Pointer( - base: 14, + base: 15, space: Uniform, )), ), @@ -262,7 +262,7 @@ ref_count: 1, assignable_global: Some(2), ty: Value(Pointer( - base: 15, + base: 16, space: Uniform, )), ), @@ -274,7 +274,7 @@ ref_count: 1, assignable_global: Some(2), ty: Value(Pointer( - base: 14, + base: 15, space: Uniform, )), ), @@ -330,7 +330,7 @@ ref_count: 1, assignable_global: Some(2), ty: Value(Pointer( - base: 15, + base: 16, space: Uniform, )), ), @@ -342,7 +342,7 @@ ref_count: 1, assignable_global: Some(2), ty: Value(Pointer( - base: 14, + base: 15, space: Uniform, )), ), @@ -407,7 +407,7 @@ ref_count: 1, assignable_global: Some(2), ty: Value(Pointer( - base: 15, + base: 16, space: Uniform, )), ), @@ -419,7 +419,7 @@ ref_count: 1, assignable_global: Some(2), ty: Value(Pointer( - base: 14, + base: 15, space: Uniform, )), ), @@ -484,7 +484,7 @@ ref_count: 1, assignable_global: Some(2), ty: Value(Pointer( - base: 15, + base: 16, space: Uniform, )), ), @@ -496,7 +496,7 @@ ref_count: 1, assignable_global: Some(2), ty: Value(Pointer( - base: 14, + base: 15, space: Uniform, )), ), @@ -650,7 +650,7 @@ ), ref_count: 1, assignable_global: None, - ty: Handle(14), + ty: Handle(15), ), ( uniformity: ( @@ -659,7 +659,7 @@ ), ref_count: 1, assignable_global: None, - ty: Handle(15), + ty: Handle(16), ), ( uniformity: ( @@ -669,7 +669,7 @@ ref_count: 7, assignable_global: None, ty: Value(Pointer( - base: 15, + base: 16, space: Function, )), ), @@ -711,7 +711,7 @@ ref_count: 1, assignable_global: None, ty: Value(Pointer( - base: 14, + base: 15, space: Function, )), ), @@ -803,7 +803,7 @@ ), ref_count: 1, assignable_global: None, - ty: Handle(14), + ty: Handle(15), ), ( uniformity: ( @@ -813,7 +813,7 @@ ref_count: 1, assignable_global: None, ty: Value(Pointer( - base: 14, + base: 15, space: Function, )), ), @@ -868,7 +868,7 @@ ref_count: 1, assignable_global: None, ty: Value(Pointer( - base: 14, + base: 15, space: Function, )), ), @@ -932,7 +932,7 @@ ref_count: 1, assignable_global: None, ty: Value(Pointer( - base: 14, + base: 15, space: Function, )), ), @@ -988,7 +988,7 @@ ref_count: 1, assignable_global: None, ty: Value(Pointer( - base: 14, + base: 15, space: Function, )), ), @@ -1053,7 +1053,7 @@ ref_count: 1, assignable_global: None, ty: Value(Pointer( - base: 14, + base: 15, space: Function, )), ), @@ -1118,7 +1118,7 @@ ref_count: 1, assignable_global: None, ty: Value(Pointer( - base: 14, + base: 15, space: Function, )), ), @@ -1267,7 +1267,7 @@ ref_count: 1, assignable_global: Some(4), ty: Value(Pointer( - base: 19, + base: 20, space: Uniform, )), ), @@ -1279,7 +1279,7 @@ ref_count: 1, assignable_global: Some(4), ty: Value(Pointer( - base: 18, + base: 19, space: Uniform, )), ), @@ -1290,7 +1290,7 @@ ), ref_count: 0, assignable_global: None, - ty: Handle(18), + ty: Handle(19), ), ( uniformity: ( @@ -1300,7 +1300,7 @@ ref_count: 1, assignable_global: Some(4), ty: Value(Pointer( - base: 19, + base: 20, space: Uniform, )), ), @@ -1312,7 +1312,7 @@ ref_count: 1, assignable_global: Some(4), ty: Value(Pointer( - base: 18, + base: 19, space: Uniform, )), ), @@ -1324,7 +1324,7 @@ ref_count: 1, assignable_global: Some(4), ty: Value(Pointer( - base: 17, + base: 18, space: Uniform, )), ), @@ -1335,7 +1335,7 @@ ), ref_count: 0, assignable_global: None, - ty: Handle(17), + ty: Handle(18), ), ( uniformity: ( @@ -1345,7 +1345,7 @@ ref_count: 1, assignable_global: Some(4), ty: Value(Pointer( - base: 19, + base: 20, space: Uniform, )), ), @@ -1357,7 +1357,7 @@ ref_count: 1, assignable_global: Some(4), ty: Value(Pointer( - base: 18, + base: 19, space: Uniform, )), ), @@ -1369,7 +1369,7 @@ ref_count: 1, assignable_global: Some(4), ty: Value(Pointer( - base: 17, + base: 18, space: Uniform, )), ), @@ -1412,7 +1412,7 @@ ref_count: 1, assignable_global: Some(4), ty: Value(Pointer( - base: 19, + base: 20, space: Uniform, )), ), @@ -1424,7 +1424,7 @@ ref_count: 1, assignable_global: Some(4), ty: Value(Pointer( - base: 18, + base: 19, space: Uniform, )), ), @@ -1436,7 +1436,7 @@ ref_count: 1, assignable_global: Some(4), ty: Value(Pointer( - base: 17, + base: 18, space: Uniform, )), ), @@ -1488,7 +1488,7 @@ ref_count: 1, assignable_global: Some(4), ty: Value(Pointer( - base: 19, + base: 20, space: Uniform, )), ), @@ -1500,7 +1500,7 @@ ref_count: 1, assignable_global: Some(4), ty: Value(Pointer( - base: 18, + base: 19, space: Uniform, )), ), @@ -1512,7 +1512,7 @@ ref_count: 1, assignable_global: Some(4), ty: Value(Pointer( - base: 17, + base: 18, space: Uniform, )), ), @@ -1568,7 +1568,7 @@ ref_count: 1, assignable_global: Some(4), ty: Value(Pointer( - base: 19, + base: 20, space: Uniform, )), ), @@ -1580,7 +1580,7 @@ ref_count: 1, assignable_global: Some(4), ty: Value(Pointer( - base: 18, + base: 19, space: Uniform, )), ), @@ -1592,7 +1592,7 @@ ref_count: 1, assignable_global: Some(4), ty: Value(Pointer( - base: 17, + base: 18, space: Uniform, )), ), @@ -1657,7 +1657,7 @@ ref_count: 1, assignable_global: Some(4), ty: Value(Pointer( - base: 19, + base: 20, space: Uniform, )), ), @@ -1669,7 +1669,7 @@ ref_count: 1, assignable_global: Some(4), ty: Value(Pointer( - base: 18, + base: 19, space: Uniform, )), ), @@ -1681,7 +1681,7 @@ ref_count: 1, assignable_global: Some(4), ty: Value(Pointer( - base: 17, + base: 18, space: Uniform, )), ), @@ -1746,7 +1746,7 @@ ref_count: 1, assignable_global: Some(4), ty: Value(Pointer( - base: 19, + base: 20, space: Uniform, )), ), @@ -1758,7 +1758,7 @@ ref_count: 1, assignable_global: Some(4), ty: Value(Pointer( - base: 18, + base: 19, space: Uniform, )), ), @@ -1770,7 +1770,7 @@ ref_count: 1, assignable_global: Some(4), ty: Value(Pointer( - base: 17, + base: 18, space: Uniform, )), ), @@ -1843,7 +1843,7 @@ ), ref_count: 1, assignable_global: None, - ty: Handle(18), + ty: Handle(19), ), ( uniformity: ( @@ -1852,7 +1852,7 @@ ), ref_count: 1, assignable_global: None, - ty: Handle(19), + ty: Handle(20), ), ( uniformity: ( @@ -1862,7 +1862,7 @@ ref_count: 8, assignable_global: None, ty: Value(Pointer( - base: 19, + base: 20, space: Function, )), ), @@ -1904,7 +1904,7 @@ ref_count: 1, assignable_global: None, ty: Value(Pointer( - base: 18, + base: 19, space: Function, )), ), @@ -1915,7 +1915,7 @@ ), ref_count: 1, assignable_global: None, - ty: Handle(18), + ty: Handle(19), ), ( uniformity: ( @@ -1925,7 +1925,7 @@ ref_count: 1, assignable_global: None, ty: Value(Pointer( - base: 18, + base: 19, space: Function, )), ), @@ -1937,7 +1937,7 @@ ref_count: 1, assignable_global: None, ty: Value(Pointer( - base: 17, + base: 18, space: Function, )), ), @@ -2056,7 +2056,7 @@ ), ref_count: 1, assignable_global: None, - ty: Handle(17), + ty: Handle(18), ), ( uniformity: ( @@ -2066,7 +2066,7 @@ ref_count: 1, assignable_global: None, ty: Value(Pointer( - base: 18, + base: 19, space: Function, )), ), @@ -2078,7 +2078,7 @@ ref_count: 1, assignable_global: None, ty: Value(Pointer( - base: 17, + base: 18, space: Function, )), ), @@ -2133,7 +2133,7 @@ ref_count: 1, assignable_global: None, ty: Value(Pointer( - base: 18, + base: 19, space: Function, )), ), @@ -2145,7 +2145,7 @@ ref_count: 1, assignable_global: None, ty: Value(Pointer( - base: 17, + base: 18, space: Function, )), ), @@ -2209,7 +2209,7 @@ ref_count: 1, assignable_global: None, ty: Value(Pointer( - base: 18, + base: 19, space: Function, )), ), @@ -2221,7 +2221,7 @@ ref_count: 1, assignable_global: None, ty: Value(Pointer( - base: 17, + base: 18, space: Function, )), ), @@ -2277,7 +2277,7 @@ ref_count: 1, assignable_global: None, ty: Value(Pointer( - base: 18, + base: 19, space: Function, )), ), @@ -2289,7 +2289,7 @@ ref_count: 1, assignable_global: None, ty: Value(Pointer( - base: 17, + base: 18, space: Function, )), ), @@ -2354,7 +2354,7 @@ ref_count: 1, assignable_global: None, ty: Value(Pointer( - base: 18, + base: 19, space: Function, )), ), @@ -2366,7 +2366,7 @@ ref_count: 1, assignable_global: None, ty: Value(Pointer( - base: 17, + base: 18, space: Function, )), ), @@ -2431,7 +2431,7 @@ ref_count: 1, assignable_global: None, ty: Value(Pointer( - base: 18, + base: 19, space: Function, )), ), @@ -2443,7 +2443,7 @@ ref_count: 1, assignable_global: None, ty: Value(Pointer( - base: 17, + base: 18, space: Function, )), ), @@ -2546,7 +2546,7 @@ ), ref_count: 1, assignable_global: None, - ty: Handle(20), + ty: Handle(5), ), ], sampling: [], @@ -2594,7 +2594,7 @@ ), ref_count: 1, assignable_global: None, - ty: Handle(20), + ty: Handle(5), ), ], sampling: [], @@ -2783,7 +2783,7 @@ ref_count: 3, assignable_global: None, ty: Value(Pointer( - base: 20, + base: 5, space: Function, )), ), @@ -2794,7 +2794,7 @@ ), ref_count: 0, assignable_global: None, - ty: Handle(20), + ty: Handle(5), ), ( uniformity: ( @@ -2816,7 +2816,7 @@ ref_count: 1, assignable_global: Some(1), ty: Value(Pointer( - base: 13, + base: 14, space: Storage( access: ("LOAD | STORE"), ), @@ -2830,7 +2830,7 @@ ref_count: 1, assignable_global: Some(1), ty: Value(Pointer( - base: 5, + base: 6, space: Storage( access: ("LOAD | STORE"), ), @@ -2843,7 +2843,7 @@ ), ref_count: 1, assignable_global: None, - ty: Handle(5), + ty: Handle(6), ), ( uniformity: ( @@ -2853,7 +2853,7 @@ ref_count: 1, assignable_global: Some(1), ty: Value(Pointer( - base: 13, + base: 14, space: Storage( access: ("LOAD | STORE"), ), @@ -2867,7 +2867,7 @@ ref_count: 1, assignable_global: Some(1), ty: Value(Pointer( - base: 11, + base: 12, space: Storage( access: ("LOAD | STORE"), ), @@ -2880,7 +2880,7 @@ ), ref_count: 0, assignable_global: None, - ty: Handle(11), + ty: Handle(12), ), ( uniformity: ( @@ -2902,7 +2902,7 @@ ref_count: 1, assignable_global: Some(1), ty: Value(Pointer( - base: 13, + base: 14, space: Storage( access: ("LOAD | STORE"), ), @@ -2916,7 +2916,7 @@ ref_count: 1, assignable_global: Some(1), ty: Value(Pointer( - base: 5, + base: 6, space: Storage( access: ("LOAD | STORE"), ), @@ -2978,7 +2978,7 @@ ref_count: 1, assignable_global: Some(1), ty: Value(Pointer( - base: 13, + base: 14, space: Storage( access: ("LOAD | STORE"), ), @@ -2992,7 +2992,7 @@ ref_count: 1, assignable_global: Some(1), ty: Value(Pointer( - base: 12, + base: 13, space: Storage( access: ("LOAD | STORE"), ), @@ -3006,7 +3006,7 @@ ref_count: 1, assignable_global: Some(1), ty: Value(Pointer( - base: 13, + base: 14, space: Storage( access: ("LOAD | STORE"), ), @@ -3020,7 +3020,7 @@ ref_count: 1, assignable_global: Some(1), ty: Value(Pointer( - base: 12, + base: 13, space: Storage( access: ("LOAD | STORE"), ), @@ -3107,7 +3107,7 @@ ref_count: 1, assignable_global: Some(3), ty: Value(Pointer( - base: 16, + base: 17, space: Storage( access: ("LOAD | STORE"), ), @@ -3120,7 +3120,7 @@ ), ref_count: 0, assignable_global: None, - ty: Handle(16), + ty: Handle(17), ), ( uniformity: ( @@ -3130,7 +3130,7 @@ ref_count: 1, assignable_global: Some(1), ty: Value(Pointer( - base: 13, + base: 14, space: Storage( access: ("LOAD | STORE"), ), @@ -3144,7 +3144,7 @@ ref_count: 1, assignable_global: Some(1), ty: Value(Pointer( - base: 12, + base: 13, space: Storage( access: ("LOAD | STORE"), ), @@ -3185,7 +3185,7 @@ ), ref_count: 0, assignable_global: None, - ty: Handle(20), + ty: Handle(5), ), ( uniformity: ( @@ -3338,7 +3338,7 @@ ), ref_count: 0, assignable_global: None, - ty: Handle(20), + ty: Handle(5), ), ( uniformity: ( @@ -3435,7 +3435,7 @@ ref_count: 1, assignable_global: Some(1), ty: Value(Pointer( - base: 13, + base: 14, space: Storage( access: ("LOAD | STORE"), ), @@ -3449,7 +3449,7 @@ ref_count: 1, assignable_global: Some(1), ty: Value(Pointer( - base: 5, + base: 6, space: Storage( access: ("LOAD | STORE"), ), @@ -3511,7 +3511,7 @@ ref_count: 1, assignable_global: Some(1), ty: Value(Pointer( - base: 13, + base: 14, space: Storage( access: ("LOAD | STORE"), ), @@ -3525,7 +3525,7 @@ ref_count: 1, assignable_global: Some(1), ty: Value(Pointer( - base: 5, + base: 6, space: Storage( access: ("LOAD | STORE"), ), @@ -3646,7 +3646,7 @@ ), ref_count: 1, assignable_global: None, - ty: Handle(5), + ty: Handle(6), ), ( uniformity: ( @@ -3656,7 +3656,7 @@ ref_count: 1, assignable_global: Some(1), ty: Value(Pointer( - base: 13, + base: 14, space: Storage( access: ("LOAD | STORE"), ), @@ -3670,7 +3670,7 @@ ref_count: 1, assignable_global: Some(1), ty: Value(Pointer( - base: 11, + base: 12, space: Storage( access: ("LOAD | STORE"), ), @@ -3737,7 +3737,7 @@ ), ref_count: 1, assignable_global: None, - ty: Handle(11), + ty: Handle(12), ), ( uniformity: ( @@ -3747,7 +3747,7 @@ ref_count: 1, assignable_global: Some(1), ty: Value(Pointer( - base: 13, + base: 14, space: Storage( access: ("LOAD | STORE"), ), @@ -3761,7 +3761,7 @@ ref_count: 1, assignable_global: Some(1), ty: Value(Pointer( - base: 12, + base: 13, space: Storage( access: ("LOAD | STORE"), ), @@ -3815,7 +3815,7 @@ ref_count: 1, assignable_global: Some(3), ty: Value(Pointer( - base: 16, + base: 17, space: Storage( access: ("LOAD | STORE"), ), @@ -3828,7 +3828,7 @@ ), ref_count: 1, assignable_global: None, - ty: Handle(16), + ty: Handle(17), ), ( uniformity: ( diff --git a/naga/tests/out/glsl/access.foo_frag.Fragment.glsl b/naga/tests/out/glsl/access.foo_frag.Fragment.glsl index 3d52fa56b0..aacdda0130 100644 --- a/naga/tests/out/glsl/access.foo_frag.Fragment.glsl +++ b/naga/tests/out/glsl/access.foo_frag.Fragment.glsl @@ -26,7 +26,7 @@ layout(std430) buffer Bar_block_0Fragment { AlignedWrapper data[]; } _group_0_binding_0_fs; -layout(std430) buffer type_12_block_1Fragment { ivec2 _group_0_binding_2_fs; }; +layout(std430) buffer type_13_block_1Fragment { ivec2 _group_0_binding_2_fs; }; layout(location = 0) out vec4 _fs2p_location0; diff --git a/naga/tests/out/glsl/access.foo_vert.Vertex.glsl b/naga/tests/out/glsl/access.foo_vert.Vertex.glsl index edc7ce1e6b..d4a9b92945 100644 --- a/naga/tests/out/glsl/access.foo_vert.Vertex.glsl +++ b/naga/tests/out/glsl/access.foo_vert.Vertex.glsl @@ -28,7 +28,7 @@ layout(std430) buffer Bar_block_0Vertex { uniform Baz_block_1Vertex { Baz _group_0_binding_1_vs; }; -layout(std430) buffer type_12_block_2Vertex { ivec2 _group_0_binding_2_vs; }; +layout(std430) buffer type_13_block_2Vertex { ivec2 _group_0_binding_2_vs; }; uniform MatCx2InArray_block_3Vertex { MatCx2InArray _group_0_binding_3_vs; }; diff --git a/naga/tests/out/glsl/shadow.fs_main.Fragment.glsl b/naga/tests/out/glsl/shadow.fs_main.Fragment.glsl index 61c14561d5..ab7214380f 100644 --- a/naga/tests/out/glsl/shadow.fs_main.Fragment.glsl +++ b/naga/tests/out/glsl/shadow.fs_main.Fragment.glsl @@ -28,7 +28,7 @@ uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; uniform Entity_block_1Fragment { Entity _group_1_binding_0_fs; }; -layout(std430) readonly buffer type_6_block_2Fragment { Light _group_0_binding_1_fs[]; }; +layout(std430) readonly buffer type_8_block_2Fragment { Light _group_0_binding_1_fs[]; }; uniform highp sampler2DArrayShadow _group_0_binding_2_fs; diff --git a/naga/tests/out/glsl/shadow.fs_main_without_storage.Fragment.glsl b/naga/tests/out/glsl/shadow.fs_main_without_storage.Fragment.glsl index 57677c91a6..a9fcf31d56 100644 --- a/naga/tests/out/glsl/shadow.fs_main_without_storage.Fragment.glsl +++ b/naga/tests/out/glsl/shadow.fs_main_without_storage.Fragment.glsl @@ -28,7 +28,7 @@ uniform Globals_block_0Fragment { Globals _group_0_binding_0_fs; }; uniform Entity_block_1Fragment { Entity _group_1_binding_0_fs; }; -uniform type_7_block_2Fragment { Light _group_0_binding_1_fs[10]; }; +uniform type_9_block_2Fragment { Light _group_0_binding_1_fs[10]; }; uniform highp sampler2DArrayShadow _group_0_binding_2_fs; diff --git a/naga/tests/out/ir/access.compact.ron b/naga/tests/out/ir/access.compact.ron index fd9405f2d0..1b95742ff2 100644 --- a/naga/tests/out/ir/access.compact.ron +++ b/naga/tests/out/ir/access.compact.ron @@ -64,6 +64,13 @@ span: 8, ), ), + ( + name: None, + inner: Scalar(( + kind: Float, + width: 4, + )), + ), ( name: None, inner: Matrix( @@ -89,7 +96,7 @@ ( name: None, inner: Array( - base: 6, + base: 7, size: Constant(2), stride: 16, ), @@ -104,7 +111,7 @@ ( name: None, inner: Array( - base: 8, + base: 9, size: Constant(10), stride: 4, ), @@ -122,7 +129,7 @@ ( name: None, inner: Array( - base: 10, + base: 11, size: Constant(2), stride: 8, ), @@ -141,37 +148,37 @@ members: [ ( name: Some("_matrix"), - ty: 5, + ty: 6, binding: None, offset: 0, ), ( name: Some("matrix_array"), - ty: 7, + ty: 8, binding: None, offset: 64, ), ( name: Some("atom"), - ty: 8, + ty: 9, binding: None, offset: 96, ), ( name: Some("atom_arr"), - ty: 9, + ty: 10, binding: None, offset: 100, ), ( name: Some("arr"), - ty: 11, + ty: 12, binding: None, offset: 144, ), ( name: Some("data"), - ty: 12, + ty: 13, binding: None, offset: 160, ), @@ -196,7 +203,7 @@ members: [ ( name: Some("m"), - ty: 14, + ty: 15, binding: None, offset: 0, ), @@ -228,7 +235,7 @@ ( name: None, inner: Array( - base: 17, + base: 18, size: Constant(2), stride: 32, ), @@ -239,7 +246,7 @@ members: [ ( name: Some("am"), - ty: 18, + ty: 19, binding: None, offset: 0, ), @@ -247,24 +254,17 @@ span: 64, ), ), - ( - name: None, - inner: Scalar(( - kind: Float, - width: 4, - )), - ), ( name: None, inner: Pointer( - base: 20, + base: 5, space: Function, ), ), ( name: None, inner: Array( - base: 20, + base: 5, size: Constant(10), stride: 4, ), @@ -342,7 +342,7 @@ group: 0, binding: 0, )), - ty: 13, + ty: 14, init: None, ), ( @@ -352,7 +352,7 @@ group: 0, binding: 1, )), - ty: 15, + ty: 16, init: None, ), ( @@ -364,7 +364,7 @@ group: 0, binding: 2, )), - ty: 16, + ty: 17, init: None, ), ( @@ -374,7 +374,7 @@ group: 0, binding: 3, )), - ty: 19, + ty: 20, init: None, ), ], @@ -414,7 +414,7 @@ ), ( name: Some("t"), - ty: 15, + ty: 16, init: Some(48), ), ], @@ -557,7 +557,7 @@ value: 45, ), Compose( - ty: 14, + ty: 15, components: [ 42, 44, @@ -565,7 +565,7 @@ ], ), Compose( - ty: 15, + ty: 16, components: [ 47, ], @@ -600,7 +600,7 @@ value: 58, ), Compose( - ty: 14, + ty: 15, components: [ 55, 57, @@ -900,7 +900,7 @@ ), ( name: Some("t"), - ty: 19, + ty: 20, init: Some(52), ), ], @@ -1063,9 +1063,9 @@ Load( pointer: 49, ), - ZeroValue(18), + ZeroValue(19), Compose( - ty: 19, + ty: 20, components: [ 51, ], @@ -1084,7 +1084,7 @@ base: 53, index: 0, ), - ZeroValue(18), + ZeroValue(19), AccessIndex( base: 53, index: 0, @@ -1114,7 +1114,7 @@ value: 67, ), Compose( - ty: 17, + ty: 18, components: [ 62, 64, @@ -1502,7 +1502,7 @@ ), ], result: Some(( - ty: 20, + ty: 5, binding: None, )), local_variables: [], @@ -1535,7 +1535,7 @@ ), ], result: Some(( - ty: 20, + ty: 5, binding: None, )), local_variables: [], @@ -1680,7 +1680,7 @@ local_variables: [ ( name: Some("foo"), - ty: 20, + ty: 5, init: Some(1), ), ( @@ -2017,7 +2017,7 @@ value: 13, ), Compose( - ty: 5, + ty: 6, components: [ 8, 10, @@ -2041,7 +2041,7 @@ value: 20, ), Compose( - ty: 11, + ty: 12, components: [ 19, 21, @@ -2062,7 +2062,7 @@ ), Literal(I32(1)), GlobalVariable(3), - ZeroValue(16), + ZeroValue(17), Literal(F32(0.0)), Splat( size: Quad, diff --git a/naga/tests/out/ir/access.ron b/naga/tests/out/ir/access.ron index fd9405f2d0..1b95742ff2 100644 --- a/naga/tests/out/ir/access.ron +++ b/naga/tests/out/ir/access.ron @@ -64,6 +64,13 @@ span: 8, ), ), + ( + name: None, + inner: Scalar(( + kind: Float, + width: 4, + )), + ), ( name: None, inner: Matrix( @@ -89,7 +96,7 @@ ( name: None, inner: Array( - base: 6, + base: 7, size: Constant(2), stride: 16, ), @@ -104,7 +111,7 @@ ( name: None, inner: Array( - base: 8, + base: 9, size: Constant(10), stride: 4, ), @@ -122,7 +129,7 @@ ( name: None, inner: Array( - base: 10, + base: 11, size: Constant(2), stride: 8, ), @@ -141,37 +148,37 @@ members: [ ( name: Some("_matrix"), - ty: 5, + ty: 6, binding: None, offset: 0, ), ( name: Some("matrix_array"), - ty: 7, + ty: 8, binding: None, offset: 64, ), ( name: Some("atom"), - ty: 8, + ty: 9, binding: None, offset: 96, ), ( name: Some("atom_arr"), - ty: 9, + ty: 10, binding: None, offset: 100, ), ( name: Some("arr"), - ty: 11, + ty: 12, binding: None, offset: 144, ), ( name: Some("data"), - ty: 12, + ty: 13, binding: None, offset: 160, ), @@ -196,7 +203,7 @@ members: [ ( name: Some("m"), - ty: 14, + ty: 15, binding: None, offset: 0, ), @@ -228,7 +235,7 @@ ( name: None, inner: Array( - base: 17, + base: 18, size: Constant(2), stride: 32, ), @@ -239,7 +246,7 @@ members: [ ( name: Some("am"), - ty: 18, + ty: 19, binding: None, offset: 0, ), @@ -247,24 +254,17 @@ span: 64, ), ), - ( - name: None, - inner: Scalar(( - kind: Float, - width: 4, - )), - ), ( name: None, inner: Pointer( - base: 20, + base: 5, space: Function, ), ), ( name: None, inner: Array( - base: 20, + base: 5, size: Constant(10), stride: 4, ), @@ -342,7 +342,7 @@ group: 0, binding: 0, )), - ty: 13, + ty: 14, init: None, ), ( @@ -352,7 +352,7 @@ group: 0, binding: 1, )), - ty: 15, + ty: 16, init: None, ), ( @@ -364,7 +364,7 @@ group: 0, binding: 2, )), - ty: 16, + ty: 17, init: None, ), ( @@ -374,7 +374,7 @@ group: 0, binding: 3, )), - ty: 19, + ty: 20, init: None, ), ], @@ -414,7 +414,7 @@ ), ( name: Some("t"), - ty: 15, + ty: 16, init: Some(48), ), ], @@ -557,7 +557,7 @@ value: 45, ), Compose( - ty: 14, + ty: 15, components: [ 42, 44, @@ -565,7 +565,7 @@ ], ), Compose( - ty: 15, + ty: 16, components: [ 47, ], @@ -600,7 +600,7 @@ value: 58, ), Compose( - ty: 14, + ty: 15, components: [ 55, 57, @@ -900,7 +900,7 @@ ), ( name: Some("t"), - ty: 19, + ty: 20, init: Some(52), ), ], @@ -1063,9 +1063,9 @@ Load( pointer: 49, ), - ZeroValue(18), + ZeroValue(19), Compose( - ty: 19, + ty: 20, components: [ 51, ], @@ -1084,7 +1084,7 @@ base: 53, index: 0, ), - ZeroValue(18), + ZeroValue(19), AccessIndex( base: 53, index: 0, @@ -1114,7 +1114,7 @@ value: 67, ), Compose( - ty: 17, + ty: 18, components: [ 62, 64, @@ -1502,7 +1502,7 @@ ), ], result: Some(( - ty: 20, + ty: 5, binding: None, )), local_variables: [], @@ -1535,7 +1535,7 @@ ), ], result: Some(( - ty: 20, + ty: 5, binding: None, )), local_variables: [], @@ -1680,7 +1680,7 @@ local_variables: [ ( name: Some("foo"), - ty: 20, + ty: 5, init: Some(1), ), ( @@ -2017,7 +2017,7 @@ value: 13, ), Compose( - ty: 5, + ty: 6, components: [ 8, 10, @@ -2041,7 +2041,7 @@ value: 20, ), Compose( - ty: 11, + ty: 12, components: [ 19, 21, @@ -2062,7 +2062,7 @@ ), Literal(I32(1)), GlobalVariable(3), - ZeroValue(16), + ZeroValue(17), Literal(F32(0.0)), Splat( size: Quad, diff --git a/naga/tests/out/msl/abstract-types-const.msl b/naga/tests/out/msl/abstract-types-const.msl index af4de25cc6..16a3e35b9a 100644 --- a/naga/tests/out/msl/abstract-types-const.msl +++ b/naga/tests/out/msl/abstract-types-const.msl @@ -4,7 +4,7 @@ using metal::uint; -struct type_5 { +struct type_7 { float inner[2]; }; struct S { @@ -32,12 +32,12 @@ constant metal::int2 ivis_ai = metal::int2(1); constant metal::uint2 ivus_ai = metal::uint2(1u); constant metal::float2 ivfs_ai = metal::float2(1.0); constant metal::float2 ivfs_af = metal::float2(1.0); -constant type_5 iafafaf = type_5 {1.0, 2.0}; -constant type_5 iafaiai = type_5 {1.0, 2.0}; -constant type_5 iafpafaf = type_5 {1.0, 2.0}; -constant type_5 iafpaiaf = type_5 {1.0, 2.0}; -constant type_5 iafpafai = type_5 {1.0, 2.0}; -constant type_5 xafpafaf = type_5 {1.0, 2.0}; +constant type_7 iafafaf = type_7 {1.0, 2.0}; +constant type_7 iafaiai = type_7 {1.0, 2.0}; +constant type_7 iafpafaf = type_7 {1.0, 2.0}; +constant type_7 iafpaiaf = type_7 {1.0, 2.0}; +constant type_7 iafpafai = type_7 {1.0, 2.0}; +constant type_7 xafpafaf = type_7 {1.0, 2.0}; constant S s_f_i_u = S {1.0, 1, 1u}; constant S s_f_iai = S {1.0, 1, 1u}; constant S s_fai_u = S {1.0, 1, 1u}; diff --git a/naga/tests/out/msl/abstract-types-var.msl b/naga/tests/out/msl/abstract-types-var.msl index 45096f8672..7d5623469b 100644 --- a/naga/tests/out/msl/abstract-types-var.msl +++ b/naga/tests/out/msl/abstract-types-var.msl @@ -4,10 +4,10 @@ using metal::uint; -struct type_5 { +struct type_7 { float inner[2]; }; -struct type_7 { +struct type_8 { int inner[2]; }; @@ -35,17 +35,17 @@ void all_constant_arguments( metal::uint2 xvus_ai = metal::uint2(1u); metal::float2 xvfs_ai = metal::float2(1.0); metal::float2 xvfs_af = metal::float2(1.0); - type_5 xafafaf = type_5 {1.0, 2.0}; - type_5 xaf_faf = type_5 {1.0, 2.0}; - type_5 xafaf_f = type_5 {1.0, 2.0}; - type_5 xafaiai = type_5 {1.0, 2.0}; - type_7 xai_iai = type_7 {1, 2}; - type_7 xaiai_i = type_7 {1, 2}; - type_7 xaipaiai = type_7 {1, 2}; - type_5 xafpaiai = type_5 {1.0, 2.0}; - type_5 xafpaiaf = type_5 {1.0, 2.0}; - type_5 xafpafai = type_5 {1.0, 2.0}; - type_5 xafpafaf = type_5 {1.0, 2.0}; + type_7 xafafaf = type_7 {1.0, 2.0}; + type_7 xaf_faf = type_7 {1.0, 2.0}; + type_7 xafaf_f = type_7 {1.0, 2.0}; + type_7 xafaiai = type_7 {1.0, 2.0}; + type_8 xai_iai = type_8 {1, 2}; + type_8 xaiai_i = type_8 {1, 2}; + type_8 xaipaiai = type_8 {1, 2}; + type_7 xafpaiai = type_7 {1.0, 2.0}; + type_7 xafpaiaf = type_7 {1.0, 2.0}; + type_7 xafpafai = type_7 {1.0, 2.0}; + type_7 xafpafaf = type_7 {1.0, 2.0}; } void mixed_constant_and_runtime_arguments( @@ -61,18 +61,18 @@ void mixed_constant_and_runtime_arguments( metal::float2x2 xmfpai_faiai_1 = {}; metal::float2x2 xmfpaiai_fai_1 = {}; metal::float2x2 xmfpaiaiai_f_1 = {}; - type_5 xaf_faf_1 = {}; - type_5 xafaf_f_1 = {}; - type_5 xaf_fai = {}; - type_5 xafai_f = {}; - type_7 xai_iai_1 = {}; - type_7 xaiai_i_1 = {}; - type_5 xafp_faf = {}; - type_5 xafpaf_f = {}; - type_5 xafp_fai = {}; - type_5 xafpai_f = {}; - type_7 xaip_iai = {}; - type_7 xaipai_i = {}; + type_7 xaf_faf_1 = {}; + type_7 xafaf_f_1 = {}; + type_7 xaf_fai = {}; + type_7 xafai_f = {}; + type_8 xai_iai_1 = {}; + type_8 xaiai_i_1 = {}; + type_7 xafp_faf = {}; + type_7 xafpaf_f = {}; + type_7 xafp_fai = {}; + type_7 xafpai_f = {}; + type_8 xaip_iai = {}; + type_8 xaipai_i = {}; uint _e3 = u; xvupuai_1 = metal::uint2(_e3, 43u); uint _e7 = u; @@ -90,28 +90,28 @@ void mixed_constant_and_runtime_arguments( float _e43 = f; xmfpaiaiai_f_1 = metal::float2x2(metal::float2(1.0, 2.0), metal::float2(3.0, _e43)); float _e51 = f; - xaf_faf_1 = type_5 {_e51, 2.0}; + xaf_faf_1 = type_7 {_e51, 2.0}; float _e55 = f; - xafaf_f_1 = type_5 {1.0, _e55}; + xafaf_f_1 = type_7 {1.0, _e55}; float _e59 = f; - xaf_fai = type_5 {_e59, 2.0}; + xaf_fai = type_7 {_e59, 2.0}; float _e63 = f; - xafai_f = type_5 {1.0, _e63}; + xafai_f = type_7 {1.0, _e63}; int _e67 = i; - xai_iai_1 = type_7 {_e67, 2}; + xai_iai_1 = type_8 {_e67, 2}; int _e71 = i; - xaiai_i_1 = type_7 {1, _e71}; + xaiai_i_1 = type_8 {1, _e71}; float _e75 = f; - xafp_faf = type_5 {_e75, 2.0}; + xafp_faf = type_7 {_e75, 2.0}; float _e79 = f; - xafpaf_f = type_5 {1.0, _e79}; + xafpaf_f = type_7 {1.0, _e79}; float _e83 = f; - xafp_fai = type_5 {_e83, 2.0}; + xafp_fai = type_7 {_e83, 2.0}; float _e87 = f; - xafpai_f = type_5 {1.0, _e87}; + xafpai_f = type_7 {1.0, _e87}; int _e91 = i; - xaip_iai = type_7 {_e91, 2}; + xaip_iai = type_8 {_e91, 2}; int _e95 = i; - xaipai_i = type_7 {1, _e95}; + xaipai_i = type_8 {1, _e95}; return; } diff --git a/naga/tests/out/msl/access.msl b/naga/tests/out/msl/access.msl index 908535ea31..65dba4910e 100644 --- a/naga/tests/out/msl/access.msl +++ b/naga/tests/out/msl/access.msl @@ -17,33 +17,33 @@ struct GlobalConst { struct AlignedWrapper { int value; }; -struct type_5 { +struct type_6 { metal::float2x2 inner[2]; }; -struct type_7 { +struct type_8 { metal::atomic_int inner[10]; }; -struct type_9 { +struct type_10 { metal::uint2 inner[2]; }; -typedef AlignedWrapper type_10[1]; +typedef AlignedWrapper type_11[1]; struct Bar { metal::float4x3 _matrix; - type_5 matrix_array; + type_6 matrix_array; metal::atomic_int atom; - type_7 atom_arr; + type_8 atom_arr; char _pad4[4]; - type_9 arr; - type_10 data; + type_10 arr; + type_11 data; }; struct Baz { metal::float3x2 m; }; -struct type_14 { +struct type_15 { metal::float4x2 inner[2]; }; struct MatCx2InArray { - type_14 am; + type_15 am; }; struct type_17 { float inner[10]; @@ -98,10 +98,10 @@ void test_matrix_within_array_within_struct_accesses( constant MatCx2InArray& nested_mat_cx2_ ) { int idx_1 = 1; - MatCx2InArray t_1 = MatCx2InArray {type_14 {}}; + MatCx2InArray t_1 = MatCx2InArray {type_15 {}}; int _e3 = idx_1; idx_1 = _e3 - 1; - type_14 l0_1 = nested_mat_cx2_.am; + type_15 l0_1 = nested_mat_cx2_.am; metal::float4x2 l1_1 = nested_mat_cx2_.am.inner[0]; metal::float2 l2_1 = nested_mat_cx2_.am.inner[0][0]; int _e20 = idx_1; @@ -116,7 +116,7 @@ void test_matrix_within_array_within_struct_accesses( float l7_ = nested_mat_cx2_.am.inner[0][_e46][_e48]; int _e55 = idx_1; idx_1 = _e55 + 1; - t_1.am = type_14 {}; + t_1.am = type_15 {}; t_1.am.inner[0] = metal::float4x2(metal::float2(8.0), metal::float2(7.0), metal::float2(6.0), metal::float2(5.0)); t_1.am.inner[0][0] = metal::float2(9.0); int _e77 = idx_1; @@ -179,7 +179,7 @@ vertex foo_vertOutput foo_vert( test_matrix_within_struct_accesses(baz); test_matrix_within_array_within_struct_accesses(nested_mat_cx2_); metal::float4x3 _matrix = bar._matrix; - type_9 arr_1 = bar.arr; + type_10 arr_1 = bar.arr; float b = bar._matrix[3u].x; int a_1 = bar.data[(1 + (_buffer_sizes.size1 - 160 - 8) / 8) - 2u].value; metal::int2 c = qux; @@ -202,7 +202,7 @@ fragment foo_fragOutput foo_frag( ) { bar._matrix[1].z = 1.0; bar._matrix = metal::float4x3(metal::float3(0.0), metal::float3(1.0), metal::float3(2.0), metal::float3(3.0)); - bar.arr = type_9 {metal::uint2(0u), metal::uint2(1u)}; + bar.arr = type_10 {metal::uint2(0u), metal::uint2(1u)}; bar.data[1].value = 1; qux = metal::int2 {}; return foo_fragOutput { metal::float4(0.0) }; diff --git a/naga/tests/out/msl/constructors.msl b/naga/tests/out/msl/constructors.msl index 6733568a92..d4dc5c5292 100644 --- a/naga/tests/out/msl/constructors.msl +++ b/naga/tests/out/msl/constructors.msl @@ -8,7 +8,7 @@ struct Foo { metal::float4 a; int b; }; -struct type_5 { +struct type_6 { metal::float2x2 inner[1]; }; struct type_10 { @@ -19,7 +19,7 @@ struct type_11 { }; constant metal::float3 const2_ = metal::float3(0.0, 1.0, 2.0); constant metal::float2x2 const3_ = metal::float2x2(metal::float2(0.0, 1.0), metal::float2(2.0, 3.0)); -constant type_5 const4_ = type_5 {metal::float2x2(metal::float2(0.0, 1.0), metal::float2(2.0, 3.0))}; +constant type_6 const4_ = type_6 {metal::float2x2(metal::float2(0.0, 1.0), metal::float2(2.0, 3.0))}; constant bool cz0_ = bool {}; constant int cz1_ = int {}; constant uint cz2_ = uint {}; diff --git a/naga/tests/out/msl/policy-mix.msl b/naga/tests/out/msl/policy-mix.msl index 24a40179a8..468b6f507a 100644 --- a/naga/tests/out/msl/policy-mix.msl +++ b/naga/tests/out/msl/policy-mix.msl @@ -10,17 +10,17 @@ struct DefaultConstructible { } }; -struct type_1 { +struct type_2 { metal::float4 inner[10]; }; struct InStorage { - type_1 a; + type_2 a; }; -struct type_2 { +struct type_3 { metal::float4 inner[20]; }; struct InUniform { - type_2 a; + type_3 a; }; struct type_5 { float inner[30]; diff --git a/naga/tests/out/msl/shadow.msl b/naga/tests/out/msl/shadow.msl index 2443f002f2..3aefc21eee 100644 --- a/naga/tests/out/msl/shadow.msl +++ b/naga/tests/out/msl/shadow.msl @@ -26,8 +26,8 @@ struct Light { metal::float4 pos; metal::float4 color; }; -typedef Light type_6[1]; -struct type_7 { +typedef Light type_8[1]; +struct type_9 { Light inner[10]; }; constant metal::float3 c_ambient = metal::float3(0.05, 0.05, 0.05); @@ -91,7 +91,7 @@ fragment fs_mainOutput fs_main( , metal::float4 proj_position [[position]] , constant Globals& u_globals [[user(fake0)]] , constant Entity& u_entity [[user(fake0)]] -, device type_6 const& s_lights [[user(fake0)]] +, device type_8 const& s_lights [[user(fake0)]] , metal::depth2d_array t_shadow [[user(fake0)]] , metal::sampler sampler_shadow [[user(fake0)]] , constant _mslBufferSizes& _buffer_sizes [[user(fake0)]] @@ -142,7 +142,7 @@ fragment fs_main_without_storageOutput fs_main_without_storage( , metal::float4 proj_position_1 [[position]] , constant Globals& u_globals [[user(fake0)]] , constant Entity& u_entity [[user(fake0)]] -, constant type_7& u_lights [[user(fake0)]] +, constant type_9& u_lights [[user(fake0)]] , metal::depth2d_array t_shadow [[user(fake0)]] , metal::sampler sampler_shadow [[user(fake0)]] ) { diff --git a/naga/tests/out/spv/abstract-types-const.spvasm b/naga/tests/out/spv/abstract-types-const.spvasm index 207a04f564..edebb600ac 100644 --- a/naga/tests/out/spv/abstract-types-const.spvasm +++ b/naga/tests/out/spv/abstract-types-const.spvasm @@ -11,36 +11,36 @@ OpMemberDecorate %12 0 Offset 0 OpMemberDecorate %12 1 Offset 4 OpMemberDecorate %12 2 Offset 8 %2 = OpTypeVoid -%4 = OpTypeInt 32 0 -%3 = OpTypeVector %4 2 -%6 = OpTypeFloat 32 -%5 = OpTypeVector %6 2 -%7 = OpTypeMatrix %5 2 +%3 = OpTypeInt 32 0 +%4 = OpTypeVector %3 2 +%5 = OpTypeFloat 32 +%6 = OpTypeVector %5 2 +%7 = OpTypeMatrix %6 2 %9 = OpTypeInt 32 1 %8 = OpTypeVector %9 2 -%11 = OpConstant %4 2 -%10 = OpTypeArray %6 %11 -%12 = OpTypeStruct %6 %9 %4 -%13 = OpTypeVector %6 3 -%14 = OpConstant %4 42 -%15 = OpConstant %4 43 -%16 = OpConstantComposite %3 %14 %15 -%17 = OpConstant %6 44.0 -%18 = OpConstant %6 45.0 -%19 = OpConstantComposite %5 %17 %18 -%20 = OpConstant %6 1.0 -%21 = OpConstant %6 2.0 -%22 = OpConstantComposite %5 %20 %21 -%23 = OpConstant %6 3.0 -%24 = OpConstant %6 4.0 -%25 = OpConstantComposite %5 %23 %24 +%11 = OpConstant %3 2 +%10 = OpTypeArray %5 %11 +%12 = OpTypeStruct %5 %9 %3 +%13 = OpTypeVector %5 3 +%14 = OpConstant %3 42 +%15 = OpConstant %3 43 +%16 = OpConstantComposite %4 %14 %15 +%17 = OpConstant %5 44.0 +%18 = OpConstant %5 45.0 +%19 = OpConstantComposite %6 %17 %18 +%20 = OpConstant %5 1.0 +%21 = OpConstant %5 2.0 +%22 = OpConstantComposite %6 %20 %21 +%23 = OpConstant %5 3.0 +%24 = OpConstant %5 4.0 +%25 = OpConstantComposite %6 %23 %24 %26 = OpConstantComposite %7 %22 %25 %27 = OpConstant %9 1 %28 = OpConstantComposite %8 %27 %27 -%29 = OpConstantComposite %5 %20 %20 -%30 = OpConstant %4 1 -%31 = OpConstantComposite %3 %30 %30 +%29 = OpConstantComposite %6 %20 %20 +%30 = OpConstant %3 1 +%31 = OpConstantComposite %4 %30 %30 %32 = OpConstantComposite %10 %20 %21 %33 = OpConstantComposite %12 %20 %27 %30 %34 = OpConstantComposite %13 %20 %21 %23 -%35 = OpConstantComposite %5 %21 %23 \ No newline at end of file +%35 = OpConstantComposite %6 %21 %23 \ No newline at end of file diff --git a/naga/tests/out/spv/abstract-types-var.spvasm b/naga/tests/out/spv/abstract-types-var.spvasm index 1b4b0664b4..b04f94ff0c 100644 --- a/naga/tests/out/spv/abstract-types-var.spvasm +++ b/naga/tests/out/spv/abstract-types-var.spvasm @@ -9,48 +9,48 @@ OpMemoryModel Logical GLSL450 OpDecorate %10 ArrayStride 4 OpDecorate %12 ArrayStride 4 %2 = OpTypeVoid -%4 = OpTypeInt 32 1 -%3 = OpTypeVector %4 2 -%6 = OpTypeInt 32 0 -%5 = OpTypeVector %6 2 -%8 = OpTypeFloat 32 -%7 = OpTypeVector %8 2 -%9 = OpTypeMatrix %7 2 -%11 = OpConstant %6 2 -%10 = OpTypeArray %8 %11 -%12 = OpTypeArray %4 %11 -%13 = OpConstant %4 42 -%14 = OpConstant %4 43 -%15 = OpConstantComposite %3 %13 %14 -%16 = OpConstant %6 44 -%17 = OpConstant %6 45 -%18 = OpConstantComposite %5 %16 %17 -%19 = OpConstant %8 46.0 -%20 = OpConstant %8 47.0 -%21 = OpConstantComposite %7 %19 %20 -%22 = OpConstant %6 42 -%23 = OpConstant %6 43 -%24 = OpConstantComposite %5 %22 %23 -%25 = OpConstant %8 1.0 -%26 = OpConstant %8 2.0 -%27 = OpConstantComposite %7 %25 %26 -%28 = OpConstant %8 3.0 -%29 = OpConstant %8 4.0 -%30 = OpConstantComposite %7 %28 %29 +%3 = OpTypeInt 32 1 +%4 = OpTypeVector %3 2 +%5 = OpTypeInt 32 0 +%6 = OpTypeVector %5 2 +%7 = OpTypeFloat 32 +%8 = OpTypeVector %7 2 +%9 = OpTypeMatrix %8 2 +%11 = OpConstant %5 2 +%10 = OpTypeArray %7 %11 +%12 = OpTypeArray %3 %11 +%13 = OpConstant %3 42 +%14 = OpConstant %3 43 +%15 = OpConstantComposite %4 %13 %14 +%16 = OpConstant %5 44 +%17 = OpConstant %5 45 +%18 = OpConstantComposite %6 %16 %17 +%19 = OpConstant %7 46.0 +%20 = OpConstant %7 47.0 +%21 = OpConstantComposite %8 %19 %20 +%22 = OpConstant %5 42 +%23 = OpConstant %5 43 +%24 = OpConstantComposite %6 %22 %23 +%25 = OpConstant %7 1.0 +%26 = OpConstant %7 2.0 +%27 = OpConstantComposite %8 %25 %26 +%28 = OpConstant %7 3.0 +%29 = OpConstant %7 4.0 +%30 = OpConstantComposite %8 %28 %29 %31 = OpConstantComposite %9 %27 %30 -%32 = OpConstant %4 1 -%33 = OpConstantComposite %3 %32 %32 -%34 = OpConstantComposite %7 %25 %25 -%35 = OpConstant %6 1 -%36 = OpConstantComposite %5 %35 %35 +%32 = OpConstant %3 1 +%33 = OpConstantComposite %4 %32 %32 +%34 = OpConstantComposite %8 %25 %25 +%35 = OpConstant %5 1 +%36 = OpConstantComposite %6 %35 %35 %37 = OpConstantComposite %10 %25 %26 -%38 = OpConstant %4 2 +%38 = OpConstant %3 2 %39 = OpConstantComposite %12 %32 %38 -%41 = OpTypePointer Private %3 +%41 = OpTypePointer Private %4 %40 = OpVariable %41 Private %15 -%43 = OpTypePointer Private %5 +%43 = OpTypePointer Private %6 %42 = OpVariable %43 Private %18 -%45 = OpTypePointer Private %7 +%45 = OpTypePointer Private %8 %44 = OpVariable %45 Private %21 %46 = OpVariable %43 Private %24 %47 = OpVariable %43 Private %24 @@ -77,22 +77,22 @@ OpDecorate %12 ArrayStride 4 %68 = OpVariable %63 Private %37 %69 = OpVariable %63 Private %37 %72 = OpTypeFunction %2 -%74 = OpTypePointer Function %3 -%76 = OpTypePointer Function %5 -%78 = OpTypePointer Function %7 +%74 = OpTypePointer Function %4 +%76 = OpTypePointer Function %6 +%78 = OpTypePointer Function %8 %84 = OpTypePointer Function %9 %100 = OpTypePointer Function %10 %105 = OpTypePointer Function %12 -%116 = OpTypePointer Function %6 -%117 = OpConstantNull %6 -%119 = OpTypePointer Function %4 -%120 = OpConstantNull %4 -%122 = OpTypePointer Function %8 -%123 = OpConstantNull %8 -%125 = OpConstantNull %5 -%127 = OpConstantNull %5 -%129 = OpConstantNull %5 -%131 = OpConstantNull %5 +%116 = OpTypePointer Function %5 +%117 = OpConstantNull %5 +%119 = OpTypePointer Function %3 +%120 = OpConstantNull %3 +%122 = OpTypePointer Function %7 +%123 = OpConstantNull %7 +%125 = OpConstantNull %6 +%127 = OpConstantNull %6 +%129 = OpConstantNull %6 +%131 = OpConstantNull %6 %133 = OpConstantNull %9 %135 = OpConstantNull %9 %137 = OpConstantNull %9 @@ -175,68 +175,68 @@ OpFunctionEnd %121 = OpVariable %122 Function %123 OpBranch %164 %164 = OpLabel -%165 = OpLoad %6 %115 -%166 = OpCompositeConstruct %5 %165 %23 +%165 = OpLoad %5 %115 +%166 = OpCompositeConstruct %6 %165 %23 OpStore %124 %166 -%167 = OpLoad %6 %115 -%168 = OpCompositeConstruct %5 %22 %167 +%167 = OpLoad %5 %115 +%168 = OpCompositeConstruct %6 %22 %167 OpStore %126 %168 -%169 = OpLoad %6 %115 -%170 = OpCompositeConstruct %5 %169 %23 +%169 = OpLoad %5 %115 +%170 = OpCompositeConstruct %6 %169 %23 OpStore %128 %170 -%171 = OpLoad %6 %115 -%172 = OpCompositeConstruct %5 %22 %171 +%171 = OpLoad %5 %115 +%172 = OpCompositeConstruct %6 %22 %171 OpStore %130 %172 -%173 = OpLoad %8 %121 -%174 = OpCompositeConstruct %7 %173 %26 +%173 = OpLoad %7 %121 +%174 = OpCompositeConstruct %8 %173 %26 %175 = OpCompositeConstruct %9 %174 %30 OpStore %132 %175 -%176 = OpLoad %8 %121 -%177 = OpCompositeConstruct %7 %25 %176 +%176 = OpLoad %7 %121 +%177 = OpCompositeConstruct %8 %25 %176 %178 = OpCompositeConstruct %9 %177 %30 OpStore %134 %178 -%179 = OpLoad %8 %121 -%180 = OpCompositeConstruct %7 %179 %29 +%179 = OpLoad %7 %121 +%180 = OpCompositeConstruct %8 %179 %29 %181 = OpCompositeConstruct %9 %27 %180 OpStore %136 %181 -%182 = OpLoad %8 %121 -%183 = OpCompositeConstruct %7 %28 %182 +%182 = OpLoad %7 %121 +%183 = OpCompositeConstruct %8 %28 %182 %184 = OpCompositeConstruct %9 %27 %183 OpStore %138 %184 -%185 = OpLoad %8 %121 +%185 = OpLoad %7 %121 %186 = OpCompositeConstruct %10 %185 %26 OpStore %140 %186 -%187 = OpLoad %8 %121 +%187 = OpLoad %7 %121 %188 = OpCompositeConstruct %10 %25 %187 OpStore %142 %188 -%189 = OpLoad %8 %121 +%189 = OpLoad %7 %121 %190 = OpCompositeConstruct %10 %189 %26 OpStore %144 %190 -%191 = OpLoad %8 %121 +%191 = OpLoad %7 %121 %192 = OpCompositeConstruct %10 %25 %191 OpStore %146 %192 -%193 = OpLoad %4 %118 +%193 = OpLoad %3 %118 %194 = OpCompositeConstruct %12 %193 %38 OpStore %148 %194 -%195 = OpLoad %4 %118 +%195 = OpLoad %3 %118 %196 = OpCompositeConstruct %12 %32 %195 OpStore %150 %196 -%197 = OpLoad %8 %121 +%197 = OpLoad %7 %121 %198 = OpCompositeConstruct %10 %197 %26 OpStore %152 %198 -%199 = OpLoad %8 %121 +%199 = OpLoad %7 %121 %200 = OpCompositeConstruct %10 %25 %199 OpStore %154 %200 -%201 = OpLoad %8 %121 +%201 = OpLoad %7 %121 %202 = OpCompositeConstruct %10 %201 %26 OpStore %156 %202 -%203 = OpLoad %8 %121 +%203 = OpLoad %7 %121 %204 = OpCompositeConstruct %10 %25 %203 OpStore %158 %204 -%205 = OpLoad %4 %118 +%205 = OpLoad %3 %118 %206 = OpCompositeConstruct %12 %205 %38 OpStore %160 %206 -%207 = OpLoad %4 %118 +%207 = OpLoad %3 %118 %208 = OpCompositeConstruct %12 %32 %207 OpStore %162 %208 OpReturn diff --git a/naga/tests/out/spv/access.spvasm b/naga/tests/out/spv/access.spvasm index 3446878c9a..ab0112870f 100644 --- a/naga/tests/out/spv/access.spvasm +++ b/naga/tests/out/spv/access.spvasm @@ -108,10 +108,10 @@ OpDecorate %272 Location 0 %5 = OpTypeInt 32 1 %6 = OpTypeStruct %3 %4 %5 %7 = OpTypeStruct %5 -%10 = OpTypeFloat 32 -%9 = OpTypeVector %10 3 -%8 = OpTypeMatrix %9 4 -%12 = OpTypeVector %10 2 +%8 = OpTypeFloat 32 +%10 = OpTypeVector %8 3 +%9 = OpTypeMatrix %10 4 +%12 = OpTypeVector %8 2 %11 = OpTypeMatrix %12 2 %14 = OpConstant %3 2 %13 = OpTypeArray %11 %14 @@ -120,18 +120,18 @@ OpDecorate %272 Location 0 %17 = OpTypeVector %3 2 %18 = OpTypeArray %17 %14 %19 = OpTypeRuntimeArray %7 -%20 = OpTypeStruct %8 %13 %5 %15 %18 %19 +%20 = OpTypeStruct %9 %13 %5 %15 %18 %19 %21 = OpTypeMatrix %12 3 %22 = OpTypeStruct %21 %23 = OpTypeVector %5 2 %24 = OpTypeMatrix %12 4 %25 = OpTypeArray %24 %14 %26 = OpTypeStruct %25 -%27 = OpTypePointer Function %10 -%28 = OpTypeArray %10 %16 +%27 = OpTypePointer Function %8 +%28 = OpTypeArray %8 %16 %30 = OpConstant %3 5 %29 = OpTypeArray %28 %30 -%31 = OpTypeVector %10 4 +%31 = OpTypeVector %8 4 %32 = OpTypeArray %5 %30 %33 = OpTypePointer Function %3 %34 = OpTypeArray %31 %14 @@ -156,44 +156,44 @@ OpDecorate %272 Location 0 %55 = OpTypeFunction %2 %56 = OpTypePointer Uniform %22 %58 = OpConstant %5 1 -%59 = OpConstant %10 1.0 +%59 = OpConstant %8 1.0 %60 = OpConstantComposite %12 %59 %59 -%61 = OpConstant %10 2.0 +%61 = OpConstant %8 2.0 %62 = OpConstantComposite %12 %61 %61 -%63 = OpConstant %10 3.0 +%63 = OpConstant %8 3.0 %64 = OpConstantComposite %12 %63 %63 %65 = OpConstantComposite %21 %60 %62 %64 %66 = OpConstantComposite %22 %65 -%67 = OpConstant %10 6.0 +%67 = OpConstant %8 6.0 %68 = OpConstantComposite %12 %67 %67 -%69 = OpConstant %10 5.0 +%69 = OpConstant %8 5.0 %70 = OpConstantComposite %12 %69 %69 -%71 = OpConstant %10 4.0 +%71 = OpConstant %8 4.0 %72 = OpConstantComposite %12 %71 %71 %73 = OpConstantComposite %21 %68 %70 %72 -%74 = OpConstant %10 9.0 +%74 = OpConstant %8 9.0 %75 = OpConstantComposite %12 %74 %74 -%76 = OpConstant %10 90.0 +%76 = OpConstant %8 90.0 %77 = OpConstantComposite %12 %76 %76 -%78 = OpConstant %10 10.0 -%79 = OpConstant %10 20.0 -%80 = OpConstant %10 30.0 -%81 = OpConstant %10 40.0 +%78 = OpConstant %8 10.0 +%79 = OpConstant %8 20.0 +%80 = OpConstant %8 30.0 +%81 = OpConstant %8 40.0 %83 = OpTypePointer Function %5 %85 = OpTypePointer Function %22 %89 = OpTypePointer Uniform %21 %92 = OpTypePointer Uniform %12 -%98 = OpTypePointer Uniform %10 +%98 = OpTypePointer Uniform %8 %99 = OpConstant %3 1 %114 = OpTypePointer Function %21 %116 = OpTypePointer Function %12 -%120 = OpTypePointer Function %10 +%120 = OpTypePointer Function %8 %131 = OpTypePointer Uniform %26 %133 = OpConstantNull %25 %134 = OpConstantComposite %26 %133 -%135 = OpConstant %10 8.0 +%135 = OpConstant %8 8.0 %136 = OpConstantComposite %12 %135 %135 -%137 = OpConstant %10 7.0 +%137 = OpConstant %8 7.0 %138 = OpConstantComposite %12 %137 %137 %139 = OpConstantComposite %24 %136 %138 %68 %70 %142 = OpTypePointer Function %26 @@ -201,8 +201,8 @@ OpDecorate %272 Location 0 %149 = OpTypePointer Uniform %24 %171 = OpTypePointer Function %25 %173 = OpTypePointer Function %24 -%189 = OpTypeFunction %10 %27 -%195 = OpTypeFunction %10 %29 +%189 = OpTypeFunction %8 %27 +%195 = OpTypeFunction %8 %29 %202 = OpTypeFunction %2 %33 %203 = OpConstant %3 42 %208 = OpTypeFunction %2 %35 @@ -214,7 +214,7 @@ OpDecorate %272 Location 0 %218 = OpTypePointer Output %31 %217 = OpVariable %218 Output %221 = OpTypePointer StorageBuffer %23 -%224 = OpConstant %10 0.0 +%224 = OpConstant %8 0.0 %225 = OpConstant %3 3 %226 = OpConstant %5 3 %227 = OpConstant %5 4 @@ -223,21 +223,21 @@ OpDecorate %272 Location 0 %230 = OpConstantNull %29 %233 = OpTypePointer Function %32 %234 = OpConstantNull %32 -%239 = OpTypePointer StorageBuffer %8 +%239 = OpTypePointer StorageBuffer %9 %242 = OpTypePointer StorageBuffer %18 %243 = OpConstant %3 4 -%246 = OpTypePointer StorageBuffer %9 -%247 = OpTypePointer StorageBuffer %10 +%246 = OpTypePointer StorageBuffer %10 +%247 = OpTypePointer StorageBuffer %8 %250 = OpTypePointer StorageBuffer %19 %253 = OpTypePointer StorageBuffer %7 %254 = OpTypePointer StorageBuffer %5 %266 = OpTypeVector %5 4 %272 = OpVariable %218 Output -%275 = OpConstantComposite %9 %224 %224 %224 -%276 = OpConstantComposite %9 %59 %59 %59 -%277 = OpConstantComposite %9 %61 %61 %61 -%278 = OpConstantComposite %9 %63 %63 %63 -%279 = OpConstantComposite %8 %275 %276 %277 %278 +%275 = OpConstantComposite %10 %224 %224 %224 +%276 = OpConstantComposite %10 %59 %59 %59 +%277 = OpConstantComposite %10 %61 %61 %61 +%278 = OpConstantComposite %10 %63 %63 %63 +%279 = OpConstantComposite %9 %275 %276 %277 %278 %280 = OpConstantComposite %17 %36 %36 %281 = OpConstantComposite %17 %99 %99 %282 = OpConstantComposite %18 %280 %281 @@ -265,17 +265,17 @@ OpStore %82 %88 %96 = OpAccessChain %92 %57 %36 %95 %97 = OpLoad %12 %96 %100 = OpAccessChain %98 %57 %36 %36 %99 -%101 = OpLoad %10 %100 +%101 = OpLoad %8 %100 %102 = OpLoad %5 %82 %103 = OpAccessChain %98 %57 %36 %36 %102 -%104 = OpLoad %10 %103 +%104 = OpLoad %8 %103 %105 = OpLoad %5 %82 %106 = OpAccessChain %98 %57 %36 %105 %99 -%107 = OpLoad %10 %106 +%107 = OpLoad %8 %106 %108 = OpLoad %5 %82 %109 = OpLoad %5 %82 %110 = OpAccessChain %98 %57 %36 %108 %109 -%111 = OpLoad %10 %110 +%111 = OpLoad %8 %110 %112 = OpLoad %5 %82 %113 = OpIAdd %5 %112 %58 OpStore %82 %113 @@ -320,17 +320,17 @@ OpStore %140 %145 %155 = OpAccessChain %92 %132 %36 %36 %154 %156 = OpLoad %12 %155 %157 = OpAccessChain %98 %132 %36 %36 %36 %99 -%158 = OpLoad %10 %157 +%158 = OpLoad %8 %157 %159 = OpLoad %5 %140 %160 = OpAccessChain %98 %132 %36 %36 %36 %159 -%161 = OpLoad %10 %160 +%161 = OpLoad %8 %160 %162 = OpLoad %5 %140 %163 = OpAccessChain %98 %132 %36 %36 %162 %99 -%164 = OpLoad %10 %163 +%164 = OpLoad %8 %163 %165 = OpLoad %5 %140 %166 = OpLoad %5 %140 %167 = OpAccessChain %98 %132 %36 %36 %165 %166 -%168 = OpLoad %10 %167 +%168 = OpLoad %8 %167 %169 = OpLoad %5 %140 %170 = OpIAdd %5 %169 %58 OpStore %140 %170 @@ -357,21 +357,21 @@ OpStore %182 %80 OpStore %185 %81 OpReturn OpFunctionEnd -%188 = OpFunction %10 None %189 +%188 = OpFunction %8 None %189 %187 = OpFunctionParameter %27 %186 = OpLabel OpBranch %190 %190 = OpLabel -%191 = OpLoad %10 %187 +%191 = OpLoad %8 %187 OpReturnValue %191 OpFunctionEnd -%194 = OpFunction %10 None %195 +%194 = OpFunction %8 None %195 %193 = OpFunctionParameter %29 %192 = OpLabel OpBranch %196 %196 = OpLabel %197 = OpCompositeExtract %28 %193 4 -%198 = OpCompositeExtract %10 %197 9 +%198 = OpCompositeExtract %8 %197 9 OpReturnValue %198 OpFunctionEnd %201 = OpFunction %2 None %202 @@ -400,22 +400,22 @@ OpFunctionEnd %223 = OpAccessChain %131 %50 %36 OpBranch %235 %235 = OpLabel -%236 = OpLoad %10 %231 +%236 = OpLoad %8 %231 OpStore %231 %59 %237 = OpFunctionCall %2 %54 %238 = OpFunctionCall %2 %130 %240 = OpAccessChain %239 %42 %36 -%241 = OpLoad %8 %240 +%241 = OpLoad %9 %240 %244 = OpAccessChain %242 %42 %243 %245 = OpLoad %18 %244 %248 = OpAccessChain %247 %42 %36 %225 %36 -%249 = OpLoad %10 %248 +%249 = OpLoad %8 %248 %251 = OpArrayLength %3 %42 5 %252 = OpISub %3 %251 %14 %255 = OpAccessChain %254 %42 %30 %252 %36 %256 = OpLoad %5 %255 %257 = OpLoad %23 %222 -%258 = OpFunctionCall %10 %188 %231 +%258 = OpFunctionCall %8 %188 %231 %259 = OpConvertFToS %5 %249 %260 = OpCompositeConstruct %32 %256 %259 %226 %227 %228 OpStore %232 %260 @@ -424,10 +424,10 @@ OpStore %232 %260 OpStore %262 %229 %263 = OpAccessChain %83 %232 %216 %264 = OpLoad %5 %263 -%265 = OpFunctionCall %10 %194 %230 +%265 = OpFunctionCall %8 %194 %230 %267 = OpCompositeConstruct %266 %264 %264 %264 %264 %268 = OpConvertSToF %31 %267 -%269 = OpMatrixTimesVector %9 %241 %268 +%269 = OpMatrixTimesVector %10 %241 %268 %270 = OpCompositeConstruct %31 %269 %61 OpStore %217 %270 OpReturn diff --git a/naga/tests/out/spv/boids.spvasm b/naga/tests/out/spv/boids.spvasm index 0e48e0f559..4fc1cbf49f 100644 --- a/naga/tests/out/spv/boids.spvasm +++ b/naga/tests/out/spv/boids.spvasm @@ -61,10 +61,10 @@ OpDecorate %18 Binding 2 OpDecorate %20 BuiltIn GlobalInvocationId %2 = OpTypeVoid %3 = OpTypeInt 32 0 -%5 = OpTypeFloat 32 -%4 = OpTypeVector %5 2 -%6 = OpTypeStruct %4 %4 -%7 = OpTypeStruct %5 %5 %5 %5 %5 %5 %5 +%4 = OpTypeFloat 32 +%5 = OpTypeVector %4 2 +%6 = OpTypeStruct %5 %5 +%7 = OpTypeStruct %4 %4 %4 %4 %4 %4 %4 %8 = OpTypeRuntimeArray %6 %9 = OpTypeStruct %8 %10 = OpTypeVector %3 3 @@ -81,32 +81,32 @@ OpDecorate %20 BuiltIn GlobalInvocationId %24 = OpTypeFunction %2 %25 = OpTypePointer Uniform %7 %26 = OpConstant %3 0 -%28 = OpConstant %5 0.0 -%29 = OpConstantComposite %4 %28 %28 +%28 = OpConstant %4 0.0 +%29 = OpConstantComposite %5 %28 %28 %30 = OpConstant %11 0 %31 = OpConstant %11 1 %32 = OpConstant %3 1 -%33 = OpConstant %5 0.1 -%34 = OpConstant %5 -1.0 -%35 = OpConstant %5 1.0 -%37 = OpTypePointer Function %4 -%38 = OpConstantNull %4 -%40 = OpConstantNull %4 +%33 = OpConstant %4 0.1 +%34 = OpConstant %4 -1.0 +%35 = OpConstant %4 1.0 +%37 = OpTypePointer Function %5 +%38 = OpConstantNull %5 +%40 = OpConstantNull %5 %45 = OpTypePointer Function %11 -%48 = OpConstantNull %4 -%50 = OpConstantNull %4 +%48 = OpConstantNull %5 +%50 = OpConstantNull %5 %52 = OpTypePointer Function %3 %55 = OpTypeBool %59 = OpTypePointer StorageBuffer %8 %60 = OpTypePointer StorageBuffer %6 -%61 = OpTypePointer StorageBuffer %4 -%87 = OpTypePointer Uniform %5 +%61 = OpTypePointer StorageBuffer %5 +%87 = OpTypePointer Uniform %4 %101 = OpConstant %3 2 %115 = OpConstant %3 3 %150 = OpConstant %3 4 %156 = OpConstant %3 5 %162 = OpConstant %3 6 -%179 = OpTypePointer Function %5 +%179 = OpTypePointer Function %4 %23 = OpFunction %2 None %24 %19 = OpLabel %51 = OpVariable %52 Function %26 @@ -131,10 +131,10 @@ OpBranchConditional %56 %58 %57 OpReturn %57 = OpLabel %62 = OpAccessChain %61 %16 %26 %54 %26 -%63 = OpLoad %4 %62 +%63 = OpLoad %5 %62 OpStore %36 %63 %64 = OpAccessChain %61 %16 %26 %54 %32 -%65 = OpLoad %4 %64 +%65 = OpLoad %5 %64 OpStore %39 %65 OpBranch %66 %66 = OpLabel @@ -157,59 +157,59 @@ OpBranch %69 %76 = OpLabel %78 = OpLoad %3 %51 %79 = OpAccessChain %61 %16 %26 %78 %26 -%80 = OpLoad %4 %79 +%80 = OpLoad %5 %79 OpStore %47 %80 %81 = OpLoad %3 %51 %82 = OpAccessChain %61 %16 %26 %81 %32 -%83 = OpLoad %4 %82 +%83 = OpLoad %5 %82 OpStore %49 %83 -%84 = OpLoad %4 %47 -%85 = OpLoad %4 %36 -%86 = OpExtInst %5 %1 Distance %84 %85 +%84 = OpLoad %5 %47 +%85 = OpLoad %5 %36 +%86 = OpExtInst %4 %1 Distance %84 %85 %88 = OpAccessChain %87 %27 %32 -%89 = OpLoad %5 %88 +%89 = OpLoad %4 %88 %90 = OpFOrdLessThan %55 %86 %89 OpSelectionMerge %91 None OpBranchConditional %90 %92 %91 %92 = OpLabel -%93 = OpLoad %4 %41 -%94 = OpLoad %4 %47 -%95 = OpFAdd %4 %93 %94 +%93 = OpLoad %5 %41 +%94 = OpLoad %5 %47 +%95 = OpFAdd %5 %93 %94 OpStore %41 %95 %96 = OpLoad %11 %44 %97 = OpIAdd %11 %96 %31 OpStore %44 %97 OpBranch %91 %91 = OpLabel -%98 = OpLoad %4 %47 -%99 = OpLoad %4 %36 -%100 = OpExtInst %5 %1 Distance %98 %99 +%98 = OpLoad %5 %47 +%99 = OpLoad %5 %36 +%100 = OpExtInst %4 %1 Distance %98 %99 %102 = OpAccessChain %87 %27 %101 -%103 = OpLoad %5 %102 +%103 = OpLoad %4 %102 %104 = OpFOrdLessThan %55 %100 %103 OpSelectionMerge %105 None OpBranchConditional %104 %106 %105 %106 = OpLabel -%107 = OpLoad %4 %43 -%108 = OpLoad %4 %47 -%109 = OpLoad %4 %36 -%110 = OpFSub %4 %108 %109 -%111 = OpFSub %4 %107 %110 +%107 = OpLoad %5 %43 +%108 = OpLoad %5 %47 +%109 = OpLoad %5 %36 +%110 = OpFSub %5 %108 %109 +%111 = OpFSub %5 %107 %110 OpStore %43 %111 OpBranch %105 %105 = OpLabel -%112 = OpLoad %4 %47 -%113 = OpLoad %4 %36 -%114 = OpExtInst %5 %1 Distance %112 %113 +%112 = OpLoad %5 %47 +%113 = OpLoad %5 %36 +%114 = OpExtInst %4 %1 Distance %112 %113 %116 = OpAccessChain %87 %27 %115 -%117 = OpLoad %5 %116 +%117 = OpLoad %4 %116 %118 = OpFOrdLessThan %55 %114 %117 OpSelectionMerge %119 None OpBranchConditional %118 %120 %119 %120 = OpLabel -%121 = OpLoad %4 %42 -%122 = OpLoad %4 %49 -%123 = OpFAdd %4 %121 %122 +%121 = OpLoad %5 %42 +%122 = OpLoad %5 %49 +%123 = OpFAdd %5 %121 %122 OpStore %42 %123 %124 = OpLoad %11 %46 %125 = OpIAdd %11 %124 %31 @@ -228,13 +228,13 @@ OpBranch %66 OpSelectionMerge %130 None OpBranchConditional %129 %131 %130 %131 = OpLabel -%132 = OpLoad %4 %41 +%132 = OpLoad %5 %41 %133 = OpLoad %11 %44 -%134 = OpConvertSToF %5 %133 -%135 = OpCompositeConstruct %4 %134 %134 -%136 = OpFDiv %4 %132 %135 -%137 = OpLoad %4 %36 -%138 = OpFSub %4 %136 %137 +%134 = OpConvertSToF %4 %133 +%135 = OpCompositeConstruct %5 %134 %134 +%136 = OpFDiv %5 %132 %135 +%137 = OpLoad %5 %36 +%138 = OpFSub %5 %136 %137 OpStore %41 %138 OpBranch %130 %130 = OpLabel @@ -243,47 +243,47 @@ OpBranch %130 OpSelectionMerge %141 None OpBranchConditional %140 %142 %141 %142 = OpLabel -%143 = OpLoad %4 %42 +%143 = OpLoad %5 %42 %144 = OpLoad %11 %46 -%145 = OpConvertSToF %5 %144 -%146 = OpCompositeConstruct %4 %145 %145 -%147 = OpFDiv %4 %143 %146 +%145 = OpConvertSToF %4 %144 +%146 = OpCompositeConstruct %5 %145 %145 +%147 = OpFDiv %5 %143 %146 OpStore %42 %147 OpBranch %141 %141 = OpLabel -%148 = OpLoad %4 %39 -%149 = OpLoad %4 %41 +%148 = OpLoad %5 %39 +%149 = OpLoad %5 %41 %151 = OpAccessChain %87 %27 %150 -%152 = OpLoad %5 %151 -%153 = OpVectorTimesScalar %4 %149 %152 -%154 = OpFAdd %4 %148 %153 -%155 = OpLoad %4 %43 +%152 = OpLoad %4 %151 +%153 = OpVectorTimesScalar %5 %149 %152 +%154 = OpFAdd %5 %148 %153 +%155 = OpLoad %5 %43 %157 = OpAccessChain %87 %27 %156 -%158 = OpLoad %5 %157 -%159 = OpVectorTimesScalar %4 %155 %158 -%160 = OpFAdd %4 %154 %159 -%161 = OpLoad %4 %42 +%158 = OpLoad %4 %157 +%159 = OpVectorTimesScalar %5 %155 %158 +%160 = OpFAdd %5 %154 %159 +%161 = OpLoad %5 %42 %163 = OpAccessChain %87 %27 %162 -%164 = OpLoad %5 %163 -%165 = OpVectorTimesScalar %4 %161 %164 -%166 = OpFAdd %4 %160 %165 +%164 = OpLoad %4 %163 +%165 = OpVectorTimesScalar %5 %161 %164 +%166 = OpFAdd %5 %160 %165 OpStore %39 %166 -%167 = OpLoad %4 %39 -%168 = OpExtInst %4 %1 Normalize %167 -%169 = OpLoad %4 %39 -%170 = OpExtInst %5 %1 Length %169 -%171 = OpExtInst %5 %1 FClamp %170 %28 %33 -%172 = OpVectorTimesScalar %4 %168 %171 +%167 = OpLoad %5 %39 +%168 = OpExtInst %5 %1 Normalize %167 +%169 = OpLoad %5 %39 +%170 = OpExtInst %4 %1 Length %169 +%171 = OpExtInst %4 %1 FClamp %170 %28 %33 +%172 = OpVectorTimesScalar %5 %168 %171 OpStore %39 %172 -%173 = OpLoad %4 %36 -%174 = OpLoad %4 %39 +%173 = OpLoad %5 %36 +%174 = OpLoad %5 %39 %175 = OpAccessChain %87 %27 %26 -%176 = OpLoad %5 %175 -%177 = OpVectorTimesScalar %4 %174 %176 -%178 = OpFAdd %4 %173 %177 +%176 = OpLoad %4 %175 +%177 = OpVectorTimesScalar %5 %174 %176 +%178 = OpFAdd %5 %173 %177 OpStore %36 %178 %180 = OpAccessChain %179 %36 %26 -%181 = OpLoad %5 %180 +%181 = OpLoad %4 %180 %182 = OpFOrdLessThan %55 %181 %34 OpSelectionMerge %183 None OpBranchConditional %182 %184 %183 @@ -293,7 +293,7 @@ OpStore %185 %35 OpBranch %183 %183 = OpLabel %186 = OpAccessChain %179 %36 %26 -%187 = OpLoad %5 %186 +%187 = OpLoad %4 %186 %188 = OpFOrdGreaterThan %55 %187 %35 OpSelectionMerge %189 None OpBranchConditional %188 %190 %189 @@ -303,7 +303,7 @@ OpStore %191 %34 OpBranch %189 %189 = OpLabel %192 = OpAccessChain %179 %36 %32 -%193 = OpLoad %5 %192 +%193 = OpLoad %4 %192 %194 = OpFOrdLessThan %55 %193 %34 OpSelectionMerge %195 None OpBranchConditional %194 %196 %195 @@ -313,7 +313,7 @@ OpStore %197 %35 OpBranch %195 %195 = OpLabel %198 = OpAccessChain %179 %36 %32 -%199 = OpLoad %5 %198 +%199 = OpLoad %4 %198 %200 = OpFOrdGreaterThan %55 %199 %35 OpSelectionMerge %201 None OpBranchConditional %200 %202 %201 @@ -322,10 +322,10 @@ OpBranchConditional %200 %202 %201 OpStore %203 %34 OpBranch %201 %201 = OpLabel -%204 = OpLoad %4 %36 +%204 = OpLoad %5 %36 %205 = OpAccessChain %61 %18 %26 %54 %26 OpStore %205 %204 -%206 = OpLoad %4 %39 +%206 = OpLoad %5 %39 %207 = OpAccessChain %61 %18 %26 %54 %32 OpStore %207 %206 OpReturn diff --git a/naga/tests/out/spv/const-exprs.spvasm b/naga/tests/out/spv/const-exprs.spvasm index 22fef53749..afd9fe8499 100644 --- a/naga/tests/out/spv/const-exprs.spvasm +++ b/naga/tests/out/spv/const-exprs.spvasm @@ -11,25 +11,25 @@ OpExecutionMode %100 LocalSize 2 3 1 %3 = OpTypeInt 32 0 %4 = OpTypeInt 32 1 %5 = OpTypeVector %4 4 -%7 = OpTypeFloat 32 -%6 = OpTypeVector %7 4 -%8 = OpTypeVector %7 2 +%6 = OpTypeFloat 32 +%7 = OpTypeVector %6 4 +%8 = OpTypeVector %6 2 %10 = OpTypeBool %9 = OpTypeVector %10 2 %11 = OpConstant %3 2 %12 = OpConstant %4 3 %13 = OpConstant %4 4 %14 = OpConstant %4 8 -%15 = OpConstant %7 3.141 -%16 = OpConstant %7 6.282 -%17 = OpConstant %7 0.44444445 -%18 = OpConstant %7 0.0 -%19 = OpConstantComposite %6 %17 %18 %18 %18 +%15 = OpConstant %6 3.141 +%16 = OpConstant %6 6.282 +%17 = OpConstant %6 0.44444445 +%18 = OpConstant %6 0.0 +%19 = OpConstantComposite %7 %17 %18 %18 %18 %20 = OpConstant %4 0 %21 = OpConstant %4 1 %22 = OpConstant %4 2 -%23 = OpConstant %7 4.0 -%24 = OpConstant %7 5.0 +%23 = OpConstant %6 4.0 +%24 = OpConstant %6 5.0 %25 = OpConstantComposite %8 %23 %24 %26 = OpConstantTrue %10 %27 = OpConstantFalse %10 @@ -46,10 +46,10 @@ OpExecutionMode %100 LocalSize 2 3 1 %57 = OpConstantNull %5 %68 = OpConstant %4 -4 %69 = OpConstantComposite %5 %68 %68 %68 %68 -%78 = OpConstant %7 1.0 -%79 = OpConstant %7 2.0 -%80 = OpConstantComposite %6 %79 %78 %78 %78 -%82 = OpTypePointer Function %6 +%78 = OpConstant %6 1.0 +%79 = OpConstant %6 2.0 +%80 = OpConstantComposite %7 %79 %78 %78 %78 +%82 = OpTypePointer Function %7 %87 = OpTypeFunction %3 %4 %88 = OpConstant %3 10 %89 = OpConstant %3 20 diff --git a/naga/tests/out/spv/constructors.spvasm b/naga/tests/out/spv/constructors.spvasm index 615a31dc1b..ec83d04822 100644 --- a/naga/tests/out/spv/constructors.spvasm +++ b/naga/tests/out/spv/constructors.spvasm @@ -13,12 +13,12 @@ OpDecorate %10 ArrayStride 16 OpDecorate %15 ArrayStride 32 OpDecorate %17 ArrayStride 4 %2 = OpTypeVoid -%4 = OpTypeFloat 32 -%3 = OpTypeVector %4 4 +%3 = OpTypeFloat 32 +%4 = OpTypeVector %3 4 %5 = OpTypeInt 32 1 -%6 = OpTypeStruct %3 %5 -%7 = OpTypeVector %4 3 -%9 = OpTypeVector %4 2 +%6 = OpTypeStruct %4 %5 +%7 = OpTypeVector %3 3 +%9 = OpTypeVector %3 2 %8 = OpTypeMatrix %9 2 %12 = OpTypeInt 32 0 %11 = OpConstant %12 1 @@ -29,13 +29,13 @@ OpDecorate %17 ArrayStride 4 %15 = OpTypeArray %6 %16 %18 = OpConstant %12 4 %17 = OpTypeArray %5 %18 -%19 = OpTypeMatrix %3 4 +%19 = OpTypeMatrix %4 4 %20 = OpTypeMatrix %7 2 -%21 = OpConstant %4 0.0 -%22 = OpConstant %4 1.0 -%23 = OpConstant %4 2.0 +%21 = OpConstant %3 0.0 +%22 = OpConstant %3 1.0 +%23 = OpConstant %3 2.0 %24 = OpConstantComposite %7 %21 %22 %23 -%25 = OpConstant %4 3.0 +%25 = OpConstant %3 3.0 %26 = OpConstantComposite %9 %21 %22 %27 = OpConstantComposite %9 %23 %25 %28 = OpConstantComposite %8 %26 %27 @@ -43,7 +43,7 @@ OpDecorate %17 ArrayStride 4 %30 = OpConstantNull %13 %31 = OpConstantNull %5 %32 = OpConstantNull %12 -%33 = OpConstantNull %4 +%33 = OpConstantNull %3 %34 = OpConstantNull %14 %35 = OpConstantNull %8 %36 = OpConstantNull %15 @@ -54,14 +54,14 @@ OpDecorate %17 ArrayStride 4 %41 = OpConstant %5 3 %42 = OpConstantComposite %17 %38 %39 %40 %41 %45 = OpTypeFunction %2 -%46 = OpConstantComposite %3 %22 %22 %22 %22 +%46 = OpConstantComposite %4 %22 %22 %22 %22 %47 = OpConstantComposite %6 %46 %39 %48 = OpConstantComposite %9 %22 %21 %49 = OpConstantComposite %8 %48 %26 -%50 = OpConstantComposite %3 %22 %21 %21 %21 -%51 = OpConstantComposite %3 %21 %22 %21 %21 -%52 = OpConstantComposite %3 %21 %21 %22 %21 -%53 = OpConstantComposite %3 %21 %21 %21 %22 +%50 = OpConstantComposite %4 %22 %21 %21 %21 +%51 = OpConstantComposite %4 %21 %22 %21 %21 +%52 = OpConstantComposite %4 %21 %21 %22 %21 +%53 = OpConstantComposite %4 %21 %21 %21 %22 %54 = OpConstantComposite %19 %50 %51 %52 %53 %55 = OpConstant %12 0 %56 = OpConstantComposite %14 %55 %55 diff --git a/naga/tests/out/spv/debug-symbol-large-source.spvasm b/naga/tests/out/spv/debug-symbol-large-source.spvasm index 47a6fb77aa..15e95cf2a5 100644 --- a/naga/tests/out/spv/debug-symbol-large-source.spvasm +++ b/naga/tests/out/spv/debug-symbol-large-source.spvasm @@ -7653,17 +7653,17 @@ OpDecorate %578 Location 0 OpDecorate %580 Location 1 OpDecorate %582 Location 0 %2 = OpTypeVoid -%5 = OpTypeFloat 32 -%4 = OpTypeVector %5 3 -%6 = OpTypeVector %5 2 -%7 = OpTypeVector %5 4 +%4 = OpTypeFloat 32 +%5 = OpTypeVector %4 3 +%6 = OpTypeVector %4 2 +%7 = OpTypeVector %4 4 %8 = OpTypeInt 32 0 %9 = OpTypeMatrix %6 2 %10 = OpTypeVector %8 2 %12 = OpTypeInt 32 1 %11 = OpTypeVector %12 2 %13 = OpTypeStruct %10 %11 %6 -%14 = OpTypeStruct %4 %4 +%14 = OpTypeStruct %5 %5 %15 = OpTypeRuntimeArray %14 %16 = OpTypeStruct %15 %17 = OpTypeRuntimeArray %8 @@ -7674,9 +7674,9 @@ OpDecorate %582 Location 0 %22 = OpTypeStruct %8 %8 %23 = OpTypeMatrix %7 4 %24 = OpTypeStruct %7 %23 -%25 = OpTypeStruct %4 %4 -%26 = OpTypeStruct %7 %4 %4 -%27 = OpTypeImage %5 2D 0 0 0 1 Unknown +%25 = OpTypeStruct %5 %5 +%26 = OpTypeStruct %7 %5 %5 +%27 = OpTypeImage %4 2D 0 0 0 1 Unknown %28 = OpTypeSampler %30 = OpTypeStruct %13 %31 = OpTypePointer Uniform %30 @@ -7700,67 +7700,67 @@ OpDecorate %582 Location 0 %47 = OpVariable %48 UniformConstant %49 = OpVariable %46 UniformConstant %50 = OpVariable %48 UniformConstant -%54 = OpTypeFunction %4 %4 -%55 = OpConstant %5 34.0 -%56 = OpConstant %5 1.0 -%57 = OpConstantComposite %4 %56 %56 %56 -%58 = OpConstant %5 289.0 -%59 = OpConstantComposite %4 %58 %58 %58 -%68 = OpTypeFunction %5 %6 -%69 = OpConstant %5 0.21132487 -%70 = OpConstant %5 0.36602542 -%71 = OpConstant %5 -0.57735026 -%72 = OpConstant %5 0.024390243 +%54 = OpTypeFunction %5 %5 +%55 = OpConstant %4 34.0 +%56 = OpConstant %4 1.0 +%57 = OpConstantComposite %5 %56 %56 %56 +%58 = OpConstant %4 289.0 +%59 = OpConstantComposite %5 %58 %58 %58 +%68 = OpTypeFunction %4 %6 +%69 = OpConstant %4 0.21132487 +%70 = OpConstant %4 0.36602542 +%71 = OpConstant %4 -0.57735026 +%72 = OpConstant %4 0.024390243 %73 = OpConstantComposite %7 %69 %70 %71 %72 -%74 = OpConstant %5 0.0 +%74 = OpConstant %4 0.0 %75 = OpConstantComposite %6 %56 %74 %76 = OpConstantComposite %6 %74 %56 %77 = OpConstantComposite %6 %58 %58 -%78 = OpConstant %5 0.5 -%79 = OpConstantComposite %4 %78 %78 %78 -%80 = OpConstantComposite %4 %74 %74 %74 -%81 = OpConstant %5 2.0 -%82 = OpConstant %5 0.85373473 -%83 = OpConstant %5 1.7928429 -%84 = OpConstantComposite %4 %83 %83 %83 -%85 = OpConstant %5 130.0 +%78 = OpConstant %4 0.5 +%79 = OpConstantComposite %5 %78 %78 %78 +%80 = OpConstantComposite %5 %74 %74 %74 +%81 = OpConstant %4 2.0 +%82 = OpConstant %4 0.85373473 +%83 = OpConstant %4 1.7928429 +%84 = OpConstantComposite %5 %83 %83 %83 +%85 = OpConstant %4 130.0 %87 = OpTypePointer Function %6 %88 = OpConstantNull %6 %90 = OpConstantNull %6 %92 = OpTypePointer Function %7 %93 = OpConstantNull %7 -%95 = OpTypePointer Function %4 -%96 = OpConstantNull %4 +%95 = OpTypePointer Function %5 +%96 = OpConstantNull %5 %112 = OpTypeBool %115 = OpTypeVector %112 2 -%125 = OpTypePointer Function %5 +%125 = OpTypePointer Function %4 %126 = OpConstant %8 1 %135 = OpConstant %8 0 %205 = OpConstant %8 5 -%206 = OpConstant %5 0.01 -%207 = OpConstant %5 100.0 +%206 = OpConstant %4 0.01 +%207 = OpConstant %4 100.0 %208 = OpConstantComposite %6 %207 %207 -%209 = OpConstant %5 0.87758255 -%210 = OpConstant %5 0.47942555 +%209 = OpConstant %4 0.87758255 +%210 = OpConstant %4 0.47942555 %211 = OpConstantComposite %6 %209 %210 %213 = OpConstantNull %6 -%215 = OpTypePointer Function %5 +%215 = OpTypePointer Function %4 %218 = OpTypePointer Function %8 -%258 = OpTypeFunction %4 %6 %6 +%258 = OpTypeFunction %5 %6 %6 %271 = OpTypeFunction %14 %6 %6 -%272 = OpConstant %5 0.1 +%272 = OpConstant %4 0.1 %273 = OpConstantComposite %6 %272 %74 %274 = OpConstantComposite %6 %74 %272 -%275 = OpConstant %5 -0.1 +%275 = OpConstant %4 -0.1 %276 = OpConstantComposite %6 %275 %74 %277 = OpConstantComposite %6 %74 %275 %304 = OpTypeFunction %6 %8 %10 %11 -%321 = OpTypeFunction %4 %6 -%322 = OpConstant %5 23.0 -%323 = OpConstant %5 32.0 +%321 = OpTypeFunction %5 %6 +%322 = OpConstant %4 23.0 +%323 = OpConstant %4 32.0 %324 = OpConstantComposite %6 %322 %323 -%325 = OpConstant %5 -43.0 -%326 = OpConstant %5 3.0 +%325 = OpConstant %4 -43.0 +%326 = OpConstant %4 3.0 %327 = OpConstantComposite %6 %325 %326 %343 = OpTypePointer Input %19 %342 = OpVariable %343 Input @@ -7787,7 +7787,7 @@ OpDecorate %582 Location 0 %414 = OpTypePointer Output %6 %413 = OpVariable %414 Output %416 = OpTypePointer Uniform %20 -%418 = OpConstant %5 -1.0 +%418 = OpConstant %4 -1.0 %419 = OpConstantComposite %6 %418 %418 %434 = OpTypePointer Uniform %8 %455 = OpVariable %407 Input @@ -7797,12 +7797,12 @@ OpDecorate %582 Location 0 %460 = OpVariable %461 Input %463 = OpVariable %410 Output %464 = OpVariable %410 Output -%467 = OpConstant %5 6.0 -%550 = OpTypePointer Input %4 +%467 = OpConstant %4 6.0 +%550 = OpTypePointer Input %5 %549 = OpVariable %550 Input %552 = OpVariable %550 Input %554 = OpVariable %412 Output -%556 = OpTypePointer Output %4 +%556 = OpTypePointer Output %5 %555 = OpVariable %556 Output %557 = OpVariable %556 Output %559 = OpTypePointer Uniform %24 @@ -7812,30 +7812,30 @@ OpDecorate %582 Location 0 %580 = OpVariable %550 Input %582 = OpVariable %412 Output %585 = OpTypePointer Uniform %25 -%587 = OpConstantComposite %4 %272 %272 %272 -%588 = OpConstant %5 0.7 -%589 = OpConstantComposite %4 %78 %272 %588 -%590 = OpConstant %5 0.2 -%591 = OpConstantComposite %4 %590 %590 %590 -%593 = OpConstantNull %4 -%608 = OpTypePointer Uniform %4 +%587 = OpConstantComposite %5 %272 %272 %272 +%588 = OpConstant %4 0.7 +%589 = OpConstantComposite %5 %78 %272 %588 +%590 = OpConstant %4 0.2 +%591 = OpConstantComposite %5 %590 %590 %590 +%593 = OpConstantNull %5 +%608 = OpTypePointer Uniform %5 %617 = OpTypePointer Uniform %7 -%53 = OpFunction %4 None %54 -%52 = OpFunctionParameter %4 +%53 = OpFunction %5 None %54 +%52 = OpFunctionParameter %5 %51 = OpLabel OpBranch %60 %60 = OpLabel OpLine %3 5734 52 -%61 = OpVectorTimesScalar %4 %52 %55 +%61 = OpVectorTimesScalar %5 %52 %55 OpLine %3 5734 63 OpLine %3 5734 50 -%62 = OpFAdd %4 %61 %57 -%63 = OpFMul %4 %62 %52 +%62 = OpFAdd %5 %61 %57 +%63 = OpFMul %5 %62 %52 OpLine %3 5734 49 -%64 = OpFRem %4 %63 %59 +%64 = OpFRem %5 %63 %59 OpReturnValue %64 OpFunctionEnd -%67 = OpFunction %5 None %68 +%67 = OpFunction %4 None %68 %66 = OpFunctionParameter %6 %65 = OpLabel %89 = OpVariable %87 Function %90 @@ -7847,7 +7847,7 @@ OpBranch %97 OpLine %3 5737 13 OpLine %3 5738 24 %98 = OpVectorShuffle %6 %73 %73 1 1 -%99 = OpDot %5 %66 %98 +%99 = OpDot %4 %66 %98 %100 = OpCompositeConstruct %6 %99 %99 %101 = OpFAdd %6 %66 %100 %102 = OpExtInst %6 %1 Floor %101 @@ -7858,13 +7858,13 @@ OpLine %3 5739 14 %104 = OpFSub %6 %66 %103 %105 = OpLoad %6 %86 %106 = OpVectorShuffle %6 %73 %73 0 0 -%107 = OpDot %5 %105 %106 +%107 = OpDot %4 %105 %106 %108 = OpCompositeConstruct %6 %107 %107 %109 = OpFAdd %6 %104 %108 OpLine %3 5741 32 OpLine %3 5741 25 -%110 = OpCompositeExtract %5 %109 0 -%111 = OpCompositeExtract %5 %109 1 +%110 = OpCompositeExtract %4 %109 0 +%111 = OpCompositeExtract %4 %109 1 %113 = OpFOrdLessThan %112 %110 %111 %116 = OpCompositeConstruct %115 %113 %113 %114 = OpSelect %6 %116 %76 %75 @@ -7888,101 +7888,101 @@ OpLine %3 5743 5 OpStore %86 %124 OpLine %3 5744 31 %127 = OpAccessChain %125 %86 %126 -%128 = OpLoad %5 %127 +%128 = OpLoad %4 %127 OpLine %3 5744 51 %129 = OpAccessChain %125 %89 %126 -%130 = OpLoad %5 %129 +%130 = OpLoad %4 %129 OpLine %3 5744 31 -%131 = OpCompositeConstruct %4 %74 %130 %56 -%132 = OpCompositeConstruct %4 %128 %128 %128 -%133 = OpFAdd %4 %132 %131 +%131 = OpCompositeConstruct %5 %74 %130 %56 +%132 = OpCompositeConstruct %5 %128 %128 %128 +%133 = OpFAdd %5 %132 %131 OpLine %3 5744 22 -%134 = OpFunctionCall %4 %53 %133 +%134 = OpFunctionCall %5 %53 %133 OpLine %3 5744 22 %136 = OpAccessChain %125 %86 %135 -%137 = OpLoad %5 %136 -%138 = OpCompositeConstruct %4 %137 %137 %137 -%139 = OpFAdd %4 %134 %138 +%137 = OpLoad %4 %136 +%138 = OpCompositeConstruct %5 %137 %137 %137 +%139 = OpFAdd %5 %134 %138 OpLine %3 5744 84 %140 = OpAccessChain %125 %89 %135 -%141 = OpLoad %5 %140 +%141 = OpLoad %4 %140 OpLine %3 5744 22 -%142 = OpCompositeConstruct %4 %74 %141 %56 -%143 = OpFAdd %4 %139 %142 +%142 = OpCompositeConstruct %5 %74 %141 %56 +%143 = OpFAdd %5 %139 %142 OpLine %3 5744 13 -%144 = OpFunctionCall %4 %53 %143 +%144 = OpFunctionCall %5 %53 %143 OpLine %3 5745 28 -%145 = OpDot %5 %109 %109 +%145 = OpDot %4 %109 %109 %146 = OpLoad %7 %91 %147 = OpVectorShuffle %6 %146 %146 0 1 %148 = OpLoad %7 %91 %149 = OpVectorShuffle %6 %148 %148 0 1 -%150 = OpDot %5 %147 %149 +%150 = OpDot %4 %147 %149 %151 = OpLoad %7 %91 %152 = OpVectorShuffle %6 %151 %151 2 3 %153 = OpLoad %7 %91 %154 = OpVectorShuffle %6 %153 %153 2 3 -%155 = OpDot %5 %152 %154 -%156 = OpCompositeConstruct %4 %145 %150 %155 +%155 = OpDot %4 %152 %154 +%156 = OpCompositeConstruct %5 %145 %150 %155 OpLine %3 5745 28 -%157 = OpFSub %4 %79 %156 +%157 = OpFSub %5 %79 %156 OpLine %3 5745 24 -%158 = OpExtInst %4 %1 FMax %157 %80 +%158 = OpExtInst %5 %1 FMax %157 %80 OpLine %3 5745 5 OpStore %94 %158 OpLine %3 5746 9 -%159 = OpLoad %4 %94 -%160 = OpLoad %4 %94 -%161 = OpFMul %4 %159 %160 +%159 = OpLoad %5 %94 +%160 = OpLoad %5 %94 +%161 = OpFMul %5 %159 %160 OpLine %3 5746 5 OpStore %94 %161 OpLine %3 5747 9 -%162 = OpLoad %4 %94 -%163 = OpLoad %4 %94 -%164 = OpFMul %4 %162 %163 +%162 = OpLoad %5 %94 +%163 = OpLoad %5 %94 +%164 = OpFMul %5 %162 %163 OpLine %3 5747 5 OpStore %94 %164 OpLine %3 5748 18 -%165 = OpVectorShuffle %4 %73 %73 3 3 3 -%166 = OpFMul %4 %144 %165 -%167 = OpExtInst %4 %1 Fract %166 +%165 = OpVectorShuffle %5 %73 %73 3 3 3 +%166 = OpFMul %5 %144 %165 +%167 = OpExtInst %5 %1 Fract %166 OpLine %3 5748 13 -%168 = OpVectorTimesScalar %4 %167 %81 +%168 = OpVectorTimesScalar %5 %167 %81 OpLine %3 5748 37 OpLine %3 5748 13 -%169 = OpFSub %4 %168 %57 +%169 = OpFSub %5 %168 %57 OpLine %3 5749 13 -%170 = OpExtInst %4 %1 FAbs %169 +%170 = OpExtInst %5 %1 FAbs %169 OpLine %3 5749 22 OpLine %3 5749 13 -%171 = OpFSub %4 %170 %79 +%171 = OpFSub %5 %170 %79 OpLine %3 7169 24 OpLine %3 7169 14 -%172 = OpFAdd %4 %169 %79 -%173 = OpExtInst %4 %1 Floor %172 +%172 = OpFAdd %5 %169 %79 +%173 = OpExtInst %5 %1 Floor %172 OpLine %3 7170 14 -%174 = OpFSub %4 %169 %173 +%174 = OpFSub %5 %169 %173 OpLine %3 1 1 -%175 = OpLoad %4 %94 +%175 = OpLoad %5 %94 OpLine %3 7171 53 -%176 = OpFMul %4 %174 %174 -%177 = OpFMul %4 %171 %171 -%178 = OpFAdd %4 %176 %177 +%176 = OpFMul %5 %174 %174 +%177 = OpFMul %5 %171 %171 +%178 = OpFAdd %5 %176 %177 OpLine %3 7171 14 -%179 = OpVectorTimesScalar %4 %178 %82 +%179 = OpVectorTimesScalar %5 %178 %82 OpLine %3 7171 9 -%180 = OpFSub %4 %84 %179 -%181 = OpFMul %4 %175 %180 +%180 = OpFSub %5 %84 %179 +%181 = OpFMul %5 %175 %180 OpLine %3 7171 5 OpStore %94 %181 OpLine %3 7172 13 -%182 = OpCompositeExtract %5 %174 0 -%183 = OpCompositeExtract %5 %109 0 -%184 = OpFMul %5 %182 %183 -%185 = OpCompositeExtract %5 %171 0 -%186 = OpCompositeExtract %5 %109 1 -%187 = OpFMul %5 %185 %186 -%188 = OpFAdd %5 %184 %187 +%182 = OpCompositeExtract %4 %174 0 +%183 = OpCompositeExtract %4 %109 0 +%184 = OpFMul %4 %182 %183 +%185 = OpCompositeExtract %4 %171 0 +%186 = OpCompositeExtract %4 %109 1 +%187 = OpFMul %4 %185 %186 +%188 = OpFAdd %4 %184 %187 %189 = OpVectorShuffle %6 %174 %174 1 2 %190 = OpLoad %7 %91 %191 = OpVectorShuffle %6 %190 %190 0 2 @@ -7992,15 +7992,15 @@ OpLine %3 7172 13 %195 = OpVectorShuffle %6 %194 %194 1 3 %196 = OpFMul %6 %193 %195 %197 = OpFAdd %6 %192 %196 -%198 = OpCompositeConstruct %4 %188 %197 +%198 = OpCompositeConstruct %5 %188 %197 OpLine %3 7173 19 -%199 = OpLoad %4 %94 -%200 = OpDot %5 %199 %198 +%199 = OpLoad %5 %94 +%200 = OpDot %4 %199 %198 OpLine %3 7173 12 -%201 = OpFMul %5 %85 %200 +%201 = OpFMul %4 %85 %200 OpReturnValue %201 OpFunctionEnd -%204 = OpFunction %5 None %68 +%204 = OpFunction %4 None %68 %203 = OpFunctionParameter %6 %202 = OpLabel %214 = OpVariable %215 Function %74 @@ -8016,11 +8016,11 @@ OpStore %212 %220 OpLine %3 7182 17 OpLine %3 7183 14 OpLine %3 7184 15 -%221 = OpCompositeExtract %5 %211 0 -%222 = OpCompositeExtract %5 %211 1 -%223 = OpCompositeExtract %5 %211 1 -%224 = OpFNegate %5 %223 -%225 = OpCompositeExtract %5 %211 0 +%221 = OpCompositeExtract %4 %211 0 +%222 = OpCompositeExtract %4 %211 1 +%223 = OpCompositeExtract %4 %211 1 +%224 = OpFNegate %4 %223 +%225 = OpCompositeExtract %4 %211 0 %226 = OpCompositeConstruct %6 %221 %222 %227 = OpCompositeConstruct %6 %224 %225 %228 = OpCompositeConstruct %9 %226 %227 @@ -8042,14 +8042,14 @@ OpBranch %230 OpBranch %237 %237 = OpLabel OpLine %3 1 1 -%239 = OpLoad %5 %214 -%240 = OpLoad %5 %216 +%239 = OpLoad %4 %214 +%240 = OpLoad %4 %216 %241 = OpLoad %6 %212 OpLine %3 7187 21 -%242 = OpFunctionCall %5 %67 %241 +%242 = OpFunctionCall %4 %67 %241 OpLine %3 7187 13 -%243 = OpFMul %5 %240 %242 -%244 = OpFAdd %5 %239 %243 +%243 = OpFMul %4 %240 %242 +%244 = OpFAdd %4 %239 %243 OpLine %3 7187 9 OpStore %214 %244 OpLine %3 7188 13 @@ -8061,9 +8061,9 @@ OpLine %3 7188 13 OpLine %3 7188 9 OpStore %212 %248 OpLine %3 1 1 -%249 = OpLoad %5 %216 +%249 = OpLoad %4 %216 OpLine %3 7189 13 -%250 = OpFMul %5 %249 %78 +%250 = OpFMul %4 %249 %78 OpLine %3 7189 9 OpStore %216 %250 OpBranch %238 @@ -8079,25 +8079,25 @@ OpStore %217 %252 OpBranch %229 %230 = OpLabel OpLine %3 1 1 -%253 = OpLoad %5 %214 +%253 = OpLoad %4 %214 OpReturnValue %253 OpFunctionEnd -%257 = OpFunction %4 None %258 +%257 = OpFunction %5 None %258 %255 = OpFunctionParameter %6 %256 = OpFunctionParameter %6 %254 = OpLabel OpBranch %259 %259 = OpLabel OpLine %3 7220 9 -%260 = OpCompositeExtract %5 %255 0 -%261 = OpCompositeExtract %5 %256 0 -%262 = OpCompositeExtract %5 %256 1 +%260 = OpCompositeExtract %4 %255 0 +%261 = OpCompositeExtract %4 %256 0 +%262 = OpCompositeExtract %4 %256 1 OpLine %3 7221 49 -%263 = OpFunctionCall %5 %204 %255 +%263 = OpFunctionCall %4 %204 %255 OpLine %3 7219 12 -%264 = OpExtInst %5 %1 FMix %261 %262 %263 -%265 = OpCompositeExtract %5 %255 1 -%266 = OpCompositeConstruct %4 %260 %264 %265 +%264 = OpExtInst %4 %1 FMix %261 %262 %263 +%265 = OpCompositeExtract %4 %255 1 +%266 = OpCompositeConstruct %5 %260 %264 %265 OpReturnValue %266 OpFunctionEnd %270 = OpFunction %14 None %271 @@ -8107,41 +8107,41 @@ OpFunctionEnd OpBranch %278 %278 = OpLabel OpLine %3 7227 13 -%279 = OpFunctionCall %4 %257 %268 %269 +%279 = OpFunctionCall %5 %257 %268 %269 OpLine %3 7229 29 %280 = OpFAdd %6 %268 %273 OpLine %3 7229 15 -%281 = OpFunctionCall %4 %257 %280 %269 +%281 = OpFunctionCall %5 %257 %280 %269 OpLine %3 7229 15 -%282 = OpFSub %4 %281 %279 +%282 = OpFSub %5 %281 %279 OpLine %3 7230 29 %283 = OpFAdd %6 %268 %274 OpLine %3 7230 15 -%284 = OpFunctionCall %4 %257 %283 %269 +%284 = OpFunctionCall %5 %257 %283 %269 OpLine %3 7230 15 -%285 = OpFSub %4 %284 %279 +%285 = OpFSub %5 %284 %279 OpLine %3 7231 29 %286 = OpFAdd %6 %268 %276 OpLine %3 7231 15 -%287 = OpFunctionCall %4 %257 %286 %269 +%287 = OpFunctionCall %5 %257 %286 %269 OpLine %3 7231 15 -%288 = OpFSub %4 %287 %279 +%288 = OpFSub %5 %287 %279 OpLine %3 7232 29 %289 = OpFAdd %6 %268 %277 OpLine %3 7232 15 -%290 = OpFunctionCall %4 %257 %289 %269 +%290 = OpFunctionCall %5 %257 %289 %269 OpLine %3 7232 15 -%291 = OpFSub %4 %290 %279 +%291 = OpFSub %5 %290 %279 OpLine %3 7234 14 -%292 = OpExtInst %4 %1 Cross %285 %282 -%293 = OpExtInst %4 %1 Normalize %292 +%292 = OpExtInst %5 %1 Cross %285 %282 +%293 = OpExtInst %5 %1 Normalize %292 OpLine %3 7235 14 -%294 = OpExtInst %4 %1 Cross %291 %288 -%295 = OpExtInst %4 %1 Normalize %294 +%294 = OpExtInst %5 %1 Cross %291 %288 +%295 = OpExtInst %5 %1 Normalize %294 OpLine %3 7237 14 -%296 = OpFAdd %4 %293 %295 +%296 = OpFAdd %5 %293 %295 OpLine %3 7237 13 -%297 = OpVectorTimesScalar %4 %296 %78 +%297 = OpVectorTimesScalar %5 %296 %78 OpLine %3 7239 12 %298 = OpCompositeConstruct %14 %279 %297 OpReturnValue %298 @@ -8154,50 +8154,50 @@ OpFunctionEnd OpBranch %305 %305 = OpLabel OpLine %3 7244 9 -%306 = OpConvertUToF %5 %300 +%306 = OpConvertUToF %4 %300 %307 = OpCompositeExtract %8 %301 0 OpLine %3 7244 9 %308 = OpIAdd %8 %307 %126 -%309 = OpConvertUToF %5 %308 -%310 = OpFRem %5 %306 %309 +%309 = OpConvertUToF %4 %308 +%310 = OpFRem %4 %306 %309 %311 = OpCompositeExtract %8 %301 0 OpLine %3 7243 12 %312 = OpIAdd %8 %311 %126 %313 = OpUDiv %8 %300 %312 -%314 = OpConvertUToF %5 %313 +%314 = OpConvertUToF %4 %313 %315 = OpCompositeConstruct %6 %310 %314 %316 = OpConvertSToF %6 %302 %317 = OpFAdd %6 %315 %316 OpReturnValue %317 OpFunctionEnd -%320 = OpFunction %4 None %321 +%320 = OpFunction %5 None %321 %319 = OpFunctionParameter %6 %318 = OpLabel OpBranch %328 %328 = OpLabel OpLine %3 7413 9 -%329 = OpFunctionCall %5 %67 %319 +%329 = OpFunctionCall %4 %67 %319 OpLine %3 7413 9 -%330 = OpFMul %5 %329 %78 +%330 = OpFMul %4 %329 %78 OpLine %3 7413 9 -%331 = OpFAdd %5 %330 %78 +%331 = OpFAdd %4 %330 %78 OpLine %3 7414 17 %332 = OpFAdd %6 %319 %324 OpLine %3 7414 9 -%333 = OpFunctionCall %5 %67 %332 +%333 = OpFunctionCall %4 %67 %332 OpLine %3 7414 9 -%334 = OpFMul %5 %333 %78 +%334 = OpFMul %4 %333 %78 OpLine %3 7414 9 -%335 = OpFAdd %5 %334 %78 +%335 = OpFAdd %4 %334 %78 OpLine %3 7415 17 %336 = OpFAdd %6 %319 %327 OpLine %3 7415 9 -%337 = OpFunctionCall %5 %67 %336 +%337 = OpFunctionCall %4 %67 %336 OpLine %3 7415 9 -%338 = OpFMul %5 %337 %78 +%338 = OpFMul %4 %337 %78 OpLine %3 7412 12 -%339 = OpFAdd %5 %338 %78 -%340 = OpCompositeConstruct %4 %331 %335 %339 +%339 = OpFAdd %4 %338 %78 +%340 = OpCompositeConstruct %5 %331 %335 %339 OpReturnValue %340 OpFunctionEnd %345 = OpFunction %2 None %346 @@ -8310,14 +8310,14 @@ OpLine %3 7304 18 %422 = OpUDiv %8 %421 %351 OpLine %3 7304 13 %423 = OpUMod %8 %422 %350 -%424 = OpConvertUToF %5 %423 +%424 = OpConvertUToF %4 %423 OpLine %3 7305 19 %425 = OpIAdd %8 %408 %126 OpLine %3 7305 18 %426 = OpUDiv %8 %425 %351 OpLine %3 7305 13 %427 = OpUMod %8 %426 %350 -%428 = OpConvertUToF %5 %427 +%428 = OpConvertUToF %4 %427 OpLine %3 7306 14 %429 = OpCompositeConstruct %6 %424 %428 OpLine %3 7308 30 @@ -8327,19 +8327,19 @@ OpLine %3 7308 30 OpLine %3 7308 20 %432 = OpCompositeConstruct %7 %431 %74 %56 OpLine %3 7311 21 -%433 = OpCompositeExtract %5 %429 0 +%433 = OpCompositeExtract %4 %429 0 OpLine %3 7311 21 %435 = OpAccessChain %434 %417 %351 %436 = OpLoad %8 %435 -%437 = OpConvertUToF %5 %436 -%438 = OpFMul %5 %433 %437 -%439 = OpCompositeExtract %5 %429 1 +%437 = OpConvertUToF %4 %436 +%438 = OpFMul %4 %433 %437 +%439 = OpCompositeExtract %4 %429 1 OpLine %3 7311 17 %440 = OpAccessChain %434 %417 %351 %441 = OpLoad %8 %440 -%442 = OpConvertUToF %5 %441 -%443 = OpFMul %5 %439 %442 -%444 = OpFAdd %5 %438 %443 +%442 = OpConvertUToF %4 %441 +%443 = OpFMul %4 %439 %442 +%444 = OpFAdd %4 %438 %443 %445 = OpConvertFToU %8 %444 OpLine %3 7311 17 %446 = OpAccessChain %434 %417 %352 @@ -8368,14 +8368,14 @@ OpBranch %470 %470 = OpLabel OpLine %3 7324 17 %471 = OpCompositeExtract %6 %454 2 -%472 = OpCompositeExtract %5 %471 0 +%472 = OpCompositeExtract %4 %471 0 OpLine %3 7324 17 %473 = OpAccessChain %434 %466 %351 %474 = OpLoad %8 %473 -%475 = OpConvertUToF %5 %474 -%476 = OpFMul %5 %472 %475 +%475 = OpConvertUToF %4 %474 +%476 = OpFMul %4 %472 %475 %477 = OpCompositeExtract %6 %454 2 -%478 = OpCompositeExtract %5 %477 1 +%478 = OpCompositeExtract %4 %477 1 OpLine %3 7324 70 %479 = OpAccessChain %434 %466 %351 %480 = OpLoad %8 %479 @@ -8383,19 +8383,19 @@ OpLine %3 7324 13 %481 = OpAccessChain %434 %466 %351 %482 = OpLoad %8 %481 %483 = OpIMul %8 %480 %482 -%484 = OpConvertUToF %5 %483 -%485 = OpFMul %5 %478 %484 -%486 = OpFAdd %5 %476 %485 +%484 = OpConvertUToF %4 %483 +%485 = OpFMul %4 %478 %484 +%486 = OpFAdd %4 %476 %485 %487 = OpConvertFToU %8 %486 OpLine %3 7324 13 %488 = OpAccessChain %434 %466 %352 %489 = OpLoad %8 %488 %490 = OpIAdd %8 %487 %489 OpLine %3 7325 32 -%491 = OpConvertUToF %5 %490 +%491 = OpConvertUToF %4 %490 OpLine %3 7325 22 -%492 = OpFDiv %5 %491 %467 -%493 = OpExtInst %5 %1 Floor %492 +%492 = OpFDiv %4 %491 %467 +%493 = OpExtInst %4 %1 Floor %492 %494 = OpConvertFToU %8 %493 OpLine %3 7326 22 %495 = OpUMod %8 %490 %349 @@ -8417,43 +8417,43 @@ OpSelectionMerge %504 None OpSwitch %495 %511 0 %505 1 %506 2 %507 3 %508 4 %509 5 %510 %505 = OpLabel OpLine %3 7334 37 -%512 = OpCompositeExtract %4 %503 0 -%513 = OpCompositeExtract %5 %512 0 +%512 = OpCompositeExtract %5 %503 0 +%513 = OpCompositeExtract %4 %512 0 OpLine %3 7334 20 OpStore %468 %513 OpBranch %504 %506 = OpLabel OpLine %3 7335 37 -%514 = OpCompositeExtract %4 %503 0 -%515 = OpCompositeExtract %5 %514 1 +%514 = OpCompositeExtract %5 %503 0 +%515 = OpCompositeExtract %4 %514 1 OpLine %3 7335 20 OpStore %468 %515 OpBranch %504 %507 = OpLabel OpLine %3 7336 37 -%516 = OpCompositeExtract %4 %503 0 -%517 = OpCompositeExtract %5 %516 2 +%516 = OpCompositeExtract %5 %503 0 +%517 = OpCompositeExtract %4 %516 2 OpLine %3 7336 20 OpStore %468 %517 OpBranch %504 %508 = OpLabel OpLine %3 7337 37 -%518 = OpCompositeExtract %4 %503 1 -%519 = OpCompositeExtract %5 %518 0 +%518 = OpCompositeExtract %5 %503 1 +%519 = OpCompositeExtract %4 %518 0 OpLine %3 7337 20 OpStore %468 %519 OpBranch %504 %509 = OpLabel OpLine %3 7338 37 -%520 = OpCompositeExtract %4 %503 1 -%521 = OpCompositeExtract %5 %520 1 +%520 = OpCompositeExtract %5 %503 1 +%521 = OpCompositeExtract %4 %520 1 OpLine %3 7338 20 OpStore %468 %521 OpBranch %504 %510 = OpLabel OpLine %3 7339 37 -%522 = OpCompositeExtract %4 %503 1 -%523 = OpCompositeExtract %5 %522 2 +%522 = OpCompositeExtract %5 %503 1 +%523 = OpCompositeExtract %4 %522 2 OpLine %3 7339 20 OpStore %468 %523 OpBranch %504 @@ -8502,7 +8502,7 @@ OpLine %3 7356 13 OpLine %3 7356 5 OpStore %469 %540 OpLine %3 7365 27 -%541 = OpLoad %5 %468 +%541 = OpLoad %4 %468 %542 = OpBitcast %8 %541 OpLine %3 7366 12 %543 = OpLoad %8 %469 @@ -8515,8 +8515,8 @@ OpReturn OpFunctionEnd %558 = OpFunction %2 None %346 %547 = OpLabel -%551 = OpLoad %4 %549 -%553 = OpLoad %4 %552 +%551 = OpLoad %5 %549 +%553 = OpLoad %5 %552 %548 = OpCompositeConstruct %14 %551 %553 %560 = OpAccessChain %559 %39 %135 OpBranch %561 @@ -8524,20 +8524,20 @@ OpBranch %561 OpLine %3 7397 25 %563 = OpAccessChain %562 %560 %126 %564 = OpLoad %23 %563 -%565 = OpCompositeExtract %4 %548 0 +%565 = OpCompositeExtract %5 %548 0 OpLine %3 7397 25 %566 = OpCompositeConstruct %7 %565 %56 %567 = OpMatrixTimesVector %7 %564 %566 OpLine %3 7398 18 -%568 = OpCompositeExtract %4 %548 1 +%568 = OpCompositeExtract %5 %548 1 OpLine %3 7399 12 -%569 = OpCompositeExtract %4 %548 0 +%569 = OpCompositeExtract %5 %548 0 %570 = OpCompositeConstruct %26 %567 %568 %569 %571 = OpCompositeExtract %7 %570 0 OpStore %554 %571 -%572 = OpCompositeExtract %4 %570 1 +%572 = OpCompositeExtract %5 %570 1 OpStore %555 %572 -%573 = OpCompositeExtract %4 %570 2 +%573 = OpCompositeExtract %5 %570 2 OpStore %557 %573 OpReturn OpFunctionEnd @@ -8545,8 +8545,8 @@ OpFunctionEnd %574 = OpLabel %592 = OpVariable %95 Function %593 %577 = OpLoad %7 %576 -%579 = OpLoad %4 %578 -%581 = OpLoad %4 %580 +%579 = OpLoad %5 %578 +%581 = OpLoad %5 %580 %575 = OpCompositeConstruct %26 %577 %579 %581 %584 = OpAccessChain %559 %39 %135 %586 = OpAccessChain %585 %42 %135 @@ -8554,70 +8554,70 @@ OpBranch %594 %594 = OpLabel OpLine %3 7421 28 OpLine %3 7421 17 -%595 = OpCompositeExtract %4 %575 2 -%596 = OpExtInst %4 %1 Fract %595 -%597 = OpExtInst %4 %1 SmoothStep %80 %587 %596 +%595 = OpCompositeExtract %5 %575 2 +%596 = OpExtInst %5 %1 Fract %595 +%597 = OpExtInst %5 %1 SmoothStep %80 %587 %596 OpLine %3 7421 5 OpStore %592 %597 OpLine %3 7422 17 OpLine %3 7422 13 %598 = OpAccessChain %125 %592 %135 -%599 = OpLoad %5 %598 +%599 = OpLoad %4 %598 %600 = OpAccessChain %125 %592 %126 -%601 = OpLoad %5 %600 -%602 = OpFMul %5 %599 %601 +%601 = OpLoad %4 %600 +%602 = OpFMul %4 %599 %601 %603 = OpAccessChain %125 %592 %350 -%604 = OpLoad %5 %603 -%605 = OpFMul %5 %602 %604 -%606 = OpCompositeConstruct %4 %605 %605 %605 -%607 = OpExtInst %4 %1 FMix %589 %591 %606 +%604 = OpLoad %4 %603 +%605 = OpFMul %4 %602 %604 +%606 = OpCompositeConstruct %5 %605 %605 %605 +%607 = OpExtInst %5 %1 FMix %589 %591 %606 OpLine %3 7422 5 OpStore %592 %607 OpLine %3 7425 25 %609 = OpAccessChain %608 %586 %126 -%610 = OpLoad %4 %609 -%611 = OpVectorTimesScalar %4 %610 %272 +%610 = OpLoad %5 %609 +%611 = OpVectorTimesScalar %5 %610 %272 OpLine %3 7427 21 %612 = OpAccessChain %608 %586 %135 -%613 = OpLoad %4 %612 -%614 = OpCompositeExtract %4 %575 2 -%615 = OpFSub %4 %613 %614 -%616 = OpExtInst %4 %1 Normalize %615 +%613 = OpLoad %5 %612 +%614 = OpCompositeExtract %5 %575 2 +%615 = OpFSub %5 %613 %614 +%616 = OpExtInst %5 %1 Normalize %615 OpLine %3 7428 20 %618 = OpAccessChain %617 %584 %135 %619 = OpLoad %7 %618 -%620 = OpVectorShuffle %4 %619 %619 0 1 2 -%621 = OpCompositeExtract %4 %575 2 -%622 = OpFSub %4 %620 %621 -%623 = OpExtInst %4 %1 Normalize %622 +%620 = OpVectorShuffle %5 %619 %619 0 1 2 +%621 = OpCompositeExtract %5 %575 2 +%622 = OpFSub %5 %620 %621 +%623 = OpExtInst %5 %1 Normalize %622 OpLine %3 7429 20 -%624 = OpFAdd %4 %623 %616 -%625 = OpExtInst %4 %1 Normalize %624 +%624 = OpFAdd %5 %623 %616 +%625 = OpExtInst %5 %1 Normalize %624 OpLine %3 7431 32 -%626 = OpCompositeExtract %4 %575 1 -%627 = OpDot %5 %626 %616 +%626 = OpCompositeExtract %5 %575 1 +%627 = OpDot %4 %626 %616 OpLine %3 7431 28 -%628 = OpExtInst %5 %1 FMax %627 %74 +%628 = OpExtInst %4 %1 FMax %627 %74 OpLine %3 7432 25 %629 = OpAccessChain %608 %586 %126 -%630 = OpLoad %4 %629 -%631 = OpVectorTimesScalar %4 %630 %628 +%630 = OpLoad %5 %629 +%631 = OpVectorTimesScalar %5 %630 %628 OpLine %3 7434 37 -%632 = OpCompositeExtract %4 %575 1 -%633 = OpDot %5 %632 %625 +%632 = OpCompositeExtract %5 %575 1 +%633 = OpDot %4 %632 %625 OpLine %3 7434 33 -%634 = OpExtInst %5 %1 FMax %633 %74 +%634 = OpExtInst %4 %1 FMax %633 %74 OpLine %3 7434 29 -%635 = OpExtInst %5 %1 Pow %634 %323 +%635 = OpExtInst %4 %1 Pow %634 %323 OpLine %3 7435 26 %636 = OpAccessChain %608 %586 %126 -%637 = OpLoad %4 %636 -%638 = OpVectorTimesScalar %4 %637 %635 +%637 = OpLoad %5 %636 +%638 = OpVectorTimesScalar %5 %637 %635 OpLine %3 7437 18 -%639 = OpFAdd %4 %611 %631 -%640 = OpFAdd %4 %639 %638 -%641 = OpLoad %4 %592 -%642 = OpFMul %4 %640 %641 +%639 = OpFAdd %5 %611 %631 +%640 = OpFAdd %5 %639 %638 +%641 = OpLoad %5 %592 +%642 = OpFMul %5 %640 %641 OpLine %3 7439 12 %643 = OpCompositeConstruct %7 %642 %56 OpStore %582 %643 diff --git a/naga/tests/out/spv/debug-symbol-simple.spvasm b/naga/tests/out/spv/debug-symbol-simple.spvasm index b2fd1f2607..e525177f28 100644 --- a/naga/tests/out/spv/debug-symbol-simple.spvasm +++ b/naga/tests/out/spv/debug-symbol-simple.spvasm @@ -72,24 +72,24 @@ OpDecorate %43 BuiltIn FragCoord OpDecorate %46 Location 0 OpDecorate %48 Location 0 %2 = OpTypeVoid -%5 = OpTypeFloat 32 -%4 = OpTypeVector %5 3 -%6 = OpTypeStruct %4 %4 -%7 = OpTypeVector %5 4 -%8 = OpTypeStruct %7 %4 +%4 = OpTypeFloat 32 +%5 = OpTypeVector %4 3 +%6 = OpTypeStruct %5 %5 +%7 = OpTypeVector %4 4 +%8 = OpTypeStruct %7 %5 %9 = OpTypeInt 32 1 -%13 = OpTypePointer Input %4 +%13 = OpTypePointer Input %5 %12 = OpVariable %13 Input %15 = OpVariable %13 Input %18 = OpTypePointer Output %7 %17 = OpVariable %18 Output -%20 = OpTypePointer Output %4 +%20 = OpTypePointer Output %5 %19 = OpVariable %20 Output %22 = OpTypeFunction %2 -%23 = OpConstant %5 1.0 +%23 = OpConstant %4 1.0 %25 = OpTypePointer Function %8 %26 = OpConstantNull %8 -%28 = OpTypePointer Function %4 +%28 = OpTypePointer Function %5 %31 = OpTypeInt 32 0 %30 = OpConstant %31 1 %33 = OpTypePointer Function %7 @@ -100,30 +100,30 @@ OpDecorate %48 Location 0 %48 = OpVariable %18 Output %50 = OpConstant %9 0 %51 = OpConstant %9 10 -%52 = OpConstant %5 0.001 -%53 = OpConstant %5 0.002 +%52 = OpConstant %4 0.001 +%53 = OpConstant %4 0.002 %54 = OpConstant %9 1 -%56 = OpConstantNull %4 +%56 = OpConstantNull %5 %58 = OpTypePointer Function %9 -%60 = OpTypePointer Function %5 -%61 = OpConstantNull %5 +%60 = OpTypePointer Function %4 +%61 = OpConstantNull %4 %69 = OpTypeBool -%77 = OpTypePointer Function %5 +%77 = OpTypePointer Function %4 %21 = OpFunction %2 None %22 %10 = OpLabel %24 = OpVariable %25 Function %26 -%14 = OpLoad %4 %12 -%16 = OpLoad %4 %15 +%14 = OpLoad %5 %12 +%16 = OpLoad %5 %15 %11 = OpCompositeConstruct %6 %14 %16 OpBranch %27 %27 = OpLabel OpLine %3 16 5 -%29 = OpCompositeExtract %4 %11 1 +%29 = OpCompositeExtract %5 %11 1 OpLine %3 16 5 %32 = OpAccessChain %28 %24 %30 OpStore %32 %29 OpLine %3 17 5 -%34 = OpCompositeExtract %4 %11 0 +%34 = OpCompositeExtract %5 %11 0 OpLine %3 17 25 %35 = OpCompositeConstruct %7 %34 %23 OpLine %3 17 5 @@ -133,7 +133,7 @@ OpLine %3 1 1 %38 = OpLoad %8 %24 %39 = OpCompositeExtract %7 %38 0 OpStore %17 %39 -%40 = OpCompositeExtract %4 %38 1 +%40 = OpCompositeExtract %5 %38 1 OpStore %19 %40 OpReturn OpFunctionEnd @@ -143,12 +143,12 @@ OpFunctionEnd %57 = OpVariable %58 Function %50 %59 = OpVariable %60 Function %61 %45 = OpLoad %7 %43 -%47 = OpLoad %4 %46 +%47 = OpLoad %5 %46 %42 = OpCompositeConstruct %8 %45 %47 OpBranch %62 %62 = OpLabel OpLine %3 25 17 -%63 = OpCompositeExtract %4 %42 1 +%63 = OpCompositeExtract %5 %42 1 OpLine %3 25 5 OpStore %55 %63 OpBranch %64 @@ -171,26 +171,26 @@ OpBranch %73 %73 = OpLabel OpLine %3 27 18 %75 = OpLoad %9 %57 -%76 = OpConvertSToF %5 %75 +%76 = OpConvertSToF %4 %75 OpLine %3 27 9 OpStore %59 %76 OpLine %3 28 9 -%78 = OpLoad %5 %59 +%78 = OpLoad %4 %59 OpLine %3 28 9 -%79 = OpFMul %5 %78 %52 +%79 = OpFMul %4 %78 %52 %80 = OpAccessChain %77 %55 %36 -%81 = OpLoad %5 %80 -%82 = OpFAdd %5 %81 %79 +%81 = OpLoad %4 %80 +%82 = OpFAdd %4 %81 %79 OpLine %3 28 9 %83 = OpAccessChain %77 %55 %36 OpStore %83 %82 OpLine %3 29 9 -%84 = OpLoad %5 %59 +%84 = OpLoad %4 %59 OpLine %3 29 9 -%85 = OpFMul %5 %84 %53 +%85 = OpFMul %4 %84 %53 %86 = OpAccessChain %77 %55 %30 -%87 = OpLoad %5 %86 -%88 = OpFAdd %5 %87 %85 +%87 = OpLoad %4 %86 +%88 = OpFAdd %4 %87 %85 OpLine %3 29 9 %89 = OpAccessChain %77 %55 %30 OpStore %89 %88 @@ -206,7 +206,7 @@ OpStore %57 %91 OpBranch %64 %65 = OpLabel OpLine %3 1 1 -%92 = OpLoad %4 %55 +%92 = OpLoad %5 %55 OpLine %3 32 12 %93 = OpCompositeConstruct %7 %92 %23 OpStore %48 %93 diff --git a/naga/tests/out/spv/debug-symbol-terrain.spvasm b/naga/tests/out/spv/debug-symbol-terrain.spvasm index fd8e7f5df3..38d8984d0f 100644 --- a/naga/tests/out/spv/debug-symbol-terrain.spvasm +++ b/naga/tests/out/spv/debug-symbol-terrain.spvasm @@ -488,17 +488,17 @@ OpDecorate %578 Location 0 OpDecorate %580 Location 1 OpDecorate %582 Location 0 %2 = OpTypeVoid -%5 = OpTypeFloat 32 -%4 = OpTypeVector %5 3 -%6 = OpTypeVector %5 2 -%7 = OpTypeVector %5 4 +%4 = OpTypeFloat 32 +%5 = OpTypeVector %4 3 +%6 = OpTypeVector %4 2 +%7 = OpTypeVector %4 4 %8 = OpTypeInt 32 0 %9 = OpTypeMatrix %6 2 %10 = OpTypeVector %8 2 %12 = OpTypeInt 32 1 %11 = OpTypeVector %12 2 %13 = OpTypeStruct %10 %11 %6 -%14 = OpTypeStruct %4 %4 +%14 = OpTypeStruct %5 %5 %15 = OpTypeRuntimeArray %14 %16 = OpTypeStruct %15 %17 = OpTypeRuntimeArray %8 @@ -509,9 +509,9 @@ OpDecorate %582 Location 0 %22 = OpTypeStruct %8 %8 %23 = OpTypeMatrix %7 4 %24 = OpTypeStruct %7 %23 -%25 = OpTypeStruct %4 %4 -%26 = OpTypeStruct %7 %4 %4 -%27 = OpTypeImage %5 2D 0 0 0 1 Unknown +%25 = OpTypeStruct %5 %5 +%26 = OpTypeStruct %7 %5 %5 +%27 = OpTypeImage %4 2D 0 0 0 1 Unknown %28 = OpTypeSampler %30 = OpTypeStruct %13 %31 = OpTypePointer Uniform %30 @@ -535,67 +535,67 @@ OpDecorate %582 Location 0 %47 = OpVariable %48 UniformConstant %49 = OpVariable %46 UniformConstant %50 = OpVariable %48 UniformConstant -%54 = OpTypeFunction %4 %4 -%55 = OpConstant %5 34.0 -%56 = OpConstant %5 1.0 -%57 = OpConstantComposite %4 %56 %56 %56 -%58 = OpConstant %5 289.0 -%59 = OpConstantComposite %4 %58 %58 %58 -%68 = OpTypeFunction %5 %6 -%69 = OpConstant %5 0.21132487 -%70 = OpConstant %5 0.36602542 -%71 = OpConstant %5 -0.57735026 -%72 = OpConstant %5 0.024390243 +%54 = OpTypeFunction %5 %5 +%55 = OpConstant %4 34.0 +%56 = OpConstant %4 1.0 +%57 = OpConstantComposite %5 %56 %56 %56 +%58 = OpConstant %4 289.0 +%59 = OpConstantComposite %5 %58 %58 %58 +%68 = OpTypeFunction %4 %6 +%69 = OpConstant %4 0.21132487 +%70 = OpConstant %4 0.36602542 +%71 = OpConstant %4 -0.57735026 +%72 = OpConstant %4 0.024390243 %73 = OpConstantComposite %7 %69 %70 %71 %72 -%74 = OpConstant %5 0.0 +%74 = OpConstant %4 0.0 %75 = OpConstantComposite %6 %56 %74 %76 = OpConstantComposite %6 %74 %56 %77 = OpConstantComposite %6 %58 %58 -%78 = OpConstant %5 0.5 -%79 = OpConstantComposite %4 %78 %78 %78 -%80 = OpConstantComposite %4 %74 %74 %74 -%81 = OpConstant %5 2.0 -%82 = OpConstant %5 0.85373473 -%83 = OpConstant %5 1.7928429 -%84 = OpConstantComposite %4 %83 %83 %83 -%85 = OpConstant %5 130.0 +%78 = OpConstant %4 0.5 +%79 = OpConstantComposite %5 %78 %78 %78 +%80 = OpConstantComposite %5 %74 %74 %74 +%81 = OpConstant %4 2.0 +%82 = OpConstant %4 0.85373473 +%83 = OpConstant %4 1.7928429 +%84 = OpConstantComposite %5 %83 %83 %83 +%85 = OpConstant %4 130.0 %87 = OpTypePointer Function %6 %88 = OpConstantNull %6 %90 = OpConstantNull %6 %92 = OpTypePointer Function %7 %93 = OpConstantNull %7 -%95 = OpTypePointer Function %4 -%96 = OpConstantNull %4 +%95 = OpTypePointer Function %5 +%96 = OpConstantNull %5 %112 = OpTypeBool %115 = OpTypeVector %112 2 -%125 = OpTypePointer Function %5 +%125 = OpTypePointer Function %4 %126 = OpConstant %8 1 %135 = OpConstant %8 0 %205 = OpConstant %8 5 -%206 = OpConstant %5 0.01 -%207 = OpConstant %5 100.0 +%206 = OpConstant %4 0.01 +%207 = OpConstant %4 100.0 %208 = OpConstantComposite %6 %207 %207 -%209 = OpConstant %5 0.87758255 -%210 = OpConstant %5 0.47942555 +%209 = OpConstant %4 0.87758255 +%210 = OpConstant %4 0.47942555 %211 = OpConstantComposite %6 %209 %210 %213 = OpConstantNull %6 -%215 = OpTypePointer Function %5 +%215 = OpTypePointer Function %4 %218 = OpTypePointer Function %8 -%258 = OpTypeFunction %4 %6 %6 +%258 = OpTypeFunction %5 %6 %6 %271 = OpTypeFunction %14 %6 %6 -%272 = OpConstant %5 0.1 +%272 = OpConstant %4 0.1 %273 = OpConstantComposite %6 %272 %74 %274 = OpConstantComposite %6 %74 %272 -%275 = OpConstant %5 -0.1 +%275 = OpConstant %4 -0.1 %276 = OpConstantComposite %6 %275 %74 %277 = OpConstantComposite %6 %74 %275 %304 = OpTypeFunction %6 %8 %10 %11 -%321 = OpTypeFunction %4 %6 -%322 = OpConstant %5 23.0 -%323 = OpConstant %5 32.0 +%321 = OpTypeFunction %5 %6 +%322 = OpConstant %4 23.0 +%323 = OpConstant %4 32.0 %324 = OpConstantComposite %6 %322 %323 -%325 = OpConstant %5 -43.0 -%326 = OpConstant %5 3.0 +%325 = OpConstant %4 -43.0 +%326 = OpConstant %4 3.0 %327 = OpConstantComposite %6 %325 %326 %343 = OpTypePointer Input %19 %342 = OpVariable %343 Input @@ -622,7 +622,7 @@ OpDecorate %582 Location 0 %414 = OpTypePointer Output %6 %413 = OpVariable %414 Output %416 = OpTypePointer Uniform %20 -%418 = OpConstant %5 -1.0 +%418 = OpConstant %4 -1.0 %419 = OpConstantComposite %6 %418 %418 %434 = OpTypePointer Uniform %8 %455 = OpVariable %407 Input @@ -632,12 +632,12 @@ OpDecorate %582 Location 0 %460 = OpVariable %461 Input %463 = OpVariable %410 Output %464 = OpVariable %410 Output -%467 = OpConstant %5 6.0 -%550 = OpTypePointer Input %4 +%467 = OpConstant %4 6.0 +%550 = OpTypePointer Input %5 %549 = OpVariable %550 Input %552 = OpVariable %550 Input %554 = OpVariable %412 Output -%556 = OpTypePointer Output %4 +%556 = OpTypePointer Output %5 %555 = OpVariable %556 Output %557 = OpVariable %556 Output %559 = OpTypePointer Uniform %24 @@ -647,30 +647,30 @@ OpDecorate %582 Location 0 %580 = OpVariable %550 Input %582 = OpVariable %412 Output %585 = OpTypePointer Uniform %25 -%587 = OpConstantComposite %4 %272 %272 %272 -%588 = OpConstant %5 0.7 -%589 = OpConstantComposite %4 %78 %272 %588 -%590 = OpConstant %5 0.2 -%591 = OpConstantComposite %4 %590 %590 %590 -%593 = OpConstantNull %4 -%608 = OpTypePointer Uniform %4 +%587 = OpConstantComposite %5 %272 %272 %272 +%588 = OpConstant %4 0.7 +%589 = OpConstantComposite %5 %78 %272 %588 +%590 = OpConstant %4 0.2 +%591 = OpConstantComposite %5 %590 %590 %590 +%593 = OpConstantNull %5 +%608 = OpTypePointer Uniform %5 %617 = OpTypePointer Uniform %7 -%53 = OpFunction %4 None %54 -%52 = OpFunctionParameter %4 +%53 = OpFunction %5 None %54 +%52 = OpFunctionParameter %5 %51 = OpLabel OpBranch %60 %60 = OpLabel OpLine %3 10 52 -%61 = OpVectorTimesScalar %4 %52 %55 +%61 = OpVectorTimesScalar %5 %52 %55 OpLine %3 10 63 OpLine %3 10 50 -%62 = OpFAdd %4 %61 %57 -%63 = OpFMul %4 %62 %52 +%62 = OpFAdd %5 %61 %57 +%63 = OpFMul %5 %62 %52 OpLine %3 10 49 -%64 = OpFRem %4 %63 %59 +%64 = OpFRem %5 %63 %59 OpReturnValue %64 OpFunctionEnd -%67 = OpFunction %5 None %68 +%67 = OpFunction %4 None %68 %66 = OpFunctionParameter %6 %65 = OpLabel %89 = OpVariable %87 Function %90 @@ -682,7 +682,7 @@ OpBranch %97 OpLine %3 13 13 OpLine %3 14 24 %98 = OpVectorShuffle %6 %73 %73 1 1 -%99 = OpDot %5 %66 %98 +%99 = OpDot %4 %66 %98 %100 = OpCompositeConstruct %6 %99 %99 %101 = OpFAdd %6 %66 %100 %102 = OpExtInst %6 %1 Floor %101 @@ -693,13 +693,13 @@ OpLine %3 15 14 %104 = OpFSub %6 %66 %103 %105 = OpLoad %6 %86 %106 = OpVectorShuffle %6 %73 %73 0 0 -%107 = OpDot %5 %105 %106 +%107 = OpDot %4 %105 %106 %108 = OpCompositeConstruct %6 %107 %107 %109 = OpFAdd %6 %104 %108 OpLine %3 17 32 OpLine %3 17 25 -%110 = OpCompositeExtract %5 %109 0 -%111 = OpCompositeExtract %5 %109 1 +%110 = OpCompositeExtract %4 %109 0 +%111 = OpCompositeExtract %4 %109 1 %113 = OpFOrdLessThan %112 %110 %111 %116 = OpCompositeConstruct %115 %113 %113 %114 = OpSelect %6 %116 %76 %75 @@ -723,101 +723,101 @@ OpLine %3 19 5 OpStore %86 %124 OpLine %3 20 31 %127 = OpAccessChain %125 %86 %126 -%128 = OpLoad %5 %127 +%128 = OpLoad %4 %127 OpLine %3 20 51 %129 = OpAccessChain %125 %89 %126 -%130 = OpLoad %5 %129 +%130 = OpLoad %4 %129 OpLine %3 20 31 -%131 = OpCompositeConstruct %4 %74 %130 %56 -%132 = OpCompositeConstruct %4 %128 %128 %128 -%133 = OpFAdd %4 %132 %131 +%131 = OpCompositeConstruct %5 %74 %130 %56 +%132 = OpCompositeConstruct %5 %128 %128 %128 +%133 = OpFAdd %5 %132 %131 OpLine %3 20 22 -%134 = OpFunctionCall %4 %53 %133 +%134 = OpFunctionCall %5 %53 %133 OpLine %3 20 22 %136 = OpAccessChain %125 %86 %135 -%137 = OpLoad %5 %136 -%138 = OpCompositeConstruct %4 %137 %137 %137 -%139 = OpFAdd %4 %134 %138 +%137 = OpLoad %4 %136 +%138 = OpCompositeConstruct %5 %137 %137 %137 +%139 = OpFAdd %5 %134 %138 OpLine %3 20 84 %140 = OpAccessChain %125 %89 %135 -%141 = OpLoad %5 %140 +%141 = OpLoad %4 %140 OpLine %3 20 22 -%142 = OpCompositeConstruct %4 %74 %141 %56 -%143 = OpFAdd %4 %139 %142 +%142 = OpCompositeConstruct %5 %74 %141 %56 +%143 = OpFAdd %5 %139 %142 OpLine %3 20 13 -%144 = OpFunctionCall %4 %53 %143 +%144 = OpFunctionCall %5 %53 %143 OpLine %3 21 28 -%145 = OpDot %5 %109 %109 +%145 = OpDot %4 %109 %109 %146 = OpLoad %7 %91 %147 = OpVectorShuffle %6 %146 %146 0 1 %148 = OpLoad %7 %91 %149 = OpVectorShuffle %6 %148 %148 0 1 -%150 = OpDot %5 %147 %149 +%150 = OpDot %4 %147 %149 %151 = OpLoad %7 %91 %152 = OpVectorShuffle %6 %151 %151 2 3 %153 = OpLoad %7 %91 %154 = OpVectorShuffle %6 %153 %153 2 3 -%155 = OpDot %5 %152 %154 -%156 = OpCompositeConstruct %4 %145 %150 %155 +%155 = OpDot %4 %152 %154 +%156 = OpCompositeConstruct %5 %145 %150 %155 OpLine %3 21 28 -%157 = OpFSub %4 %79 %156 +%157 = OpFSub %5 %79 %156 OpLine %3 21 24 -%158 = OpExtInst %4 %1 FMax %157 %80 +%158 = OpExtInst %5 %1 FMax %157 %80 OpLine %3 21 5 OpStore %94 %158 OpLine %3 22 9 -%159 = OpLoad %4 %94 -%160 = OpLoad %4 %94 -%161 = OpFMul %4 %159 %160 +%159 = OpLoad %5 %94 +%160 = OpLoad %5 %94 +%161 = OpFMul %5 %159 %160 OpLine %3 22 5 OpStore %94 %161 OpLine %3 23 9 -%162 = OpLoad %4 %94 -%163 = OpLoad %4 %94 -%164 = OpFMul %4 %162 %163 +%162 = OpLoad %5 %94 +%163 = OpLoad %5 %94 +%164 = OpFMul %5 %162 %163 OpLine %3 23 5 OpStore %94 %164 OpLine %3 24 18 -%165 = OpVectorShuffle %4 %73 %73 3 3 3 -%166 = OpFMul %4 %144 %165 -%167 = OpExtInst %4 %1 Fract %166 +%165 = OpVectorShuffle %5 %73 %73 3 3 3 +%166 = OpFMul %5 %144 %165 +%167 = OpExtInst %5 %1 Fract %166 OpLine %3 24 13 -%168 = OpVectorTimesScalar %4 %167 %81 +%168 = OpVectorTimesScalar %5 %167 %81 OpLine %3 24 37 OpLine %3 24 13 -%169 = OpFSub %4 %168 %57 +%169 = OpFSub %5 %168 %57 OpLine %3 25 13 -%170 = OpExtInst %4 %1 FAbs %169 +%170 = OpExtInst %5 %1 FAbs %169 OpLine %3 25 22 OpLine %3 25 13 -%171 = OpFSub %4 %170 %79 +%171 = OpFSub %5 %170 %79 OpLine %3 26 24 OpLine %3 26 14 -%172 = OpFAdd %4 %169 %79 -%173 = OpExtInst %4 %1 Floor %172 +%172 = OpFAdd %5 %169 %79 +%173 = OpExtInst %5 %1 Floor %172 OpLine %3 27 14 -%174 = OpFSub %4 %169 %173 +%174 = OpFSub %5 %169 %173 OpLine %3 1 1 -%175 = OpLoad %4 %94 +%175 = OpLoad %5 %94 OpLine %3 28 53 -%176 = OpFMul %4 %174 %174 -%177 = OpFMul %4 %171 %171 -%178 = OpFAdd %4 %176 %177 +%176 = OpFMul %5 %174 %174 +%177 = OpFMul %5 %171 %171 +%178 = OpFAdd %5 %176 %177 OpLine %3 28 14 -%179 = OpVectorTimesScalar %4 %178 %82 +%179 = OpVectorTimesScalar %5 %178 %82 OpLine %3 28 9 -%180 = OpFSub %4 %84 %179 -%181 = OpFMul %4 %175 %180 +%180 = OpFSub %5 %84 %179 +%181 = OpFMul %5 %175 %180 OpLine %3 28 5 OpStore %94 %181 OpLine %3 29 13 -%182 = OpCompositeExtract %5 %174 0 -%183 = OpCompositeExtract %5 %109 0 -%184 = OpFMul %5 %182 %183 -%185 = OpCompositeExtract %5 %171 0 -%186 = OpCompositeExtract %5 %109 1 -%187 = OpFMul %5 %185 %186 -%188 = OpFAdd %5 %184 %187 +%182 = OpCompositeExtract %4 %174 0 +%183 = OpCompositeExtract %4 %109 0 +%184 = OpFMul %4 %182 %183 +%185 = OpCompositeExtract %4 %171 0 +%186 = OpCompositeExtract %4 %109 1 +%187 = OpFMul %4 %185 %186 +%188 = OpFAdd %4 %184 %187 %189 = OpVectorShuffle %6 %174 %174 1 2 %190 = OpLoad %7 %91 %191 = OpVectorShuffle %6 %190 %190 0 2 @@ -827,15 +827,15 @@ OpLine %3 29 13 %195 = OpVectorShuffle %6 %194 %194 1 3 %196 = OpFMul %6 %193 %195 %197 = OpFAdd %6 %192 %196 -%198 = OpCompositeConstruct %4 %188 %197 +%198 = OpCompositeConstruct %5 %188 %197 OpLine %3 30 19 -%199 = OpLoad %4 %94 -%200 = OpDot %5 %199 %198 +%199 = OpLoad %5 %94 +%200 = OpDot %4 %199 %198 OpLine %3 30 12 -%201 = OpFMul %5 %85 %200 +%201 = OpFMul %4 %85 %200 OpReturnValue %201 OpFunctionEnd -%204 = OpFunction %5 None %68 +%204 = OpFunction %4 None %68 %203 = OpFunctionParameter %6 %202 = OpLabel %214 = OpVariable %215 Function %74 @@ -851,11 +851,11 @@ OpStore %212 %220 OpLine %3 39 17 OpLine %3 40 14 OpLine %3 41 15 -%221 = OpCompositeExtract %5 %211 0 -%222 = OpCompositeExtract %5 %211 1 -%223 = OpCompositeExtract %5 %211 1 -%224 = OpFNegate %5 %223 -%225 = OpCompositeExtract %5 %211 0 +%221 = OpCompositeExtract %4 %211 0 +%222 = OpCompositeExtract %4 %211 1 +%223 = OpCompositeExtract %4 %211 1 +%224 = OpFNegate %4 %223 +%225 = OpCompositeExtract %4 %211 0 %226 = OpCompositeConstruct %6 %221 %222 %227 = OpCompositeConstruct %6 %224 %225 %228 = OpCompositeConstruct %9 %226 %227 @@ -877,14 +877,14 @@ OpBranch %230 OpBranch %237 %237 = OpLabel OpLine %3 1 1 -%239 = OpLoad %5 %214 -%240 = OpLoad %5 %216 +%239 = OpLoad %4 %214 +%240 = OpLoad %4 %216 %241 = OpLoad %6 %212 OpLine %3 44 21 -%242 = OpFunctionCall %5 %67 %241 +%242 = OpFunctionCall %4 %67 %241 OpLine %3 44 13 -%243 = OpFMul %5 %240 %242 -%244 = OpFAdd %5 %239 %243 +%243 = OpFMul %4 %240 %242 +%244 = OpFAdd %4 %239 %243 OpLine %3 44 9 OpStore %214 %244 OpLine %3 45 13 @@ -896,9 +896,9 @@ OpLine %3 45 13 OpLine %3 45 9 OpStore %212 %248 OpLine %3 1 1 -%249 = OpLoad %5 %216 +%249 = OpLoad %4 %216 OpLine %3 46 13 -%250 = OpFMul %5 %249 %78 +%250 = OpFMul %4 %249 %78 OpLine %3 46 9 OpStore %216 %250 OpBranch %238 @@ -914,25 +914,25 @@ OpStore %217 %252 OpBranch %229 %230 = OpLabel OpLine %3 1 1 -%253 = OpLoad %5 %214 +%253 = OpLoad %4 %214 OpReturnValue %253 OpFunctionEnd -%257 = OpFunction %4 None %258 +%257 = OpFunction %5 None %258 %255 = OpFunctionParameter %6 %256 = OpFunctionParameter %6 %254 = OpLabel OpBranch %259 %259 = OpLabel OpLine %3 77 9 -%260 = OpCompositeExtract %5 %255 0 -%261 = OpCompositeExtract %5 %256 0 -%262 = OpCompositeExtract %5 %256 1 +%260 = OpCompositeExtract %4 %255 0 +%261 = OpCompositeExtract %4 %256 0 +%262 = OpCompositeExtract %4 %256 1 OpLine %3 78 49 -%263 = OpFunctionCall %5 %204 %255 +%263 = OpFunctionCall %4 %204 %255 OpLine %3 76 12 -%264 = OpExtInst %5 %1 FMix %261 %262 %263 -%265 = OpCompositeExtract %5 %255 1 -%266 = OpCompositeConstruct %4 %260 %264 %265 +%264 = OpExtInst %4 %1 FMix %261 %262 %263 +%265 = OpCompositeExtract %4 %255 1 +%266 = OpCompositeConstruct %5 %260 %264 %265 OpReturnValue %266 OpFunctionEnd %270 = OpFunction %14 None %271 @@ -942,41 +942,41 @@ OpFunctionEnd OpBranch %278 %278 = OpLabel OpLine %3 84 13 -%279 = OpFunctionCall %4 %257 %268 %269 +%279 = OpFunctionCall %5 %257 %268 %269 OpLine %3 86 29 %280 = OpFAdd %6 %268 %273 OpLine %3 86 15 -%281 = OpFunctionCall %4 %257 %280 %269 +%281 = OpFunctionCall %5 %257 %280 %269 OpLine %3 86 15 -%282 = OpFSub %4 %281 %279 +%282 = OpFSub %5 %281 %279 OpLine %3 87 29 %283 = OpFAdd %6 %268 %274 OpLine %3 87 15 -%284 = OpFunctionCall %4 %257 %283 %269 +%284 = OpFunctionCall %5 %257 %283 %269 OpLine %3 87 15 -%285 = OpFSub %4 %284 %279 +%285 = OpFSub %5 %284 %279 OpLine %3 88 29 %286 = OpFAdd %6 %268 %276 OpLine %3 88 15 -%287 = OpFunctionCall %4 %257 %286 %269 +%287 = OpFunctionCall %5 %257 %286 %269 OpLine %3 88 15 -%288 = OpFSub %4 %287 %279 +%288 = OpFSub %5 %287 %279 OpLine %3 89 29 %289 = OpFAdd %6 %268 %277 OpLine %3 89 15 -%290 = OpFunctionCall %4 %257 %289 %269 +%290 = OpFunctionCall %5 %257 %289 %269 OpLine %3 89 15 -%291 = OpFSub %4 %290 %279 +%291 = OpFSub %5 %290 %279 OpLine %3 91 14 -%292 = OpExtInst %4 %1 Cross %285 %282 -%293 = OpExtInst %4 %1 Normalize %292 +%292 = OpExtInst %5 %1 Cross %285 %282 +%293 = OpExtInst %5 %1 Normalize %292 OpLine %3 92 14 -%294 = OpExtInst %4 %1 Cross %291 %288 -%295 = OpExtInst %4 %1 Normalize %294 +%294 = OpExtInst %5 %1 Cross %291 %288 +%295 = OpExtInst %5 %1 Normalize %294 OpLine %3 94 14 -%296 = OpFAdd %4 %293 %295 +%296 = OpFAdd %5 %293 %295 OpLine %3 94 13 -%297 = OpVectorTimesScalar %4 %296 %78 +%297 = OpVectorTimesScalar %5 %296 %78 OpLine %3 96 12 %298 = OpCompositeConstruct %14 %279 %297 OpReturnValue %298 @@ -989,50 +989,50 @@ OpFunctionEnd OpBranch %305 %305 = OpLabel OpLine %3 101 9 -%306 = OpConvertUToF %5 %300 +%306 = OpConvertUToF %4 %300 %307 = OpCompositeExtract %8 %301 0 OpLine %3 101 9 %308 = OpIAdd %8 %307 %126 -%309 = OpConvertUToF %5 %308 -%310 = OpFRem %5 %306 %309 +%309 = OpConvertUToF %4 %308 +%310 = OpFRem %4 %306 %309 %311 = OpCompositeExtract %8 %301 0 OpLine %3 100 12 %312 = OpIAdd %8 %311 %126 %313 = OpUDiv %8 %300 %312 -%314 = OpConvertUToF %5 %313 +%314 = OpConvertUToF %4 %313 %315 = OpCompositeConstruct %6 %310 %314 %316 = OpConvertSToF %6 %302 %317 = OpFAdd %6 %315 %316 OpReturnValue %317 OpFunctionEnd -%320 = OpFunction %4 None %321 +%320 = OpFunction %5 None %321 %319 = OpFunctionParameter %6 %318 = OpLabel OpBranch %328 %328 = OpLabel OpLine %3 270 9 -%329 = OpFunctionCall %5 %67 %319 +%329 = OpFunctionCall %4 %67 %319 OpLine %3 270 9 -%330 = OpFMul %5 %329 %78 +%330 = OpFMul %4 %329 %78 OpLine %3 270 9 -%331 = OpFAdd %5 %330 %78 +%331 = OpFAdd %4 %330 %78 OpLine %3 271 17 %332 = OpFAdd %6 %319 %324 OpLine %3 271 9 -%333 = OpFunctionCall %5 %67 %332 +%333 = OpFunctionCall %4 %67 %332 OpLine %3 271 9 -%334 = OpFMul %5 %333 %78 +%334 = OpFMul %4 %333 %78 OpLine %3 271 9 -%335 = OpFAdd %5 %334 %78 +%335 = OpFAdd %4 %334 %78 OpLine %3 272 17 %336 = OpFAdd %6 %319 %327 OpLine %3 272 9 -%337 = OpFunctionCall %5 %67 %336 +%337 = OpFunctionCall %4 %67 %336 OpLine %3 272 9 -%338 = OpFMul %5 %337 %78 +%338 = OpFMul %4 %337 %78 OpLine %3 269 12 -%339 = OpFAdd %5 %338 %78 -%340 = OpCompositeConstruct %4 %331 %335 %339 +%339 = OpFAdd %4 %338 %78 +%340 = OpCompositeConstruct %5 %331 %335 %339 OpReturnValue %340 OpFunctionEnd %345 = OpFunction %2 None %346 @@ -1145,14 +1145,14 @@ OpLine %3 161 18 %422 = OpUDiv %8 %421 %351 OpLine %3 161 13 %423 = OpUMod %8 %422 %350 -%424 = OpConvertUToF %5 %423 +%424 = OpConvertUToF %4 %423 OpLine %3 162 19 %425 = OpIAdd %8 %408 %126 OpLine %3 162 18 %426 = OpUDiv %8 %425 %351 OpLine %3 162 13 %427 = OpUMod %8 %426 %350 -%428 = OpConvertUToF %5 %427 +%428 = OpConvertUToF %4 %427 OpLine %3 163 14 %429 = OpCompositeConstruct %6 %424 %428 OpLine %3 165 30 @@ -1162,19 +1162,19 @@ OpLine %3 165 30 OpLine %3 165 20 %432 = OpCompositeConstruct %7 %431 %74 %56 OpLine %3 168 21 -%433 = OpCompositeExtract %5 %429 0 +%433 = OpCompositeExtract %4 %429 0 OpLine %3 168 21 %435 = OpAccessChain %434 %417 %351 %436 = OpLoad %8 %435 -%437 = OpConvertUToF %5 %436 -%438 = OpFMul %5 %433 %437 -%439 = OpCompositeExtract %5 %429 1 +%437 = OpConvertUToF %4 %436 +%438 = OpFMul %4 %433 %437 +%439 = OpCompositeExtract %4 %429 1 OpLine %3 168 17 %440 = OpAccessChain %434 %417 %351 %441 = OpLoad %8 %440 -%442 = OpConvertUToF %5 %441 -%443 = OpFMul %5 %439 %442 -%444 = OpFAdd %5 %438 %443 +%442 = OpConvertUToF %4 %441 +%443 = OpFMul %4 %439 %442 +%444 = OpFAdd %4 %438 %443 %445 = OpConvertFToU %8 %444 OpLine %3 168 17 %446 = OpAccessChain %434 %417 %352 @@ -1203,14 +1203,14 @@ OpBranch %470 %470 = OpLabel OpLine %3 181 17 %471 = OpCompositeExtract %6 %454 2 -%472 = OpCompositeExtract %5 %471 0 +%472 = OpCompositeExtract %4 %471 0 OpLine %3 181 17 %473 = OpAccessChain %434 %466 %351 %474 = OpLoad %8 %473 -%475 = OpConvertUToF %5 %474 -%476 = OpFMul %5 %472 %475 +%475 = OpConvertUToF %4 %474 +%476 = OpFMul %4 %472 %475 %477 = OpCompositeExtract %6 %454 2 -%478 = OpCompositeExtract %5 %477 1 +%478 = OpCompositeExtract %4 %477 1 OpLine %3 181 70 %479 = OpAccessChain %434 %466 %351 %480 = OpLoad %8 %479 @@ -1218,19 +1218,19 @@ OpLine %3 181 13 %481 = OpAccessChain %434 %466 %351 %482 = OpLoad %8 %481 %483 = OpIMul %8 %480 %482 -%484 = OpConvertUToF %5 %483 -%485 = OpFMul %5 %478 %484 -%486 = OpFAdd %5 %476 %485 +%484 = OpConvertUToF %4 %483 +%485 = OpFMul %4 %478 %484 +%486 = OpFAdd %4 %476 %485 %487 = OpConvertFToU %8 %486 OpLine %3 181 13 %488 = OpAccessChain %434 %466 %352 %489 = OpLoad %8 %488 %490 = OpIAdd %8 %487 %489 OpLine %3 182 32 -%491 = OpConvertUToF %5 %490 +%491 = OpConvertUToF %4 %490 OpLine %3 182 22 -%492 = OpFDiv %5 %491 %467 -%493 = OpExtInst %5 %1 Floor %492 +%492 = OpFDiv %4 %491 %467 +%493 = OpExtInst %4 %1 Floor %492 %494 = OpConvertFToU %8 %493 OpLine %3 183 22 %495 = OpUMod %8 %490 %349 @@ -1252,43 +1252,43 @@ OpSelectionMerge %504 None OpSwitch %495 %511 0 %505 1 %506 2 %507 3 %508 4 %509 5 %510 %505 = OpLabel OpLine %3 191 37 -%512 = OpCompositeExtract %4 %503 0 -%513 = OpCompositeExtract %5 %512 0 +%512 = OpCompositeExtract %5 %503 0 +%513 = OpCompositeExtract %4 %512 0 OpLine %3 191 20 OpStore %468 %513 OpBranch %504 %506 = OpLabel OpLine %3 192 37 -%514 = OpCompositeExtract %4 %503 0 -%515 = OpCompositeExtract %5 %514 1 +%514 = OpCompositeExtract %5 %503 0 +%515 = OpCompositeExtract %4 %514 1 OpLine %3 192 20 OpStore %468 %515 OpBranch %504 %507 = OpLabel OpLine %3 193 37 -%516 = OpCompositeExtract %4 %503 0 -%517 = OpCompositeExtract %5 %516 2 +%516 = OpCompositeExtract %5 %503 0 +%517 = OpCompositeExtract %4 %516 2 OpLine %3 193 20 OpStore %468 %517 OpBranch %504 %508 = OpLabel OpLine %3 194 37 -%518 = OpCompositeExtract %4 %503 1 -%519 = OpCompositeExtract %5 %518 0 +%518 = OpCompositeExtract %5 %503 1 +%519 = OpCompositeExtract %4 %518 0 OpLine %3 194 20 OpStore %468 %519 OpBranch %504 %509 = OpLabel OpLine %3 195 37 -%520 = OpCompositeExtract %4 %503 1 -%521 = OpCompositeExtract %5 %520 1 +%520 = OpCompositeExtract %5 %503 1 +%521 = OpCompositeExtract %4 %520 1 OpLine %3 195 20 OpStore %468 %521 OpBranch %504 %510 = OpLabel OpLine %3 196 37 -%522 = OpCompositeExtract %4 %503 1 -%523 = OpCompositeExtract %5 %522 2 +%522 = OpCompositeExtract %5 %503 1 +%523 = OpCompositeExtract %4 %522 2 OpLine %3 196 20 OpStore %468 %523 OpBranch %504 @@ -1337,7 +1337,7 @@ OpLine %3 213 13 OpLine %3 213 5 OpStore %469 %540 OpLine %3 222 27 -%541 = OpLoad %5 %468 +%541 = OpLoad %4 %468 %542 = OpBitcast %8 %541 OpLine %3 223 12 %543 = OpLoad %8 %469 @@ -1350,8 +1350,8 @@ OpReturn OpFunctionEnd %558 = OpFunction %2 None %346 %547 = OpLabel -%551 = OpLoad %4 %549 -%553 = OpLoad %4 %552 +%551 = OpLoad %5 %549 +%553 = OpLoad %5 %552 %548 = OpCompositeConstruct %14 %551 %553 %560 = OpAccessChain %559 %39 %135 OpBranch %561 @@ -1359,20 +1359,20 @@ OpBranch %561 OpLine %3 254 25 %563 = OpAccessChain %562 %560 %126 %564 = OpLoad %23 %563 -%565 = OpCompositeExtract %4 %548 0 +%565 = OpCompositeExtract %5 %548 0 OpLine %3 254 25 %566 = OpCompositeConstruct %7 %565 %56 %567 = OpMatrixTimesVector %7 %564 %566 OpLine %3 255 18 -%568 = OpCompositeExtract %4 %548 1 +%568 = OpCompositeExtract %5 %548 1 OpLine %3 256 12 -%569 = OpCompositeExtract %4 %548 0 +%569 = OpCompositeExtract %5 %548 0 %570 = OpCompositeConstruct %26 %567 %568 %569 %571 = OpCompositeExtract %7 %570 0 OpStore %554 %571 -%572 = OpCompositeExtract %4 %570 1 +%572 = OpCompositeExtract %5 %570 1 OpStore %555 %572 -%573 = OpCompositeExtract %4 %570 2 +%573 = OpCompositeExtract %5 %570 2 OpStore %557 %573 OpReturn OpFunctionEnd @@ -1380,8 +1380,8 @@ OpFunctionEnd %574 = OpLabel %592 = OpVariable %95 Function %593 %577 = OpLoad %7 %576 -%579 = OpLoad %4 %578 -%581 = OpLoad %4 %580 +%579 = OpLoad %5 %578 +%581 = OpLoad %5 %580 %575 = OpCompositeConstruct %26 %577 %579 %581 %584 = OpAccessChain %559 %39 %135 %586 = OpAccessChain %585 %42 %135 @@ -1389,70 +1389,70 @@ OpBranch %594 %594 = OpLabel OpLine %3 278 28 OpLine %3 278 17 -%595 = OpCompositeExtract %4 %575 2 -%596 = OpExtInst %4 %1 Fract %595 -%597 = OpExtInst %4 %1 SmoothStep %80 %587 %596 +%595 = OpCompositeExtract %5 %575 2 +%596 = OpExtInst %5 %1 Fract %595 +%597 = OpExtInst %5 %1 SmoothStep %80 %587 %596 OpLine %3 278 5 OpStore %592 %597 OpLine %3 279 17 OpLine %3 279 13 %598 = OpAccessChain %125 %592 %135 -%599 = OpLoad %5 %598 +%599 = OpLoad %4 %598 %600 = OpAccessChain %125 %592 %126 -%601 = OpLoad %5 %600 -%602 = OpFMul %5 %599 %601 +%601 = OpLoad %4 %600 +%602 = OpFMul %4 %599 %601 %603 = OpAccessChain %125 %592 %350 -%604 = OpLoad %5 %603 -%605 = OpFMul %5 %602 %604 -%606 = OpCompositeConstruct %4 %605 %605 %605 -%607 = OpExtInst %4 %1 FMix %589 %591 %606 +%604 = OpLoad %4 %603 +%605 = OpFMul %4 %602 %604 +%606 = OpCompositeConstruct %5 %605 %605 %605 +%607 = OpExtInst %5 %1 FMix %589 %591 %606 OpLine %3 279 5 OpStore %592 %607 OpLine %3 282 25 %609 = OpAccessChain %608 %586 %126 -%610 = OpLoad %4 %609 -%611 = OpVectorTimesScalar %4 %610 %272 +%610 = OpLoad %5 %609 +%611 = OpVectorTimesScalar %5 %610 %272 OpLine %3 284 21 %612 = OpAccessChain %608 %586 %135 -%613 = OpLoad %4 %612 -%614 = OpCompositeExtract %4 %575 2 -%615 = OpFSub %4 %613 %614 -%616 = OpExtInst %4 %1 Normalize %615 +%613 = OpLoad %5 %612 +%614 = OpCompositeExtract %5 %575 2 +%615 = OpFSub %5 %613 %614 +%616 = OpExtInst %5 %1 Normalize %615 OpLine %3 285 20 %618 = OpAccessChain %617 %584 %135 %619 = OpLoad %7 %618 -%620 = OpVectorShuffle %4 %619 %619 0 1 2 -%621 = OpCompositeExtract %4 %575 2 -%622 = OpFSub %4 %620 %621 -%623 = OpExtInst %4 %1 Normalize %622 +%620 = OpVectorShuffle %5 %619 %619 0 1 2 +%621 = OpCompositeExtract %5 %575 2 +%622 = OpFSub %5 %620 %621 +%623 = OpExtInst %5 %1 Normalize %622 OpLine %3 286 20 -%624 = OpFAdd %4 %623 %616 -%625 = OpExtInst %4 %1 Normalize %624 +%624 = OpFAdd %5 %623 %616 +%625 = OpExtInst %5 %1 Normalize %624 OpLine %3 288 32 -%626 = OpCompositeExtract %4 %575 1 -%627 = OpDot %5 %626 %616 +%626 = OpCompositeExtract %5 %575 1 +%627 = OpDot %4 %626 %616 OpLine %3 288 28 -%628 = OpExtInst %5 %1 FMax %627 %74 +%628 = OpExtInst %4 %1 FMax %627 %74 OpLine %3 289 25 %629 = OpAccessChain %608 %586 %126 -%630 = OpLoad %4 %629 -%631 = OpVectorTimesScalar %4 %630 %628 +%630 = OpLoad %5 %629 +%631 = OpVectorTimesScalar %5 %630 %628 OpLine %3 291 37 -%632 = OpCompositeExtract %4 %575 1 -%633 = OpDot %5 %632 %625 +%632 = OpCompositeExtract %5 %575 1 +%633 = OpDot %4 %632 %625 OpLine %3 291 33 -%634 = OpExtInst %5 %1 FMax %633 %74 +%634 = OpExtInst %4 %1 FMax %633 %74 OpLine %3 291 29 -%635 = OpExtInst %5 %1 Pow %634 %323 +%635 = OpExtInst %4 %1 Pow %634 %323 OpLine %3 292 26 %636 = OpAccessChain %608 %586 %126 -%637 = OpLoad %4 %636 -%638 = OpVectorTimesScalar %4 %637 %635 +%637 = OpLoad %5 %636 +%638 = OpVectorTimesScalar %5 %637 %635 OpLine %3 294 18 -%639 = OpFAdd %4 %611 %631 -%640 = OpFAdd %4 %639 %638 -%641 = OpLoad %4 %592 -%642 = OpFMul %4 %640 %641 +%639 = OpFAdd %5 %611 %631 +%640 = OpFAdd %5 %639 %638 +%641 = OpLoad %5 %592 +%642 = OpFMul %5 %640 %641 OpLine %3 296 12 %643 = OpCompositeConstruct %7 %642 %56 OpStore %582 %643 diff --git a/naga/tests/out/spv/fragment-output.spvasm b/naga/tests/out/spv/fragment-output.spvasm index c61ffb8258..414c646c73 100644 --- a/naga/tests/out/spv/fragment-output.spvasm +++ b/naga/tests/out/spv/fragment-output.spvasm @@ -34,25 +34,25 @@ OpDecorate %76 Location 3 OpDecorate %78 Location 4 OpDecorate %80 Location 5 %2 = OpTypeVoid -%4 = OpTypeFloat 32 -%3 = OpTypeVector %4 4 -%6 = OpTypeInt 32 1 -%5 = OpTypeVector %6 4 -%8 = OpTypeInt 32 0 -%7 = OpTypeVector %8 4 -%9 = OpTypeVector %4 3 -%10 = OpTypeVector %6 3 -%11 = OpTypeVector %8 3 -%12 = OpTypeStruct %3 %5 %7 %9 %10 %11 -%13 = OpTypeVector %4 2 -%14 = OpTypeVector %6 2 -%15 = OpTypeVector %8 2 -%16 = OpTypeStruct %13 %14 %15 %4 %6 %8 -%19 = OpTypePointer Output %3 +%3 = OpTypeFloat 32 +%4 = OpTypeVector %3 4 +%5 = OpTypeInt 32 1 +%6 = OpTypeVector %5 4 +%7 = OpTypeInt 32 0 +%8 = OpTypeVector %7 4 +%9 = OpTypeVector %3 3 +%10 = OpTypeVector %5 3 +%11 = OpTypeVector %7 3 +%12 = OpTypeStruct %4 %6 %8 %9 %10 %11 +%13 = OpTypeVector %3 2 +%14 = OpTypeVector %5 2 +%15 = OpTypeVector %7 2 +%16 = OpTypeStruct %13 %14 %15 %3 %5 %7 +%19 = OpTypePointer Output %4 %18 = OpVariable %19 Output -%21 = OpTypePointer Output %5 +%21 = OpTypePointer Output %6 %20 = OpVariable %21 Output -%23 = OpTypePointer Output %7 +%23 = OpTypePointer Output %8 %22 = OpVariable %23 Output %25 = OpTypePointer Output %9 %24 = OpVariable %25 Output @@ -61,39 +61,39 @@ OpDecorate %80 Location 5 %29 = OpTypePointer Output %11 %28 = OpVariable %29 Output %31 = OpTypeFunction %2 -%32 = OpConstant %4 0.0 -%33 = OpConstantComposite %3 %32 %32 %32 %32 -%34 = OpConstant %6 0 -%35 = OpConstantComposite %5 %34 %34 %34 %34 -%36 = OpConstant %8 0 -%37 = OpConstantComposite %7 %36 %36 %36 %36 +%32 = OpConstant %3 0.0 +%33 = OpConstantComposite %4 %32 %32 %32 %32 +%34 = OpConstant %5 0 +%35 = OpConstantComposite %6 %34 %34 %34 %34 +%36 = OpConstant %7 0 +%37 = OpConstantComposite %8 %36 %36 %36 %36 %38 = OpConstantComposite %9 %32 %32 %32 %39 = OpConstantComposite %10 %34 %34 %34 %40 = OpConstantComposite %11 %36 %36 %36 %42 = OpTypePointer Function %12 %43 = OpConstantNull %12 -%45 = OpTypePointer Function %3 -%47 = OpTypePointer Function %5 -%48 = OpConstant %8 1 -%50 = OpTypePointer Function %7 -%51 = OpConstant %8 2 +%45 = OpTypePointer Function %4 +%47 = OpTypePointer Function %6 +%48 = OpConstant %7 1 +%50 = OpTypePointer Function %8 +%51 = OpConstant %7 2 %53 = OpTypePointer Function %9 -%54 = OpConstant %8 3 +%54 = OpConstant %7 3 %56 = OpTypePointer Function %10 -%57 = OpConstant %8 4 +%57 = OpConstant %7 4 %59 = OpTypePointer Function %11 -%60 = OpConstant %8 5 +%60 = OpConstant %7 5 %71 = OpTypePointer Output %13 %70 = OpVariable %71 Output %73 = OpTypePointer Output %14 %72 = OpVariable %73 Output %75 = OpTypePointer Output %15 %74 = OpVariable %75 Output -%77 = OpTypePointer Output %4 +%77 = OpTypePointer Output %3 %76 = OpVariable %77 Output -%79 = OpTypePointer Output %6 +%79 = OpTypePointer Output %5 %78 = OpVariable %79 Output -%81 = OpTypePointer Output %8 +%81 = OpTypePointer Output %7 %80 = OpVariable %81 Output %83 = OpConstantComposite %13 %32 %32 %84 = OpConstantComposite %14 %34 %34 @@ -103,9 +103,9 @@ OpDecorate %80 Location 5 %90 = OpTypePointer Function %13 %92 = OpTypePointer Function %14 %94 = OpTypePointer Function %15 -%96 = OpTypePointer Function %4 -%98 = OpTypePointer Function %6 -%100 = OpTypePointer Function %8 +%96 = OpTypePointer Function %3 +%98 = OpTypePointer Function %5 +%100 = OpTypePointer Function %7 %30 = OpFunction %2 None %31 %17 = OpLabel %41 = OpVariable %42 Function %43 @@ -124,11 +124,11 @@ OpStore %58 %39 %61 = OpAccessChain %59 %41 %60 OpStore %61 %40 %62 = OpLoad %12 %41 -%63 = OpCompositeExtract %3 %62 0 +%63 = OpCompositeExtract %4 %62 0 OpStore %18 %63 -%64 = OpCompositeExtract %5 %62 1 +%64 = OpCompositeExtract %6 %62 1 OpStore %20 %64 -%65 = OpCompositeExtract %7 %62 2 +%65 = OpCompositeExtract %8 %62 2 OpStore %22 %65 %66 = OpCompositeExtract %9 %62 3 OpStore %24 %66 @@ -162,11 +162,11 @@ OpStore %70 %103 OpStore %72 %104 %105 = OpCompositeExtract %15 %102 2 OpStore %74 %105 -%106 = OpCompositeExtract %4 %102 3 +%106 = OpCompositeExtract %3 %102 3 OpStore %76 %106 -%107 = OpCompositeExtract %6 %102 4 +%107 = OpCompositeExtract %5 %102 4 OpStore %78 %107 -%108 = OpCompositeExtract %8 %102 5 +%108 = OpCompositeExtract %7 %102 5 OpStore %80 %108 OpReturn OpFunctionEnd \ No newline at end of file diff --git a/naga/tests/out/spv/interface.compute.spvasm b/naga/tests/out/spv/interface.compute.spvasm index 73f6ecb2c2..912d28d5b0 100644 --- a/naga/tests/out/spv/interface.compute.spvasm +++ b/naga/tests/out/spv/interface.compute.spvasm @@ -21,11 +21,11 @@ OpDecorate %22 BuiltIn LocalInvocationIndex OpDecorate %25 BuiltIn WorkgroupId OpDecorate %27 BuiltIn NumWorkgroups %2 = OpTypeVoid -%4 = OpTypeFloat 32 -%3 = OpTypeVector %4 4 -%5 = OpTypeStruct %3 %4 +%3 = OpTypeFloat 32 +%4 = OpTypeVector %3 4 +%5 = OpTypeStruct %4 %3 %6 = OpTypeInt 32 0 -%7 = OpTypeStruct %4 %6 %4 +%7 = OpTypeStruct %3 %6 %3 %8 = OpTypeBool %10 = OpConstant %6 1 %9 = OpTypeArray %6 %10 diff --git a/naga/tests/out/spv/interface.fragment.spvasm b/naga/tests/out/spv/interface.fragment.spvasm index bb42c678ec..891b10d863 100644 --- a/naga/tests/out/spv/interface.fragment.spvasm +++ b/naga/tests/out/spv/interface.fragment.spvasm @@ -30,38 +30,38 @@ OpDecorate %30 BuiltIn FragDepth OpDecorate %32 BuiltIn SampleMask OpDecorate %34 Location 0 %2 = OpTypeVoid -%4 = OpTypeFloat 32 -%3 = OpTypeVector %4 4 -%5 = OpTypeStruct %3 %4 +%3 = OpTypeFloat 32 +%4 = OpTypeVector %3 4 +%5 = OpTypeStruct %4 %3 %6 = OpTypeInt 32 0 -%7 = OpTypeStruct %4 %6 %4 +%7 = OpTypeStruct %3 %6 %3 %8 = OpTypeBool %10 = OpConstant %6 1 %9 = OpTypeArray %6 %10 %11 = OpTypeVector %6 3 %12 = OpTypeStruct %6 %13 = OpTypeStruct %6 -%17 = OpTypePointer Input %3 +%17 = OpTypePointer Input %4 %16 = OpVariable %17 Input -%20 = OpTypePointer Input %4 +%20 = OpTypePointer Input %3 %19 = OpVariable %20 Input %23 = OpTypePointer Input %8 %22 = OpVariable %23 Input %26 = OpTypePointer Input %6 %25 = OpVariable %26 Input %28 = OpVariable %26 Input -%31 = OpTypePointer Output %4 +%31 = OpTypePointer Output %3 %30 = OpVariable %31 Output %33 = OpTypePointer Output %6 %32 = OpVariable %33 Output %34 = OpVariable %31 Output %36 = OpTypeFunction %2 -%37 = OpConstant %4 0.0 -%38 = OpConstant %4 1.0 +%37 = OpConstant %3 0.0 +%38 = OpConstant %3 1.0 %35 = OpFunction %2 None %36 %14 = OpLabel -%18 = OpLoad %3 %16 -%21 = OpLoad %4 %19 +%18 = OpLoad %4 %16 +%21 = OpLoad %3 %19 %15 = OpCompositeConstruct %5 %18 %21 %24 = OpLoad %8 %22 %27 = OpLoad %6 %25 @@ -70,17 +70,17 @@ OpBranch %39 %39 = OpLabel %40 = OpShiftLeftLogical %6 %10 %27 %41 = OpBitwiseAnd %6 %29 %40 -%42 = OpSelect %4 %24 %38 %37 -%43 = OpCompositeExtract %4 %15 1 +%42 = OpSelect %3 %24 %38 %37 +%43 = OpCompositeExtract %3 %15 1 %44 = OpCompositeConstruct %7 %43 %41 %42 -%45 = OpCompositeExtract %4 %44 0 +%45 = OpCompositeExtract %3 %44 0 OpStore %30 %45 -%46 = OpLoad %4 %30 -%47 = OpExtInst %4 %1 FClamp %46 %37 %38 +%46 = OpLoad %3 %30 +%47 = OpExtInst %3 %1 FClamp %46 %37 %38 OpStore %30 %47 %48 = OpCompositeExtract %6 %44 1 OpStore %32 %48 -%49 = OpCompositeExtract %4 %44 2 +%49 = OpCompositeExtract %3 %44 2 OpStore %34 %49 OpReturn OpFunctionEnd \ No newline at end of file diff --git a/naga/tests/out/spv/interface.vertex.spvasm b/naga/tests/out/spv/interface.vertex.spvasm index eaa947f5b3..93cd5adedd 100644 --- a/naga/tests/out/spv/interface.vertex.spvasm +++ b/naga/tests/out/spv/interface.vertex.spvasm @@ -22,11 +22,11 @@ OpDecorate %22 BuiltIn Position OpDecorate %24 Location 1 OpDecorate %26 BuiltIn PointSize %2 = OpTypeVoid -%4 = OpTypeFloat 32 -%3 = OpTypeVector %4 4 -%5 = OpTypeStruct %3 %4 +%3 = OpTypeFloat 32 +%4 = OpTypeVector %3 4 +%5 = OpTypeStruct %4 %3 %6 = OpTypeInt 32 0 -%7 = OpTypeStruct %4 %6 %4 +%7 = OpTypeStruct %3 %6 %3 %8 = OpTypeBool %10 = OpConstant %6 1 %9 = OpTypeArray %6 %10 @@ -37,15 +37,15 @@ OpDecorate %26 BuiltIn PointSize %15 = OpVariable %16 Input %18 = OpVariable %16 Input %20 = OpVariable %16 Input -%23 = OpTypePointer Output %3 +%23 = OpTypePointer Output %4 %22 = OpVariable %23 Output -%25 = OpTypePointer Output %4 +%25 = OpTypePointer Output %3 %24 = OpVariable %25 Output -%27 = OpTypePointer Output %4 +%27 = OpTypePointer Output %3 %26 = OpVariable %27 Output -%28 = OpConstant %4 1.0 +%28 = OpConstant %3 1.0 %30 = OpTypeFunction %2 -%31 = OpConstantComposite %3 %28 %28 %28 %28 +%31 = OpConstantComposite %4 %28 %28 %28 %28 %29 = OpFunction %2 None %30 %14 = OpLabel %17 = OpLoad %6 %15 @@ -56,11 +56,11 @@ OpBranch %32 %32 = OpLabel %33 = OpIAdd %6 %17 %19 %34 = OpIAdd %6 %33 %21 -%35 = OpConvertUToF %4 %34 +%35 = OpConvertUToF %3 %34 %36 = OpCompositeConstruct %5 %31 %35 -%37 = OpCompositeExtract %3 %36 0 +%37 = OpCompositeExtract %4 %36 0 OpStore %22 %37 -%38 = OpCompositeExtract %4 %36 1 +%38 = OpCompositeExtract %3 %36 1 OpStore %24 %38 OpReturn OpFunctionEnd \ No newline at end of file diff --git a/naga/tests/out/spv/interface.vertex_two_structs.spvasm b/naga/tests/out/spv/interface.vertex_two_structs.spvasm index bcc4aab4e5..cad89cc551 100644 --- a/naga/tests/out/spv/interface.vertex_two_structs.spvasm +++ b/naga/tests/out/spv/interface.vertex_two_structs.spvasm @@ -20,11 +20,11 @@ OpDecorate %22 Invariant OpDecorate %22 BuiltIn Position OpDecorate %24 BuiltIn PointSize %2 = OpTypeVoid -%4 = OpTypeFloat 32 -%3 = OpTypeVector %4 4 -%5 = OpTypeStruct %3 %4 +%3 = OpTypeFloat 32 +%4 = OpTypeVector %3 4 +%5 = OpTypeStruct %4 %3 %6 = OpTypeInt 32 0 -%7 = OpTypeStruct %4 %6 %4 +%7 = OpTypeStruct %3 %6 %3 %8 = OpTypeBool %10 = OpConstant %6 1 %9 = OpTypeArray %6 %10 @@ -34,14 +34,14 @@ OpDecorate %24 BuiltIn PointSize %17 = OpTypePointer Input %6 %16 = OpVariable %17 Input %20 = OpVariable %17 Input -%23 = OpTypePointer Output %3 +%23 = OpTypePointer Output %4 %22 = OpVariable %23 Output -%25 = OpTypePointer Output %4 +%25 = OpTypePointer Output %3 %24 = OpVariable %25 Output -%26 = OpConstant %4 1.0 +%26 = OpConstant %3 1.0 %28 = OpTypeFunction %2 %29 = OpConstant %6 2 -%30 = OpConstant %4 0.0 +%30 = OpConstant %3 0.0 %32 = OpTypePointer Function %6 %27 = OpFunction %2 None %28 %14 = OpLabel @@ -54,12 +54,12 @@ OpStore %24 %26 OpBranch %33 %33 = OpLabel %34 = OpCompositeExtract %6 %15 0 -%35 = OpConvertUToF %4 %34 +%35 = OpConvertUToF %3 %34 %36 = OpCompositeExtract %6 %19 0 -%37 = OpConvertUToF %4 %36 +%37 = OpConvertUToF %3 %36 %38 = OpLoad %6 %31 -%39 = OpConvertUToF %4 %38 -%40 = OpCompositeConstruct %3 %35 %37 %39 %30 +%39 = OpConvertUToF %3 %38 +%40 = OpCompositeConstruct %4 %35 %37 %39 %30 OpStore %22 %40 OpReturn OpFunctionEnd \ No newline at end of file diff --git a/naga/tests/out/spv/interpolate.spvasm b/naga/tests/out/spv/interpolate.spvasm index f22f8dd667..a31db0a019 100644 --- a/naga/tests/out/spv/interpolate.spvasm +++ b/naga/tests/out/spv/interpolate.spvasm @@ -95,19 +95,19 @@ OpDecorate %117 Centroid OpDecorate %119 Location 9 OpDecorate %119 Sample %2 = OpTypeVoid -%4 = OpTypeFloat 32 -%3 = OpTypeVector %4 4 +%3 = OpTypeFloat 32 +%4 = OpTypeVector %3 4 %5 = OpTypeInt 32 0 -%6 = OpTypeVector %4 2 -%7 = OpTypeVector %4 3 -%8 = OpTypeStruct %3 %5 %5 %5 %4 %6 %7 %3 %4 %4 -%11 = OpTypePointer Output %3 +%6 = OpTypeVector %3 2 +%7 = OpTypeVector %3 3 +%8 = OpTypeStruct %4 %5 %5 %5 %3 %6 %7 %4 %3 %3 +%11 = OpTypePointer Output %4 %10 = OpVariable %11 Output %13 = OpTypePointer Output %5 %12 = OpVariable %13 Output %14 = OpVariable %13 Output %15 = OpVariable %13 Output -%17 = OpTypePointer Output %4 +%17 = OpTypePointer Output %3 %16 = OpVariable %17 Output %19 = OpTypePointer Output %6 %18 = OpVariable %19 Output @@ -116,55 +116,55 @@ OpDecorate %119 Sample %22 = OpVariable %11 Output %23 = OpVariable %17 Output %24 = OpVariable %17 Output -%26 = OpTypePointer Output %4 +%26 = OpTypePointer Output %3 %25 = OpVariable %26 Output -%27 = OpConstant %4 1.0 +%27 = OpConstant %3 1.0 %29 = OpTypeFunction %2 -%30 = OpConstant %4 2.0 -%31 = OpConstant %4 4.0 -%32 = OpConstant %4 5.0 -%33 = OpConstant %4 6.0 -%34 = OpConstantComposite %3 %30 %31 %32 %33 +%30 = OpConstant %3 2.0 +%31 = OpConstant %3 4.0 +%32 = OpConstant %3 5.0 +%33 = OpConstant %3 6.0 +%34 = OpConstantComposite %4 %30 %31 %32 %33 %35 = OpConstant %5 8 %36 = OpConstant %5 9 %37 = OpConstant %5 10 -%38 = OpConstant %4 27.0 -%39 = OpConstant %4 64.0 -%40 = OpConstant %4 125.0 +%38 = OpConstant %3 27.0 +%39 = OpConstant %3 64.0 +%40 = OpConstant %3 125.0 %41 = OpConstantComposite %6 %39 %40 -%42 = OpConstant %4 216.0 -%43 = OpConstant %4 343.0 -%44 = OpConstant %4 512.0 +%42 = OpConstant %3 216.0 +%43 = OpConstant %3 343.0 +%44 = OpConstant %3 512.0 %45 = OpConstantComposite %7 %42 %43 %44 -%46 = OpConstant %4 729.0 -%47 = OpConstant %4 1000.0 -%48 = OpConstant %4 1331.0 -%49 = OpConstant %4 1728.0 -%50 = OpConstantComposite %3 %46 %47 %48 %49 -%51 = OpConstant %4 2197.0 -%52 = OpConstant %4 2744.0 +%46 = OpConstant %3 729.0 +%47 = OpConstant %3 1000.0 +%48 = OpConstant %3 1331.0 +%49 = OpConstant %3 1728.0 +%50 = OpConstantComposite %4 %46 %47 %48 %49 +%51 = OpConstant %3 2197.0 +%52 = OpConstant %3 2744.0 %54 = OpTypePointer Function %8 %55 = OpConstantNull %8 -%57 = OpTypePointer Function %3 +%57 = OpTypePointer Function %4 %58 = OpConstant %5 0 %60 = OpTypePointer Function %5 %61 = OpConstant %5 1 %63 = OpConstant %5 2 %65 = OpConstant %5 3 -%67 = OpTypePointer Function %4 +%67 = OpTypePointer Function %3 %68 = OpConstant %5 4 %70 = OpTypePointer Function %6 %71 = OpConstant %5 5 %73 = OpTypePointer Function %7 %74 = OpConstant %5 6 %76 = OpConstant %5 7 -%97 = OpTypePointer Input %3 +%97 = OpTypePointer Input %4 %96 = OpVariable %97 Input %100 = OpTypePointer Input %5 %99 = OpVariable %100 Input %102 = OpVariable %100 Input %104 = OpVariable %100 Input -%107 = OpTypePointer Input %4 +%107 = OpTypePointer Input %3 %106 = OpVariable %107 Input %110 = OpTypePointer Input %6 %109 = OpVariable %110 Input @@ -200,11 +200,11 @@ OpStore %78 %51 %79 = OpAccessChain %67 %53 %36 OpStore %79 %52 %80 = OpLoad %8 %53 -%81 = OpCompositeExtract %3 %80 0 +%81 = OpCompositeExtract %4 %80 0 OpStore %10 %81 %82 = OpAccessChain %26 %10 %61 -%83 = OpLoad %4 %82 -%84 = OpFNegate %4 %83 +%83 = OpLoad %3 %82 +%84 = OpFNegate %3 %83 OpStore %82 %84 %85 = OpCompositeExtract %5 %80 1 OpStore %12 %85 @@ -212,32 +212,32 @@ OpStore %12 %85 OpStore %14 %86 %87 = OpCompositeExtract %5 %80 3 OpStore %15 %87 -%88 = OpCompositeExtract %4 %80 4 +%88 = OpCompositeExtract %3 %80 4 OpStore %16 %88 %89 = OpCompositeExtract %6 %80 5 OpStore %18 %89 %90 = OpCompositeExtract %7 %80 6 OpStore %20 %90 -%91 = OpCompositeExtract %3 %80 7 +%91 = OpCompositeExtract %4 %80 7 OpStore %22 %91 -%92 = OpCompositeExtract %4 %80 8 +%92 = OpCompositeExtract %3 %80 8 OpStore %23 %92 -%93 = OpCompositeExtract %4 %80 9 +%93 = OpCompositeExtract %3 %80 9 OpStore %24 %93 OpReturn OpFunctionEnd %121 = OpFunction %2 None %29 %94 = OpLabel -%98 = OpLoad %3 %96 +%98 = OpLoad %4 %96 %101 = OpLoad %5 %99 %103 = OpLoad %5 %102 %105 = OpLoad %5 %104 -%108 = OpLoad %4 %106 +%108 = OpLoad %3 %106 %111 = OpLoad %6 %109 %114 = OpLoad %7 %112 -%116 = OpLoad %3 %115 -%118 = OpLoad %4 %117 -%120 = OpLoad %4 %119 +%116 = OpLoad %4 %115 +%118 = OpLoad %3 %117 +%120 = OpLoad %3 %119 %95 = OpCompositeConstruct %8 %98 %101 %103 %105 %108 %111 %114 %116 %118 %120 OpBranch %122 %122 = OpLabel diff --git a/naga/tests/out/spv/interpolate_compat.spvasm b/naga/tests/out/spv/interpolate_compat.spvasm index 4df96d5da9..37dea90ae9 100644 --- a/naga/tests/out/spv/interpolate_compat.spvasm +++ b/naga/tests/out/spv/interpolate_compat.spvasm @@ -87,18 +87,18 @@ OpDecorate %111 Centroid OpDecorate %113 Location 9 OpDecorate %113 Sample %2 = OpTypeVoid -%4 = OpTypeFloat 32 -%3 = OpTypeVector %4 4 +%3 = OpTypeFloat 32 +%4 = OpTypeVector %3 4 %5 = OpTypeInt 32 0 -%6 = OpTypeVector %4 2 -%7 = OpTypeVector %4 3 -%8 = OpTypeStruct %3 %5 %5 %4 %6 %7 %3 %4 %4 -%11 = OpTypePointer Output %3 +%6 = OpTypeVector %3 2 +%7 = OpTypeVector %3 3 +%8 = OpTypeStruct %4 %5 %5 %3 %6 %7 %4 %3 %3 +%11 = OpTypePointer Output %4 %10 = OpVariable %11 Output %13 = OpTypePointer Output %5 %12 = OpVariable %13 Output %14 = OpVariable %13 Output -%16 = OpTypePointer Output %4 +%16 = OpTypePointer Output %3 %15 = OpVariable %16 Output %18 = OpTypePointer Output %6 %17 = OpVariable %18 Output @@ -107,40 +107,40 @@ OpDecorate %113 Sample %21 = OpVariable %11 Output %22 = OpVariable %16 Output %23 = OpVariable %16 Output -%25 = OpTypePointer Output %4 +%25 = OpTypePointer Output %3 %24 = OpVariable %25 Output -%26 = OpConstant %4 1.0 +%26 = OpConstant %3 1.0 %28 = OpTypeFunction %2 -%29 = OpConstant %4 2.0 -%30 = OpConstant %4 4.0 -%31 = OpConstant %4 5.0 -%32 = OpConstant %4 6.0 -%33 = OpConstantComposite %3 %29 %30 %31 %32 +%29 = OpConstant %3 2.0 +%30 = OpConstant %3 4.0 +%31 = OpConstant %3 5.0 +%32 = OpConstant %3 6.0 +%33 = OpConstantComposite %4 %29 %30 %31 %32 %34 = OpConstant %5 8 %35 = OpConstant %5 10 -%36 = OpConstant %4 27.0 -%37 = OpConstant %4 64.0 -%38 = OpConstant %4 125.0 +%36 = OpConstant %3 27.0 +%37 = OpConstant %3 64.0 +%38 = OpConstant %3 125.0 %39 = OpConstantComposite %6 %37 %38 -%40 = OpConstant %4 216.0 -%41 = OpConstant %4 343.0 -%42 = OpConstant %4 512.0 +%40 = OpConstant %3 216.0 +%41 = OpConstant %3 343.0 +%42 = OpConstant %3 512.0 %43 = OpConstantComposite %7 %40 %41 %42 -%44 = OpConstant %4 729.0 -%45 = OpConstant %4 1000.0 -%46 = OpConstant %4 1331.0 -%47 = OpConstant %4 1728.0 -%48 = OpConstantComposite %3 %44 %45 %46 %47 -%49 = OpConstant %4 2197.0 -%50 = OpConstant %4 2744.0 +%44 = OpConstant %3 729.0 +%45 = OpConstant %3 1000.0 +%46 = OpConstant %3 1331.0 +%47 = OpConstant %3 1728.0 +%48 = OpConstantComposite %4 %44 %45 %46 %47 +%49 = OpConstant %3 2197.0 +%50 = OpConstant %3 2744.0 %52 = OpTypePointer Function %8 %53 = OpConstantNull %8 -%55 = OpTypePointer Function %3 +%55 = OpTypePointer Function %4 %56 = OpConstant %5 0 %58 = OpTypePointer Function %5 %59 = OpConstant %5 1 %61 = OpConstant %5 2 -%63 = OpTypePointer Function %4 +%63 = OpTypePointer Function %3 %64 = OpConstant %5 3 %66 = OpTypePointer Function %6 %67 = OpConstant %5 4 @@ -148,12 +148,12 @@ OpDecorate %113 Sample %70 = OpConstant %5 5 %72 = OpConstant %5 6 %74 = OpConstant %5 7 -%93 = OpTypePointer Input %3 +%93 = OpTypePointer Input %4 %92 = OpVariable %93 Input %96 = OpTypePointer Input %5 %95 = OpVariable %96 Input %98 = OpVariable %96 Input -%101 = OpTypePointer Input %4 +%101 = OpTypePointer Input %3 %100 = OpVariable %101 Input %104 = OpTypePointer Input %6 %103 = OpVariable %104 Input @@ -187,41 +187,41 @@ OpStore %75 %49 %76 = OpAccessChain %63 %51 %34 OpStore %76 %50 %77 = OpLoad %8 %51 -%78 = OpCompositeExtract %3 %77 0 +%78 = OpCompositeExtract %4 %77 0 OpStore %10 %78 %79 = OpAccessChain %25 %10 %59 -%80 = OpLoad %4 %79 -%81 = OpFNegate %4 %80 +%80 = OpLoad %3 %79 +%81 = OpFNegate %3 %80 OpStore %79 %81 %82 = OpCompositeExtract %5 %77 1 OpStore %12 %82 %83 = OpCompositeExtract %5 %77 2 OpStore %14 %83 -%84 = OpCompositeExtract %4 %77 3 +%84 = OpCompositeExtract %3 %77 3 OpStore %15 %84 %85 = OpCompositeExtract %6 %77 4 OpStore %17 %85 %86 = OpCompositeExtract %7 %77 5 OpStore %19 %86 -%87 = OpCompositeExtract %3 %77 6 +%87 = OpCompositeExtract %4 %77 6 OpStore %21 %87 -%88 = OpCompositeExtract %4 %77 7 +%88 = OpCompositeExtract %3 %77 7 OpStore %22 %88 -%89 = OpCompositeExtract %4 %77 8 +%89 = OpCompositeExtract %3 %77 8 OpStore %23 %89 OpReturn OpFunctionEnd %115 = OpFunction %2 None %28 %90 = OpLabel -%94 = OpLoad %3 %92 +%94 = OpLoad %4 %92 %97 = OpLoad %5 %95 %99 = OpLoad %5 %98 -%102 = OpLoad %4 %100 +%102 = OpLoad %3 %100 %105 = OpLoad %6 %103 %108 = OpLoad %7 %106 -%110 = OpLoad %3 %109 -%112 = OpLoad %4 %111 -%114 = OpLoad %4 %113 +%110 = OpLoad %4 %109 +%112 = OpLoad %3 %111 +%114 = OpLoad %3 %113 %91 = OpCompositeConstruct %8 %94 %97 %99 %102 %105 %108 %110 %112 %114 OpBranch %116 %116 = OpLabel diff --git a/naga/tests/out/spv/math-functions.spvasm b/naga/tests/out/spv/math-functions.spvasm index 366857f91f..47efe2a6fe 100644 --- a/naga/tests/out/spv/math-functions.spvasm +++ b/naga/tests/out/spv/math-functions.spvasm @@ -18,27 +18,27 @@ OpMemberDecorate %14 1 Offset 4 OpMemberDecorate %15 0 Offset 0 OpMemberDecorate %15 1 Offset 16 %2 = OpTypeVoid -%4 = OpTypeFloat 32 -%3 = OpTypeVector %4 4 +%3 = OpTypeFloat 32 +%4 = OpTypeVector %3 4 %6 = OpTypeInt 32 1 %5 = OpTypeVector %6 4 %7 = OpTypeVector %6 2 %9 = OpTypeInt 32 0 %8 = OpTypeVector %9 2 -%10 = OpTypeVector %4 2 -%11 = OpTypeStruct %4 %4 +%10 = OpTypeVector %3 2 +%11 = OpTypeStruct %3 %3 %12 = OpTypeStruct %10 %10 -%13 = OpTypeStruct %3 %3 -%14 = OpTypeStruct %4 %6 -%15 = OpTypeStruct %3 %5 +%13 = OpTypeStruct %4 %4 +%14 = OpTypeStruct %3 %6 +%15 = OpTypeStruct %4 %5 %18 = OpTypeFunction %2 -%19 = OpConstant %4 1.0 -%20 = OpConstant %4 0.0 -%21 = OpConstantComposite %3 %20 %20 %20 %20 +%19 = OpConstant %3 1.0 +%20 = OpConstant %3 0.0 +%21 = OpConstantComposite %4 %20 %20 %20 %20 %22 = OpConstant %6 -1 %23 = OpConstantComposite %5 %22 %22 %22 %22 -%24 = OpConstant %4 -1.0 -%25 = OpConstantComposite %3 %24 %24 %24 %24 +%24 = OpConstant %3 -1.0 +%25 = OpConstantComposite %4 %24 %24 %24 %24 %26 = OpConstantNull %7 %27 = OpConstant %9 4294967295 %28 = OpConstantComposite %7 %22 %22 @@ -53,26 +53,26 @@ OpMemberDecorate %15 1 Offset 16 %37 = OpConstant %9 31 %38 = OpConstantComposite %8 %37 %37 %39 = OpConstant %6 2 -%40 = OpConstant %4 2.0 +%40 = OpConstant %3 2.0 %41 = OpConstantComposite %10 %19 %40 %42 = OpConstant %6 3 %43 = OpConstant %6 4 %44 = OpConstantComposite %7 %42 %43 -%45 = OpConstant %4 1.5 +%45 = OpConstant %3 1.5 %46 = OpConstantComposite %10 %45 %45 -%47 = OpConstantComposite %3 %45 %45 %45 %45 -%54 = OpConstantComposite %3 %19 %19 %19 %19 +%47 = OpConstantComposite %4 %45 %45 %45 %45 +%54 = OpConstantComposite %4 %19 %19 %19 %19 %57 = OpConstantNull %6 %17 = OpFunction %2 None %18 %16 = OpLabel OpBranch %48 %48 = OpLabel -%49 = OpExtInst %4 %1 Degrees %19 -%50 = OpExtInst %4 %1 Radians %19 -%51 = OpExtInst %3 %1 Degrees %21 -%52 = OpExtInst %3 %1 Radians %21 -%53 = OpExtInst %3 %1 FClamp %21 %21 %54 -%55 = OpExtInst %3 %1 Refract %21 %21 %19 +%49 = OpExtInst %3 %1 Degrees %19 +%50 = OpExtInst %3 %1 Radians %19 +%51 = OpExtInst %4 %1 Degrees %21 +%52 = OpExtInst %4 %1 Radians %21 +%53 = OpExtInst %4 %1 FClamp %21 %21 %54 +%55 = OpExtInst %4 %1 Refract %21 %21 %19 %58 = OpCompositeExtract %6 %26 0 %59 = OpCompositeExtract %6 %26 0 %60 = OpIMul %6 %58 %59 @@ -81,23 +81,23 @@ OpBranch %48 %63 = OpCompositeExtract %6 %26 1 %64 = OpIMul %6 %62 %63 %56 = OpIAdd %6 %61 %64 -%65 = OpExtInst %4 %1 Ldexp %19 %39 +%65 = OpExtInst %3 %1 Ldexp %19 %39 %66 = OpExtInst %10 %1 Ldexp %41 %44 %67 = OpExtInst %11 %1 ModfStruct %45 %68 = OpExtInst %11 %1 ModfStruct %45 -%69 = OpCompositeExtract %4 %68 0 +%69 = OpCompositeExtract %3 %68 0 %70 = OpExtInst %11 %1 ModfStruct %45 -%71 = OpCompositeExtract %4 %70 1 +%71 = OpCompositeExtract %3 %70 1 %72 = OpExtInst %12 %1 ModfStruct %46 %73 = OpExtInst %13 %1 ModfStruct %47 -%74 = OpCompositeExtract %3 %73 1 -%75 = OpCompositeExtract %4 %74 0 +%74 = OpCompositeExtract %4 %73 1 +%75 = OpCompositeExtract %3 %74 0 %76 = OpExtInst %12 %1 ModfStruct %46 %77 = OpCompositeExtract %10 %76 0 -%78 = OpCompositeExtract %4 %77 1 +%78 = OpCompositeExtract %3 %77 1 %79 = OpExtInst %14 %1 FrexpStruct %45 %80 = OpExtInst %14 %1 FrexpStruct %45 -%81 = OpCompositeExtract %4 %80 0 +%81 = OpCompositeExtract %3 %80 0 %82 = OpExtInst %14 %1 FrexpStruct %45 %83 = OpCompositeExtract %6 %82 1 %84 = OpExtInst %15 %1 FrexpStruct %47 diff --git a/naga/tests/out/spv/operators.spvasm b/naga/tests/out/spv/operators.spvasm index 974623bc70..a59c2e5558 100644 --- a/naga/tests/out/spv/operators.spvasm +++ b/naga/tests/out/spv/operators.spvasm @@ -9,47 +9,47 @@ OpEntryPoint GLCompute %374 "main" %371 OpExecutionMode %374 LocalSize 1 1 1 OpDecorate %371 BuiltIn WorkgroupId %2 = OpTypeVoid -%4 = OpTypeFloat 32 -%3 = OpTypeVector %4 4 -%6 = OpTypeInt 32 1 -%5 = OpTypeVector %6 4 +%3 = OpTypeFloat 32 +%4 = OpTypeVector %3 4 +%5 = OpTypeInt 32 1 +%6 = OpTypeVector %5 4 %8 = OpTypeBool %7 = OpTypeVector %8 4 -%9 = OpTypeVector %4 2 -%10 = OpTypeVector %4 3 +%9 = OpTypeVector %3 2 +%10 = OpTypeVector %3 3 %11 = OpTypeMatrix %10 3 %12 = OpTypeMatrix %10 4 -%13 = OpTypeMatrix %3 3 -%14 = OpTypeVector %6 3 +%13 = OpTypeMatrix %4 3 +%14 = OpTypeVector %5 3 %16 = OpTypeInt 32 0 %15 = OpTypeVector %16 3 -%17 = OpConstant %4 1.0 -%18 = OpConstantComposite %3 %17 %17 %17 %17 -%19 = OpConstant %4 0.0 -%20 = OpConstantComposite %3 %19 %19 %19 %19 -%21 = OpConstant %4 0.5 -%22 = OpConstantComposite %3 %21 %21 %21 %21 -%23 = OpConstant %6 1 -%24 = OpConstantComposite %5 %23 %23 %23 %23 -%27 = OpTypeFunction %3 +%17 = OpConstant %3 1.0 +%18 = OpConstantComposite %4 %17 %17 %17 %17 +%19 = OpConstant %3 0.0 +%20 = OpConstantComposite %4 %19 %19 %19 %19 +%21 = OpConstant %3 0.5 +%22 = OpConstantComposite %4 %21 %21 %21 %21 +%23 = OpConstant %5 1 +%24 = OpConstantComposite %6 %23 %23 %23 %23 +%27 = OpTypeFunction %4 %28 = OpConstantTrue %8 -%29 = OpConstant %6 0 +%29 = OpConstant %5 0 %30 = OpConstantFalse %8 %31 = OpConstantComposite %7 %30 %30 %30 %30 -%32 = OpConstant %4 0.1 -%33 = OpConstantComposite %5 %29 %29 %29 %29 -%57 = OpTypeFunction %3 %4 %6 -%58 = OpConstant %4 2.0 +%32 = OpConstant %3 0.1 +%33 = OpConstantComposite %6 %29 %29 %29 %29 +%57 = OpTypeFunction %4 %3 %5 +%58 = OpConstant %3 2.0 %59 = OpConstantComposite %9 %58 %58 -%60 = OpConstant %4 4.0 +%60 = OpConstant %3 4.0 %61 = OpConstantComposite %9 %60 %60 -%62 = OpConstant %4 8.0 +%62 = OpConstant %3 8.0 %63 = OpConstantComposite %9 %62 %62 -%64 = OpConstant %6 2 -%65 = OpConstantComposite %5 %64 %64 %64 %64 +%64 = OpConstant %5 2 +%65 = OpConstantComposite %6 %64 %64 %64 %64 %78 = OpTypeFunction %9 %79 = OpConstantComposite %9 %17 %17 -%80 = OpConstant %4 3.0 +%80 = OpConstant %3 3.0 %81 = OpConstantComposite %9 %80 %80 %83 = OpTypePointer Function %9 %95 = OpTypeFunction %10 %10 @@ -65,13 +65,13 @@ OpDecorate %371 BuiltIn WorkgroupId %110 = OpConstantComposite %7 %30 %30 %30 %30 %122 = OpConstant %16 1 %123 = OpConstant %16 2 -%124 = OpTypeVector %6 2 +%124 = OpTypeVector %5 2 %125 = OpConstantComposite %124 %23 %23 %126 = OpConstantComposite %124 %64 %64 %127 = OpConstantComposite %15 %123 %123 %123 %128 = OpConstantComposite %15 %122 %122 %122 -%129 = OpConstantComposite %3 %58 %58 %58 %58 -%130 = OpConstantComposite %3 %17 %17 %17 %17 +%129 = OpConstantComposite %4 %58 %58 %58 %58 +%130 = OpConstantComposite %4 %17 %17 %17 %17 %131 = OpTypeVector %16 2 %132 = OpConstantComposite %131 %123 %123 %133 = OpConstantComposite %131 %122 %122 @@ -80,40 +80,40 @@ OpDecorate %371 BuiltIn WorkgroupId %136 = OpConstantComposite %10 %58 %58 %58 %137 = OpConstantNull %13 %301 = OpConstantNull %14 -%303 = OpTypePointer Function %6 -%304 = OpConstantNull %6 +%303 = OpTypePointer Function %5 +%304 = OpConstantNull %5 %306 = OpTypePointer Function %14 -%334 = OpTypePointer Function %6 +%334 = OpTypePointer Function %5 %372 = OpTypePointer Input %15 %371 = OpVariable %372 Input %375 = OpConstantComposite %10 %17 %17 %17 -%26 = OpFunction %3 None %27 +%26 = OpFunction %4 None %27 %25 = OpLabel OpBranch %34 %34 = OpLabel -%35 = OpSelect %6 %28 %23 %29 +%35 = OpSelect %5 %28 %23 %29 %37 = OpCompositeConstruct %7 %28 %28 %28 %28 -%36 = OpSelect %3 %37 %18 %20 -%38 = OpSelect %3 %31 %20 %18 -%39 = OpExtInst %3 %1 FMix %20 %18 %22 -%41 = OpCompositeConstruct %3 %32 %32 %32 %32 -%40 = OpExtInst %3 %1 FMix %20 %18 %41 -%42 = OpBitcast %4 %23 -%43 = OpBitcast %3 %24 -%44 = OpCompositeConstruct %5 %35 %35 %35 %35 -%45 = OpIAdd %5 %44 %33 -%46 = OpConvertSToF %3 %45 -%47 = OpFAdd %3 %46 %36 -%48 = OpFAdd %3 %47 %39 -%49 = OpFAdd %3 %48 %40 -%50 = OpCompositeConstruct %3 %42 %42 %42 %42 -%51 = OpFAdd %3 %49 %50 -%52 = OpFAdd %3 %51 %43 +%36 = OpSelect %4 %37 %18 %20 +%38 = OpSelect %4 %31 %20 %18 +%39 = OpExtInst %4 %1 FMix %20 %18 %22 +%41 = OpCompositeConstruct %4 %32 %32 %32 %32 +%40 = OpExtInst %4 %1 FMix %20 %18 %41 +%42 = OpBitcast %3 %23 +%43 = OpBitcast %4 %24 +%44 = OpCompositeConstruct %6 %35 %35 %35 %35 +%45 = OpIAdd %6 %44 %33 +%46 = OpConvertSToF %4 %45 +%47 = OpFAdd %4 %46 %36 +%48 = OpFAdd %4 %47 %39 +%49 = OpFAdd %4 %48 %40 +%50 = OpCompositeConstruct %4 %42 %42 %42 %42 +%51 = OpFAdd %4 %49 %50 +%52 = OpFAdd %4 %51 %43 OpReturnValue %52 OpFunctionEnd -%56 = OpFunction %3 None %57 -%54 = OpFunctionParameter %4 -%55 = OpFunctionParameter %6 +%56 = OpFunction %4 None %57 +%54 = OpFunctionParameter %3 +%55 = OpFunctionParameter %5 %53 = OpLabel OpBranch %66 %66 = OpLabel @@ -121,11 +121,11 @@ OpBranch %66 %68 = OpFAdd %9 %59 %67 %69 = OpFSub %9 %68 %61 %70 = OpFDiv %9 %69 %63 -%71 = OpCompositeConstruct %5 %55 %55 %55 %55 -%72 = OpSRem %5 %71 %65 -%73 = OpVectorShuffle %3 %70 %70 0 1 0 1 -%74 = OpConvertSToF %3 %72 -%75 = OpFAdd %3 %73 %74 +%71 = OpCompositeConstruct %6 %55 %55 %55 %55 +%72 = OpSRem %6 %71 %65 +%73 = OpVectorShuffle %4 %70 %70 0 1 0 1 +%74 = OpConvertSToF %4 %72 +%75 = OpFAdd %4 %73 %74 OpReturnValue %75 OpFunctionEnd %77 = OpFunction %9 None %78 @@ -172,39 +172,39 @@ OpFunctionEnd %120 = OpLabel OpBranch %138 %138 = OpLabel -%139 = OpFNegate %4 %17 +%139 = OpFNegate %3 %17 %140 = OpSNegate %124 %125 %141 = OpFNegate %9 %79 -%142 = OpIAdd %6 %64 %23 +%142 = OpIAdd %5 %64 %23 %143 = OpIAdd %16 %123 %122 -%144 = OpFAdd %4 %58 %17 +%144 = OpFAdd %3 %58 %17 %145 = OpIAdd %124 %126 %125 %146 = OpIAdd %15 %127 %128 -%147 = OpFAdd %3 %129 %130 -%148 = OpISub %6 %64 %23 +%147 = OpFAdd %4 %129 %130 +%148 = OpISub %5 %64 %23 %149 = OpISub %16 %123 %122 -%150 = OpFSub %4 %58 %17 +%150 = OpFSub %3 %58 %17 %151 = OpISub %124 %126 %125 %152 = OpISub %15 %127 %128 -%153 = OpFSub %3 %129 %130 -%154 = OpIMul %6 %64 %23 +%153 = OpFSub %4 %129 %130 +%154 = OpIMul %5 %64 %23 %155 = OpIMul %16 %123 %122 -%156 = OpFMul %4 %58 %17 +%156 = OpFMul %3 %58 %17 %157 = OpIMul %124 %126 %125 %158 = OpIMul %15 %127 %128 -%159 = OpFMul %3 %129 %130 -%160 = OpSDiv %6 %64 %23 +%159 = OpFMul %4 %129 %130 +%160 = OpSDiv %5 %64 %23 %161 = OpUDiv %16 %123 %122 -%162 = OpFDiv %4 %58 %17 +%162 = OpFDiv %3 %58 %17 %163 = OpSDiv %124 %126 %125 %164 = OpUDiv %15 %127 %128 -%165 = OpFDiv %3 %129 %130 -%166 = OpSRem %6 %64 %23 +%165 = OpFDiv %4 %129 %130 +%166 = OpSRem %5 %64 %23 %167 = OpUMod %16 %123 %122 -%168 = OpFRem %4 %58 %17 +%168 = OpFRem %3 %58 %17 %169 = OpSRem %124 %126 %125 %170 = OpUMod %15 %127 %128 -%171 = OpFRem %3 %129 %130 +%171 = OpFRem %4 %129 %130 OpBranch %172 %172 = OpLabel %174 = OpIAdd %124 %126 %125 @@ -266,7 +266,7 @@ OpBranch %173 %228 = OpMatrixTimesScalar %11 %134 %17 %229 = OpMatrixTimesScalar %11 %134 %58 %230 = OpMatrixTimesVector %10 %135 %130 -%231 = OpVectorTimesMatrix %3 %136 %135 +%231 = OpVectorTimesMatrix %4 %136 %135 %232 = OpMatrixTimesMatrix %11 %135 %137 OpReturn OpFunctionEnd @@ -274,27 +274,27 @@ OpFunctionEnd %233 = OpLabel OpBranch %235 %235 = OpLabel -%236 = OpNot %6 %23 +%236 = OpNot %5 %23 %237 = OpNot %16 %122 %238 = OpNot %124 %125 %239 = OpNot %15 %128 -%240 = OpBitwiseOr %6 %64 %23 +%240 = OpBitwiseOr %5 %64 %23 %241 = OpBitwiseOr %16 %123 %122 %242 = OpBitwiseOr %124 %126 %125 %243 = OpBitwiseOr %15 %127 %128 -%244 = OpBitwiseAnd %6 %64 %23 +%244 = OpBitwiseAnd %5 %64 %23 %245 = OpBitwiseAnd %16 %123 %122 %246 = OpBitwiseAnd %124 %126 %125 %247 = OpBitwiseAnd %15 %127 %128 -%248 = OpBitwiseXor %6 %64 %23 +%248 = OpBitwiseXor %5 %64 %23 %249 = OpBitwiseXor %16 %123 %122 %250 = OpBitwiseXor %124 %126 %125 %251 = OpBitwiseXor %15 %127 %128 -%252 = OpShiftLeftLogical %6 %64 %122 +%252 = OpShiftLeftLogical %5 %64 %122 %253 = OpShiftLeftLogical %16 %123 %122 %254 = OpShiftLeftLogical %124 %126 %133 %255 = OpShiftLeftLogical %15 %127 %128 -%256 = OpShiftRightArithmetic %6 %64 %122 +%256 = OpShiftRightArithmetic %5 %64 %122 %257 = OpShiftRightLogical %16 %123 %122 %258 = OpShiftRightArithmetic %124 %126 %133 %259 = OpShiftRightLogical %15 %127 %128 @@ -349,52 +349,52 @@ OpFunctionEnd OpBranch %307 %307 = OpLabel OpStore %302 %23 -%308 = OpLoad %6 %302 -%309 = OpIAdd %6 %308 %23 +%308 = OpLoad %5 %302 +%309 = OpIAdd %5 %308 %23 OpStore %302 %309 -%310 = OpLoad %6 %302 -%311 = OpISub %6 %310 %23 +%310 = OpLoad %5 %302 +%311 = OpISub %5 %310 %23 OpStore %302 %311 -%312 = OpLoad %6 %302 -%313 = OpLoad %6 %302 -%314 = OpIMul %6 %313 %312 +%312 = OpLoad %5 %302 +%313 = OpLoad %5 %302 +%314 = OpIMul %5 %313 %312 OpStore %302 %314 -%315 = OpLoad %6 %302 -%316 = OpLoad %6 %302 -%317 = OpSDiv %6 %316 %315 +%315 = OpLoad %5 %302 +%316 = OpLoad %5 %302 +%317 = OpSDiv %5 %316 %315 OpStore %302 %317 -%318 = OpLoad %6 %302 -%319 = OpSRem %6 %318 %23 +%318 = OpLoad %5 %302 +%319 = OpSRem %5 %318 %23 OpStore %302 %319 -%320 = OpLoad %6 %302 -%321 = OpBitwiseAnd %6 %320 %29 +%320 = OpLoad %5 %302 +%321 = OpBitwiseAnd %5 %320 %29 OpStore %302 %321 -%322 = OpLoad %6 %302 -%323 = OpBitwiseOr %6 %322 %29 +%322 = OpLoad %5 %302 +%323 = OpBitwiseOr %5 %322 %29 OpStore %302 %323 -%324 = OpLoad %6 %302 -%325 = OpBitwiseXor %6 %324 %29 +%324 = OpLoad %5 %302 +%325 = OpBitwiseXor %5 %324 %29 OpStore %302 %325 -%326 = OpLoad %6 %302 -%327 = OpShiftLeftLogical %6 %326 %123 +%326 = OpLoad %5 %302 +%327 = OpShiftLeftLogical %5 %326 %123 OpStore %302 %327 -%328 = OpLoad %6 %302 -%329 = OpShiftRightArithmetic %6 %328 %122 +%328 = OpLoad %5 %302 +%329 = OpShiftRightArithmetic %5 %328 %122 OpStore %302 %329 -%330 = OpLoad %6 %302 -%331 = OpIAdd %6 %330 %23 +%330 = OpLoad %5 %302 +%331 = OpIAdd %5 %330 %23 OpStore %302 %331 -%332 = OpLoad %6 %302 -%333 = OpISub %6 %332 %23 +%332 = OpLoad %5 %302 +%333 = OpISub %5 %332 %23 OpStore %302 %333 %335 = OpAccessChain %334 %305 %23 -%336 = OpLoad %6 %335 -%337 = OpIAdd %6 %336 %23 +%336 = OpLoad %5 %335 +%337 = OpIAdd %5 %336 %23 %338 = OpAccessChain %334 %305 %23 OpStore %338 %337 %339 = OpAccessChain %334 %305 %23 -%340 = OpLoad %6 %339 -%341 = OpISub %6 %340 %23 +%340 = OpLoad %5 %339 +%341 = OpISub %5 %340 %23 %342 = OpAccessChain %334 %305 %23 OpStore %342 %341 OpReturn @@ -403,30 +403,30 @@ OpFunctionEnd %343 = OpLabel OpBranch %345 %345 = OpLabel -%346 = OpSNegate %6 %23 -%347 = OpSNegate %6 %23 -%348 = OpSNegate %6 %347 -%349 = OpSNegate %6 %23 -%350 = OpSNegate %6 %349 -%351 = OpSNegate %6 %23 -%352 = OpSNegate %6 %351 -%353 = OpSNegate %6 %23 -%354 = OpSNegate %6 %353 -%355 = OpSNegate %6 %354 -%356 = OpSNegate %6 %23 -%357 = OpSNegate %6 %356 -%358 = OpSNegate %6 %357 -%359 = OpSNegate %6 %358 -%360 = OpSNegate %6 %23 -%361 = OpSNegate %6 %360 -%362 = OpSNegate %6 %361 -%363 = OpSNegate %6 %362 -%364 = OpSNegate %6 %363 -%365 = OpSNegate %6 %23 -%366 = OpSNegate %6 %365 -%367 = OpSNegate %6 %366 -%368 = OpSNegate %6 %367 -%369 = OpSNegate %6 %368 +%346 = OpSNegate %5 %23 +%347 = OpSNegate %5 %23 +%348 = OpSNegate %5 %347 +%349 = OpSNegate %5 %23 +%350 = OpSNegate %5 %349 +%351 = OpSNegate %5 %23 +%352 = OpSNegate %5 %351 +%353 = OpSNegate %5 %23 +%354 = OpSNegate %5 %353 +%355 = OpSNegate %5 %354 +%356 = OpSNegate %5 %23 +%357 = OpSNegate %5 %356 +%358 = OpSNegate %5 %357 +%359 = OpSNegate %5 %358 +%360 = OpSNegate %5 %23 +%361 = OpSNegate %5 %360 +%362 = OpSNegate %5 %361 +%363 = OpSNegate %5 %362 +%364 = OpSNegate %5 %363 +%365 = OpSNegate %5 %23 +%366 = OpSNegate %5 %365 +%367 = OpSNegate %5 %366 +%368 = OpSNegate %5 %367 +%369 = OpSNegate %5 %368 OpReturn OpFunctionEnd %374 = OpFunction %2 None %104 @@ -434,12 +434,12 @@ OpFunctionEnd %373 = OpLoad %15 %371 OpBranch %376 %376 = OpLabel -%377 = OpFunctionCall %3 %26 +%377 = OpFunctionCall %4 %26 %378 = OpCompositeExtract %16 %373 0 -%379 = OpConvertUToF %4 %378 +%379 = OpConvertUToF %3 %378 %380 = OpCompositeExtract %16 %373 1 -%381 = OpBitcast %6 %380 -%382 = OpFunctionCall %3 %56 %379 %381 +%381 = OpBitcast %5 %380 +%382 = OpFunctionCall %4 %56 %379 %381 %383 = OpFunctionCall %10 %94 %375 %384 = OpFunctionCall %2 %103 %385 = OpFunctionCall %2 %121 diff --git a/naga/tests/out/spv/padding.spvasm b/naga/tests/out/spv/padding.spvasm index aae9f2cb74..b7b21f17ed 100644 --- a/naga/tests/out/spv/padding.spvasm +++ b/naga/tests/out/spv/padding.spvasm @@ -45,17 +45,17 @@ OpDecorate %21 Block OpMemberDecorate %21 0 Offset 0 OpDecorate %24 BuiltIn Position %2 = OpTypeVoid -%4 = OpTypeFloat 32 -%3 = OpTypeVector %4 3 -%5 = OpTypeStruct %3 -%6 = OpTypeStruct %5 %4 +%3 = OpTypeFloat 32 +%4 = OpTypeVector %3 3 +%5 = OpTypeStruct %4 +%6 = OpTypeStruct %5 %3 %9 = OpTypeInt 32 0 %8 = OpConstant %9 2 -%7 = OpTypeArray %3 %8 -%10 = OpTypeStruct %7 %4 -%11 = OpTypeMatrix %3 4 -%12 = OpTypeStruct %11 %4 -%13 = OpTypeVector %4 4 +%7 = OpTypeArray %4 %8 +%10 = OpTypeStruct %7 %3 +%11 = OpTypeMatrix %4 4 +%12 = OpTypeStruct %11 %3 +%13 = OpTypeVector %3 4 %15 = OpTypeStruct %6 %16 = OpTypePointer Uniform %15 %14 = OpVariable %16 Uniform @@ -72,9 +72,9 @@ OpDecorate %24 BuiltIn Position %29 = OpConstant %9 0 %31 = OpTypePointer Uniform %10 %33 = OpTypePointer Uniform %12 -%35 = OpConstant %4 1.0 +%35 = OpConstant %3 1.0 %36 = OpConstantComposite %13 %35 %35 %35 %35 -%38 = OpTypePointer Uniform %4 +%38 = OpTypePointer Uniform %3 %39 = OpConstant %9 1 %26 = OpFunction %2 None %27 %23 = OpLabel @@ -84,13 +84,13 @@ OpDecorate %24 BuiltIn Position OpBranch %37 %37 = OpLabel %40 = OpAccessChain %38 %30 %39 -%41 = OpLoad %4 %40 +%41 = OpLoad %3 %40 %42 = OpVectorTimesScalar %13 %36 %41 %43 = OpAccessChain %38 %32 %39 -%44 = OpLoad %4 %43 +%44 = OpLoad %3 %43 %45 = OpVectorTimesScalar %13 %42 %44 %46 = OpAccessChain %38 %34 %39 -%47 = OpLoad %4 %46 +%47 = OpLoad %3 %46 %48 = OpVectorTimesScalar %13 %45 %47 OpStore %24 %48 OpReturn diff --git a/naga/tests/out/spv/pointers.spvasm b/naga/tests/out/spv/pointers.spvasm index ae42aed2e0..07658a21a1 100644 --- a/naga/tests/out/spv/pointers.spvasm +++ b/naga/tests/out/spv/pointers.spvasm @@ -24,20 +24,20 @@ OpDecorate %7 Block OpDecorate %8 DescriptorSet 0 OpDecorate %8 Binding 0 %2 = OpTypeVoid -%4 = OpTypeInt 32 1 -%3 = OpTypeVector %4 2 +%3 = OpTypeInt 32 1 +%4 = OpTypeVector %3 2 %5 = OpTypeInt 32 0 %6 = OpTypeRuntimeArray %5 %7 = OpTypeStruct %6 %9 = OpTypePointer StorageBuffer %7 %8 = OpVariable %9 StorageBuffer %12 = OpTypeFunction %2 -%13 = OpConstant %4 10 -%15 = OpTypePointer Function %3 -%16 = OpConstantNull %3 -%18 = OpTypePointer Function %4 +%13 = OpConstant %3 10 +%15 = OpTypePointer Function %4 +%16 = OpConstantNull %4 +%18 = OpTypePointer Function %3 %19 = OpConstant %5 0 -%25 = OpTypeFunction %2 %4 %5 +%25 = OpTypeFunction %2 %3 %5 %27 = OpTypePointer StorageBuffer %6 %28 = OpTypePointer StorageBuffer %5 %11 = OpFunction %2 None %12 @@ -50,7 +50,7 @@ OpStore %20 %13 OpReturn OpFunctionEnd %24 = OpFunction %2 None %25 -%22 = OpFunctionParameter %4 +%22 = OpFunctionParameter %3 %23 = OpFunctionParameter %5 %21 = OpLabel OpBranch %26 @@ -63,7 +63,7 @@ OpStore %32 %31 OpReturn OpFunctionEnd %36 = OpFunction %2 None %25 -%34 = OpFunctionParameter %4 +%34 = OpFunctionParameter %3 %35 = OpFunctionParameter %5 %33 = OpLabel OpBranch %37 diff --git a/naga/tests/out/spv/policy-mix.spvasm b/naga/tests/out/spv/policy-mix.spvasm index a10ff1121f..f517777987 100644 --- a/naga/tests/out/spv/policy-mix.spvasm +++ b/naga/tests/out/spv/policy-mix.spvasm @@ -41,24 +41,24 @@ OpMemberDecorate %25 0 Offset 0 OpDecorate %27 DescriptorSet 0 OpDecorate %27 Binding 2 %2 = OpTypeVoid -%4 = OpTypeFloat 32 -%3 = OpTypeVector %4 4 +%3 = OpTypeFloat 32 +%4 = OpTypeVector %3 4 %7 = OpTypeInt 32 0 %6 = OpConstant %7 10 -%5 = OpTypeArray %3 %6 +%5 = OpTypeArray %4 %6 %8 = OpTypeStruct %5 %10 = OpConstant %7 20 -%9 = OpTypeArray %3 %10 +%9 = OpTypeArray %4 %10 %11 = OpTypeStruct %9 -%12 = OpTypeImage %4 2D 0 1 0 1 Unknown +%12 = OpTypeImage %3 2D 0 1 0 1 Unknown %14 = OpConstant %7 30 -%13 = OpTypeArray %4 %14 +%13 = OpTypeArray %3 %14 %16 = OpConstant %7 40 -%15 = OpTypeArray %4 %16 -%18 = OpTypeInt 32 1 -%17 = OpTypeVector %18 2 +%15 = OpTypeArray %3 %16 +%17 = OpTypeInt 32 1 +%18 = OpTypeVector %17 2 %20 = OpConstant %7 2 -%19 = OpTypeArray %3 %20 +%19 = OpTypeArray %4 %20 %22 = OpTypeStruct %8 %23 = OpTypePointer StorageBuffer %22 %21 = OpVariable %23 StorageBuffer @@ -72,35 +72,35 @@ OpDecorate %27 Binding 2 %32 = OpTypePointer Private %15 %33 = OpConstantNull %15 %31 = OpVariable %32 Private %33 -%39 = OpTypeFunction %3 %17 %18 %18 +%39 = OpTypeFunction %4 %18 %17 %17 %40 = OpTypePointer StorageBuffer %8 %41 = OpConstant %7 0 %43 = OpTypePointer Uniform %11 -%46 = OpConstant %4 0.707 -%47 = OpConstant %4 0.0 -%48 = OpConstant %4 1.0 -%49 = OpConstantComposite %3 %46 %47 %47 %48 -%50 = OpConstantComposite %3 %47 %46 %47 %48 +%46 = OpConstant %3 0.707 +%47 = OpConstant %3 0.0 +%48 = OpConstant %3 1.0 +%49 = OpConstantComposite %4 %46 %47 %47 %48 +%50 = OpConstantComposite %4 %47 %46 %47 %48 %51 = OpConstantComposite %19 %49 %50 %53 = OpTypePointer Function %19 %55 = OpTypePointer StorageBuffer %5 -%56 = OpTypePointer StorageBuffer %3 +%56 = OpTypePointer StorageBuffer %4 %59 = OpTypePointer Uniform %9 -%60 = OpTypePointer Uniform %3 -%64 = OpTypeVector %18 3 +%60 = OpTypePointer Uniform %4 +%64 = OpTypeVector %17 3 %66 = OpTypeBool -%67 = OpConstantNull %3 +%67 = OpConstantNull %4 %73 = OpTypeVector %66 3 -%80 = OpTypePointer Workgroup %4 +%80 = OpTypePointer Workgroup %3 %81 = OpConstant %7 29 -%87 = OpTypePointer Private %4 +%87 = OpTypePointer Private %3 %88 = OpConstant %7 39 -%94 = OpTypePointer Function %3 +%94 = OpTypePointer Function %4 %95 = OpConstant %7 1 -%38 = OpFunction %3 None %39 -%35 = OpFunctionParameter %17 -%36 = OpFunctionParameter %18 -%37 = OpFunctionParameter %18 +%38 = OpFunction %4 None %39 +%35 = OpFunctionParameter %18 +%36 = OpFunctionParameter %17 +%37 = OpFunctionParameter %17 %34 = OpLabel %52 = OpVariable %53 Function %51 %42 = OpAccessChain %40 %21 %41 @@ -109,12 +109,12 @@ OpDecorate %27 Binding 2 OpBranch %54 %54 = OpLabel %57 = OpAccessChain %56 %42 %41 %36 -%58 = OpLoad %3 %57 +%58 = OpLoad %4 %57 %61 = OpAccessChain %60 %44 %41 %36 -%62 = OpLoad %3 %61 -%63 = OpFAdd %3 %58 %62 +%62 = OpLoad %4 %61 +%63 = OpFAdd %4 %58 %62 %65 = OpCompositeConstruct %64 %35 %36 -%68 = OpImageQueryLevels %18 %45 +%68 = OpImageQueryLevels %17 %45 %69 = OpULessThan %66 %37 %68 OpSelectionMerge %70 None OpBranchConditional %69 %71 %70 @@ -124,24 +124,24 @@ OpBranchConditional %69 %71 %70 %75 = OpAll %66 %74 OpBranchConditional %75 %76 %70 %76 = OpLabel -%77 = OpImageFetch %3 %45 %65 Lod %37 +%77 = OpImageFetch %4 %45 %65 Lod %37 OpBranch %70 %70 = OpLabel -%78 = OpPhi %3 %67 %54 %67 %71 %77 %76 -%79 = OpFAdd %3 %63 %78 +%78 = OpPhi %4 %67 %54 %67 %71 %77 %76 +%79 = OpFAdd %4 %63 %78 %82 = OpExtInst %7 %1 UMin %36 %81 %83 = OpAccessChain %80 %29 %82 -%84 = OpLoad %4 %83 -%85 = OpCompositeConstruct %3 %84 %84 %84 %84 -%86 = OpFAdd %3 %79 %85 +%84 = OpLoad %3 %83 +%85 = OpCompositeConstruct %4 %84 %84 %84 %84 +%86 = OpFAdd %4 %79 %85 %89 = OpExtInst %7 %1 UMin %36 %88 %90 = OpAccessChain %87 %31 %89 -%91 = OpLoad %4 %90 -%92 = OpCompositeConstruct %3 %91 %91 %91 %91 -%93 = OpFAdd %3 %86 %92 +%91 = OpLoad %3 %90 +%92 = OpCompositeConstruct %4 %91 %91 %91 %91 +%93 = OpFAdd %4 %86 %92 %96 = OpExtInst %7 %1 UMin %36 %95 %97 = OpAccessChain %94 %52 %96 -%98 = OpLoad %3 %97 -%99 = OpFAdd %3 %93 %98 +%98 = OpLoad %4 %97 +%99 = OpFAdd %4 %93 %98 OpReturnValue %99 OpFunctionEnd \ No newline at end of file diff --git a/naga/tests/out/spv/ray-query.spvasm b/naga/tests/out/spv/ray-query.spvasm index 328c820fea..8b784f2fa0 100644 --- a/naga/tests/out/spv/ray-query.spvasm +++ b/naga/tests/out/spv/ray-query.spvasm @@ -39,44 +39,44 @@ OpDecorate %17 Binding 1 OpDecorate %18 Block OpMemberDecorate %18 0 Offset 0 %2 = OpTypeVoid -%4 = OpTypeFloat 32 -%3 = OpTypeVector %4 3 +%3 = OpTypeFloat 32 +%4 = OpTypeVector %3 3 %5 = OpTypeAccelerationStructureNV %6 = OpTypeInt 32 0 -%7 = OpTypeVector %4 2 +%7 = OpTypeVector %3 2 %8 = OpTypeBool -%9 = OpTypeMatrix %3 4 -%10 = OpTypeStruct %6 %4 %6 %6 %6 %6 %6 %7 %8 %9 %9 +%9 = OpTypeMatrix %4 4 +%10 = OpTypeStruct %6 %3 %6 %6 %6 %6 %6 %7 %8 %9 %9 %11 = OpTypeRayQueryKHR -%12 = OpTypeStruct %6 %6 %4 %4 %3 %3 -%13 = OpTypeStruct %6 %3 -%14 = OpTypeVector %4 4 +%12 = OpTypeStruct %6 %6 %3 %3 %4 %4 +%13 = OpTypeStruct %6 %4 +%14 = OpTypeVector %3 4 %16 = OpTypePointer UniformConstant %5 %15 = OpVariable %16 UniformConstant %18 = OpTypeStruct %13 %19 = OpTypePointer StorageBuffer %18 %17 = OpVariable %19 StorageBuffer -%26 = OpTypeFunction %10 %3 %3 %16 +%26 = OpTypeFunction %10 %4 %4 %16 %27 = OpConstant %6 4 %28 = OpConstant %6 255 -%29 = OpConstant %4 0.1 -%30 = OpConstant %4 100.0 +%29 = OpConstant %3 0.1 +%30 = OpConstant %3 100.0 %32 = OpTypePointer Function %11 %50 = OpConstant %6 1 -%67 = OpTypeFunction %3 %3 %10 -%68 = OpConstant %4 1.0 -%69 = OpConstant %4 2.4 -%70 = OpConstant %4 0.0 +%67 = OpTypeFunction %4 %4 %10 +%68 = OpConstant %3 1.0 +%69 = OpConstant %3 2.4 +%70 = OpConstant %3 0.0 %85 = OpTypeFunction %2 %87 = OpTypePointer StorageBuffer %13 %88 = OpConstant %6 0 -%90 = OpConstantComposite %3 %70 %70 %70 -%91 = OpConstantComposite %3 %70 %68 %70 +%90 = OpConstantComposite %4 %70 %70 %70 +%91 = OpConstantComposite %4 %70 %68 %70 %94 = OpTypePointer StorageBuffer %6 -%99 = OpTypePointer StorageBuffer %3 +%99 = OpTypePointer StorageBuffer %4 %25 = OpFunction %10 None %26 -%21 = OpFunctionParameter %3 -%22 = OpFunctionParameter %3 +%21 = OpFunctionParameter %4 +%22 = OpFunctionParameter %4 %23 = OpFunctionParameter %16 %20 = OpLabel %31 = OpVariable %32 Function @@ -86,10 +86,10 @@ OpBranch %33 %34 = OpCompositeConstruct %12 %27 %28 %29 %30 %21 %22 %35 = OpCompositeExtract %6 %34 0 %36 = OpCompositeExtract %6 %34 1 -%37 = OpCompositeExtract %4 %34 2 -%38 = OpCompositeExtract %4 %34 3 -%39 = OpCompositeExtract %3 %34 4 -%40 = OpCompositeExtract %3 %34 5 +%37 = OpCompositeExtract %3 %34 2 +%38 = OpCompositeExtract %3 %34 3 +%39 = OpCompositeExtract %4 %34 4 +%40 = OpCompositeExtract %4 %34 5 OpRayQueryInitializeKHR %31 %24 %35 %36 %39 %37 %40 %38 OpBranch %41 %41 = OpLabel @@ -116,7 +116,7 @@ OpBranch %41 %54 = OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR %6 %31 %50 %55 = OpRayQueryGetIntersectionGeometryIndexKHR %6 %31 %50 %56 = OpRayQueryGetIntersectionPrimitiveIndexKHR %6 %31 %50 -%57 = OpRayQueryGetIntersectionTKHR %4 %31 %50 +%57 = OpRayQueryGetIntersectionTKHR %3 %31 %50 %58 = OpRayQueryGetIntersectionBarycentricsKHR %7 %31 %50 %59 = OpRayQueryGetIntersectionFrontFaceKHR %8 %31 %50 %60 = OpRayQueryGetIntersectionObjectToWorldKHR %9 %31 %50 @@ -124,23 +124,23 @@ OpBranch %41 %62 = OpCompositeConstruct %10 %51 %57 %52 %53 %54 %55 %56 %58 %59 %60 %61 OpReturnValue %62 OpFunctionEnd -%66 = OpFunction %3 None %67 -%64 = OpFunctionParameter %3 +%66 = OpFunction %4 None %67 +%64 = OpFunctionParameter %4 %65 = OpFunctionParameter %10 %63 = OpLabel OpBranch %71 %71 = OpLabel %72 = OpCompositeExtract %9 %65 10 %73 = OpCompositeConstruct %14 %64 %68 -%74 = OpMatrixTimesVector %3 %72 %73 +%74 = OpMatrixTimesVector %4 %72 %73 %75 = OpVectorShuffle %7 %74 %74 0 1 %76 = OpExtInst %7 %1 Normalize %75 %77 = OpVectorTimesScalar %7 %76 %69 %78 = OpCompositeExtract %9 %65 9 %79 = OpCompositeConstruct %14 %77 %70 %68 -%80 = OpMatrixTimesVector %3 %78 %79 -%81 = OpFSub %3 %64 %80 -%82 = OpExtInst %3 %1 Normalize %81 +%80 = OpMatrixTimesVector %4 %78 %79 +%81 = OpFSub %4 %64 %80 +%82 = OpExtInst %4 %1 Normalize %81 OpReturnValue %82 OpFunctionEnd %84 = OpFunction %2 None %85 @@ -155,9 +155,9 @@ OpBranch %92 %97 = OpSelect %6 %96 %50 %88 %98 = OpAccessChain %94 %89 %88 OpStore %98 %97 -%100 = OpCompositeExtract %4 %93 1 -%101 = OpVectorTimesScalar %3 %91 %100 -%102 = OpFunctionCall %3 %66 %101 %93 +%100 = OpCompositeExtract %3 %93 1 +%101 = OpVectorTimesScalar %4 %91 %100 +%102 = OpFunctionCall %4 %66 %101 %93 %103 = OpAccessChain %99 %89 %50 OpStore %103 %102 OpReturn diff --git a/naga/tests/out/spv/shadow.spvasm b/naga/tests/out/spv/shadow.spvasm index 55bfa4fec0..d64bb2336b 100644 --- a/naga/tests/out/spv/shadow.spvasm +++ b/naga/tests/out/spv/shadow.spvasm @@ -108,26 +108,26 @@ OpDecorate %205 Location 0 OpDecorate %207 Location 1 OpDecorate %209 Location 0 %2 = OpTypeVoid -%5 = OpTypeFloat 32 -%4 = OpTypeVector %5 4 -%3 = OpTypeMatrix %4 4 -%7 = OpTypeInt 32 0 -%6 = OpTypeVector %7 4 -%8 = OpTypeStruct %3 %6 -%9 = OpTypeStruct %3 %4 -%10 = OpTypeVector %5 3 -%11 = OpTypeStruct %4 %10 %4 +%3 = OpTypeFloat 32 +%5 = OpTypeVector %3 4 +%4 = OpTypeMatrix %5 4 +%6 = OpTypeInt 32 0 +%7 = OpTypeVector %6 4 +%8 = OpTypeStruct %4 %7 +%9 = OpTypeStruct %4 %5 +%10 = OpTypeVector %3 3 +%11 = OpTypeStruct %5 %10 %5 %13 = OpTypeInt 32 1 %12 = OpTypeVector %13 4 %14 = OpTypeMatrix %10 3 -%15 = OpTypeStruct %3 %4 %4 +%15 = OpTypeStruct %4 %5 %5 %16 = OpTypeRuntimeArray %15 -%18 = OpConstant %7 10 +%18 = OpConstant %6 10 %17 = OpTypeArray %15 %18 -%19 = OpTypeImage %5 2D 1 1 0 1 Unknown +%19 = OpTypeImage %3 2D 1 1 0 1 Unknown %20 = OpTypeSampler -%21 = OpTypeVector %5 2 -%22 = OpConstant %5 0.05 +%21 = OpTypeVector %3 2 +%22 = OpConstant %3 0.05 %23 = OpConstantComposite %10 %22 %22 %22 %25 = OpTypeStruct %8 %26 = OpTypePointer Uniform %25 @@ -145,11 +145,11 @@ OpDecorate %209 Location 0 %36 = OpVariable %37 UniformConstant %39 = OpTypePointer UniformConstant %20 %38 = OpVariable %39 UniformConstant -%44 = OpTypeFunction %5 %7 %4 -%47 = OpConstant %5 0.0 -%48 = OpConstant %5 1.0 -%49 = OpConstant %5 0.5 -%50 = OpConstant %5 -0.5 +%44 = OpTypeFunction %3 %6 %5 +%47 = OpConstant %3 0.0 +%48 = OpConstant %3 1.0 +%49 = OpConstant %3 0.5 +%50 = OpConstant %3 -0.5 %51 = OpConstantComposite %21 %49 %50 %52 = OpConstantComposite %21 %49 %49 %55 = OpTypeBool @@ -157,70 +157,70 @@ OpDecorate %209 Location 0 %75 = OpTypePointer Input %12 %74 = OpVariable %75 Input %77 = OpVariable %75 Input -%80 = OpTypePointer Output %4 +%80 = OpTypePointer Output %5 %79 = OpVariable %80 Output %82 = OpTypePointer Output %10 %81 = OpVariable %82 Output %83 = OpVariable %80 Output %85 = OpTypeFunction %2 %86 = OpTypePointer Uniform %8 -%87 = OpConstant %7 0 +%87 = OpConstant %6 0 %89 = OpTypePointer Uniform %9 %92 = OpTypePointer Function %11 %93 = OpConstantNull %11 -%95 = OpTypePointer Uniform %3 +%95 = OpTypePointer Uniform %4 %102 = OpTypePointer Function %10 %110 = OpTypeVector %13 3 -%114 = OpConstant %7 1 -%116 = OpTypePointer Function %4 -%117 = OpConstant %7 2 -%125 = OpTypePointer Output %5 -%134 = OpTypePointer Input %4 +%114 = OpConstant %6 1 +%116 = OpTypePointer Function %5 +%117 = OpConstant %6 2 +%125 = OpTypePointer Output %3 +%134 = OpTypePointer Input %5 %133 = OpVariable %134 Input %137 = OpTypePointer Input %10 %136 = OpVariable %137 Input %139 = OpVariable %134 Input %141 = OpVariable %80 Output %145 = OpTypePointer StorageBuffer %16 -%151 = OpTypePointer Function %7 -%160 = OpTypePointer Uniform %6 -%161 = OpTypePointer Uniform %7 +%151 = OpTypePointer Function %6 +%160 = OpTypePointer Uniform %7 +%161 = OpTypePointer Uniform %6 %171 = OpTypePointer StorageBuffer %15 -%197 = OpTypePointer Uniform %4 +%197 = OpTypePointer Uniform %5 %203 = OpVariable %134 Input %205 = OpVariable %137 Input %207 = OpVariable %134 Input %209 = OpVariable %80 Output %213 = OpTypePointer Uniform %17 %236 = OpTypePointer Uniform %15 -%43 = OpFunction %5 None %44 -%41 = OpFunctionParameter %7 -%42 = OpFunctionParameter %4 +%43 = OpFunction %3 None %44 +%41 = OpFunctionParameter %6 +%42 = OpFunctionParameter %5 %40 = OpLabel %45 = OpLoad %19 %36 %46 = OpLoad %20 %38 OpBranch %53 %53 = OpLabel -%54 = OpCompositeExtract %5 %42 3 +%54 = OpCompositeExtract %3 %42 3 %56 = OpFOrdLessThanEqual %55 %54 %47 OpSelectionMerge %57 None OpBranchConditional %56 %58 %57 %58 = OpLabel OpReturnValue %48 %57 = OpLabel -%59 = OpCompositeExtract %5 %42 3 -%60 = OpFDiv %5 %48 %59 +%59 = OpCompositeExtract %3 %42 3 +%60 = OpFDiv %3 %48 %59 %61 = OpVectorShuffle %21 %42 %42 0 1 %62 = OpFMul %21 %61 %51 %63 = OpVectorTimesScalar %21 %62 %60 %64 = OpFAdd %21 %63 %52 %65 = OpBitcast %13 %41 -%66 = OpCompositeExtract %5 %42 2 -%67 = OpFMul %5 %66 %60 -%69 = OpConvertSToF %5 %65 +%66 = OpCompositeExtract %3 %42 2 +%67 = OpFMul %3 %66 %60 +%69 = OpConvertSToF %3 %65 %70 = OpCompositeConstruct %10 %64 %69 %71 = OpSampledImage %68 %45 %46 -%72 = OpImageSampleDrefExplicitLod %5 %71 %70 %67 Lod %47 +%72 = OpImageSampleDrefExplicitLod %3 %71 %70 %67 Lod %47 OpReturnValue %72 OpFunctionEnd %84 = OpFunction %2 None %85 @@ -233,16 +233,16 @@ OpFunctionEnd OpBranch %94 %94 = OpLabel %96 = OpAccessChain %95 %90 %87 -%97 = OpLoad %3 %96 +%97 = OpLoad %4 %96 %98 = OpAccessChain %95 %90 %87 -%99 = OpLoad %3 %98 -%100 = OpConvertSToF %4 %76 -%101 = OpMatrixTimesVector %4 %99 %100 -%103 = OpCompositeExtract %4 %97 0 +%99 = OpLoad %4 %98 +%100 = OpConvertSToF %5 %76 +%101 = OpMatrixTimesVector %5 %99 %100 +%103 = OpCompositeExtract %5 %97 0 %104 = OpVectorShuffle %10 %103 %103 0 1 2 -%105 = OpCompositeExtract %4 %97 1 +%105 = OpCompositeExtract %5 %97 1 %106 = OpVectorShuffle %10 %105 %105 0 1 2 -%107 = OpCompositeExtract %4 %97 2 +%107 = OpCompositeExtract %5 %97 2 %108 = OpVectorShuffle %10 %107 %107 0 1 2 %109 = OpCompositeConstruct %14 %104 %106 %108 %111 = OpVectorShuffle %110 %78 %78 0 1 2 @@ -253,20 +253,20 @@ OpStore %115 %113 %118 = OpAccessChain %116 %91 %117 OpStore %118 %101 %119 = OpAccessChain %95 %88 %87 -%120 = OpLoad %3 %119 -%121 = OpMatrixTimesVector %4 %120 %101 +%120 = OpLoad %4 %119 +%121 = OpMatrixTimesVector %5 %120 %101 %122 = OpAccessChain %116 %91 %87 OpStore %122 %121 %123 = OpLoad %11 %91 -%124 = OpCompositeExtract %4 %123 0 +%124 = OpCompositeExtract %5 %123 0 OpStore %79 %124 %126 = OpAccessChain %125 %79 %114 -%127 = OpLoad %5 %126 -%128 = OpFNegate %5 %127 +%127 = OpLoad %3 %126 +%128 = OpFNegate %3 %127 OpStore %126 %128 %129 = OpCompositeExtract %10 %123 1 OpStore %81 %129 -%130 = OpCompositeExtract %4 %123 2 +%130 = OpCompositeExtract %5 %123 2 OpStore %83 %130 OpReturn OpFunctionEnd @@ -274,9 +274,9 @@ OpFunctionEnd %131 = OpLabel %149 = OpVariable %102 Function %23 %150 = OpVariable %151 Function %87 -%135 = OpLoad %4 %133 +%135 = OpLoad %5 %133 %138 = OpLoad %10 %136 -%140 = OpLoad %4 %139 +%140 = OpLoad %5 %139 %132 = OpCompositeConstruct %11 %135 %138 %140 %143 = OpAccessChain %86 %24 %87 %144 = OpAccessChain %89 %27 %87 @@ -292,10 +292,10 @@ OpBranch %155 OpLoopMerge %156 %158 None OpBranch %157 %157 = OpLabel -%159 = OpLoad %7 %150 +%159 = OpLoad %6 %150 %162 = OpAccessChain %161 %143 %114 %87 -%163 = OpLoad %7 %162 -%164 = OpExtInst %7 %1 UMin %163 %18 +%163 = OpLoad %6 %162 +%164 = OpExtInst %6 %1 UMin %163 %18 %165 = OpULessThan %55 %159 %164 OpSelectionMerge %166 None OpBranchConditional %165 %166 %167 @@ -304,24 +304,24 @@ OpBranch %156 %166 = OpLabel OpBranch %168 %168 = OpLabel -%170 = OpLoad %7 %150 +%170 = OpLoad %6 %150 %172 = OpAccessChain %171 %146 %170 %173 = OpLoad %15 %172 -%174 = OpLoad %7 %150 -%175 = OpCompositeExtract %3 %173 0 -%176 = OpCompositeExtract %4 %132 2 -%177 = OpMatrixTimesVector %4 %175 %176 -%178 = OpFunctionCall %5 %43 %174 %177 -%179 = OpCompositeExtract %4 %173 1 +%174 = OpLoad %6 %150 +%175 = OpCompositeExtract %4 %173 0 +%176 = OpCompositeExtract %5 %132 2 +%177 = OpMatrixTimesVector %5 %175 %176 +%178 = OpFunctionCall %3 %43 %174 %177 +%179 = OpCompositeExtract %5 %173 1 %180 = OpVectorShuffle %10 %179 %179 0 1 2 -%181 = OpCompositeExtract %4 %132 2 +%181 = OpCompositeExtract %5 %132 2 %182 = OpVectorShuffle %10 %181 %181 0 1 2 %183 = OpFSub %10 %180 %182 %184 = OpExtInst %10 %1 Normalize %183 -%185 = OpDot %5 %154 %184 -%186 = OpExtInst %5 %1 FMax %47 %185 -%187 = OpFMul %5 %178 %186 -%188 = OpCompositeExtract %4 %173 2 +%185 = OpDot %3 %154 %184 +%186 = OpExtInst %3 %1 FMax %47 %185 +%187 = OpFMul %3 %178 %186 +%188 = OpCompositeExtract %5 %173 2 %189 = OpVectorShuffle %10 %188 %188 0 1 2 %190 = OpVectorTimesScalar %10 %189 %187 %191 = OpLoad %10 %149 @@ -331,16 +331,16 @@ OpBranch %169 %169 = OpLabel OpBranch %158 %158 = OpLabel -%193 = OpLoad %7 %150 -%194 = OpIAdd %7 %193 %114 +%193 = OpLoad %6 %150 +%194 = OpIAdd %6 %193 %114 OpStore %150 %194 OpBranch %155 %156 = OpLabel %195 = OpLoad %10 %149 -%196 = OpCompositeConstruct %4 %195 %48 +%196 = OpCompositeConstruct %5 %195 %48 %198 = OpAccessChain %197 %144 %114 -%199 = OpLoad %4 %198 -%200 = OpFMul %4 %196 %199 +%199 = OpLoad %5 %198 +%200 = OpFMul %5 %196 %199 OpStore %141 %200 OpReturn OpFunctionEnd @@ -348,9 +348,9 @@ OpFunctionEnd %201 = OpLabel %217 = OpVariable %102 Function %23 %218 = OpVariable %151 Function %87 -%204 = OpLoad %4 %203 +%204 = OpLoad %5 %203 %206 = OpLoad %10 %205 -%208 = OpLoad %4 %207 +%208 = OpLoad %5 %207 %202 = OpCompositeConstruct %11 %204 %206 %208 %211 = OpAccessChain %86 %24 %87 %212 = OpAccessChain %89 %27 %87 @@ -366,10 +366,10 @@ OpBranch %222 OpLoopMerge %223 %225 None OpBranch %224 %224 = OpLabel -%226 = OpLoad %7 %218 +%226 = OpLoad %6 %218 %227 = OpAccessChain %161 %211 %114 %87 -%228 = OpLoad %7 %227 -%229 = OpExtInst %7 %1 UMin %228 %18 +%228 = OpLoad %6 %227 +%229 = OpExtInst %6 %1 UMin %228 %18 %230 = OpULessThan %55 %226 %229 OpSelectionMerge %231 None OpBranchConditional %230 %231 %232 @@ -378,24 +378,24 @@ OpBranch %223 %231 = OpLabel OpBranch %233 %233 = OpLabel -%235 = OpLoad %7 %218 +%235 = OpLoad %6 %218 %237 = OpAccessChain %236 %214 %235 %238 = OpLoad %15 %237 -%239 = OpLoad %7 %218 -%240 = OpCompositeExtract %3 %238 0 -%241 = OpCompositeExtract %4 %202 2 -%242 = OpMatrixTimesVector %4 %240 %241 -%243 = OpFunctionCall %5 %43 %239 %242 -%244 = OpCompositeExtract %4 %238 1 +%239 = OpLoad %6 %218 +%240 = OpCompositeExtract %4 %238 0 +%241 = OpCompositeExtract %5 %202 2 +%242 = OpMatrixTimesVector %5 %240 %241 +%243 = OpFunctionCall %3 %43 %239 %242 +%244 = OpCompositeExtract %5 %238 1 %245 = OpVectorShuffle %10 %244 %244 0 1 2 -%246 = OpCompositeExtract %4 %202 2 +%246 = OpCompositeExtract %5 %202 2 %247 = OpVectorShuffle %10 %246 %246 0 1 2 %248 = OpFSub %10 %245 %247 %249 = OpExtInst %10 %1 Normalize %248 -%250 = OpDot %5 %221 %249 -%251 = OpExtInst %5 %1 FMax %47 %250 -%252 = OpFMul %5 %243 %251 -%253 = OpCompositeExtract %4 %238 2 +%250 = OpDot %3 %221 %249 +%251 = OpExtInst %3 %1 FMax %47 %250 +%252 = OpFMul %3 %243 %251 +%253 = OpCompositeExtract %5 %238 2 %254 = OpVectorShuffle %10 %253 %253 0 1 2 %255 = OpVectorTimesScalar %10 %254 %252 %256 = OpLoad %10 %217 @@ -405,16 +405,16 @@ OpBranch %234 %234 = OpLabel OpBranch %225 %225 = OpLabel -%258 = OpLoad %7 %218 -%259 = OpIAdd %7 %258 %114 +%258 = OpLoad %6 %218 +%259 = OpIAdd %6 %258 %114 OpStore %218 %259 OpBranch %222 %223 = OpLabel %260 = OpLoad %10 %217 -%261 = OpCompositeConstruct %4 %260 %48 +%261 = OpCompositeConstruct %5 %260 %48 %262 = OpAccessChain %197 %212 %114 -%263 = OpLoad %4 %262 -%264 = OpFMul %4 %261 %263 +%263 = OpLoad %5 %262 +%264 = OpFMul %5 %261 %263 OpStore %209 %264 OpReturn OpFunctionEnd \ No newline at end of file diff --git a/naga/tests/out/spv/struct-layout.spvasm b/naga/tests/out/spv/struct-layout.spvasm index fccaef5269..42899de9b5 100644 --- a/naga/tests/out/spv/struct-layout.spvasm +++ b/naga/tests/out/spv/struct-layout.spvasm @@ -52,11 +52,11 @@ OpDecorate %73 Location 1 OpDecorate %75 Location 2 OpDecorate %77 BuiltIn Position %2 = OpTypeVoid -%4 = OpTypeFloat 32 -%3 = OpTypeVector %4 3 -%5 = OpTypeStruct %3 %4 -%6 = OpTypeVector %4 4 -%7 = OpTypeStruct %4 %3 %4 +%3 = OpTypeFloat 32 +%4 = OpTypeVector %3 3 +%5 = OpTypeStruct %4 %3 +%6 = OpTypeVector %3 4 +%7 = OpTypeStruct %3 %4 %3 %9 = OpTypeStruct %5 %10 = OpTypePointer Uniform %9 %8 = OpVariable %10 Uniform @@ -69,14 +69,14 @@ OpDecorate %77 BuiltIn Position %18 = OpTypeStruct %7 %19 = OpTypePointer StorageBuffer %18 %17 = OpVariable %19 StorageBuffer -%23 = OpTypePointer Input %3 +%23 = OpTypePointer Input %4 %22 = OpVariable %23 Input -%26 = OpTypePointer Input %4 +%26 = OpTypePointer Input %3 %25 = OpVariable %26 Input %29 = OpTypePointer Output %6 %28 = OpVariable %29 Output %31 = OpTypeFunction %2 -%32 = OpConstant %4 0.0 +%32 = OpConstant %3 0.0 %33 = OpConstantComposite %6 %32 %32 %32 %32 %37 = OpVariable %23 Input %39 = OpVariable %26 Input @@ -101,8 +101,8 @@ OpDecorate %77 BuiltIn Position %88 = OpConstantNull %7 %30 = OpFunction %2 None %31 %20 = OpLabel -%24 = OpLoad %3 %22 -%27 = OpLoad %4 %25 +%24 = OpLoad %4 %22 +%27 = OpLoad %3 %25 %21 = OpCompositeConstruct %5 %24 %27 OpBranch %34 %34 = OpLabel @@ -111,8 +111,8 @@ OpReturn OpFunctionEnd %42 = OpFunction %2 None %31 %35 = OpLabel -%38 = OpLoad %3 %37 -%40 = OpLoad %4 %39 +%38 = OpLoad %4 %37 +%40 = OpLoad %3 %39 %36 = OpCompositeConstruct %5 %38 %40 OpBranch %43 %43 = OpLabel @@ -134,9 +134,9 @@ OpReturn OpFunctionEnd %67 = OpFunction %2 None %31 %58 = OpLabel -%61 = OpLoad %4 %60 -%63 = OpLoad %3 %62 -%65 = OpLoad %4 %64 +%61 = OpLoad %3 %60 +%63 = OpLoad %4 %62 +%65 = OpLoad %3 %64 %59 = OpCompositeConstruct %7 %61 %63 %65 OpBranch %68 %68 = OpLabel @@ -145,9 +145,9 @@ OpReturn OpFunctionEnd %78 = OpFunction %2 None %31 %69 = OpLabel -%72 = OpLoad %4 %71 -%74 = OpLoad %3 %73 -%76 = OpLoad %4 %75 +%72 = OpLoad %3 %71 +%74 = OpLoad %4 %73 +%76 = OpLoad %3 %75 %70 = OpCompositeConstruct %7 %72 %74 %76 OpBranch %79 %79 = OpLabel diff --git a/naga/tests/wgsl_errors.rs b/naga/tests/wgsl_errors.rs index 61d5b9816f..e0c55461d9 100644 --- a/naga/tests/wgsl_errors.rs +++ b/naga/tests/wgsl_errors.rs @@ -363,13 +363,13 @@ fn unknown_ident() { fn unknown_scalar_type() { check( r#" - const a: vec2; + const a = vec2(); "#, - r#"error: unknown scalar type: 'something' - ┌─ wgsl:2:27 + r#"error: unknown scalar type: 'vec2f' + ┌─ wgsl:2:28 │ -2 │ const a: vec2; - │ ^^^^^^^^^ unknown scalar type +2 │ const a = vec2(); + │ ^^^^^ unknown scalar type │ = note: Valid scalar types are f32, f64, i32, u32, bool @@ -833,13 +833,13 @@ fn matrix_with_bad_type() { check( r#" fn main() { - let m: mat3x3; + var m: mat3x3; } "#, r#"error: matrix scalar type must be floating-point, but found `i32` ┌─ wgsl:3:31 │ -3 │ let m: mat3x3; +3 │ var m: mat3x3; │ ^^^ must be floating-point (e.g. `f32`) "#,