tint/fxc: regen e2e tests that are not actual FXC timeouts

- write-before-break/0-opt.wgsl/spvasm compiles correctly and quickly.
- cov-multiple-one-iteration-loops-global-counter-write-matrices\0-opt.wgsl/spvasm fails with a different FXC error.

Change-Id: Ic0d57494bac8d4ca423fbdcd7bca7e918935b522
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/103761
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
This commit is contained in:
Antonio Maiorano 2022-09-26 15:17:45 +00:00 committed by Dawn LUCI CQ
parent f56d8954e3
commit 5b0bab84be
4 changed files with 996 additions and 572 deletions

View File

@ -1,4 +1,4 @@
SKIP: FAILED - TIMEOUT
SKIP: FAILED - crbug.com/tint/1375
void set_scalar_float2x3(inout float2x3 mat, int col, int row, float val) {
switch (col) {
@ -177,236 +177,545 @@ void main_1() {
m43 = float4x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
m44 = float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
i = 0;
{
[loop] for(; (i < 1); i = (i + 1)) {
i_1 = 0;
{
[loop] for(; (i_1 < 1); i_1 = (i_1 + 1)) {
i_2 = 0;
{
[loop] for(; (i_2 < 1); i_2 = (i_2 + 1)) {
i_3 = 0;
{
[loop] for(; (i_3 < 1); i_3 = (i_3 + 1)) {
i_4 = 0;
{
[loop] for(; (i_4 < 1); i_4 = (i_4 + 1)) {
i_5 = 0;
{
[loop] for(; (i_5 < 1); i_5 = (i_5 + 1)) {
i_6 = 0;
{
[loop] for(; (i_6 < 1); i_6 = (i_6 + 1)) {
i_7 = 0;
{
[loop] for(; (i_7 < 1); i_7 = (i_7 + 1)) {
i_8 = 0;
{
[loop] for(; (i_8 < 1); i_8 = (i_8 + 1)) {
i_9 = 0;
{
[loop] for(; (i_9 < 1); i_9 = (i_9 + 1)) {
i_10 = 0;
{
[loop] for(; (i_10 < 1); i_10 = (i_10 + 1)) {
i_11 = 0;
{
[loop] for(; (i_11 < 1); i_11 = (i_11 + 1)) {
i_12 = 0;
{
[loop] for(; (i_12 < 1); i_12 = (i_12 + 1)) {
i_13 = 0;
{
[loop] for(; (i_13 < 1); i_13 = (i_13 + 1)) {
i_14 = 0;
{
[loop] for(; (i_14 < 1); i_14 = (i_14 + 1)) {
i_15 = 0;
{
[loop] for(; (i_15 < 1); i_15 = (i_15 + 1)) {
i_16 = 0;
{
[loop] for(; (i_16 < 1); i_16 = (i_16 + 1)) {
i_17 = 0;
{
[loop] for(; (i_17 < 1); i_17 = (i_17 + 1)) {
i_18 = 0;
{
[loop] for(; (i_18 < 1); i_18 = (i_18 + 1)) {
i_19 = 0;
{
[loop] for(; (i_19 < 1); i_19 = (i_19 + 1)) {
i_20 = 0;
{
[loop] for(; (i_20 < 1); i_20 = (i_20 + 1)) {
i_21 = 0;
{
[loop] for(; (i_21 < 1); i_21 = (i_21 + 1)) {
i_22 = 0;
{
[loop] for(; (i_22 < 1); i_22 = (i_22 + 1)) {
i_23 = 0;
{
[loop] for(; (i_23 < 1); i_23 = (i_23 + 1)) {
i_24 = 0;
{
[loop] for(; (i_24 < 1); i_24 = (i_24 + 1)) {
i_25 = 0;
{
[loop] for(; (i_25 < 1); i_25 = (i_25 + 1)) {
i_26 = 0;
{
[loop] for(; (i_26 < 1); i_26 = (i_26 + 1)) {
i_27 = 0;
{
[loop] for(; (i_27 < 1); i_27 = (i_27 + 1)) {
i_28 = 0;
{
[loop] for(; (i_28 < 1); i_28 = (i_28 + 1)) {
i_29 = 0;
{
[loop] for(; (i_29 < 1); i_29 = (i_29 + 1)) {
i_30 = 0;
{
[loop] for(; (i_30 < 1); i_30 = (i_30 + 1)) {
i_31 = 0;
{
[loop] for(; (i_31 < 1); i_31 = (i_31 + 1)) {
i_32 = 0;
{
[loop] for(; (i_32 < 1); i_32 = (i_32 + 1)) {
i_33 = 0;
{
[loop] for(; (i_33 < 1); i_33 = (i_33 + 1)) {
i_34 = 0;
{
[loop] for(; (i_34 < 1); i_34 = (i_34 + 1)) {
i_35 = 0;
{
[loop] for(; (i_35 < 1); i_35 = (i_35 + 1)) {
i_36 = 0;
{
[loop] for(; (i_36 < 1); i_36 = (i_36 + 1)) {
i_37 = 0;
{
[loop] for(; (i_37 < 1); i_37 = (i_37 + 1)) {
[loop] while (true) {
x_GLF_global_loop_count = (x_GLF_global_loop_count + 1);
{
if ((x_GLF_global_loop_count < 98)) {
} else {
break;
}
}
}
set_scalar_float2x3(m23, i_37, i_37, 1.0f);
set_scalar_float2x4(m24, i_37, i_37, 1.0f);
set_scalar_float3x2(m32, i_37, i_37, 1.0f);
set_scalar_float3x3(m33, i_37, i_37, 1.0f);
set_scalar_float3x4(m34, i_37, i_37, 1.0f);
set_scalar_float4x2(m42, i_37, i_37, 1.0f);
set_scalar_float4x3(m43, i_37, i_37, 1.0f);
set_scalar_float4x4(m44, i_37, i_37, 1.0f);
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
[loop] while (true) {
const int x_105 = i;
if ((x_105 < 1)) {
} else {
break;
}
i_1 = 0;
[loop] while (true) {
const int x_112 = i_1;
if ((x_112 < 1)) {
} else {
break;
}
i_2 = 0;
[loop] while (true) {
const int x_119 = i_2;
if ((x_119 < 1)) {
} else {
break;
}
i_3 = 0;
[loop] while (true) {
const int x_126 = i_3;
if ((x_126 < 1)) {
} else {
break;
}
i_4 = 0;
[loop] while (true) {
const int x_133 = i_4;
if ((x_133 < 1)) {
} else {
break;
}
i_5 = 0;
[loop] while (true) {
const int x_140 = i_5;
if ((x_140 < 1)) {
} else {
break;
}
i_6 = 0;
[loop] while (true) {
const int x_147 = i_6;
if ((x_147 < 1)) {
} else {
break;
}
i_7 = 0;
[loop] while (true) {
const int x_154 = i_7;
if ((x_154 < 1)) {
} else {
break;
}
i_8 = 0;
[loop] while (true) {
const int x_161 = i_8;
if ((x_161 < 1)) {
} else {
break;
}
i_9 = 0;
[loop] while (true) {
const int x_168 = i_9;
if ((x_168 < 1)) {
} else {
break;
}
i_10 = 0;
[loop] while (true) {
const int x_175 = i_10;
if ((x_175 < 1)) {
} else {
break;
}
i_11 = 0;
[loop] while (true) {
const int x_182 = i_11;
if ((x_182 < 1)) {
} else {
break;
}
i_12 = 0;
[loop] while (true) {
const int x_189 = i_12;
if ((x_189 < 1)) {
} else {
break;
}
i_13 = 0;
[loop] while (true) {
const int x_196 = i_13;
if ((x_196 < 1)) {
} else {
break;
}
i_14 = 0;
[loop] while (true) {
const int x_203 = i_14;
if ((x_203 < 1)) {
} else {
break;
}
i_15 = 0;
[loop] while (true) {
const int x_210 = i_15;
if ((x_210 < 1)) {
} else {
break;
}
i_16 = 0;
[loop] while (true) {
const int x_217 = i_16;
if ((x_217 < 1)) {
} else {
break;
}
i_17 = 0;
[loop] while (true) {
const int x_224 = i_17;
if ((x_224 < 1)) {
} else {
break;
}
i_18 = 0;
[loop] while (true) {
const int x_231 = i_18;
if ((x_231 < 1)) {
} else {
break;
}
i_19 = 0;
[loop] while (true) {
const int x_238 = i_19;
if ((x_238 < 1)) {
} else {
break;
}
i_20 = 0;
[loop] while (true) {
const int x_245 = i_20;
if ((x_245 < 1)) {
} else {
break;
}
i_21 = 0;
[loop] while (true) {
const int x_252 = i_21;
if ((x_252 < 1)) {
} else {
break;
}
i_22 = 0;
[loop] while (true) {
const int x_259 = i_22;
if ((x_259 < 1)) {
} else {
break;
}
i_23 = 0;
[loop] while (true) {
const int x_266 = i_23;
if ((x_266 < 1)) {
} else {
break;
}
i_24 = 0;
[loop] while (true) {
const int x_273 = i_24;
if ((x_273 < 1)) {
} else {
break;
}
i_25 = 0;
[loop] while (true) {
const int x_280 = i_25;
if ((x_280 < 1)) {
} else {
break;
}
i_26 = 0;
[loop] while (true) {
const int x_287 = i_26;
if ((x_287 < 1)) {
} else {
break;
}
i_27 = 0;
[loop] while (true) {
const int x_294 = i_27;
if ((x_294 < 1)) {
} else {
break;
}
i_28 = 0;
[loop] while (true) {
const int x_301 = i_28;
if ((x_301 < 1)) {
} else {
break;
}
i_29 = 0;
[loop] while (true) {
const int x_308 = i_29;
if ((x_308 < 1)) {
} else {
break;
}
i_30 = 0;
[loop] while (true) {
const int x_315 = i_30;
if ((x_315 < 1)) {
} else {
break;
}
i_31 = 0;
[loop] while (true) {
const int x_322 = i_31;
if ((x_322 < 1)) {
} else {
break;
}
i_32 = 0;
[loop] while (true) {
const int x_329 = i_32;
if ((x_329 < 1)) {
} else {
break;
}
i_33 = 0;
[loop] while (true) {
const int x_336 = i_33;
if ((x_336 < 1)) {
} else {
break;
}
i_34 = 0;
[loop] while (true) {
const int x_343 = i_34;
if ((x_343 < 1)) {
} else {
break;
}
i_35 = 0;
[loop] while (true) {
const int x_350 = i_35;
if ((x_350 < 1)) {
} else {
break;
}
i_36 = 0;
[loop] while (true) {
const int x_357 = i_36;
if ((x_357 < 1)) {
} else {
break;
}
i_37 = 0;
[loop] while (true) {
const int x_364 = i_37;
if ((x_364 < 1)) {
} else {
break;
}
[loop] while (true) {
const int x_371 = x_GLF_global_loop_count;
x_GLF_global_loop_count = (x_371 + 1);
{
const int x_373 = x_GLF_global_loop_count;
if ((x_373 < 98)) {
} else {
break;
}
}
}
const int x_375 = i_37;
const int x_376 = i_37;
set_scalar_float2x3(m23, x_376, x_375, 1.0f);
const int x_378 = i_37;
const int x_379 = i_37;
set_scalar_float2x4(m24, x_379, x_378, 1.0f);
const int x_381 = i_37;
const int x_382 = i_37;
set_scalar_float3x2(m32, x_382, x_381, 1.0f);
const int x_384 = i_37;
const int x_385 = i_37;
set_scalar_float3x3(m33, x_385, x_384, 1.0f);
const int x_387 = i_37;
const int x_388 = i_37;
set_scalar_float3x4(m34, x_388, x_387, 1.0f);
const int x_390 = i_37;
const int x_391 = i_37;
set_scalar_float4x2(m42, x_391, x_390, 1.0f);
const int x_393 = i_37;
const int x_394 = i_37;
set_scalar_float4x3(m43, x_394, x_393, 1.0f);
const int x_396 = i_37;
const int x_397 = i_37;
set_scalar_float4x4(m44, x_397, x_396, 1.0f);
{
const int x_399 = i_37;
i_37 = (x_399 + 1);
}
}
{
const int x_401 = i_36;
i_36 = (x_401 + 1);
}
}
{
const int x_403 = i_35;
i_35 = (x_403 + 1);
}
}
{
const int x_405 = i_34;
i_34 = (x_405 + 1);
}
}
{
const int x_407 = i_33;
i_33 = (x_407 + 1);
}
}
{
const int x_409 = i_32;
i_32 = (x_409 + 1);
}
}
{
const int x_411 = i_31;
i_31 = (x_411 + 1);
}
}
{
const int x_413 = i_30;
i_30 = (x_413 + 1);
}
}
{
const int x_415 = i_29;
i_29 = (x_415 + 1);
}
}
{
const int x_417 = i_28;
i_28 = (x_417 + 1);
}
}
{
const int x_419 = i_27;
i_27 = (x_419 + 1);
}
}
{
const int x_421 = i_26;
i_26 = (x_421 + 1);
}
}
{
const int x_423 = i_25;
i_25 = (x_423 + 1);
}
}
{
const int x_425 = i_24;
i_24 = (x_425 + 1);
}
}
{
const int x_427 = i_23;
i_23 = (x_427 + 1);
}
}
{
const int x_429 = i_22;
i_22 = (x_429 + 1);
}
}
{
const int x_431 = i_21;
i_21 = (x_431 + 1);
}
}
{
const int x_433 = i_20;
i_20 = (x_433 + 1);
}
}
{
const int x_435 = i_19;
i_19 = (x_435 + 1);
}
}
{
const int x_437 = i_18;
i_18 = (x_437 + 1);
}
}
{
const int x_439 = i_17;
i_17 = (x_439 + 1);
}
}
{
const int x_441 = i_16;
i_16 = (x_441 + 1);
}
}
{
const int x_443 = i_15;
i_15 = (x_443 + 1);
}
}
{
const int x_445 = i_14;
i_14 = (x_445 + 1);
}
}
{
const int x_447 = i_13;
i_13 = (x_447 + 1);
}
}
{
const int x_449 = i_12;
i_12 = (x_449 + 1);
}
}
{
const int x_451 = i_11;
i_11 = (x_451 + 1);
}
}
{
const int x_453 = i_10;
i_10 = (x_453 + 1);
}
}
{
const int x_455 = i_9;
i_9 = (x_455 + 1);
}
}
{
const int x_457 = i_8;
i_8 = (x_457 + 1);
}
}
{
const int x_459 = i_7;
i_7 = (x_459 + 1);
}
}
{
const int x_461 = i_6;
i_6 = (x_461 + 1);
}
}
{
const int x_463 = i_5;
i_5 = (x_463 + 1);
}
}
{
const int x_465 = i_4;
i_4 = (x_465 + 1);
}
}
{
const int x_467 = i_3;
i_3 = (x_467 + 1);
}
}
{
const int x_469 = i_2;
i_2 = (x_469 + 1);
}
}
{
const int x_471 = i_1;
i_1 = (x_471 + 1);
}
}
{
const int x_473 = i;
i = (x_473 + 1);
}
}
sum = 0.0f;
r = 0;
{
[loop] for(; (x_GLF_global_loop_count < 100); r = (r + 1)) {
x_GLF_global_loop_count = (x_GLF_global_loop_count + 1);
const float x_486 = m23[0][r];
sum = (sum + x_486);
const float x_491 = m24[0][r];
sum = (sum + x_491);
const float x_496 = m32[0][r];
sum = (sum + x_496);
const float x_501 = m33[0][r];
sum = (sum + x_501);
const float x_506 = m34[0][r];
sum = (sum + x_506);
const float x_511 = m42[0][r];
sum = (sum + x_511);
const float x_516 = m43[0][r];
sum = (sum + x_516);
const float x_521 = m44[0][r];
sum = (sum + x_521);
[loop] while (true) {
const int x_479 = x_GLF_global_loop_count;
if ((x_479 < 100)) {
} else {
break;
}
const int x_482 = x_GLF_global_loop_count;
x_GLF_global_loop_count = (x_482 + 1);
const int x_484 = r;
const float x_486 = m23[0][x_484];
const float x_487 = sum;
sum = (x_487 + x_486);
const int x_489 = r;
const float x_491 = m24[0][x_489];
const float x_492 = sum;
sum = (x_492 + x_491);
const int x_494 = r;
const float x_496 = m32[0][x_494];
const float x_497 = sum;
sum = (x_497 + x_496);
const int x_499 = r;
const float x_501 = m33[0][x_499];
const float x_502 = sum;
sum = (x_502 + x_501);
const int x_504 = r;
const float x_506 = m34[0][x_504];
const float x_507 = sum;
sum = (x_507 + x_506);
const int x_509 = r;
const float x_511 = m42[0][x_509];
const float x_512 = sum;
sum = (x_512 + x_511);
const int x_514 = r;
const float x_516 = m43[0][x_514];
const float x_517 = sum;
sum = (x_517 + x_516);
const int x_519 = r;
const float x_521 = m44[0][x_519];
const float x_522 = sum;
sum = (x_522 + x_521);
{
const int x_524 = r;
r = (x_524 + 1);
}
}
if ((sum == 8.0f)) {
const float x_526 = sum;
if ((x_526 == 8.0f)) {
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
} else {
x_GLF_color = (0.0f).xxxx;
@ -433,3 +742,6 @@ tint_symbol main() {
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
return wrapper_result;
}
FXC validation failure:
C:\src\dawn\test\tint\Shader@0x000001C31974FD40(409,76-87): error X3531: can't unroll loops marked with loop attribute

View File

@ -1,4 +1,4 @@
SKIP: FAILED - TIMEOUT
SKIP: FAILED - crbug.com/tint/1375
void set_scalar_float2x3(inout float2x3 mat, int col, int row, float val) {
switch (col) {
@ -177,236 +177,545 @@ void main_1() {
m43 = float4x3((0.0f).xxx, (0.0f).xxx, (0.0f).xxx, (0.0f).xxx);
m44 = float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
i = 0;
{
[loop] for(; (i < 1); i = (i + 1)) {
i_1 = 0;
{
[loop] for(; (i_1 < 1); i_1 = (i_1 + 1)) {
i_2 = 0;
{
[loop] for(; (i_2 < 1); i_2 = (i_2 + 1)) {
i_3 = 0;
{
[loop] for(; (i_3 < 1); i_3 = (i_3 + 1)) {
i_4 = 0;
{
[loop] for(; (i_4 < 1); i_4 = (i_4 + 1)) {
i_5 = 0;
{
[loop] for(; (i_5 < 1); i_5 = (i_5 + 1)) {
i_6 = 0;
{
[loop] for(; (i_6 < 1); i_6 = (i_6 + 1)) {
i_7 = 0;
{
[loop] for(; (i_7 < 1); i_7 = (i_7 + 1)) {
i_8 = 0;
{
[loop] for(; (i_8 < 1); i_8 = (i_8 + 1)) {
i_9 = 0;
{
[loop] for(; (i_9 < 1); i_9 = (i_9 + 1)) {
i_10 = 0;
{
[loop] for(; (i_10 < 1); i_10 = (i_10 + 1)) {
i_11 = 0;
{
[loop] for(; (i_11 < 1); i_11 = (i_11 + 1)) {
i_12 = 0;
{
[loop] for(; (i_12 < 1); i_12 = (i_12 + 1)) {
i_13 = 0;
{
[loop] for(; (i_13 < 1); i_13 = (i_13 + 1)) {
i_14 = 0;
{
[loop] for(; (i_14 < 1); i_14 = (i_14 + 1)) {
i_15 = 0;
{
[loop] for(; (i_15 < 1); i_15 = (i_15 + 1)) {
i_16 = 0;
{
[loop] for(; (i_16 < 1); i_16 = (i_16 + 1)) {
i_17 = 0;
{
[loop] for(; (i_17 < 1); i_17 = (i_17 + 1)) {
i_18 = 0;
{
[loop] for(; (i_18 < 1); i_18 = (i_18 + 1)) {
i_19 = 0;
{
[loop] for(; (i_19 < 1); i_19 = (i_19 + 1)) {
i_20 = 0;
{
[loop] for(; (i_20 < 1); i_20 = (i_20 + 1)) {
i_21 = 0;
{
[loop] for(; (i_21 < 1); i_21 = (i_21 + 1)) {
i_22 = 0;
{
[loop] for(; (i_22 < 1); i_22 = (i_22 + 1)) {
i_23 = 0;
{
[loop] for(; (i_23 < 1); i_23 = (i_23 + 1)) {
i_24 = 0;
{
[loop] for(; (i_24 < 1); i_24 = (i_24 + 1)) {
i_25 = 0;
{
[loop] for(; (i_25 < 1); i_25 = (i_25 + 1)) {
i_26 = 0;
{
[loop] for(; (i_26 < 1); i_26 = (i_26 + 1)) {
i_27 = 0;
{
[loop] for(; (i_27 < 1); i_27 = (i_27 + 1)) {
i_28 = 0;
{
[loop] for(; (i_28 < 1); i_28 = (i_28 + 1)) {
i_29 = 0;
{
[loop] for(; (i_29 < 1); i_29 = (i_29 + 1)) {
i_30 = 0;
{
[loop] for(; (i_30 < 1); i_30 = (i_30 + 1)) {
i_31 = 0;
{
[loop] for(; (i_31 < 1); i_31 = (i_31 + 1)) {
i_32 = 0;
{
[loop] for(; (i_32 < 1); i_32 = (i_32 + 1)) {
i_33 = 0;
{
[loop] for(; (i_33 < 1); i_33 = (i_33 + 1)) {
i_34 = 0;
{
[loop] for(; (i_34 < 1); i_34 = (i_34 + 1)) {
i_35 = 0;
{
[loop] for(; (i_35 < 1); i_35 = (i_35 + 1)) {
i_36 = 0;
{
[loop] for(; (i_36 < 1); i_36 = (i_36 + 1)) {
i_37 = 0;
{
[loop] for(; (i_37 < 1); i_37 = (i_37 + 1)) {
[loop] while (true) {
x_GLF_global_loop_count = (x_GLF_global_loop_count + 1);
{
if ((x_GLF_global_loop_count < 98)) {
} else {
break;
}
}
}
set_scalar_float2x3(m23, i_37, i_37, 1.0f);
set_scalar_float2x4(m24, i_37, i_37, 1.0f);
set_scalar_float3x2(m32, i_37, i_37, 1.0f);
set_scalar_float3x3(m33, i_37, i_37, 1.0f);
set_scalar_float3x4(m34, i_37, i_37, 1.0f);
set_scalar_float4x2(m42, i_37, i_37, 1.0f);
set_scalar_float4x3(m43, i_37, i_37, 1.0f);
set_scalar_float4x4(m44, i_37, i_37, 1.0f);
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
[loop] while (true) {
const int x_105 = i;
if ((x_105 < 1)) {
} else {
break;
}
i_1 = 0;
[loop] while (true) {
const int x_112 = i_1;
if ((x_112 < 1)) {
} else {
break;
}
i_2 = 0;
[loop] while (true) {
const int x_119 = i_2;
if ((x_119 < 1)) {
} else {
break;
}
i_3 = 0;
[loop] while (true) {
const int x_126 = i_3;
if ((x_126 < 1)) {
} else {
break;
}
i_4 = 0;
[loop] while (true) {
const int x_133 = i_4;
if ((x_133 < 1)) {
} else {
break;
}
i_5 = 0;
[loop] while (true) {
const int x_140 = i_5;
if ((x_140 < 1)) {
} else {
break;
}
i_6 = 0;
[loop] while (true) {
const int x_147 = i_6;
if ((x_147 < 1)) {
} else {
break;
}
i_7 = 0;
[loop] while (true) {
const int x_154 = i_7;
if ((x_154 < 1)) {
} else {
break;
}
i_8 = 0;
[loop] while (true) {
const int x_161 = i_8;
if ((x_161 < 1)) {
} else {
break;
}
i_9 = 0;
[loop] while (true) {
const int x_168 = i_9;
if ((x_168 < 1)) {
} else {
break;
}
i_10 = 0;
[loop] while (true) {
const int x_175 = i_10;
if ((x_175 < 1)) {
} else {
break;
}
i_11 = 0;
[loop] while (true) {
const int x_182 = i_11;
if ((x_182 < 1)) {
} else {
break;
}
i_12 = 0;
[loop] while (true) {
const int x_189 = i_12;
if ((x_189 < 1)) {
} else {
break;
}
i_13 = 0;
[loop] while (true) {
const int x_196 = i_13;
if ((x_196 < 1)) {
} else {
break;
}
i_14 = 0;
[loop] while (true) {
const int x_203 = i_14;
if ((x_203 < 1)) {
} else {
break;
}
i_15 = 0;
[loop] while (true) {
const int x_210 = i_15;
if ((x_210 < 1)) {
} else {
break;
}
i_16 = 0;
[loop] while (true) {
const int x_217 = i_16;
if ((x_217 < 1)) {
} else {
break;
}
i_17 = 0;
[loop] while (true) {
const int x_224 = i_17;
if ((x_224 < 1)) {
} else {
break;
}
i_18 = 0;
[loop] while (true) {
const int x_231 = i_18;
if ((x_231 < 1)) {
} else {
break;
}
i_19 = 0;
[loop] while (true) {
const int x_238 = i_19;
if ((x_238 < 1)) {
} else {
break;
}
i_20 = 0;
[loop] while (true) {
const int x_245 = i_20;
if ((x_245 < 1)) {
} else {
break;
}
i_21 = 0;
[loop] while (true) {
const int x_252 = i_21;
if ((x_252 < 1)) {
} else {
break;
}
i_22 = 0;
[loop] while (true) {
const int x_259 = i_22;
if ((x_259 < 1)) {
} else {
break;
}
i_23 = 0;
[loop] while (true) {
const int x_266 = i_23;
if ((x_266 < 1)) {
} else {
break;
}
i_24 = 0;
[loop] while (true) {
const int x_273 = i_24;
if ((x_273 < 1)) {
} else {
break;
}
i_25 = 0;
[loop] while (true) {
const int x_280 = i_25;
if ((x_280 < 1)) {
} else {
break;
}
i_26 = 0;
[loop] while (true) {
const int x_287 = i_26;
if ((x_287 < 1)) {
} else {
break;
}
i_27 = 0;
[loop] while (true) {
const int x_294 = i_27;
if ((x_294 < 1)) {
} else {
break;
}
i_28 = 0;
[loop] while (true) {
const int x_301 = i_28;
if ((x_301 < 1)) {
} else {
break;
}
i_29 = 0;
[loop] while (true) {
const int x_308 = i_29;
if ((x_308 < 1)) {
} else {
break;
}
i_30 = 0;
[loop] while (true) {
const int x_315 = i_30;
if ((x_315 < 1)) {
} else {
break;
}
i_31 = 0;
[loop] while (true) {
const int x_322 = i_31;
if ((x_322 < 1)) {
} else {
break;
}
i_32 = 0;
[loop] while (true) {
const int x_329 = i_32;
if ((x_329 < 1)) {
} else {
break;
}
i_33 = 0;
[loop] while (true) {
const int x_336 = i_33;
if ((x_336 < 1)) {
} else {
break;
}
i_34 = 0;
[loop] while (true) {
const int x_343 = i_34;
if ((x_343 < 1)) {
} else {
break;
}
i_35 = 0;
[loop] while (true) {
const int x_350 = i_35;
if ((x_350 < 1)) {
} else {
break;
}
i_36 = 0;
[loop] while (true) {
const int x_357 = i_36;
if ((x_357 < 1)) {
} else {
break;
}
i_37 = 0;
[loop] while (true) {
const int x_364 = i_37;
if ((x_364 < 1)) {
} else {
break;
}
[loop] while (true) {
const int x_371 = x_GLF_global_loop_count;
x_GLF_global_loop_count = (x_371 + 1);
{
const int x_373 = x_GLF_global_loop_count;
if ((x_373 < 98)) {
} else {
break;
}
}
}
const int x_375 = i_37;
const int x_376 = i_37;
set_scalar_float2x3(m23, x_376, x_375, 1.0f);
const int x_378 = i_37;
const int x_379 = i_37;
set_scalar_float2x4(m24, x_379, x_378, 1.0f);
const int x_381 = i_37;
const int x_382 = i_37;
set_scalar_float3x2(m32, x_382, x_381, 1.0f);
const int x_384 = i_37;
const int x_385 = i_37;
set_scalar_float3x3(m33, x_385, x_384, 1.0f);
const int x_387 = i_37;
const int x_388 = i_37;
set_scalar_float3x4(m34, x_388, x_387, 1.0f);
const int x_390 = i_37;
const int x_391 = i_37;
set_scalar_float4x2(m42, x_391, x_390, 1.0f);
const int x_393 = i_37;
const int x_394 = i_37;
set_scalar_float4x3(m43, x_394, x_393, 1.0f);
const int x_396 = i_37;
const int x_397 = i_37;
set_scalar_float4x4(m44, x_397, x_396, 1.0f);
{
const int x_399 = i_37;
i_37 = (x_399 + 1);
}
}
{
const int x_401 = i_36;
i_36 = (x_401 + 1);
}
}
{
const int x_403 = i_35;
i_35 = (x_403 + 1);
}
}
{
const int x_405 = i_34;
i_34 = (x_405 + 1);
}
}
{
const int x_407 = i_33;
i_33 = (x_407 + 1);
}
}
{
const int x_409 = i_32;
i_32 = (x_409 + 1);
}
}
{
const int x_411 = i_31;
i_31 = (x_411 + 1);
}
}
{
const int x_413 = i_30;
i_30 = (x_413 + 1);
}
}
{
const int x_415 = i_29;
i_29 = (x_415 + 1);
}
}
{
const int x_417 = i_28;
i_28 = (x_417 + 1);
}
}
{
const int x_419 = i_27;
i_27 = (x_419 + 1);
}
}
{
const int x_421 = i_26;
i_26 = (x_421 + 1);
}
}
{
const int x_423 = i_25;
i_25 = (x_423 + 1);
}
}
{
const int x_425 = i_24;
i_24 = (x_425 + 1);
}
}
{
const int x_427 = i_23;
i_23 = (x_427 + 1);
}
}
{
const int x_429 = i_22;
i_22 = (x_429 + 1);
}
}
{
const int x_431 = i_21;
i_21 = (x_431 + 1);
}
}
{
const int x_433 = i_20;
i_20 = (x_433 + 1);
}
}
{
const int x_435 = i_19;
i_19 = (x_435 + 1);
}
}
{
const int x_437 = i_18;
i_18 = (x_437 + 1);
}
}
{
const int x_439 = i_17;
i_17 = (x_439 + 1);
}
}
{
const int x_441 = i_16;
i_16 = (x_441 + 1);
}
}
{
const int x_443 = i_15;
i_15 = (x_443 + 1);
}
}
{
const int x_445 = i_14;
i_14 = (x_445 + 1);
}
}
{
const int x_447 = i_13;
i_13 = (x_447 + 1);
}
}
{
const int x_449 = i_12;
i_12 = (x_449 + 1);
}
}
{
const int x_451 = i_11;
i_11 = (x_451 + 1);
}
}
{
const int x_453 = i_10;
i_10 = (x_453 + 1);
}
}
{
const int x_455 = i_9;
i_9 = (x_455 + 1);
}
}
{
const int x_457 = i_8;
i_8 = (x_457 + 1);
}
}
{
const int x_459 = i_7;
i_7 = (x_459 + 1);
}
}
{
const int x_461 = i_6;
i_6 = (x_461 + 1);
}
}
{
const int x_463 = i_5;
i_5 = (x_463 + 1);
}
}
{
const int x_465 = i_4;
i_4 = (x_465 + 1);
}
}
{
const int x_467 = i_3;
i_3 = (x_467 + 1);
}
}
{
const int x_469 = i_2;
i_2 = (x_469 + 1);
}
}
{
const int x_471 = i_1;
i_1 = (x_471 + 1);
}
}
{
const int x_473 = i;
i = (x_473 + 1);
}
}
sum = 0.0f;
r = 0;
{
[loop] for(; (x_GLF_global_loop_count < 100); r = (r + 1)) {
x_GLF_global_loop_count = (x_GLF_global_loop_count + 1);
const float x_486 = m23[0][r];
sum = (sum + x_486);
const float x_491 = m24[0][r];
sum = (sum + x_491);
const float x_496 = m32[0][r];
sum = (sum + x_496);
const float x_501 = m33[0][r];
sum = (sum + x_501);
const float x_506 = m34[0][r];
sum = (sum + x_506);
const float x_511 = m42[0][r];
sum = (sum + x_511);
const float x_516 = m43[0][r];
sum = (sum + x_516);
const float x_521 = m44[0][r];
sum = (sum + x_521);
[loop] while (true) {
const int x_479 = x_GLF_global_loop_count;
if ((x_479 < 100)) {
} else {
break;
}
const int x_482 = x_GLF_global_loop_count;
x_GLF_global_loop_count = (x_482 + 1);
const int x_484 = r;
const float x_486 = m23[0][x_484];
const float x_487 = sum;
sum = (x_487 + x_486);
const int x_489 = r;
const float x_491 = m24[0][x_489];
const float x_492 = sum;
sum = (x_492 + x_491);
const int x_494 = r;
const float x_496 = m32[0][x_494];
const float x_497 = sum;
sum = (x_497 + x_496);
const int x_499 = r;
const float x_501 = m33[0][x_499];
const float x_502 = sum;
sum = (x_502 + x_501);
const int x_504 = r;
const float x_506 = m34[0][x_504];
const float x_507 = sum;
sum = (x_507 + x_506);
const int x_509 = r;
const float x_511 = m42[0][x_509];
const float x_512 = sum;
sum = (x_512 + x_511);
const int x_514 = r;
const float x_516 = m43[0][x_514];
const float x_517 = sum;
sum = (x_517 + x_516);
const int x_519 = r;
const float x_521 = m44[0][x_519];
const float x_522 = sum;
sum = (x_522 + x_521);
{
const int x_524 = r;
r = (x_524 + 1);
}
}
if ((sum == 8.0f)) {
const float x_526 = sum;
if ((x_526 == 8.0f)) {
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
} else {
x_GLF_color = (0.0f).xxxx;
@ -433,3 +742,6 @@ tint_symbol main() {
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
return wrapper_result;
}
FXC validation failure:
C:\src\dawn\test\tint\Shader@0x000001B05F850BC0(409,76-87): error X3531: can't unroll loops marked with loop attribute

View File

@ -1,100 +0,0 @@
SKIP: FAILED - TIMEOUT
void set_scalar_float4x3(inout float4x3 mat, int col, int row, float val) {
switch (col) {
case 0:
mat[0] = (row.xxx == int3(0, 1, 2)) ? val.xxx : mat[0];
break;
case 1:
mat[1] = (row.xxx == int3(0, 1, 2)) ? val.xxx : mat[1];
break;
case 2:
mat[2] = (row.xxx == int3(0, 1, 2)) ? val.xxx : mat[2];
break;
case 3:
mat[3] = (row.xxx == int3(0, 1, 2)) ? val.xxx : mat[3];
break;
}
}
cbuffer cbuffer_x_9 : register(b0, space0) {
uint4 x_9[1];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
int idx = 0;
float4x3 m43 = float4x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
int ll_1 = 0;
int GLF_live6rows = 0;
int z = 0;
int ll_2 = 0;
int ctr = 0;
float4x3 tempm43 = float4x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
int ll_3 = 0;
int c = 0;
int d = 0;
float GLF_live6sums[9] = (float[9])0;
idx = 0;
m43 = float4x3(float3(1.0f, 0.0f, 0.0f), float3(0.0f, 1.0f, 0.0f), float3(0.0f, 0.0f, 1.0f), (0.0f).xxx);
ll_1 = 0;
GLF_live6rows = 2;
[loop] while (true) {
const int x_18 = ll_1;
const int x_19 = asint(x_9[0].x);
if ((x_18 >= x_19)) {
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
break;
}
ll_1 = (ll_1 + 1);
const int x_22 = asint(x_9[0].x);
z = x_22;
ll_2 = 0;
ctr = 0;
{
[loop] for(; (ctr < 1); ctr = (ctr + 1)) {
const int x_24 = ll_2;
const int x_25 = asint(x_9[0].x);
if ((x_24 >= x_25)) {
break;
}
ll_2 = (ll_2 + 1);
tempm43 = m43;
ll_3 = 0;
c = 0;
{
[loop] for(; (1 < z); c = (c + 1)) {
d = 0;
set_scalar_float4x3(tempm43, (((d >= 0) & (d < 3)) ? d : 0), (((c >= 0) & (c < 4)) ? c : 0), 1.0f);
}
}
const int x_117 = (((idx >= 0) & (idx < 9)) ? idx : 0);
const float x_119 = m43[ctr].y;
const float x_121 = GLF_live6sums[x_117];
GLF_live6sums[x_117] = (x_121 + x_119);
}
}
idx = (idx + 1);
}
return;
}
struct main_out {
float4 x_GLF_color_1;
};
struct tint_symbol {
float4 x_GLF_color_1 : SV_Target0;
};
main_out main_inner() {
main_1();
const main_out tint_symbol_2 = {x_GLF_color};
return tint_symbol_2;
}
tint_symbol main() {
const main_out inner_result = main_inner();
tint_symbol wrapper_result = (tint_symbol)0;
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
return wrapper_result;
}

View File

@ -1,100 +0,0 @@
SKIP: FAILED - TIMEOUT
void set_scalar_float4x3(inout float4x3 mat, int col, int row, float val) {
switch (col) {
case 0:
mat[0] = (row.xxx == int3(0, 1, 2)) ? val.xxx : mat[0];
break;
case 1:
mat[1] = (row.xxx == int3(0, 1, 2)) ? val.xxx : mat[1];
break;
case 2:
mat[2] = (row.xxx == int3(0, 1, 2)) ? val.xxx : mat[2];
break;
case 3:
mat[3] = (row.xxx == int3(0, 1, 2)) ? val.xxx : mat[3];
break;
}
}
cbuffer cbuffer_x_9 : register(b0, space0) {
uint4 x_9[1];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
int idx = 0;
float4x3 m43 = float4x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
int ll_1 = 0;
int GLF_live6rows = 0;
int z = 0;
int ll_2 = 0;
int ctr = 0;
float4x3 tempm43 = float4x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
int ll_3 = 0;
int c = 0;
int d = 0;
float GLF_live6sums[9] = (float[9])0;
idx = 0;
m43 = float4x3(float3(1.0f, 0.0f, 0.0f), float3(0.0f, 1.0f, 0.0f), float3(0.0f, 0.0f, 1.0f), (0.0f).xxx);
ll_1 = 0;
GLF_live6rows = 2;
[loop] while (true) {
const int x_18 = ll_1;
const int x_19 = asint(x_9[0].x);
if ((x_18 >= x_19)) {
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
break;
}
ll_1 = (ll_1 + 1);
const int x_22 = asint(x_9[0].x);
z = x_22;
ll_2 = 0;
ctr = 0;
{
[loop] for(; (ctr < 1); ctr = (ctr + 1)) {
const int x_24 = ll_2;
const int x_25 = asint(x_9[0].x);
if ((x_24 >= x_25)) {
break;
}
ll_2 = (ll_2 + 1);
tempm43 = m43;
ll_3 = 0;
c = 0;
{
[loop] for(; (1 < z); c = (c + 1)) {
d = 0;
set_scalar_float4x3(tempm43, (((d >= 0) & (d < 3)) ? d : 0), (((c >= 0) & (c < 4)) ? c : 0), 1.0f);
}
}
const int x_117 = (((idx >= 0) & (idx < 9)) ? idx : 0);
const float x_119 = m43[ctr].y;
const float x_121 = GLF_live6sums[x_117];
GLF_live6sums[x_117] = (x_121 + x_119);
}
}
idx = (idx + 1);
}
return;
}
struct main_out {
float4 x_GLF_color_1;
};
struct tint_symbol {
float4 x_GLF_color_1 : SV_Target0;
};
main_out main_inner() {
main_1();
const main_out tint_symbol_2 = {x_GLF_color};
return tint_symbol_2;
}
tint_symbol main() {
const main_out inner_result = main_inner();
tint_symbol wrapper_result = (tint_symbol)0;
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
return wrapper_result;
}