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