HLSL-IR: Fix fmod polyfill
Order of operations was wrong.
Bug: 375406903
Change-Id: I0a62b122294431200ab313fd996306efb55d6618
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/212834
Auto-Submit: Antonio Maiorano <amaiorano@google.com>
Commit-Queue: James Price <jrprice@google.com>
Reviewed-by: James Price <jrprice@google.com>
diff --git a/src/tint/lang/hlsl/writer/binary_test.cc b/src/tint/lang/hlsl/writer/binary_test.cc
index a2ff2dc..0494e05 100644
--- a/src/tint/lang/hlsl/writer/binary_test.cc
+++ b/src/tint/lang/hlsl/writer/binary_test.cc
@@ -236,7 +236,7 @@
float v_1 = right;
float v_2 = (v / v_1);
float v_3 = floor(v_2);
- float val = ((v - (((v_2 < 0.0f)) ? (ceil(v_2)) : (v_3))) * v_1);
+ float val = (v - ((((v_2 < 0.0f)) ? (ceil(v_2)) : (v_3)) * v_1));
}
)");
@@ -266,7 +266,7 @@
float16_t v_1 = right;
float16_t v_2 = (v / v_1);
float16_t v_3 = floor(v_2);
- float16_t val = ((v - (((v_2 < float16_t(0.0h))) ? (ceil(v_2)) : (v_3))) * v_1);
+ float16_t val = (v - ((((v_2 < float16_t(0.0h))) ? (ceil(v_2)) : (v_3)) * v_1));
}
)");
@@ -296,7 +296,7 @@
float3 v_1 = right;
float3 v_2 = (v / v_1);
float3 v_3 = floor(v_2);
- float3 val = ((v - (((v_2 < (0.0f).xxx)) ? (ceil(v_2)) : (v_3))) * v_1);
+ float3 val = (v - ((((v_2 < (0.0f).xxx)) ? (ceil(v_2)) : (v_3)) * v_1));
}
)");
@@ -326,7 +326,7 @@
vector<float16_t, 3> v_1 = right;
vector<float16_t, 3> v_2 = (v / v_1);
vector<float16_t, 3> v_3 = floor(v_2);
- vector<float16_t, 3> val = ((v - (((v_2 < (float16_t(0.0h)).xxx)) ? (ceil(v_2)) : (v_3))) * v_1);
+ vector<float16_t, 3> val = (v - ((((v_2 < (float16_t(0.0h)).xxx)) ? (ceil(v_2)) : (v_3)) * v_1));
}
)");
diff --git a/src/tint/lang/hlsl/writer/raise/binary_polyfill.cc b/src/tint/lang/hlsl/writer/raise/binary_polyfill.cc
index 93ffba6..542f5fb 100644
--- a/src/tint/lang/hlsl/writer/raise/binary_polyfill.cc
+++ b/src/tint/lang/hlsl/writer/raise/binary_polyfill.cc
@@ -125,9 +125,10 @@
d->SetValue(div->Result(0));
auto* trunc = b.Call(type, core::BuiltinFn::kTrunc, d);
- auto* sub = b.Subtract(type, binary->LHS(), trunc);
- auto* mul = b.Multiply(type, sub, binary->RHS());
- binary->Result(0)->ReplaceAllUsesWith(mul->Result(0));
+ auto* mul = b.Multiply(type, trunc, binary->RHS());
+ auto* sub = b.Subtract(type, binary->LHS(), mul);
+
+ binary->Result(0)->ReplaceAllUsesWith(sub->Result(0));
});
binary->Destroy();
}
diff --git a/src/tint/lang/hlsl/writer/raise/binary_polyfill_test.cc b/src/tint/lang/hlsl/writer/raise/binary_polyfill_test.cc
index 6b3381f..95161af 100644
--- a/src/tint/lang/hlsl/writer/raise/binary_polyfill_test.cc
+++ b/src/tint/lang/hlsl/writer/raise/binary_polyfill_test.cc
@@ -67,8 +67,8 @@
%4:f32 = div %x, %y
%5:f32 = let %4
%6:f32 = trunc %5
- %7:f32 = sub %x, %6
- %8:f32 = mul %7, %y
+ %7:f32 = mul %6, %y
+ %8:f32 = sub %x, %7
%a:f32 = let %8
ret
}
@@ -106,8 +106,8 @@
%4:f16 = div %x, %y
%5:f16 = let %4
%6:f16 = trunc %5
- %7:f16 = sub %x, %6
- %8:f16 = mul %7, %y
+ %7:f16 = mul %6, %y
+ %8:f16 = sub %x, %7
%a:f16 = let %8
ret
}
@@ -145,8 +145,8 @@
%4:vec3<f32> = div %x, %y
%5:vec3<f32> = let %4
%6:vec3<f32> = trunc %5
- %7:vec3<f32> = sub %x, %6
- %8:vec3<f32> = mul %7, %y
+ %7:vec3<f32> = mul %6, %y
+ %8:vec3<f32> = sub %x, %7
%a:vec3<f32> = let %8
ret
}
@@ -184,8 +184,8 @@
%4:vec3<f16> = div %x, %y
%5:vec3<f16> = let %4
%6:vec3<f16> = trunc %5
- %7:vec3<f16> = sub %x, %6
- %8:vec3<f16> = mul %7, %y
+ %7:vec3<f16> = mul %6, %y
+ %8:vec3<f16> = sub %x, %7
%a:vec3<f16> = let %8
ret
}
diff --git a/test/tint/bug/chromium/1434271.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/chromium/1434271.wgsl.expected.ir.dxc.hlsl
index 1ca5ee2..4550e4c 100644
--- a/test/tint/bug/chromium/1434271.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/chromium/1434271.wgsl.expected.ir.dxc.hlsl
@@ -138,7 +138,7 @@
uint v_19 = (uint(dst_offset) * 4u);
float v_20 = (sum / 4.0f);
float v_21 = floor(v_20);
- buf_out.Store((0u + v_19), asuint(((sum - (((v_20 < 0.0f)) ? (ceil(v_20)) : (v_21))) * 4.0f)));
+ buf_out.Store((0u + v_19), asuint((sum - ((((v_20 < 0.0f)) ? (ceil(v_20)) : (v_21)) * 4.0f))));
float4 v_22 = float4(a, (a * b), ((a / b) + c), sum);
float4 probabilities = (v_22 + max(sum, 0.0f));
tex_out[int2(coord.xy)] = probabilities;
diff --git a/test/tint/bug/tint/948.wgsl.expected.ir.dxc.hlsl b/test/tint/bug/tint/948.wgsl.expected.ir.dxc.hlsl
index f6cbb6c..08c16eb 100644
--- a/test/tint/bug/tint/948.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/bug/tint/948.wgsl.expected.ir.dxc.hlsl
@@ -129,7 +129,7 @@
float x_184 = animationData.z;
float v_6 = ((x_181 * x_184) / 1.0f);
float v_7 = floor(v_6);
- mt = (((x_181 * x_184) - (((v_6 < 0.0f)) ? (ceil(v_6)) : (v_7))) * 1.0f);
+ mt = ((x_181 * x_184) - ((((v_6 < 0.0f)) ? (ceil(v_6)) : (v_7)) * 1.0f));
f = 0.0f;
{
while(true) {
diff --git a/test/tint/bug/tint/948.wgsl.expected.ir.fxc.hlsl b/test/tint/bug/tint/948.wgsl.expected.ir.fxc.hlsl
index f6cbb6c..08c16eb 100644
--- a/test/tint/bug/tint/948.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/bug/tint/948.wgsl.expected.ir.fxc.hlsl
@@ -129,7 +129,7 @@
float x_184 = animationData.z;
float v_6 = ((x_181 * x_184) / 1.0f);
float v_7 = floor(v_6);
- mt = (((x_181 * x_184) - (((v_6 < 0.0f)) ? (ceil(v_6)) : (v_7))) * 1.0f);
+ mt = ((x_181 * x_184) - ((((v_6 < 0.0f)) ? (ceil(v_6)) : (v_7)) * 1.0f));
f = 0.0f;
{
while(true) {
diff --git a/test/tint/expressions/binary/mod/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
index 0fb9d68..bc69276 100644
--- a/test/tint/expressions/binary/mod/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
@@ -5,6 +5,6 @@
float16_t b = float16_t(2.0h);
float16_t v = (a / b);
float16_t v_1 = floor(v);
- float16_t r = ((a - (((v < float16_t(0.0h))) ? (ceil(v)) : (v_1))) * b);
+ float16_t r = (a - ((((v < float16_t(0.0h))) ? (ceil(v)) : (v_1)) * b));
}
diff --git a/test/tint/expressions/binary/mod/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
index 730021d..9908ad0 100644
--- a/test/tint/expressions/binary/mod/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
@@ -5,6 +5,6 @@
float b = 2.0f;
float v = (a / b);
float v_1 = floor(v);
- float r = ((a - (((v < 0.0f)) ? (ceil(v)) : (v_1))) * b);
+ float r = (a - ((((v < 0.0f)) ? (ceil(v)) : (v_1)) * b));
}
diff --git a/test/tint/expressions/binary/mod/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
index 730021d..9908ad0 100644
--- a/test/tint/expressions/binary/mod/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
@@ -5,6 +5,6 @@
float b = 2.0f;
float v = (a / b);
float v_1 = floor(v);
- float r = ((a - (((v < 0.0f)) ? (ceil(v)) : (v_1))) * b);
+ float r = (a - ((((v < 0.0f)) ? (ceil(v)) : (v_1)) * b));
}
diff --git a/test/tint/expressions/binary/mod/scalar-vec3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod/scalar-vec3/f16.wgsl.expected.ir.dxc.hlsl
index 2612d2b..df780c0 100644
--- a/test/tint/expressions/binary/mod/scalar-vec3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod/scalar-vec3/f16.wgsl.expected.ir.dxc.hlsl
@@ -5,6 +5,6 @@
vector<float16_t, 3> b = vector<float16_t, 3>(float16_t(1.0h), float16_t(2.0h), float16_t(3.0h));
vector<float16_t, 3> v = (a / b);
vector<float16_t, 3> v_1 = floor(v);
- vector<float16_t, 3> r = ((a - (((v < (float16_t(0.0h)).xxx)) ? (ceil(v)) : (v_1))) * b);
+ vector<float16_t, 3> r = (a - ((((v < (float16_t(0.0h)).xxx)) ? (ceil(v)) : (v_1)) * b));
}
diff --git a/test/tint/expressions/binary/mod/scalar-vec3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod/scalar-vec3/f32.wgsl.expected.ir.dxc.hlsl
index a6cd51c..cfc737a 100644
--- a/test/tint/expressions/binary/mod/scalar-vec3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod/scalar-vec3/f32.wgsl.expected.ir.dxc.hlsl
@@ -5,6 +5,6 @@
float3 b = float3(1.0f, 2.0f, 3.0f);
float3 v = (a / b);
float3 v_1 = floor(v);
- float3 r = ((a - (((v < (0.0f).xxx)) ? (ceil(v)) : (v_1))) * b);
+ float3 r = (a - ((((v < (0.0f).xxx)) ? (ceil(v)) : (v_1)) * b));
}
diff --git a/test/tint/expressions/binary/mod/scalar-vec3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod/scalar-vec3/f32.wgsl.expected.ir.fxc.hlsl
index a6cd51c..cfc737a 100644
--- a/test/tint/expressions/binary/mod/scalar-vec3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod/scalar-vec3/f32.wgsl.expected.ir.fxc.hlsl
@@ -5,6 +5,6 @@
float3 b = float3(1.0f, 2.0f, 3.0f);
float3 v = (a / b);
float3 v_1 = floor(v);
- float3 r = ((a - (((v < (0.0f).xxx)) ? (ceil(v)) : (v_1))) * b);
+ float3 r = (a - ((((v < (0.0f).xxx)) ? (ceil(v)) : (v_1)) * b));
}
diff --git a/test/tint/expressions/binary/mod/vec3-scalar/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod/vec3-scalar/f16.wgsl.expected.ir.dxc.hlsl
index a84f8bd..71d6dba 100644
--- a/test/tint/expressions/binary/mod/vec3-scalar/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod/vec3-scalar/f16.wgsl.expected.ir.dxc.hlsl
@@ -5,6 +5,6 @@
float16_t b = float16_t(4.0h);
vector<float16_t, 3> v = (a / b);
vector<float16_t, 3> v_1 = floor(v);
- vector<float16_t, 3> r = ((a - (((v < (float16_t(0.0h)).xxx)) ? (ceil(v)) : (v_1))) * b);
+ vector<float16_t, 3> r = (a - ((((v < (float16_t(0.0h)).xxx)) ? (ceil(v)) : (v_1)) * b));
}
diff --git a/test/tint/expressions/binary/mod/vec3-scalar/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod/vec3-scalar/f32.wgsl.expected.ir.dxc.hlsl
index 6823cf2..7646188 100644
--- a/test/tint/expressions/binary/mod/vec3-scalar/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod/vec3-scalar/f32.wgsl.expected.ir.dxc.hlsl
@@ -5,6 +5,6 @@
float b = 4.0f;
float3 v = (a / b);
float3 v_1 = floor(v);
- float3 r = ((a - (((v < (0.0f).xxx)) ? (ceil(v)) : (v_1))) * b);
+ float3 r = (a - ((((v < (0.0f).xxx)) ? (ceil(v)) : (v_1)) * b));
}
diff --git a/test/tint/expressions/binary/mod/vec3-scalar/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod/vec3-scalar/f32.wgsl.expected.ir.fxc.hlsl
index 6823cf2..7646188 100644
--- a/test/tint/expressions/binary/mod/vec3-scalar/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod/vec3-scalar/f32.wgsl.expected.ir.fxc.hlsl
@@ -5,6 +5,6 @@
float b = 4.0f;
float3 v = (a / b);
float3 v_1 = floor(v);
- float3 r = ((a - (((v < (0.0f).xxx)) ? (ceil(v)) : (v_1))) * b);
+ float3 r = (a - ((((v < (0.0f).xxx)) ? (ceil(v)) : (v_1)) * b));
}
diff --git a/test/tint/expressions/binary/mod/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
index d19be8b..aa56681 100644
--- a/test/tint/expressions/binary/mod/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
@@ -5,6 +5,6 @@
vector<float16_t, 3> b = vector<float16_t, 3>(float16_t(4.0h), float16_t(5.0h), float16_t(6.0h));
vector<float16_t, 3> v = (a / b);
vector<float16_t, 3> v_1 = floor(v);
- vector<float16_t, 3> r = ((a - (((v < (float16_t(0.0h)).xxx)) ? (ceil(v)) : (v_1))) * b);
+ vector<float16_t, 3> r = (a - ((((v < (float16_t(0.0h)).xxx)) ? (ceil(v)) : (v_1)) * b));
}
diff --git a/test/tint/expressions/binary/mod/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
index 6cccbf8..58e0cfb 100644
--- a/test/tint/expressions/binary/mod/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
@@ -5,6 +5,6 @@
float3 b = float3(4.0f, 5.0f, 6.0f);
float3 v = (a / b);
float3 v_1 = floor(v);
- float3 r = ((a - (((v < (0.0f).xxx)) ? (ceil(v)) : (v_1))) * b);
+ float3 r = (a - ((((v < (0.0f).xxx)) ? (ceil(v)) : (v_1)) * b));
}
diff --git a/test/tint/expressions/binary/mod/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
index 6cccbf8..58e0cfb 100644
--- a/test/tint/expressions/binary/mod/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
@@ -5,6 +5,6 @@
float3 b = float3(4.0f, 5.0f, 6.0f);
float3 v = (a / b);
float3 v_1 = floor(v);
- float3 r = ((a - (((v < (0.0f).xxx)) ? (ceil(v)) : (v_1))) * b);
+ float3 r = (a - ((((v < (0.0f).xxx)) ? (ceil(v)) : (v_1)) * b));
}
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
index 15885e9..c2043dc 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
@@ -5,6 +5,6 @@
float16_t b = float16_t(0.0h);
float16_t v = (a / b);
float16_t v_1 = floor(v);
- float16_t r = ((a - (((v < float16_t(0.0h))) ? (ceil(v)) : (v_1))) * b);
+ float16_t r = (a - ((((v < float16_t(0.0h))) ? (ceil(v)) : (v_1)) * b));
}
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
index 6b72400..b27bda8 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
@@ -5,6 +5,6 @@
float b = 0.0f;
float v = (a / b);
float v_1 = floor(v);
- float r = ((a - (((v < 0.0f)) ? (ceil(v)) : (v_1))) * b);
+ float r = (a - ((((v < 0.0f)) ? (ceil(v)) : (v_1)) * b));
}
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
index 6b72400..b27bda8 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
@@ -5,6 +5,6 @@
float b = 0.0f;
float v = (a / b);
float v_1 = floor(v);
- float r = ((a - (((v < 0.0f)) ? (ceil(v)) : (v_1))) * b);
+ float r = (a - ((((v < 0.0f)) ? (ceil(v)) : (v_1)) * b));
}
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
index f0f2f46..d3b3de6 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
@@ -5,6 +5,6 @@
vector<float16_t, 3> b = vector<float16_t, 3>(float16_t(0.0h), float16_t(5.0h), float16_t(0.0h));
vector<float16_t, 3> v = (a / b);
vector<float16_t, 3> v_1 = floor(v);
- vector<float16_t, 3> r = ((a - (((v < (float16_t(0.0h)).xxx)) ? (ceil(v)) : (v_1))) * b);
+ vector<float16_t, 3> r = (a - ((((v < (float16_t(0.0h)).xxx)) ? (ceil(v)) : (v_1)) * b));
}
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
index db05a09..84e0f7a 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
@@ -5,6 +5,6 @@
float3 b = float3(0.0f, 5.0f, 0.0f);
float3 v = (a / b);
float3 v_1 = floor(v);
- float3 r = ((a - (((v < (0.0f).xxx)) ? (ceil(v)) : (v_1))) * b);
+ float3 r = (a - ((((v < (0.0f).xxx)) ? (ceil(v)) : (v_1)) * b));
}
diff --git a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
index db05a09..84e0f7a 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_constant/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
@@ -5,6 +5,6 @@
float3 b = float3(0.0f, 5.0f, 0.0f);
float3 v = (a / b);
float3 v_1 = floor(v);
- float3 r = ((a - (((v < (0.0f).xxx)) ? (ceil(v)) : (v_1))) * b);
+ float3 r = (a - ((((v < (0.0f).xxx)) ? (ceil(v)) : (v_1)) * b));
}
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
index 46e181e..b5ab9d7 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
@@ -7,6 +7,6 @@
float16_t v_1 = (b + b);
float16_t v_2 = (v / v_1);
float16_t v_3 = floor(v_2);
- float16_t r = ((v - (((v_2 < float16_t(0.0h))) ? (ceil(v_2)) : (v_3))) * v_1);
+ float16_t r = (v - ((((v_2 < float16_t(0.0h))) ? (ceil(v_2)) : (v_3)) * v_1));
}
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
index 362add9..df08375 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
@@ -7,6 +7,6 @@
float v_1 = (b + b);
float v_2 = (v / v_1);
float v_3 = floor(v_2);
- float r = ((v - (((v_2 < 0.0f)) ? (ceil(v_2)) : (v_3))) * v_1);
+ float r = (v - ((((v_2 < 0.0f)) ? (ceil(v_2)) : (v_3)) * v_1));
}
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
index 362add9..df08375 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
@@ -7,6 +7,6 @@
float v_1 = (b + b);
float v_2 = (v / v_1);
float v_3 = floor(v_2);
- float r = ((v - (((v_2 < 0.0f)) ? (ceil(v_2)) : (v_3))) * v_1);
+ float r = (v - ((((v_2 < 0.0f)) ? (ceil(v_2)) : (v_3)) * v_1));
}
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
index 44e97b4..cec938d 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
@@ -7,6 +7,6 @@
vector<float16_t, 3> v_1 = (b + b);
vector<float16_t, 3> v_2 = (v / v_1);
vector<float16_t, 3> v_3 = floor(v_2);
- vector<float16_t, 3> r = ((v - (((v_2 < (float16_t(0.0h)).xxx)) ? (ceil(v_2)) : (v_3))) * v_1);
+ vector<float16_t, 3> r = (v - ((((v_2 < (float16_t(0.0h)).xxx)) ? (ceil(v_2)) : (v_3)) * v_1));
}
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
index ca2e06e..b9893a8 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
@@ -7,6 +7,6 @@
float3 v_1 = (b + b);
float3 v_2 = (v / v_1);
float3 v_3 = floor(v_2);
- float3 r = ((v - (((v_2 < (0.0f).xxx)) ? (ceil(v_2)) : (v_3))) * v_1);
+ float3 r = (v - ((((v_2 < (0.0f).xxx)) ? (ceil(v_2)) : (v_3)) * v_1));
}
diff --git a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
index ca2e06e..b9893a8 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_expression/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
@@ -7,6 +7,6 @@
float3 v_1 = (b + b);
float3 v_2 = (v / v_1);
float3 v_3 = floor(v_2);
- float3 r = ((v - (((v_2 < (0.0f).xxx)) ? (ceil(v_2)) : (v_3))) * v_1);
+ float3 r = (v - ((((v_2 < (0.0f).xxx)) ? (ceil(v_2)) : (v_3)) * v_1));
}
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
index 85f8f96..4595a76 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/f16.wgsl.expected.ir.dxc.hlsl
@@ -7,6 +7,6 @@
float16_t v_1 = b;
float16_t v_2 = (v / v_1);
float16_t v_3 = floor(v_2);
- float16_t r = ((v - (((v_2 < float16_t(0.0h))) ? (ceil(v_2)) : (v_3))) * v_1);
+ float16_t r = (v - ((((v_2 < float16_t(0.0h))) ? (ceil(v_2)) : (v_3)) * v_1));
}
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
index 506db84..a1a03b5 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/f32.wgsl.expected.ir.dxc.hlsl
@@ -7,6 +7,6 @@
float v_1 = b;
float v_2 = (v / v_1);
float v_3 = floor(v_2);
- float r = ((v - (((v_2 < 0.0f)) ? (ceil(v_2)) : (v_3))) * v_1);
+ float r = (v - ((((v_2 < 0.0f)) ? (ceil(v_2)) : (v_3)) * v_1));
}
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
index 506db84..a1a03b5 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/scalar-scalar/f32.wgsl.expected.ir.fxc.hlsl
@@ -7,6 +7,6 @@
float v_1 = b;
float v_2 = (v / v_1);
float v_3 = floor(v_2);
- float r = ((v - (((v_2 < 0.0f)) ? (ceil(v_2)) : (v_3))) * v_1);
+ float r = (v - ((((v_2 < 0.0f)) ? (ceil(v_2)) : (v_3)) * v_1));
}
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
index 4d56461..0ef56e6 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/f16.wgsl.expected.ir.dxc.hlsl
@@ -7,6 +7,6 @@
vector<float16_t, 3> v_1 = b;
vector<float16_t, 3> v_2 = (v / v_1);
vector<float16_t, 3> v_3 = floor(v_2);
- vector<float16_t, 3> r = ((v - (((v_2 < (float16_t(0.0h)).xxx)) ? (ceil(v_2)) : (v_3))) * v_1);
+ vector<float16_t, 3> r = (v - ((((v_2 < (float16_t(0.0h)).xxx)) ? (ceil(v_2)) : (v_3)) * v_1));
}
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
index b4827ba..a1e0035 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/f32.wgsl.expected.ir.dxc.hlsl
@@ -7,6 +7,6 @@
float3 v_1 = b;
float3 v_2 = (v / v_1);
float3 v_3 = floor(v_2);
- float3 r = ((v - (((v_2 < (0.0f).xxx)) ? (ceil(v_2)) : (v_3))) * v_1);
+ float3 r = (v - ((((v_2 < (0.0f).xxx)) ? (ceil(v_2)) : (v_3)) * v_1));
}
diff --git a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
index b4827ba..a1e0035 100644
--- a/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/expressions/binary/mod_by_zero/by_identifier/vec3-vec3/f32.wgsl.expected.ir.fxc.hlsl
@@ -7,6 +7,6 @@
float3 v_1 = b;
float3 v_2 = (v / v_1);
float3 v_3 = floor(v_2);
- float3 r = ((v - (((v_2 < (0.0f).xxx)) ? (ceil(v_2)) : (v_3))) * v_1);
+ float3 r = (v - ((((v_2 < (0.0f).xxx)) ? (ceil(v_2)) : (v_3)) * v_1));
}
diff --git a/test/tint/statements/compound_assign/divide_by_zero.wgsl.expected.ir.dxc.hlsl b/test/tint/statements/compound_assign/divide_by_zero.wgsl.expected.ir.dxc.hlsl
index b07f1c4..fd4a1fc 100644
--- a/test/tint/statements/compound_assign/divide_by_zero.wgsl.expected.ir.dxc.hlsl
+++ b/test/tint/statements/compound_assign/divide_by_zero.wgsl.expected.ir.dxc.hlsl
@@ -17,14 +17,14 @@
float v_1 = b;
float v_2 = (v_1 / 0.0f);
float v_3 = floor(v_2);
- b = ((v_1 - (((v_2 < 0.0f)) ? (ceil(v_2)) : (v_3))) * 0.0f);
+ b = (v_1 - ((((v_2 < 0.0f)) ? (ceil(v_2)) : (v_3)) * 0.0f));
float v_4 = float(maybe_zero);
b = (b / v_4);
float v_5 = float(maybe_zero);
float v_6 = b;
float v_7 = (v_6 / v_5);
float v_8 = floor(v_7);
- b = ((v_6 - (((v_7 < 0.0f)) ? (ceil(v_7)) : (v_8))) * v_5);
+ b = (v_6 - ((((v_7 < 0.0f)) ? (ceil(v_7)) : (v_8)) * v_5));
}
[numthreads(1, 1, 1)]
diff --git a/test/tint/statements/compound_assign/divide_by_zero.wgsl.expected.ir.fxc.hlsl b/test/tint/statements/compound_assign/divide_by_zero.wgsl.expected.ir.fxc.hlsl
index b07f1c4..fd4a1fc 100644
--- a/test/tint/statements/compound_assign/divide_by_zero.wgsl.expected.ir.fxc.hlsl
+++ b/test/tint/statements/compound_assign/divide_by_zero.wgsl.expected.ir.fxc.hlsl
@@ -17,14 +17,14 @@
float v_1 = b;
float v_2 = (v_1 / 0.0f);
float v_3 = floor(v_2);
- b = ((v_1 - (((v_2 < 0.0f)) ? (ceil(v_2)) : (v_3))) * 0.0f);
+ b = (v_1 - ((((v_2 < 0.0f)) ? (ceil(v_2)) : (v_3)) * 0.0f));
float v_4 = float(maybe_zero);
b = (b / v_4);
float v_5 = float(maybe_zero);
float v_6 = b;
float v_7 = (v_6 / v_5);
float v_8 = floor(v_7);
- b = ((v_6 - (((v_7 < 0.0f)) ? (ceil(v_7)) : (v_8))) * v_5);
+ b = (v_6 - ((((v_7 < 0.0f)) ? (ceil(v_7)) : (v_8)) * v_5));
}
[numthreads(1, 1, 1)]