diff --git a/test/matrix/constructor/elements/mat2x2.wgsl b/test/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl similarity index 100% rename from test/matrix/constructor/elements/mat2x2.wgsl rename to test/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl diff --git a/test/matrix/constructor/elements/mat2x2.wgsl.expected.glsl b/test/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.glsl similarity index 100% rename from test/matrix/constructor/elements/mat2x2.wgsl.expected.glsl rename to test/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.glsl diff --git a/test/matrix/constructor/elements/mat2x2.wgsl.expected.hlsl b/test/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.hlsl similarity index 100% rename from test/matrix/constructor/elements/mat2x2.wgsl.expected.hlsl rename to test/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.hlsl diff --git a/test/matrix/constructor/elements/mat2x2.wgsl.expected.msl b/test/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.msl similarity index 100% rename from test/matrix/constructor/elements/mat2x2.wgsl.expected.msl rename to test/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.msl diff --git a/test/matrix/constructor/elements/mat2x2.wgsl.expected.spvasm b/test/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.spvasm similarity index 100% rename from test/matrix/constructor/elements/mat2x2.wgsl.expected.spvasm rename to test/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.spvasm diff --git a/test/matrix/constructor/elements/mat2x2.wgsl.expected.wgsl b/test/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.wgsl similarity index 100% rename from test/matrix/constructor/elements/mat2x2.wgsl.expected.wgsl rename to test/expressions/type_ctor/mat2x2/explicit/scalars/f32.wgsl.expected.wgsl diff --git a/test/matrix/constructor/elements/mat2x3.wgsl b/test/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl similarity index 100% rename from test/matrix/constructor/elements/mat2x3.wgsl rename to test/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl diff --git a/test/matrix/constructor/elements/mat2x3.wgsl.expected.glsl b/test/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.glsl similarity index 100% rename from test/matrix/constructor/elements/mat2x3.wgsl.expected.glsl rename to test/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.glsl diff --git a/test/matrix/constructor/elements/mat2x3.wgsl.expected.hlsl b/test/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.hlsl similarity index 100% rename from test/matrix/constructor/elements/mat2x3.wgsl.expected.hlsl rename to test/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.hlsl diff --git a/test/matrix/constructor/elements/mat2x3.wgsl.expected.msl b/test/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.msl similarity index 100% rename from test/matrix/constructor/elements/mat2x3.wgsl.expected.msl rename to test/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.msl diff --git a/test/matrix/constructor/elements/mat2x3.wgsl.expected.spvasm b/test/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.spvasm similarity index 100% rename from test/matrix/constructor/elements/mat2x3.wgsl.expected.spvasm rename to test/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.spvasm diff --git a/test/matrix/constructor/elements/mat2x3.wgsl.expected.wgsl b/test/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.wgsl similarity index 100% rename from test/matrix/constructor/elements/mat2x3.wgsl.expected.wgsl rename to test/expressions/type_ctor/mat2x3/explicit/scalars/f32.wgsl.expected.wgsl diff --git a/test/matrix/constructor/elements/mat2x4.wgsl b/test/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl similarity index 100% rename from test/matrix/constructor/elements/mat2x4.wgsl rename to test/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl diff --git a/test/matrix/constructor/elements/mat2x4.wgsl.expected.glsl b/test/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.glsl similarity index 100% rename from test/matrix/constructor/elements/mat2x4.wgsl.expected.glsl rename to test/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.glsl diff --git a/test/matrix/constructor/elements/mat2x4.wgsl.expected.hlsl b/test/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.hlsl similarity index 100% rename from test/matrix/constructor/elements/mat2x4.wgsl.expected.hlsl rename to test/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.hlsl diff --git a/test/matrix/constructor/elements/mat2x4.wgsl.expected.msl b/test/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.msl similarity index 100% rename from test/matrix/constructor/elements/mat2x4.wgsl.expected.msl rename to test/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.msl diff --git a/test/matrix/constructor/elements/mat2x4.wgsl.expected.spvasm b/test/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.spvasm similarity index 100% rename from test/matrix/constructor/elements/mat2x4.wgsl.expected.spvasm rename to test/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.spvasm diff --git a/test/matrix/constructor/elements/mat2x4.wgsl.expected.wgsl b/test/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.wgsl similarity index 100% rename from test/matrix/constructor/elements/mat2x4.wgsl.expected.wgsl rename to test/expressions/type_ctor/mat2x4/explicit/scalars/f32.wgsl.expected.wgsl diff --git a/test/matrix/constructor/elements/mat3x2.wgsl b/test/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl similarity index 100% rename from test/matrix/constructor/elements/mat3x2.wgsl rename to test/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl diff --git a/test/matrix/constructor/elements/mat3x2.wgsl.expected.glsl b/test/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.glsl similarity index 100% rename from test/matrix/constructor/elements/mat3x2.wgsl.expected.glsl rename to test/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.glsl diff --git a/test/matrix/constructor/elements/mat3x2.wgsl.expected.hlsl b/test/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.hlsl similarity index 100% rename from test/matrix/constructor/elements/mat3x2.wgsl.expected.hlsl rename to test/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.hlsl diff --git a/test/matrix/constructor/elements/mat3x2.wgsl.expected.msl b/test/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.msl similarity index 100% rename from test/matrix/constructor/elements/mat3x2.wgsl.expected.msl rename to test/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.msl diff --git a/test/matrix/constructor/elements/mat3x2.wgsl.expected.spvasm b/test/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.spvasm similarity index 100% rename from test/matrix/constructor/elements/mat3x2.wgsl.expected.spvasm rename to test/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.spvasm diff --git a/test/matrix/constructor/elements/mat3x2.wgsl.expected.wgsl b/test/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.wgsl similarity index 100% rename from test/matrix/constructor/elements/mat3x2.wgsl.expected.wgsl rename to test/expressions/type_ctor/mat3x2/explicit/scalars/f32.wgsl.expected.wgsl diff --git a/test/matrix/constructor/elements/mat3x3.wgsl b/test/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl similarity index 100% rename from test/matrix/constructor/elements/mat3x3.wgsl rename to test/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl diff --git a/test/matrix/constructor/elements/mat3x3.wgsl.expected.glsl b/test/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.glsl similarity index 100% rename from test/matrix/constructor/elements/mat3x3.wgsl.expected.glsl rename to test/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.glsl diff --git a/test/matrix/constructor/elements/mat3x3.wgsl.expected.hlsl b/test/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.hlsl similarity index 100% rename from test/matrix/constructor/elements/mat3x3.wgsl.expected.hlsl rename to test/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.hlsl diff --git a/test/matrix/constructor/elements/mat3x3.wgsl.expected.msl b/test/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.msl similarity index 100% rename from test/matrix/constructor/elements/mat3x3.wgsl.expected.msl rename to test/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.msl diff --git a/test/matrix/constructor/elements/mat3x3.wgsl.expected.spvasm b/test/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.spvasm similarity index 100% rename from test/matrix/constructor/elements/mat3x3.wgsl.expected.spvasm rename to test/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.spvasm diff --git a/test/matrix/constructor/elements/mat3x3.wgsl.expected.wgsl b/test/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.wgsl similarity index 100% rename from test/matrix/constructor/elements/mat3x3.wgsl.expected.wgsl rename to test/expressions/type_ctor/mat3x3/explicit/scalars/f32.wgsl.expected.wgsl diff --git a/test/matrix/constructor/elements/mat3x4.wgsl b/test/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl similarity index 100% rename from test/matrix/constructor/elements/mat3x4.wgsl rename to test/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl diff --git a/test/matrix/constructor/elements/mat3x4.wgsl.expected.glsl b/test/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.glsl similarity index 100% rename from test/matrix/constructor/elements/mat3x4.wgsl.expected.glsl rename to test/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.glsl diff --git a/test/matrix/constructor/elements/mat3x4.wgsl.expected.hlsl b/test/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.hlsl similarity index 100% rename from test/matrix/constructor/elements/mat3x4.wgsl.expected.hlsl rename to test/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.hlsl diff --git a/test/matrix/constructor/elements/mat3x4.wgsl.expected.msl b/test/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.msl similarity index 100% rename from test/matrix/constructor/elements/mat3x4.wgsl.expected.msl rename to test/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.msl diff --git a/test/matrix/constructor/elements/mat3x4.wgsl.expected.spvasm b/test/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.spvasm similarity index 100% rename from test/matrix/constructor/elements/mat3x4.wgsl.expected.spvasm rename to test/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.spvasm diff --git a/test/matrix/constructor/elements/mat3x4.wgsl.expected.wgsl b/test/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.wgsl similarity index 100% rename from test/matrix/constructor/elements/mat3x4.wgsl.expected.wgsl rename to test/expressions/type_ctor/mat3x4/explicit/scalars/f32.wgsl.expected.wgsl diff --git a/test/matrix/constructor/elements/mat4x2.wgsl b/test/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl similarity index 100% rename from test/matrix/constructor/elements/mat4x2.wgsl rename to test/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl diff --git a/test/matrix/constructor/elements/mat4x2.wgsl.expected.glsl b/test/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.glsl similarity index 100% rename from test/matrix/constructor/elements/mat4x2.wgsl.expected.glsl rename to test/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.glsl diff --git a/test/matrix/constructor/elements/mat4x2.wgsl.expected.hlsl b/test/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.hlsl similarity index 100% rename from test/matrix/constructor/elements/mat4x2.wgsl.expected.hlsl rename to test/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.hlsl diff --git a/test/matrix/constructor/elements/mat4x2.wgsl.expected.msl b/test/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.msl similarity index 100% rename from test/matrix/constructor/elements/mat4x2.wgsl.expected.msl rename to test/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.msl diff --git a/test/matrix/constructor/elements/mat4x2.wgsl.expected.spvasm b/test/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.spvasm similarity index 100% rename from test/matrix/constructor/elements/mat4x2.wgsl.expected.spvasm rename to test/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.spvasm diff --git a/test/matrix/constructor/elements/mat4x2.wgsl.expected.wgsl b/test/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.wgsl similarity index 100% rename from test/matrix/constructor/elements/mat4x2.wgsl.expected.wgsl rename to test/expressions/type_ctor/mat4x2/explicit/scalars/f32.wgsl.expected.wgsl diff --git a/test/matrix/constructor/elements/mat4x3.wgsl b/test/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl similarity index 100% rename from test/matrix/constructor/elements/mat4x3.wgsl rename to test/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl diff --git a/test/matrix/constructor/elements/mat4x3.wgsl.expected.glsl b/test/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.glsl similarity index 100% rename from test/matrix/constructor/elements/mat4x3.wgsl.expected.glsl rename to test/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.glsl diff --git a/test/matrix/constructor/elements/mat4x3.wgsl.expected.hlsl b/test/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.hlsl similarity index 100% rename from test/matrix/constructor/elements/mat4x3.wgsl.expected.hlsl rename to test/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.hlsl diff --git a/test/matrix/constructor/elements/mat4x3.wgsl.expected.msl b/test/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.msl similarity index 100% rename from test/matrix/constructor/elements/mat4x3.wgsl.expected.msl rename to test/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.msl diff --git a/test/matrix/constructor/elements/mat4x3.wgsl.expected.spvasm b/test/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.spvasm similarity index 100% rename from test/matrix/constructor/elements/mat4x3.wgsl.expected.spvasm rename to test/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.spvasm diff --git a/test/matrix/constructor/elements/mat4x3.wgsl.expected.wgsl b/test/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.wgsl similarity index 100% rename from test/matrix/constructor/elements/mat4x3.wgsl.expected.wgsl rename to test/expressions/type_ctor/mat4x3/explicit/scalars/f32.wgsl.expected.wgsl diff --git a/test/matrix/constructor/elements/mat4x4.wgsl b/test/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl similarity index 100% rename from test/matrix/constructor/elements/mat4x4.wgsl rename to test/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl diff --git a/test/matrix/constructor/elements/mat4x4.wgsl.expected.glsl b/test/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.glsl similarity index 100% rename from test/matrix/constructor/elements/mat4x4.wgsl.expected.glsl rename to test/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.glsl diff --git a/test/matrix/constructor/elements/mat4x4.wgsl.expected.hlsl b/test/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.hlsl similarity index 100% rename from test/matrix/constructor/elements/mat4x4.wgsl.expected.hlsl rename to test/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.hlsl diff --git a/test/matrix/constructor/elements/mat4x4.wgsl.expected.msl b/test/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.msl similarity index 100% rename from test/matrix/constructor/elements/mat4x4.wgsl.expected.msl rename to test/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.msl diff --git a/test/matrix/constructor/elements/mat4x4.wgsl.expected.spvasm b/test/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.spvasm similarity index 100% rename from test/matrix/constructor/elements/mat4x4.wgsl.expected.spvasm rename to test/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.spvasm diff --git a/test/matrix/constructor/elements/mat4x4.wgsl.expected.wgsl b/test/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.wgsl similarity index 100% rename from test/matrix/constructor/elements/mat4x4.wgsl.expected.wgsl rename to test/expressions/type_ctor/mat4x4/explicit/scalars/f32.wgsl.expected.wgsl