tint/writer/msl: Inline constant expressions

This is required to handle materialized values, and for constant
expressions.

Bug: tint:1504
Change-Id: Ic3ac62317241fa6f7009360128f222aeb56f62e4
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/92083
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
This commit is contained in:
Ben Clayton
2022-06-01 10:08:29 +00:00
committed by Dawn LUCI CQ
parent 2e22d9285c
commit cb6ddd2aa6
1012 changed files with 1950 additions and 1852 deletions

View File

@@ -4,7 +4,7 @@ using namespace metal;
kernel void f() {
float3x3 const a = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
float3x3 const b = float3x3(float3(-1.0f, -2.0f, -3.0f), float3(-4.0f, -5.0f, -6.0f), float3(-7.0f, -8.0f, -9.0f));
float3x3 const r = (a - b);
float3x3 const r = (float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f)) - float3x3(float3(-1.0f, -2.0f, -3.0f), float3(-4.0f, -5.0f, -6.0f), float3(-7.0f, -8.0f, -9.0f)));
return;
}

View File

@@ -4,7 +4,7 @@ using namespace metal;
kernel void f() {
float const a = 1.0f;
float const b = 2.0f;
float const r = (a - b);
float const r = (1.0f - 2.0f);
return;
}

View File

@@ -4,7 +4,7 @@ using namespace metal;
kernel void f() {
int const a = 1;
int const b = 2;
int const r = as_type<int>((as_type<uint>(a) - as_type<uint>(b)));
int const r = as_type<int>((as_type<uint>(1) - as_type<uint>(2)));
return;
}

View File

@@ -4,7 +4,7 @@ using namespace metal;
kernel void f() {
uint const a = 1u;
uint const b = 2u;
uint const r = (a - b);
uint const r = (1u - 2u);
return;
}

View File

@@ -4,7 +4,7 @@ using namespace metal;
kernel void f() {
float const a = 4.0f;
float3 const b = float3(1.0f, 2.0f, 3.0f);
float3 const r = (a - b);
float3 const r = (4.0f - float3(1.0f, 2.0f, 3.0f));
return;
}

View File

@@ -4,7 +4,7 @@ using namespace metal;
kernel void f() {
int const a = 4;
int3 const b = int3(1, 2, 3);
int3 const r = as_type<int3>((as_type<uint>(a) - as_type<uint3>(b)));
int3 const r = as_type<int3>((as_type<uint>(4) - as_type<uint3>(int3(1, 2, 3))));
return;
}

View File

@@ -4,7 +4,7 @@ using namespace metal;
kernel void f() {
uint const a = 4u;
uint3 const b = uint3(1u, 2u, 3u);
uint3 const r = (a - b);
uint3 const r = (4u - uint3(1u, 2u, 3u));
return;
}

View File

@@ -4,7 +4,7 @@ using namespace metal;
kernel void f() {
float3 const a = float3(1.0f, 2.0f, 3.0f);
float const b = 4.0f;
float3 const r = (a - b);
float3 const r = (float3(1.0f, 2.0f, 3.0f) - 4.0f);
return;
}

View File

@@ -4,7 +4,7 @@ using namespace metal;
kernel void f() {
int3 const a = int3(1, 2, 3);
int const b = 4;
int3 const r = as_type<int3>((as_type<uint3>(a) - as_type<uint>(b)));
int3 const r = as_type<int3>((as_type<uint3>(int3(1, 2, 3)) - as_type<uint>(4)));
return;
}

View File

@@ -4,7 +4,7 @@ using namespace metal;
kernel void f() {
uint3 const a = uint3(1u, 2u, 3u);
uint const b = 4u;
uint3 const r = (a - b);
uint3 const r = (uint3(1u, 2u, 3u) - 4u);
return;
}

View File

@@ -4,7 +4,7 @@ using namespace metal;
kernel void f() {
float3 const a = float3(1.0f, 2.0f, 3.0f);
float3 const b = float3(4.0f, 5.0f, 6.0f);
float3 const r = (a - b);
float3 const r = (float3(1.0f, 2.0f, 3.0f) - float3(4.0f, 5.0f, 6.0f));
return;
}

View File

@@ -4,7 +4,7 @@ using namespace metal;
kernel void f() {
int3 const a = int3(1, 2, 3);
int3 const b = int3(4, 5, 6);
int3 const r = as_type<int3>((as_type<uint3>(a) - as_type<uint3>(b)));
int3 const r = as_type<int3>((as_type<uint3>(int3(1, 2, 3)) - as_type<uint3>(int3(4, 5, 6))));
return;
}

View File

@@ -4,7 +4,7 @@ using namespace metal;
kernel void f() {
uint3 const a = uint3(1u, 2u, 3u);
uint3 const b = uint3(4u, 5u, 6u);
uint3 const r = (a - b);
uint3 const r = (uint3(1u, 2u, 3u) - uint3(4u, 5u, 6u));
return;
}