Manually generate HLSL skip files for vk-gl-cts e2e tests

It seems we haven't run our e2e tests with FXC validation in a long time
 - at least not since we've added the vk-gl-cts corpus.

Locally disabled exclusion of "/test/vk-gl-cts/" in test-runner/main.go,
and ran:
./test/test-all.sh out/build/x64-Debug/tint.exe --format hlsl --fxc --generate-skip

These will need to be manually removed once the skips aren't needed by
deleting them all, and re-running as above.

Bug: tint:940
Change-Id: I27e395e69f5e1bd7d234f3155f40396b751720d4
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/71981
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Antonio Maiorano <amaiorano@google.com>
This commit is contained in:
Antonio Maiorano 2021-12-08 04:26:58 +00:00 committed by Tint LUCI CQ
parent b2bbb14bd4
commit 2f7730a16e
110 changed files with 17815 additions and 2028 deletions

View File

@ -1,3 +1,5 @@
SKIP: FAILED
struct QuicksortObject {
int numbers[10];
};
@ -1560,3 +1562,5 @@ tint_symbol_2 main(tint_symbol_1 tint_symbol) {
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
return wrapper_result;
}
C:\src\tint\test\Shader@0x000001EB41548320(156,10-21): error X3531: can't unroll loops marked with loop attribute

View File

@ -1,3 +1,20 @@
SKIP: FAILED
[[block]]
struct buf0 {
resolution : vec2<f32>;
};
struct S {
field0 : u32;
field1 : u32;
};
[[group(0), binding(0)]] var<uniform> x_75 : buf0;
var<private> gl_FragCoord : vec4<f32>;
var<private> x_GLF_color : vec4<f32>;
error: extended arithmetic is not finalized for WGSL: https://github.com/gpuweb/gpuweb/issues/1565: %712 = OpISubBorrow %710 %107 %470

View File

@ -1,3 +1,9 @@
SKIP: FAILED
[[block]]
struct buf0 {
resolution : vec2<f32>;
};
error: undef pointer is not valid: %845 = OpUndef %434

View File

@ -1,3 +1,5 @@
SKIP: FAILED
[numthreads(1, 1, 1)]
void f() {
{
@ -15,3 +17,5 @@ void f() {
}
return;
}
C:\src\tint\test\Shader@0x000001A817AB3700(7,11-19): error X3708: continue cannot be used in a switch

View File

@ -0,0 +1,165 @@
SKIP: FAILED
struct QuicksortObject {
int numbers[10];
};
static QuicksortObject obj = (QuicksortObject)0;
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
cbuffer cbuffer_x_30 : register(b0, space0) {
uint4 x_30[1];
};
void swap_i1_i1_(inout int i, inout int j) {
int temp = 0;
const int x_92 = i;
const int x_94 = obj.numbers[x_92];
temp = x_94;
const int x_95 = i;
const int x_96 = j;
const int x_98 = obj.numbers[x_96];
obj.numbers[x_95] = x_98;
const int x_100 = j;
obj.numbers[x_100] = temp;
return;
}
int performPartition_i1_i1_(inout int l, inout int h) {
int pivot = 0;
int i_1 = 0;
int j_1 = 0;
int param = 0;
int param_1 = 0;
int param_2 = 0;
int param_3 = 0;
const int x_104 = h;
const int x_106 = obj.numbers[x_104];
pivot = x_106;
const int x_107 = l;
i_1 = (x_107 - 1);
const int x_109 = l;
j_1 = x_109;
[loop] while (true) {
const int x_114 = j_1;
const int x_115 = h;
if ((x_114 <= (x_115 - 1))) {
} else {
break;
}
const int x_121 = obj.numbers[j_1];
if ((x_121 <= pivot)) {
i_1 = (i_1 + 1);
param = i_1;
param_1 = j_1;
swap_i1_i1_(param, param_1);
}
{
j_1 = (j_1 + 1);
}
}
param_2 = (i_1 + 1);
const int x_135 = h;
param_3 = x_135;
swap_i1_i1_(param_2, param_3);
return (i_1 + 1);
}
void quicksort_() {
int l_1 = 0;
int h_1 = 0;
int top = 0;
int stack[10] = (int[10])0;
int p = 0;
int param_4 = 0;
int param_5 = 0;
l_1 = 0;
h_1 = 9;
top = -1;
const int x_141 = (top + 1);
top = x_141;
stack[x_141] = l_1;
const int x_145 = (top + 1);
top = x_145;
stack[x_145] = h_1;
[loop] while (true) {
if ((top >= 0)) {
} else {
break;
}
const int x_155 = top;
top = (x_155 - 1);
const int x_158 = stack[x_155];
h_1 = x_158;
const int x_159 = top;
top = (x_159 - 1);
const int x_162 = stack[x_159];
l_1 = x_162;
param_4 = l_1;
param_5 = h_1;
const int x_165 = performPartition_i1_i1_(param_4, param_5);
p = x_165;
if (((p - 1) > l_1)) {
const int x_173 = (top + 1);
top = x_173;
stack[x_173] = l_1;
const int x_177 = (top + 1);
top = x_177;
stack[x_177] = (p - 1);
}
if (((p + 1) < h_1)) {
const int x_188 = (top + 1);
top = x_188;
stack[x_188] = (p + 1);
const int x_193 = (top + 1);
top = x_193;
stack[x_193] = h_1;
}
}
return;
}
void main_1() {
int i_2 = 0;
i_2 = 0;
{
[loop] for(; (i_2 < 10); i_2 = (i_2 + 1)) {
obj.numbers[i_2] = (10 - i_2);
const int x_71 = i_2;
const int x_74 = obj.numbers[i_2];
const int x_77 = obj.numbers[i_2];
obj.numbers[x_71] = (x_74 * x_77);
}
}
quicksort_();
const int x_84 = obj.numbers[0];
const int x_86 = obj.numbers[4];
if ((x_84 < x_86)) {
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
} else {
x_GLF_color = float4(0.0f, 1.0f, 0.0f, 1.0f);
}
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_1 = {x_GLF_color};
return tint_symbol_1;
}
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;
}
C:\src\tint\test\Shader@0x00000246B5D89100(124,7-22): warning X3550: array reference cannot be used as an l-value; not natively addressable, forcing loop to unroll
C:\src\tint\test\Shader@0x00000246B5D89100(123,12-45): error X3531: can't unroll loops marked with loop attribute

View File

@ -0,0 +1,165 @@
SKIP: FAILED
struct QuicksortObject {
int numbers[10];
};
static QuicksortObject obj = (QuicksortObject)0;
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
cbuffer cbuffer_x_30 : register(b0, space0) {
uint4 x_30[1];
};
void swap_i1_i1_(inout int i, inout int j) {
int temp = 0;
const int x_92 = i;
const int x_94 = obj.numbers[x_92];
temp = x_94;
const int x_95 = i;
const int x_96 = j;
const int x_98 = obj.numbers[x_96];
obj.numbers[x_95] = x_98;
const int x_100 = j;
obj.numbers[x_100] = temp;
return;
}
int performPartition_i1_i1_(inout int l, inout int h) {
int pivot = 0;
int i_1 = 0;
int j_1 = 0;
int param = 0;
int param_1 = 0;
int param_2 = 0;
int param_3 = 0;
const int x_104 = h;
const int x_106 = obj.numbers[x_104];
pivot = x_106;
const int x_107 = l;
i_1 = (x_107 - 1);
const int x_109 = l;
j_1 = x_109;
[loop] while (true) {
const int x_114 = j_1;
const int x_115 = h;
if ((x_114 <= (x_115 - 1))) {
} else {
break;
}
const int x_121 = obj.numbers[j_1];
if ((x_121 <= pivot)) {
i_1 = (i_1 + 1);
param = i_1;
param_1 = j_1;
swap_i1_i1_(param, param_1);
}
{
j_1 = (j_1 + 1);
}
}
param_2 = (i_1 + 1);
const int x_135 = h;
param_3 = x_135;
swap_i1_i1_(param_2, param_3);
return (i_1 + 1);
}
void quicksort_() {
int l_1 = 0;
int h_1 = 0;
int top = 0;
int stack[10] = (int[10])0;
int p = 0;
int param_4 = 0;
int param_5 = 0;
l_1 = 0;
h_1 = 9;
top = -1;
const int x_141 = (top + 1);
top = x_141;
stack[x_141] = l_1;
const int x_145 = (top + 1);
top = x_145;
stack[x_145] = h_1;
[loop] while (true) {
if ((top >= 0)) {
} else {
break;
}
const int x_155 = top;
top = (x_155 - 1);
const int x_158 = stack[x_155];
h_1 = x_158;
const int x_159 = top;
top = (x_159 - 1);
const int x_162 = stack[x_159];
l_1 = x_162;
param_4 = l_1;
param_5 = h_1;
const int x_165 = performPartition_i1_i1_(param_4, param_5);
p = x_165;
if (((p - 1) > l_1)) {
const int x_173 = (top + 1);
top = x_173;
stack[x_173] = l_1;
const int x_177 = (top + 1);
top = x_177;
stack[x_177] = (p - 1);
}
if (((p + 1) < h_1)) {
const int x_188 = (top + 1);
top = x_188;
stack[x_188] = (p + 1);
const int x_193 = (top + 1);
top = x_193;
stack[x_193] = h_1;
}
}
return;
}
void main_1() {
int i_2 = 0;
i_2 = 0;
{
[loop] for(; (i_2 < 10); i_2 = (i_2 + 1)) {
obj.numbers[i_2] = (10 - i_2);
const int x_71 = i_2;
const int x_74 = obj.numbers[i_2];
const int x_77 = obj.numbers[i_2];
obj.numbers[x_71] = (x_74 * x_77);
}
}
quicksort_();
const int x_84 = obj.numbers[0];
const int x_86 = obj.numbers[4];
if ((x_84 < x_86)) {
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
} else {
x_GLF_color = float4(0.0f, 1.0f, 0.0f, 1.0f);
}
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_1 = {x_GLF_color};
return tint_symbol_1;
}
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;
}
C:\src\tint\test\Shader@0x000001BEDA24CD50(124,7-22): warning X3550: array reference cannot be used as an l-value; not natively addressable, forcing loop to unroll
C:\src\tint\test\Shader@0x000001BEDA24CD50(123,12-45): error X3531: can't unroll loops marked with loop attribute

View File

@ -0,0 +1,50 @@
SKIP: FAILED
cbuffer cbuffer_x_6 : register(b0, space0) {
uint4 x_6[1];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void func_() {
const float x_28 = asfloat(x_6[0].x);
if ((1.0f > x_28)) {
discard;
}
return;
}
void main_1() {
x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
[loop] while (true) {
func_();
if (false) {
} else {
break;
}
}
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
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;
}
C:\src\tint\test\Shader@0x0000016102DC2B30(16,10-21): warning X3557: loop only executes for 0 iteration(s), consider removing [loop]
C:\src\tint\test\Shader@0x0000016102DC2B30(8,15-18): internal error: invalid access of unbound variable

View File

@ -0,0 +1,50 @@
SKIP: FAILED
cbuffer cbuffer_x_6 : register(b0, space0) {
uint4 x_6[1];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void func_() {
const float x_28 = asfloat(x_6[0].x);
if ((1.0f > x_28)) {
discard;
}
return;
}
void main_1() {
x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
[loop] while (true) {
func_();
if (false) {
} else {
break;
}
}
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
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;
}
C:\src\tint\test\Shader@0x0000026A3937ED10(16,10-21): warning X3557: loop only executes for 0 iteration(s), consider removing [loop]
C:\src\tint\test\Shader@0x0000026A3937ED10(8,15-18): internal error: invalid access of unbound variable

View File

@ -0,0 +1,122 @@
SKIP: FAILED
warning: code is unreachable
cbuffer cbuffer_x_6 : register(b0, space0) {
uint4 x_6[1];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
int data[10] = (int[10])0;
int x_40 = 0;
int x_40_phi = 0;
int x_11_phi = 0;
const int x_7 = data[1];
const int x_10 = ((1 < x_7) ? 2 : 1);
x_40_phi = 1;
x_11_phi = x_10;
[loop] while (true) {
int x_54 = 0;
int x_41 = 0;
int x_41_phi = 0;
x_40 = x_40_phi;
const int x_11 = x_11_phi;
if ((x_11 < 3)) {
} else {
break;
}
int x_54_phi = 0;
const int x_8 = (x_11 + 1);
const float x_47 = asfloat(x_6[0].x);
x_54_phi = x_40;
switch(int(x_47)) {
case 78: {
x_GLF_color = float4(1.0f, 1.0f, 1.0f, 1.0f);
/* fallthrough */
{
x_54_phi = asint((x_40 + asint(1)));
/* fallthrough */
}
{
x_54 = x_54_phi;
x_41_phi = x_54;
{
x_41 = x_41_phi;
x_40_phi = x_41;
x_11_phi = x_8;
}
continue;
}
break;
}
case 19: {
x_54_phi = asint((x_40 + asint(1)));
/* fallthrough */
{
x_54 = x_54_phi;
x_41_phi = x_54;
{
x_41 = x_41_phi;
x_40_phi = x_41;
x_11_phi = x_8;
}
continue;
}
break;
}
case 23:
case 38: {
x_54 = x_54_phi;
x_41_phi = x_54;
{
x_41 = x_41_phi;
x_40_phi = x_41;
x_11_phi = x_8;
}
continue;
break;
}
default: {
x_41_phi = x_40;
{
x_41 = x_41_phi;
x_40_phi = x_41;
x_11_phi = x_8;
}
continue;
break;
}
}
x_41_phi = 0;
{
x_41 = x_41_phi;
x_40_phi = x_41;
x_11_phi = x_8;
}
}
data[x_40] = 1;
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
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;
}
C:\src\tint\test\Shader@0x0000022C8EAC8720(45,11-19): error X3708: continue cannot be used in a switch

View File

@ -0,0 +1,125 @@
SKIP: FAILED
vk-gl-cts/graphicsfuzz/call-if-while-switch/0-opt.wgsl:52:5 warning: code is unreachable
x_41_phi = 0;
^^^^^^^^
cbuffer cbuffer_x_6 : register(b0, space0) {
uint4 x_6[1];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
int data[10] = (int[10])0;
int x_40 = 0;
int x_40_phi = 0;
int x_11_phi = 0;
const int x_7 = data[1];
const int x_10 = ((1 < x_7) ? 2 : 1);
x_40_phi = 1;
x_11_phi = x_10;
[loop] while (true) {
int x_54 = 0;
int x_41 = 0;
int x_41_phi = 0;
x_40 = x_40_phi;
const int x_11 = x_11_phi;
if ((x_11 < 3)) {
} else {
break;
}
int x_54_phi = 0;
const int x_8 = (x_11 + 1);
const float x_47 = asfloat(x_6[0].x);
x_54_phi = x_40;
switch(int(x_47)) {
case 78: {
x_GLF_color = float4(1.0f, 1.0f, 1.0f, 1.0f);
/* fallthrough */
{
x_54_phi = asint((x_40 + asint(1)));
/* fallthrough */
}
{
x_54 = x_54_phi;
x_41_phi = x_54;
{
x_41 = x_41_phi;
x_40_phi = x_41;
x_11_phi = x_8;
}
continue;
}
break;
}
case 19: {
x_54_phi = asint((x_40 + asint(1)));
/* fallthrough */
{
x_54 = x_54_phi;
x_41_phi = x_54;
{
x_41 = x_41_phi;
x_40_phi = x_41;
x_11_phi = x_8;
}
continue;
}
break;
}
case 23:
case 38: {
x_54 = x_54_phi;
x_41_phi = x_54;
{
x_41 = x_41_phi;
x_40_phi = x_41;
x_11_phi = x_8;
}
continue;
break;
}
default: {
x_41_phi = x_40;
{
x_41 = x_41_phi;
x_40_phi = x_41;
x_11_phi = x_8;
}
continue;
break;
}
}
x_41_phi = 0;
{
x_41 = x_41_phi;
x_40_phi = x_41;
x_11_phi = x_8;
}
}
data[x_40] = 1;
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
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;
}
C:\src\tint\test\Shader@0x0000025D82F36130(45,11-19): error X3708: continue cannot be used in a switch

View File

@ -1,5 +1,6 @@
SKIP: FAILED
warning: code is unreachable
cbuffer cbuffer_x_5 : register(b0, space0) {
uint4 x_5[1];
};
@ -8,7 +9,7 @@ static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
const float x_26 = asfloat(x_5[0].x);
if ((x_26 > 1.0f)) {
while (true) {
[loop] while (true) {
x_GLF_color = float4(0.0f, 0.0f, 0.0f, 1.0f);
}
return;
@ -24,11 +25,17 @@ struct tint_symbol {
float4 x_GLF_color_1 : SV_Target0;
};
tint_symbol main() {
main_out main_inner() {
main_1();
const main_out tint_symbol_1 = {x_GLF_color};
const tint_symbol tint_symbol_3 = {tint_symbol_1.x_GLF_color_1};
return tint_symbol_3;
const main_out tint_symbol_2 = {x_GLF_color};
return tint_symbol_2;
}
C:\src\tint\test\Shader@0x000002959F099FD0(9,12-15): error X3696: infinite loop detected - loop never exits
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;
}
C:\src\tint\test\Shader@0x000001F6BB717E80(9,19-22): error X3696: infinite loop detected - loop never exits

View File

@ -1,5 +1,9 @@
SKIP: FAILED
vk-gl-cts/graphicsfuzz/color-set-in-for-loop/0-opt.wgsl:16:5 warning: code is unreachable
return;
^^^^^^
cbuffer cbuffer_x_5 : register(b0, space0) {
uint4 x_5[1];
};
@ -8,7 +12,7 @@ static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
const float x_26 = asfloat(x_5[0].x);
if ((x_26 > 1.0f)) {
while (true) {
[loop] while (true) {
x_GLF_color = float4(0.0f, 0.0f, 0.0f, 1.0f);
}
return;
@ -24,11 +28,17 @@ struct tint_symbol {
float4 x_GLF_color_1 : SV_Target0;
};
tint_symbol main() {
main_out main_inner() {
main_1();
const main_out tint_symbol_1 = {x_GLF_color};
const tint_symbol tint_symbol_3 = {tint_symbol_1.x_GLF_color_1};
return tint_symbol_3;
const main_out tint_symbol_2 = {x_GLF_color};
return tint_symbol_2;
}
C:\src\tint\test\Shader@0x0000018E509AFB50(9,12-15): error X3696: infinite loop detected - loop never exits
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;
}
C:\src\tint\test\Shader@0x00000141CAFC4AB0(9,19-22): error X3696: infinite loop detected - loop never exits

View File

@ -0,0 +1,218 @@
SKIP: FAILED
void set_float3(inout float3 vec, int idx, float val) {
vec = (idx.xxx == int3(0, 1, 2)) ? val.xxx : vec;
}
void set_float2(inout float2 vec, int idx, float val) {
vec = (idx.xx == int2(0, 1)) ? val.xx : vec;
}
cbuffer cbuffer_x_25 : register(b0, space0) {
uint4 x_25[1];
};
static float4 gl_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
float3 drawShape_vf2_(inout float2 pos) {
bool c2 = false;
bool c3 = false;
bool c4 = false;
bool c5 = false;
bool c6 = false;
int GLF_live4i = 0;
int GLF_live4_looplimiter5 = 0;
float4x2 GLF_live7m42 = float4x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
float3x3 GLF_live7m33 = float3x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
int GLF_live7cols = 0;
int GLF_live7_looplimiter3 = 0;
int GLF_live7rows = 0;
int GLF_live7_looplimiter2 = 0;
int GLF_live7_looplimiter1 = 0;
int GLF_live7c = 0;
int GLF_live7r = 0;
int GLF_live7_looplimiter0 = 0;
int GLF_live7sum_index = 0;
int GLF_live7_looplimiter7 = 0;
int GLF_live7cols_1 = 0;
int GLF_live7rows_1 = 0;
float GLF_live7sums[9] = (float[9])0;
int GLF_live7c_1 = 0;
int GLF_live7r_1 = 0;
int x_180 = 0;
float3x3 indexable = float3x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
const float x_182 = pos.x;
c2 = (x_182 > 1.0f);
if (c2) {
return float3(1.0f, 1.0f, 1.0f);
}
const float x_188 = pos.y;
c3 = (x_188 < 1.0f);
if (c3) {
return float3(1.0f, 1.0f, 1.0f);
}
const float x_194 = pos.y;
c4 = (x_194 > 1.0f);
if (c4) {
return float3(1.0f, 1.0f, 1.0f);
}
const float x_200 = pos.x;
c5 = (x_200 < 1.0f);
if (c5) {
return float3(1.0f, 1.0f, 1.0f);
}
const float x_206 = pos.x;
c6 = ((x_206 + 1.0f) > 1.0f);
if (c6) {
return float3(1.0f, 1.0f, 1.0f);
}
GLF_live4i = 0;
{
[loop] for(; (GLF_live4i < 4); GLF_live4i = (GLF_live4i + 1)) {
if ((GLF_live4_looplimiter5 >= 7)) {
break;
}
GLF_live4_looplimiter5 = (GLF_live4_looplimiter5 + 1);
GLF_live7m42 = float4x2(float2(1.0f, 0.0f), float2(0.0f, 1.0f), float2(0.0f, 0.0f), float2(1.0f, 0.0f));
GLF_live7m33 = float3x3(float3(1.0f, 0.0f, 0.0f), float3(0.0f, 1.0f, 0.0f), float3(0.0f, 0.0f, 1.0f));
GLF_live7cols = 2;
{
[loop] for(; (GLF_live7cols < 4); GLF_live7cols = (GLF_live7cols + 1)) {
if ((GLF_live7_looplimiter3 >= 7)) {
break;
}
GLF_live7_looplimiter3 = (GLF_live7_looplimiter3 + 1);
GLF_live7rows = 2;
{
[loop] for(; (GLF_live7rows < 4); GLF_live7rows = (GLF_live7rows + 1)) {
if ((GLF_live7_looplimiter2 >= 7)) {
break;
}
GLF_live7_looplimiter2 = (GLF_live7_looplimiter2 + 1);
GLF_live7_looplimiter1 = 0;
GLF_live7c = 0;
{
[loop] for(; (GLF_live7c < 3); GLF_live7c = (GLF_live7c + 1)) {
if ((GLF_live7_looplimiter1 >= 7)) {
break;
}
GLF_live7_looplimiter1 = (GLF_live7_looplimiter1 + 1);
GLF_live7r = 0;
{
[loop] for(; (GLF_live7r < 2); GLF_live7r = (GLF_live7r + 1)) {
if ((GLF_live7_looplimiter0 >= 7)) {
break;
}
GLF_live7_looplimiter0 = (GLF_live7_looplimiter0 + 1);
set_float3(GLF_live7m33[(((GLF_live7c >= 0) & (GLF_live7c < 3)) ? GLF_live7c : 0)], (((GLF_live7r >= 0) & (GLF_live7r < 3)) ? GLF_live7r : 0), 1.0f);
const float x_267 = asfloat(x_25[0].y);
if ((0.0f > x_267)) {
} else {
set_float2(GLF_live7m42[(((GLF_live7c >= 0) & (GLF_live7c < 4)) ? GLF_live7c : 0)], (((GLF_live7r >= 0) & (GLF_live7r < 2)) ? GLF_live7r : 0), 1.0f);
}
}
}
}
}
}
}
}
}
GLF_live7sum_index = 0;
GLF_live7_looplimiter7 = 0;
GLF_live7cols_1 = 2;
{
[loop] for(; (GLF_live7cols_1 < 4); GLF_live7cols_1 = (GLF_live7cols_1 + 1)) {
if ((GLF_live7_looplimiter7 >= 7)) {
break;
}
GLF_live7_looplimiter7 = (GLF_live7_looplimiter7 + 1);
GLF_live7rows_1 = 2;
GLF_live7sums[(((GLF_live7sum_index >= 0) & (GLF_live7sum_index < 9)) ? GLF_live7sum_index : 0)] = 0.0f;
GLF_live7c_1 = 0;
{
[loop] for(; (GLF_live7c_1 < 1); GLF_live7c_1 = (GLF_live7c_1 + 1)) {
GLF_live7r_1 = 0;
{
[loop] for(; (GLF_live7r_1 < GLF_live7rows_1); GLF_live7r_1 = (GLF_live7r_1 + 1)) {
const int x_310 = (((GLF_live7sum_index >= 0) & (GLF_live7sum_index < 9)) ? GLF_live7sum_index : 0);
const float3x3 x_312 = transpose(GLF_live7m33);
if ((GLF_live7c_1 < 3)) {
x_180 = 1;
} else {
const float x_318 = asfloat(x_25[0].x);
x_180 = int(x_318);
}
const int x_320 = x_180;
const int x_93 = GLF_live7r_1;
indexable = x_312;
const float x_324 = indexable[x_320][((x_93 < 3) ? 1 : 0)];
const float x_326 = GLF_live7sums[x_310];
GLF_live7sums[x_310] = (x_326 + x_324);
const int x_332 = (((GLF_live7sum_index >= 0) & (GLF_live7sum_index < 9)) ? GLF_live7sum_index : 0);
const float x_334 = GLF_live7m42[1][GLF_live7r_1];
const float x_336 = GLF_live7sums[x_332];
GLF_live7sums[x_332] = (x_336 + x_334);
}
}
}
}
GLF_live7sum_index = (GLF_live7sum_index + 1);
}
}
}
}
return float3(1.0f, 1.0f, 1.0f);
}
void main_1() {
float2 position = float2(0.0f, 0.0f);
float2 param = float2(0.0f, 0.0f);
float2 param_1 = float2(0.0f, 0.0f);
int i = 0;
float2 param_2 = float2(0.0f, 0.0f);
const float x_161 = asfloat(x_25[0].x);
if ((x_161 >= 2.0f)) {
const float4 x_165 = gl_FragCoord;
position = float2(x_165.x, x_165.y);
param = position;
const float3 x_168 = drawShape_vf2_(param);
param_1 = position;
const float3 x_170 = drawShape_vf2_(param_1);
i = 25;
{
[loop] for(; (i > 0); i = (i - 1)) {
param_2 = position;
const float3 x_178 = drawShape_vf2_(param_2);
}
}
}
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
return;
}
struct main_out {
float4 x_GLF_color_1;
};
struct tint_symbol_1 {
float4 gl_FragCoord_param : SV_Position;
};
struct tint_symbol_2 {
float4 x_GLF_color_1 : SV_Target0;
};
main_out main_inner(float4 gl_FragCoord_param) {
gl_FragCoord = gl_FragCoord_param;
main_1();
const main_out tint_symbol_4 = {x_GLF_color};
return tint_symbol_4;
}
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const main_out inner_result = main_inner(tint_symbol.gl_FragCoord_param);
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
return wrapper_result;
}
C:\src\tint\test\Shader@0x000002DBA887C060(100,28-81): error X3531: can't unroll loops marked with loop attribute

View File

@ -0,0 +1,246 @@
SKIP: FAILED
void set_float3(inout float3 vec, int idx, float val) {
vec = (idx.xxx == int3(0, 1, 2)) ? val.xxx : vec;
}
void set_float2(inout float2 vec, int idx, float val) {
vec = (idx.xx == int2(0, 1)) ? val.xx : vec;
}
cbuffer cbuffer_x_25 : register(b0, space0) {
uint4 x_25[1];
};
static float4 gl_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
float3 drawShape_vf2_(inout float2 pos) {
bool c2 = false;
bool c3 = false;
bool c4 = false;
bool c5 = false;
bool c6 = false;
int GLF_live4i = 0;
int GLF_live4_looplimiter5 = 0;
float4x2 GLF_live7m42 = float4x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
float3x3 GLF_live7m33 = float3x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
int GLF_live7cols = 0;
int GLF_live7_looplimiter3 = 0;
int GLF_live7rows = 0;
int GLF_live7_looplimiter2 = 0;
int GLF_live7_looplimiter1 = 0;
int GLF_live7c = 0;
int GLF_live7r = 0;
int GLF_live7_looplimiter0 = 0;
int GLF_live7sum_index = 0;
int GLF_live7_looplimiter7 = 0;
int GLF_live7cols_1 = 0;
int GLF_live7rows_1 = 0;
float GLF_live7sums[9] = (float[9])0;
int GLF_live7c_1 = 0;
int GLF_live7r_1 = 0;
int x_180 = 0;
float3x3 indexable = float3x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
const float x_182 = pos.x;
c2 = (x_182 > 1.0f);
if (c2) {
return float3(1.0f, 1.0f, 1.0f);
}
const float x_188 = pos.y;
c3 = (x_188 < 1.0f);
if (c3) {
return float3(1.0f, 1.0f, 1.0f);
}
const float x_194 = pos.y;
c4 = (x_194 > 1.0f);
if (c4) {
return float3(1.0f, 1.0f, 1.0f);
}
const float x_200 = pos.x;
c5 = (x_200 < 1.0f);
if (c5) {
return float3(1.0f, 1.0f, 1.0f);
}
const float x_206 = pos.x;
c6 = ((x_206 + 1.0f) > 1.0f);
if (c6) {
return float3(1.0f, 1.0f, 1.0f);
}
GLF_live4i = 0;
{
[loop] for(; (GLF_live4i < 4); GLF_live4i = (GLF_live4i + 1)) {
if ((GLF_live4_looplimiter5 >= 7)) {
break;
}
GLF_live4_looplimiter5 = (GLF_live4_looplimiter5 + 1);
GLF_live7m42 = float4x2(float2(1.0f, 0.0f), float2(0.0f, 1.0f), float2(0.0f, 0.0f), float2(1.0f, 0.0f));
GLF_live7m33 = float3x3(float3(1.0f, 0.0f, 0.0f), float3(0.0f, 1.0f, 0.0f), float3(0.0f, 0.0f, 1.0f));
GLF_live7cols = 2;
{
[loop] for(; (GLF_live7cols < 4); GLF_live7cols = (GLF_live7cols + 1)) {
if ((GLF_live7_looplimiter3 >= 7)) {
break;
}
GLF_live7_looplimiter3 = (GLF_live7_looplimiter3 + 1);
GLF_live7rows = 2;
{
[loop] for(; (GLF_live7rows < 4); GLF_live7rows = (GLF_live7rows + 1)) {
if ((GLF_live7_looplimiter2 >= 7)) {
break;
}
GLF_live7_looplimiter2 = (GLF_live7_looplimiter2 + 1);
GLF_live7_looplimiter1 = 0;
GLF_live7c = 0;
{
[loop] for(; (GLF_live7c < 3); GLF_live7c = (GLF_live7c + 1)) {
if ((GLF_live7_looplimiter1 >= 7)) {
break;
}
GLF_live7_looplimiter1 = (GLF_live7_looplimiter1 + 1);
GLF_live7r = 0;
{
[loop] for(; (GLF_live7r < 2); GLF_live7r = (GLF_live7r + 1)) {
if ((GLF_live7_looplimiter0 >= 7)) {
break;
}
GLF_live7_looplimiter0 = (GLF_live7_looplimiter0 + 1);
bool tint_tmp = (GLF_live7c >= 0);
if (tint_tmp) {
tint_tmp = (GLF_live7c < 3);
}
bool tint_tmp_1 = (GLF_live7r >= 0);
if (tint_tmp_1) {
tint_tmp_1 = (GLF_live7r < 3);
}
set_float3(GLF_live7m33[((tint_tmp) ? GLF_live7c : 0)], ((tint_tmp_1) ? GLF_live7r : 0), 1.0f);
const float x_267 = asfloat(x_25[0].y);
if ((0.0f > x_267)) {
} else {
bool tint_tmp_2 = (GLF_live7c >= 0);
if (tint_tmp_2) {
tint_tmp_2 = (GLF_live7c < 4);
}
bool tint_tmp_3 = (GLF_live7r >= 0);
if (tint_tmp_3) {
tint_tmp_3 = (GLF_live7r < 2);
}
set_float2(GLF_live7m42[((tint_tmp_2) ? GLF_live7c : 0)], ((tint_tmp_3) ? GLF_live7r : 0), 1.0f);
}
}
}
}
}
}
}
}
}
GLF_live7sum_index = 0;
GLF_live7_looplimiter7 = 0;
GLF_live7cols_1 = 2;
{
[loop] for(; (GLF_live7cols_1 < 4); GLF_live7cols_1 = (GLF_live7cols_1 + 1)) {
if ((GLF_live7_looplimiter7 >= 7)) {
break;
}
GLF_live7_looplimiter7 = (GLF_live7_looplimiter7 + 1);
GLF_live7rows_1 = 2;
bool tint_tmp_4 = (GLF_live7sum_index >= 0);
if (tint_tmp_4) {
tint_tmp_4 = (GLF_live7sum_index < 9);
}
GLF_live7sums[((tint_tmp_4) ? GLF_live7sum_index : 0)] = 0.0f;
GLF_live7c_1 = 0;
{
[loop] for(; (GLF_live7c_1 < 1); GLF_live7c_1 = (GLF_live7c_1 + 1)) {
GLF_live7r_1 = 0;
{
[loop] for(; (GLF_live7r_1 < GLF_live7rows_1); GLF_live7r_1 = (GLF_live7r_1 + 1)) {
bool tint_tmp_5 = (GLF_live7sum_index >= 0);
if (tint_tmp_5) {
tint_tmp_5 = (GLF_live7sum_index < 9);
}
const int x_310 = ((tint_tmp_5) ? GLF_live7sum_index : 0);
const float3x3 x_312 = transpose(GLF_live7m33);
if ((GLF_live7c_1 < 3)) {
x_180 = 1;
} else {
const float x_318 = asfloat(x_25[0].x);
x_180 = int(x_318);
}
const int x_320 = x_180;
const int x_93 = GLF_live7r_1;
indexable = x_312;
const float x_324 = indexable[x_320][((x_93 < 3) ? 1 : 0)];
const float x_326 = GLF_live7sums[x_310];
GLF_live7sums[x_310] = (x_326 + x_324);
bool tint_tmp_6 = (GLF_live7sum_index >= 0);
if (tint_tmp_6) {
tint_tmp_6 = (GLF_live7sum_index < 9);
}
const int x_332 = ((tint_tmp_6) ? GLF_live7sum_index : 0);
const float x_334 = GLF_live7m42[1][GLF_live7r_1];
const float x_336 = GLF_live7sums[x_332];
GLF_live7sums[x_332] = (x_336 + x_334);
}
}
}
}
GLF_live7sum_index = (GLF_live7sum_index + 1);
}
}
}
}
return float3(1.0f, 1.0f, 1.0f);
}
void main_1() {
float2 position = float2(0.0f, 0.0f);
float2 param = float2(0.0f, 0.0f);
float2 param_1 = float2(0.0f, 0.0f);
int i = 0;
float2 param_2 = float2(0.0f, 0.0f);
const float x_161 = asfloat(x_25[0].x);
if ((x_161 >= 2.0f)) {
const float4 x_165 = gl_FragCoord;
position = float2(x_165.x, x_165.y);
param = position;
const float3 x_168 = drawShape_vf2_(param);
param_1 = position;
const float3 x_170 = drawShape_vf2_(param_1);
i = 25;
{
[loop] for(; (i > 0); i = (i - 1)) {
param_2 = position;
const float3 x_178 = drawShape_vf2_(param_2);
}
}
}
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
return;
}
struct main_out {
float4 x_GLF_color_1;
};
struct tint_symbol_1 {
float4 gl_FragCoord_param : SV_Position;
};
struct tint_symbol_2 {
float4 x_GLF_color_1 : SV_Target0;
};
main_out main_inner(float4 gl_FragCoord_param) {
gl_FragCoord = gl_FragCoord_param;
main_1();
const main_out tint_symbol_4 = {x_GLF_color};
return tint_symbol_4;
}
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const main_out inner_result = main_inner(tint_symbol.gl_FragCoord_param);
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
return wrapper_result;
}
C:\src\tint\test\Shader@0x0000018D92558420(100,28-81): error X3531: can't unroll loops marked with loop attribute

View File

@ -0,0 +1,49 @@
SKIP: FAILED
struct Array {
int values[2];
};
cbuffer cbuffer_x_7 : register(b0, space0) {
uint4 x_7[1];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
Array a = (Array)0;
Array b = (Array)0;
float one = 0.0f;
const int x_10 = asint(x_7[0].x);
a.values[x_10] = 1;
b = a;
one = 0.0f;
const int x_11 = asint(x_7[0].x);
const int x_12 = b.values[x_11];
if ((x_12 == 1)) {
one = 1.0f;
}
x_GLF_color = float4(one, 0.0f, 0.0f, 1.0f);
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;
}
C:\src\tint\test\Shader@0x0000026DA3D26220(15,3-16): error X3500: array reference cannot be used as an l-value; not natively addressable

View File

@ -0,0 +1,49 @@
SKIP: FAILED
struct Array {
int values[2];
};
cbuffer cbuffer_x_7 : register(b0, space0) {
uint4 x_7[1];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
Array a = (Array)0;
Array b = (Array)0;
float one = 0.0f;
const int x_10 = asint(x_7[0].x);
a.values[x_10] = 1;
b = a;
one = 0.0f;
const int x_11 = asint(x_7[0].x);
const int x_12 = b.values[x_11];
if ((x_12 == 1)) {
one = 1.0f;
}
x_GLF_color = float4(one, 0.0f, 0.0f, 1.0f);
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;
}
C:\src\tint\test\Shader@0x0000024C52B7BDB0(15,3-16): error X3500: array reference cannot be used as an l-value; not natively addressable

View File

@ -1,4 +1,4 @@
SKIP: https://github.com/microsoft/DirectXShaderCompiler/issues/3894
SKIP: FAILED
static float4 gl_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
static float array0[3] = (float[3])0;
@ -17,13 +17,13 @@ void main_1() {
i = (int(x_55) % 3);
c = 0;
{
for(; (c < 3); c = (c + 1)) {
[loop] for(; (c < 3); c = (c + 1)) {
array0[c] = 0.0f;
array1[c] = 0.0f;
const float x_65 = asfloat(x_11[0].x);
switch((int(x_65) + q)) {
case 51: {
while (true) {
[loop] while (true) {
if (true) {
} else {
break;
@ -69,11 +69,31 @@ struct tint_symbol_2 {
float4 x_GLF_color_1 : SV_Target0;
};
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const float4 gl_FragCoord_param = tint_symbol.gl_FragCoord_param;
main_out main_inner(float4 gl_FragCoord_param) {
gl_FragCoord = gl_FragCoord_param;
main_1();
const main_out tint_symbol_3 = {x_GLF_color};
const tint_symbol_2 tint_symbol_5 = {tint_symbol_3.x_GLF_color_1};
return tint_symbol_5;
const main_out tint_symbol_4 = {x_GLF_color};
return tint_symbol_4;
}
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const main_out inner_result = main_inner(tint_symbol.gl_FragCoord_param);
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
return wrapper_result;
}
C:\src\tint\test\Shader@0x000001BF7F9DDFF0(15,8-20): warning X3556: integer modulus may be much slower, try using uints if possible.
C:\src\tint\test\Shader@0x000001BF7F9DDFF0(24,18-29): warning X3557: loop doesn't seem to do anything, consider removing [loop]
C:\src\tint\test\Shader@0x000001BF7F9DDFF0(24,18-29): warning X3551: infinite loop detected - loop writes no values
C:\src\tint\test\Shader@0x000001BF7F9DDFF0(24,18-29): warning X3557: loop doesn't seem to do anything, consider removing [loop]
C:\src\tint\test\Shader@0x000001BF7F9DDFF0(24,18-29): warning X3551: infinite loop detected - loop writes no values
C:\src\tint\test\Shader@0x000001BF7F9DDFF0(24,18-29): warning X3557: loop doesn't seem to do anything, consider removing [loop]
C:\src\tint\test\Shader@0x000001BF7F9DDFF0(24,18-29): warning X3551: infinite loop detected - loop writes no values
C:\src\tint\test\Shader@0x000001BF7F9DDFF0(24,18-29): warning X3557: loop doesn't seem to do anything, consider removing [loop]
C:\src\tint\test\Shader@0x000001BF7F9DDFF0(24,18-29): warning X3551: infinite loop detected - loop writes no values
C:\src\tint\test\Shader@0x000001BF7F9DDFF0(24,18-29): warning X3557: loop doesn't seem to do anything, consider removing [loop]
C:\src\tint\test\Shader@0x000001BF7F9DDFF0(24,18-29): warning X3551: infinite loop detected - loop writes no values
C:\src\tint\test\Shader@0x000001BF7F9DDFF0(24,18-29): warning X3557: loop doesn't seem to do anything, consider removing [loop]
C:\src\tint\test\Shader@0x000001BF7F9DDFF0(24,18-29): warning X3551: infinite loop detected - loop writes no values
C:\src\tint\test\Shader@0x000001BF7F9DDFF0(24,25-28): error X3696: infinite loop detected - loop never exits

View File

@ -1,4 +1,4 @@
SKIP: https://github.com/microsoft/DirectXShaderCompiler/issues/3894
SKIP: FAILED
static float4 gl_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
static float array0[3] = (float[3])0;
@ -17,13 +17,13 @@ void main_1() {
i = (int(x_55) % 3);
c = 0;
{
for(; (c < 3); c = (c + 1)) {
[loop] for(; (c < 3); c = (c + 1)) {
array0[c] = 0.0f;
array1[c] = 0.0f;
const float x_65 = asfloat(x_11[0].x);
switch((int(x_65) + q)) {
case 51: {
while (true) {
[loop] while (true) {
if (true) {
} else {
break;
@ -69,11 +69,31 @@ struct tint_symbol_2 {
float4 x_GLF_color_1 : SV_Target0;
};
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const float4 gl_FragCoord_param = tint_symbol.gl_FragCoord_param;
main_out main_inner(float4 gl_FragCoord_param) {
gl_FragCoord = gl_FragCoord_param;
main_1();
const main_out tint_symbol_3 = {x_GLF_color};
const tint_symbol_2 tint_symbol_5 = {tint_symbol_3.x_GLF_color_1};
return tint_symbol_5;
const main_out tint_symbol_4 = {x_GLF_color};
return tint_symbol_4;
}
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const main_out inner_result = main_inner(tint_symbol.gl_FragCoord_param);
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
return wrapper_result;
}
C:\src\tint\test\Shader@0x0000012C749BFE70(15,8-20): warning X3556: integer modulus may be much slower, try using uints if possible.
C:\src\tint\test\Shader@0x0000012C749BFE70(24,18-29): warning X3557: loop doesn't seem to do anything, consider removing [loop]
C:\src\tint\test\Shader@0x0000012C749BFE70(24,18-29): warning X3551: infinite loop detected - loop writes no values
C:\src\tint\test\Shader@0x0000012C749BFE70(24,18-29): warning X3557: loop doesn't seem to do anything, consider removing [loop]
C:\src\tint\test\Shader@0x0000012C749BFE70(24,18-29): warning X3551: infinite loop detected - loop writes no values
C:\src\tint\test\Shader@0x0000012C749BFE70(24,18-29): warning X3557: loop doesn't seem to do anything, consider removing [loop]
C:\src\tint\test\Shader@0x0000012C749BFE70(24,18-29): warning X3551: infinite loop detected - loop writes no values
C:\src\tint\test\Shader@0x0000012C749BFE70(24,18-29): warning X3557: loop doesn't seem to do anything, consider removing [loop]
C:\src\tint\test\Shader@0x0000012C749BFE70(24,18-29): warning X3551: infinite loop detected - loop writes no values
C:\src\tint\test\Shader@0x0000012C749BFE70(24,18-29): warning X3557: loop doesn't seem to do anything, consider removing [loop]
C:\src\tint\test\Shader@0x0000012C749BFE70(24,18-29): warning X3551: infinite loop detected - loop writes no values
C:\src\tint\test\Shader@0x0000012C749BFE70(24,18-29): warning X3557: loop doesn't seem to do anything, consider removing [loop]
C:\src\tint\test\Shader@0x0000012C749BFE70(24,18-29): warning X3551: infinite loop detected - loop writes no values
C:\src\tint\test\Shader@0x0000012C749BFE70(24,25-28): error X3696: infinite loop detected - loop never exits

View File

@ -0,0 +1,3 @@
SKIP: FAILED
exit status 0xc00000fd

View File

@ -0,0 +1,3 @@
SKIP: FAILED
exit status 0xc00000fd

View File

@ -0,0 +1,80 @@
SKIP: FAILED
void set_float3(inout float3 vec, int idx, float val) {
vec = (idx.xxx == int3(0, 1, 2)) ? val.xxx : vec;
}
cbuffer cbuffer_x_6 : register(b0, space0) {
uint4 x_6[4];
};
cbuffer cbuffer_x_9 : register(b1, space0) {
uint4 x_9[2];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
float3x3 m = float3x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
int a = 0;
float3 arr[2] = (float3[2])0;
float3 v = float3(0.0f, 0.0f, 0.0f);
const uint scalar_offset = ((16u * uint(0))) / 4;
const int x_45 = asint(x_6[scalar_offset / 4][scalar_offset % 4]);
const float x_46 = float(x_45);
m = float3x3(float3(x_46, 0.0f, 0.0f), float3(0.0f, x_46, 0.0f), float3(0.0f, 0.0f, x_46));
const uint scalar_offset_1 = ((16u * uint(0))) / 4;
const int x_52 = asint(x_6[scalar_offset_1 / 4][scalar_offset_1 % 4]);
a = x_52;
const int x_53 = a;
const int x_54 = a;
const uint scalar_offset_2 = ((16u * uint(0))) / 4;
const float x_56 = asfloat(x_9[scalar_offset_2 / 4][scalar_offset_2 % 4]);
set_float3(m[x_53], x_54, x_56);
const float3 x_59 = m[1];
const float3 x_61 = m[1];
const float3 tint_symbol_3[2] = {x_59, x_61};
arr = tint_symbol_3;
const float x_64 = asfloat(x_9[1].x);
v = float3(x_64, x_64, x_64);
const float3 x_68 = arr[a];
v = (v + x_68);
const float3 x_71 = v;
const int x_73 = asint(x_6[1].x);
const int x_76 = asint(x_6[2].x);
const int x_79 = asint(x_6[1].x);
if (all((x_71 == float3(float(x_73), float(x_76), float(x_79))))) {
const uint scalar_offset_3 = ((16u * uint(0))) / 4;
const int x_88 = asint(x_6[scalar_offset_3 / 4][scalar_offset_3 % 4]);
const int x_91 = asint(x_6[3].x);
const int x_94 = asint(x_6[3].x);
const uint scalar_offset_4 = ((16u * uint(0))) / 4;
const int x_97 = asint(x_6[scalar_offset_4 / 4][scalar_offset_4 % 4]);
x_GLF_color = float4(float(x_88), float(x_91), float(x_94), float(x_97));
} else {
const int x_101 = asint(x_6[3].x);
const float x_102 = float(x_101);
x_GLF_color = float4(x_102, x_102, x_102, x_102);
}
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_4 = {x_GLF_color};
return tint_symbol_4;
}
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;
}
C:\src\tint\test\Shader@0x00000167B1373790(29,14-20): error X3500: array reference cannot be used as an l-value; not natively addressable

View File

@ -0,0 +1,80 @@
SKIP: FAILED
void set_float3(inout float3 vec, int idx, float val) {
vec = (idx.xxx == int3(0, 1, 2)) ? val.xxx : vec;
}
cbuffer cbuffer_x_6 : register(b0, space0) {
uint4 x_6[4];
};
cbuffer cbuffer_x_9 : register(b1, space0) {
uint4 x_9[2];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
float3x3 m = float3x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
int a = 0;
float3 arr[2] = (float3[2])0;
float3 v = float3(0.0f, 0.0f, 0.0f);
const uint scalar_offset = ((16u * uint(0))) / 4;
const int x_45 = asint(x_6[scalar_offset / 4][scalar_offset % 4]);
const float x_46 = float(x_45);
m = float3x3(float3(x_46, 0.0f, 0.0f), float3(0.0f, x_46, 0.0f), float3(0.0f, 0.0f, x_46));
const uint scalar_offset_1 = ((16u * uint(0))) / 4;
const int x_52 = asint(x_6[scalar_offset_1 / 4][scalar_offset_1 % 4]);
a = x_52;
const int x_53 = a;
const int x_54 = a;
const uint scalar_offset_2 = ((16u * uint(0))) / 4;
const float x_56 = asfloat(x_9[scalar_offset_2 / 4][scalar_offset_2 % 4]);
set_float3(m[x_53], x_54, x_56);
const float3 x_59 = m[1];
const float3 x_61 = m[1];
const float3 tint_symbol_3[2] = {x_59, x_61};
arr = tint_symbol_3;
const float x_64 = asfloat(x_9[1].x);
v = float3(x_64, x_64, x_64);
const float3 x_68 = arr[a];
v = (v + x_68);
const float3 x_71 = v;
const int x_73 = asint(x_6[1].x);
const int x_76 = asint(x_6[2].x);
const int x_79 = asint(x_6[1].x);
if (all((x_71 == float3(float(x_73), float(x_76), float(x_79))))) {
const uint scalar_offset_3 = ((16u * uint(0))) / 4;
const int x_88 = asint(x_6[scalar_offset_3 / 4][scalar_offset_3 % 4]);
const int x_91 = asint(x_6[3].x);
const int x_94 = asint(x_6[3].x);
const uint scalar_offset_4 = ((16u * uint(0))) / 4;
const int x_97 = asint(x_6[scalar_offset_4 / 4][scalar_offset_4 % 4]);
x_GLF_color = float4(float(x_88), float(x_91), float(x_94), float(x_97));
} else {
const int x_101 = asint(x_6[3].x);
const float x_102 = float(x_101);
x_GLF_color = float4(x_102, x_102, x_102, x_102);
}
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_4 = {x_GLF_color};
return tint_symbol_4;
}
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;
}
C:\src\tint\test\Shader@0x000001E84DF5F800(29,14-20): error X3500: array reference cannot be used as an l-value; not natively addressable

View File

@ -0,0 +1,78 @@
SKIP: FAILED
void set_float4(inout float4 vec, int idx, float val) {
vec = (idx.xxxx == int4(0, 1, 2, 3)) ? val.xxxx : vec;
}
cbuffer cbuffer_x_6 : register(b0, space0) {
uint4 x_6[2];
};
cbuffer cbuffer_x_9 : register(b1, space0) {
uint4 x_9[4];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
int a = 0;
float4 v = float4(0.0f, 0.0f, 0.0f, 0.0f);
float3x4 m = float3x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
float4x4 indexable = float4x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
const uint scalar_offset = ((16u * uint(0))) / 4;
const int x_44 = asint(x_6[scalar_offset / 4][scalar_offset % 4]);
a = x_44;
const float x_46 = asfloat(x_9[2].x);
v = float4(x_46, x_46, x_46, x_46);
const float x_49 = asfloat(x_9[3].x);
m = float3x4(float4(x_49, 0.0f, 0.0f, 0.0f), float4(0.0f, x_49, 0.0f, 0.0f), float4(0.0f, 0.0f, x_49, 0.0f));
const int x_54 = a;
const int x_55 = a;
const uint scalar_offset_1 = ((16u * uint(0))) / 4;
const float x_57 = asfloat(x_9[scalar_offset_1 / 4][scalar_offset_1 % 4]);
set_float4(m[x_54], x_55, x_57);
const int x_59 = a;
const float3x4 x_60 = m;
const int x_78 = a;
const int x_79 = a;
indexable = float4x4(float4(x_60[0u].x, x_60[0u].y, x_60[0u].z, x_60[0u].w), float4(x_60[1u].x, x_60[1u].y, x_60[1u].z, x_60[1u].w), float4(x_60[2u].x, x_60[2u].y, x_60[2u].z, x_60[2u].w), float4(0.0f, 0.0f, 0.0f, 1.0f));
const float x_81 = indexable[x_78][x_79];
const float x_83 = v[x_59];
set_float4(v, x_59, (x_83 + x_81));
const float x_87 = v.y;
const float x_89 = asfloat(x_9[1].x);
if ((x_87 == x_89)) {
const uint scalar_offset_2 = ((16u * uint(0))) / 4;
const int x_95 = asint(x_6[scalar_offset_2 / 4][scalar_offset_2 % 4]);
const int x_98 = asint(x_6[1].x);
const int x_101 = asint(x_6[1].x);
const uint scalar_offset_3 = ((16u * uint(0))) / 4;
const int x_104 = asint(x_6[scalar_offset_3 / 4][scalar_offset_3 % 4]);
x_GLF_color = float4(float(x_95), float(x_98), float(x_101), float(x_104));
} else {
const int x_108 = asint(x_6[1].x);
const float x_109 = float(x_108);
x_GLF_color = float4(x_109, x_109, x_109, x_109);
}
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_3 = {x_GLF_color};
return tint_symbol_3;
}
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;
}
C:\src\tint\test\Shader@0x0000015D0949C000(29,14-20): error X3500: array reference cannot be used as an l-value; not natively addressable

View File

@ -0,0 +1,78 @@
SKIP: FAILED
void set_float4(inout float4 vec, int idx, float val) {
vec = (idx.xxxx == int4(0, 1, 2, 3)) ? val.xxxx : vec;
}
cbuffer cbuffer_x_6 : register(b0, space0) {
uint4 x_6[2];
};
cbuffer cbuffer_x_9 : register(b1, space0) {
uint4 x_9[4];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
int a = 0;
float4 v = float4(0.0f, 0.0f, 0.0f, 0.0f);
float3x4 m = float3x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
float4x4 indexable = float4x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
const uint scalar_offset = ((16u * uint(0))) / 4;
const int x_44 = asint(x_6[scalar_offset / 4][scalar_offset % 4]);
a = x_44;
const float x_46 = asfloat(x_9[2].x);
v = float4(x_46, x_46, x_46, x_46);
const float x_49 = asfloat(x_9[3].x);
m = float3x4(float4(x_49, 0.0f, 0.0f, 0.0f), float4(0.0f, x_49, 0.0f, 0.0f), float4(0.0f, 0.0f, x_49, 0.0f));
const int x_54 = a;
const int x_55 = a;
const uint scalar_offset_1 = ((16u * uint(0))) / 4;
const float x_57 = asfloat(x_9[scalar_offset_1 / 4][scalar_offset_1 % 4]);
set_float4(m[x_54], x_55, x_57);
const int x_59 = a;
const float3x4 x_60 = m;
const int x_78 = a;
const int x_79 = a;
indexable = float4x4(float4(x_60[0u].x, x_60[0u].y, x_60[0u].z, x_60[0u].w), float4(x_60[1u].x, x_60[1u].y, x_60[1u].z, x_60[1u].w), float4(x_60[2u].x, x_60[2u].y, x_60[2u].z, x_60[2u].w), float4(0.0f, 0.0f, 0.0f, 1.0f));
const float x_81 = indexable[x_78][x_79];
const float x_83 = v[x_59];
set_float4(v, x_59, (x_83 + x_81));
const float x_87 = v.y;
const float x_89 = asfloat(x_9[1].x);
if ((x_87 == x_89)) {
const uint scalar_offset_2 = ((16u * uint(0))) / 4;
const int x_95 = asint(x_6[scalar_offset_2 / 4][scalar_offset_2 % 4]);
const int x_98 = asint(x_6[1].x);
const int x_101 = asint(x_6[1].x);
const uint scalar_offset_3 = ((16u * uint(0))) / 4;
const int x_104 = asint(x_6[scalar_offset_3 / 4][scalar_offset_3 % 4]);
x_GLF_color = float4(float(x_95), float(x_98), float(x_101), float(x_104));
} else {
const int x_108 = asint(x_6[1].x);
const float x_109 = float(x_108);
x_GLF_color = float4(x_109, x_109, x_109, x_109);
}
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_3 = {x_GLF_color};
return tint_symbol_3;
}
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;
}
C:\src\tint\test\Shader@0x000002C75C7A2100(29,14-20): error X3500: array reference cannot be used as an l-value; not natively addressable

View File

@ -0,0 +1,105 @@
SKIP: FAILED
void set_float3(inout float3 vec, int idx, float val) {
vec = (idx.xxx == int3(0, 1, 2)) ? val.xxx : vec;
}
cbuffer cbuffer_x_7 : register(b1, space0) {
uint4 x_7[2];
};
cbuffer cbuffer_x_10 : register(b0, space0) {
uint4 x_10[4];
};
static float4 gl_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
float2x3 m23 = float2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
int i = 0;
const float x_46 = asfloat(x_7[1].x);
m23 = float2x3(float3(x_46, 0.0f, 0.0f), float3(0.0f, x_46, 0.0f));
i = 1;
[loop] while (true) {
bool x_80 = false;
bool x_81_phi = false;
const int x_54 = i;
const int x_56 = asint(x_10[3].x);
if ((x_54 < x_56)) {
} else {
break;
}
const uint scalar_offset = ((16u * uint(0))) / 4;
const int x_60 = asint(x_10[scalar_offset / 4][scalar_offset % 4]);
const int x_62 = asint(x_10[2].x);
const uint scalar_offset_1 = ((16u * uint(0))) / 4;
const float x_64 = asfloat(x_7[scalar_offset_1 / 4][scalar_offset_1 % 4]);
const float x_66 = m23[x_60][x_62];
set_float3(m23[x_60], x_62, (x_66 + x_64));
const float x_70 = gl_FragCoord.y;
const uint scalar_offset_2 = ((16u * uint(0))) / 4;
const float x_72 = asfloat(x_7[scalar_offset_2 / 4][scalar_offset_2 % 4]);
if ((x_70 < x_72)) {
}
x_81_phi = true;
if (true) {
const float x_79 = gl_FragCoord.x;
x_80 = (x_79 < 0.0f);
x_81_phi = x_80;
}
if (!(x_81_phi)) {
break;
}
{
i = (i + 1);
}
}
const float2x3 x_87 = m23;
const int x_89 = asint(x_10[1].x);
const int x_92 = asint(x_10[1].x);
const int x_95 = asint(x_10[1].x);
const int x_98 = asint(x_10[1].x);
const int x_101 = asint(x_10[1].x);
const uint scalar_offset_3 = ((16u * uint(0))) / 4;
const int x_104 = asint(x_10[scalar_offset_3 / 4][scalar_offset_3 % 4]);
const float2x3 x_108 = float2x3(float3(float(x_89), float(x_92), float(x_95)), float3(float(x_98), float(x_101), float(x_104)));
if ((all((x_87[0u] == x_108[0u])) & all((x_87[1u] == x_108[1u])))) {
const uint scalar_offset_4 = ((16u * uint(0))) / 4;
const int x_122 = asint(x_10[scalar_offset_4 / 4][scalar_offset_4 % 4]);
const int x_125 = asint(x_10[1].x);
const int x_128 = asint(x_10[1].x);
const uint scalar_offset_5 = ((16u * uint(0))) / 4;
const int x_131 = asint(x_10[scalar_offset_5 / 4][scalar_offset_5 % 4]);
x_GLF_color = float4(float(x_122), float(x_125), float(x_128), float(x_131));
} else {
const int x_135 = asint(x_10[1].x);
const float x_136 = float(x_135);
x_GLF_color = float4(x_136, x_136, x_136, x_136);
}
return;
}
struct main_out {
float4 x_GLF_color_1;
};
struct tint_symbol_1 {
float4 gl_FragCoord_param : SV_Position;
};
struct tint_symbol_2 {
float4 x_GLF_color_1 : SV_Target0;
};
main_out main_inner(float4 gl_FragCoord_param) {
gl_FragCoord = gl_FragCoord_param;
main_1();
const main_out tint_symbol_5 = {x_GLF_color};
return tint_symbol_5;
}
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const main_out inner_result = main_inner(tint_symbol.gl_FragCoord_param);
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
return wrapper_result;
}
C:\src\tint\test\Shader@0x000001FC5E0CC510(20,10-21): error X3531: can't unroll loops marked with loop attribute

View File

@ -0,0 +1,109 @@
SKIP: FAILED
void set_float3(inout float3 vec, int idx, float val) {
vec = (idx.xxx == int3(0, 1, 2)) ? val.xxx : vec;
}
cbuffer cbuffer_x_7 : register(b1, space0) {
uint4 x_7[2];
};
cbuffer cbuffer_x_10 : register(b0, space0) {
uint4 x_10[4];
};
static float4 gl_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
float2x3 m23 = float2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
int i = 0;
const float x_46 = asfloat(x_7[1].x);
m23 = float2x3(float3(x_46, 0.0f, 0.0f), float3(0.0f, x_46, 0.0f));
i = 1;
[loop] while (true) {
bool x_80 = false;
bool x_81_phi = false;
const int x_54 = i;
const int x_56 = asint(x_10[3].x);
if ((x_54 < x_56)) {
} else {
break;
}
const uint scalar_offset = ((16u * uint(0))) / 4;
const int x_60 = asint(x_10[scalar_offset / 4][scalar_offset % 4]);
const int x_62 = asint(x_10[2].x);
const uint scalar_offset_1 = ((16u * uint(0))) / 4;
const float x_64 = asfloat(x_7[scalar_offset_1 / 4][scalar_offset_1 % 4]);
const float x_66 = m23[x_60][x_62];
set_float3(m23[x_60], x_62, (x_66 + x_64));
const float x_70 = gl_FragCoord.y;
const uint scalar_offset_2 = ((16u * uint(0))) / 4;
const float x_72 = asfloat(x_7[scalar_offset_2 / 4][scalar_offset_2 % 4]);
if ((x_70 < x_72)) {
}
x_81_phi = true;
if (true) {
const float x_79 = gl_FragCoord.x;
x_80 = (x_79 < 0.0f);
x_81_phi = x_80;
}
if (!(x_81_phi)) {
break;
}
{
i = (i + 1);
}
}
const float2x3 x_87 = m23;
const int x_89 = asint(x_10[1].x);
const int x_92 = asint(x_10[1].x);
const int x_95 = asint(x_10[1].x);
const int x_98 = asint(x_10[1].x);
const int x_101 = asint(x_10[1].x);
const uint scalar_offset_3 = ((16u * uint(0))) / 4;
const int x_104 = asint(x_10[scalar_offset_3 / 4][scalar_offset_3 % 4]);
const float2x3 x_108 = float2x3(float3(float(x_89), float(x_92), float(x_95)), float3(float(x_98), float(x_101), float(x_104)));
bool tint_tmp = all((x_87[0u] == x_108[0u]));
if (tint_tmp) {
tint_tmp = all((x_87[1u] == x_108[1u]));
}
if ((tint_tmp)) {
const uint scalar_offset_4 = ((16u * uint(0))) / 4;
const int x_122 = asint(x_10[scalar_offset_4 / 4][scalar_offset_4 % 4]);
const int x_125 = asint(x_10[1].x);
const int x_128 = asint(x_10[1].x);
const uint scalar_offset_5 = ((16u * uint(0))) / 4;
const int x_131 = asint(x_10[scalar_offset_5 / 4][scalar_offset_5 % 4]);
x_GLF_color = float4(float(x_122), float(x_125), float(x_128), float(x_131));
} else {
const int x_135 = asint(x_10[1].x);
const float x_136 = float(x_135);
x_GLF_color = float4(x_136, x_136, x_136, x_136);
}
return;
}
struct main_out {
float4 x_GLF_color_1;
};
struct tint_symbol_1 {
float4 gl_FragCoord_param : SV_Position;
};
struct tint_symbol_2 {
float4 x_GLF_color_1 : SV_Target0;
};
main_out main_inner(float4 gl_FragCoord_param) {
gl_FragCoord = gl_FragCoord_param;
main_1();
const main_out tint_symbol_5 = {x_GLF_color};
return tint_symbol_5;
}
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const main_out inner_result = main_inner(tint_symbol.gl_FragCoord_param);
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
return wrapper_result;
}
C:\src\tint\test\Shader@0x0000017C45B3F9B0(20,10-21): error X3531: can't unroll loops marked with loop attribute

View File

@ -0,0 +1,64 @@
SKIP: FAILED
cbuffer cbuffer_x_6 : register(b0, space0) {
uint4 x_6[4];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
int a = 0;
int i = 0;
const int x_27 = asint(x_6[3].x);
a = x_27;
i = 0;
{
[loop] for(; (i < 3); i = (i + 1)) {
const int x_35 = i;
const int x_37 = asint(x_6[1].x);
if ((x_35 == x_37)) {
a = (a + 1);
} else {
a = (a / i);
}
}
}
const int x_49 = a;
const int x_51 = asint(x_6[2].x);
if ((x_49 == x_51)) {
const uint scalar_offset = ((16u * uint(0))) / 4;
const int x_57 = asint(x_6[scalar_offset / 4][scalar_offset % 4]);
const int x_60 = asint(x_6[1].x);
const int x_63 = asint(x_6[1].x);
const uint scalar_offset_1 = ((16u * uint(0))) / 4;
const int x_66 = asint(x_6[scalar_offset_1 / 4][scalar_offset_1 % 4]);
x_GLF_color = float4(float(x_57), float(x_60), float(x_63), float(x_66));
} else {
const int x_70 = asint(x_6[1].x);
const float x_71 = float(x_70);
x_GLF_color = float4(x_71, x_71, x_71, x_71);
}
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;
}
C:\src\tint\test\Shader@0x00000150DB0FB4A0(19,14-18): error X4010: Unsigned integer divide by zero
C:\src\tint\test\Shader@0x00000150DB0FB4A0(19,14-18): warning X3556: integer divides may be much slower, try using uints if possible.

View File

@ -0,0 +1,64 @@
SKIP: FAILED
cbuffer cbuffer_x_6 : register(b0, space0) {
uint4 x_6[4];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
int a = 0;
int i = 0;
const int x_27 = asint(x_6[3].x);
a = x_27;
i = 0;
{
[loop] for(; (i < 3); i = (i + 1)) {
const int x_35 = i;
const int x_37 = asint(x_6[1].x);
if ((x_35 == x_37)) {
a = (a + 1);
} else {
a = (a / i);
}
}
}
const int x_49 = a;
const int x_51 = asint(x_6[2].x);
if ((x_49 == x_51)) {
const uint scalar_offset = ((16u * uint(0))) / 4;
const int x_57 = asint(x_6[scalar_offset / 4][scalar_offset % 4]);
const int x_60 = asint(x_6[1].x);
const int x_63 = asint(x_6[1].x);
const uint scalar_offset_1 = ((16u * uint(0))) / 4;
const int x_66 = asint(x_6[scalar_offset_1 / 4][scalar_offset_1 % 4]);
x_GLF_color = float4(float(x_57), float(x_60), float(x_63), float(x_66));
} else {
const int x_70 = asint(x_6[1].x);
const float x_71 = float(x_70);
x_GLF_color = float4(x_71, x_71, x_71, x_71);
}
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;
}
C:\src\tint\test\Shader@0x000001A53C9E4360(19,14-18): error X4010: Unsigned integer divide by zero
C:\src\tint\test\Shader@0x000001A53C9E4360(19,14-18): warning X3556: integer divides may be much slower, try using uints if possible.

View File

@ -0,0 +1,72 @@
SKIP: FAILED
cbuffer cbuffer_x_8 : register(b2, space0) {
uint4 x_8[2];
};
static float4 gl_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
cbuffer cbuffer_x_10 : register(b0, space0) {
uint4 x_10[1];
};
cbuffer cbuffer_x_12 : register(b1, space0) {
uint4 x_12[1];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
uint a = 0u;
int b = 0;
a = 0u;
const int x_41 = asint(x_8[1].x);
b = x_41;
const float x_43 = gl_FragCoord.x;
const uint scalar_offset = ((16u * uint(0))) / 4;
const float x_45 = asfloat(x_10[scalar_offset / 4][scalar_offset % 4]);
if ((x_43 < x_45)) {
const uint scalar_offset_1 = ((16u * uint(0))) / 4;
const uint x_50 = x_12[scalar_offset_1 / 4][scalar_offset_1 % 4];
b = asint((x_50 % a));
}
const int x_54 = b;
const int x_56 = asint(x_8[1].x);
if ((x_54 == x_56)) {
const int x_62 = asint(x_8[1].x);
const uint scalar_offset_2 = ((16u * uint(0))) / 4;
const int x_65 = asint(x_8[scalar_offset_2 / 4][scalar_offset_2 % 4]);
const uint scalar_offset_3 = ((16u * uint(0))) / 4;
const int x_68 = asint(x_8[scalar_offset_3 / 4][scalar_offset_3 % 4]);
const int x_71 = asint(x_8[1].x);
x_GLF_color = float4(float(x_62), float(x_65), float(x_68), float(x_71));
} else {
const uint scalar_offset_4 = ((16u * uint(0))) / 4;
const int x_75 = asint(x_8[scalar_offset_4 / 4][scalar_offset_4 % 4]);
const float x_76 = float(x_75);
x_GLF_color = float4(x_76, x_76, x_76, x_76);
}
return;
}
struct main_out {
float4 x_GLF_color_1;
};
struct tint_symbol_1 {
float4 gl_FragCoord_param : SV_Position;
};
struct tint_symbol_2 {
float4 x_GLF_color_1 : SV_Target0;
};
main_out main_inner(float4 gl_FragCoord_param) {
gl_FragCoord = gl_FragCoord_param;
main_1();
const main_out tint_symbol_6 = {x_GLF_color};
return tint_symbol_6;
}
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const main_out inner_result = main_inner(tint_symbol.gl_FragCoord_param);
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
return wrapper_result;
}
C:\src\tint\test\Shader@0x000002533EADD8C0(25,16-23): error X4010: Unsigned integer divide by zero

View File

@ -0,0 +1,72 @@
SKIP: FAILED
cbuffer cbuffer_x_8 : register(b2, space0) {
uint4 x_8[2];
};
static float4 gl_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
cbuffer cbuffer_x_10 : register(b0, space0) {
uint4 x_10[1];
};
cbuffer cbuffer_x_12 : register(b1, space0) {
uint4 x_12[1];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
uint a = 0u;
int b = 0;
a = 0u;
const int x_41 = asint(x_8[1].x);
b = x_41;
const float x_43 = gl_FragCoord.x;
const uint scalar_offset = ((16u * uint(0))) / 4;
const float x_45 = asfloat(x_10[scalar_offset / 4][scalar_offset % 4]);
if ((x_43 < x_45)) {
const uint scalar_offset_1 = ((16u * uint(0))) / 4;
const uint x_50 = x_12[scalar_offset_1 / 4][scalar_offset_1 % 4];
b = asint((x_50 % a));
}
const int x_54 = b;
const int x_56 = asint(x_8[1].x);
if ((x_54 == x_56)) {
const int x_62 = asint(x_8[1].x);
const uint scalar_offset_2 = ((16u * uint(0))) / 4;
const int x_65 = asint(x_8[scalar_offset_2 / 4][scalar_offset_2 % 4]);
const uint scalar_offset_3 = ((16u * uint(0))) / 4;
const int x_68 = asint(x_8[scalar_offset_3 / 4][scalar_offset_3 % 4]);
const int x_71 = asint(x_8[1].x);
x_GLF_color = float4(float(x_62), float(x_65), float(x_68), float(x_71));
} else {
const uint scalar_offset_4 = ((16u * uint(0))) / 4;
const int x_75 = asint(x_8[scalar_offset_4 / 4][scalar_offset_4 % 4]);
const float x_76 = float(x_75);
x_GLF_color = float4(x_76, x_76, x_76, x_76);
}
return;
}
struct main_out {
float4 x_GLF_color_1;
};
struct tint_symbol_1 {
float4 gl_FragCoord_param : SV_Position;
};
struct tint_symbol_2 {
float4 x_GLF_color_1 : SV_Target0;
};
main_out main_inner(float4 gl_FragCoord_param) {
gl_FragCoord = gl_FragCoord_param;
main_1();
const main_out tint_symbol_6 = {x_GLF_color};
return tint_symbol_6;
}
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const main_out inner_result = main_inner(tint_symbol.gl_FragCoord_param);
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
return wrapper_result;
}
C:\src\tint\test\Shader@0x0000026AFDC08170(25,16-23): error X4010: Unsigned integer divide by zero

View File

@ -0,0 +1,334 @@
SKIP: FAILED
void set_float3(inout float3 vec, int idx, float val) {
vec = (idx.xxx == int3(0, 1, 2)) ? val.xxx : vec;
}
void set_float4(inout float4 vec, int idx, float val) {
vec = (idx.xxxx == int4(0, 1, 2, 3)) ? val.xxxx : vec;
}
void set_float2(inout float2 vec, int idx, float val) {
vec = (idx.xx == int2(0, 1)) ? val.xx : vec;
}
static int x_GLF_global_loop_count = 0;
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
float2x3 m23 = float2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
float2x4 m24 = float2x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
float3x2 m32 = float3x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
float3x3 m33 = float3x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
float3x4 m34 = float3x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
float4x2 m42 = float4x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
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);
float4x4 m44 = float4x4(0.0f, 0.0f, 0.0f, 0.0f, 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 i = 0;
int i_1 = 0;
int i_2 = 0;
int i_3 = 0;
int i_4 = 0;
int i_5 = 0;
int i_6 = 0;
int i_7 = 0;
int i_8 = 0;
int i_9 = 0;
int i_10 = 0;
int i_11 = 0;
int i_12 = 0;
int i_13 = 0;
int i_14 = 0;
int i_15 = 0;
int i_16 = 0;
int i_17 = 0;
int i_18 = 0;
int i_19 = 0;
int i_20 = 0;
int i_21 = 0;
int i_22 = 0;
int i_23 = 0;
int i_24 = 0;
int i_25 = 0;
int i_26 = 0;
int i_27 = 0;
int i_28 = 0;
int i_29 = 0;
int i_30 = 0;
int i_31 = 0;
int i_32 = 0;
int i_33 = 0;
int i_34 = 0;
int i_35 = 0;
int i_36 = 0;
int i_37 = 0;
float sum = 0.0f;
int r = 0;
x_GLF_global_loop_count = 0;
m23 = float2x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f));
m24 = float2x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f));
m32 = float3x2(float2(0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f));
m33 = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f));
m34 = float3x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f));
m42 = float4x2(float2(0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f));
m43 = float4x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f));
m44 = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f));
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_float3(m23[i_37], i_37, 1.0f);
set_float4(m24[i_37], i_37, 1.0f);
set_float2(m32[i_37], i_37, 1.0f);
set_float3(m33[i_37], i_37, 1.0f);
set_float4(m34[i_37], i_37, 1.0f);
set_float2(m42[i_37], i_37, 1.0f);
set_float3(m43[i_37], i_37, 1.0f);
set_float4(m44[i_37], i_37, 1.0f);
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
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);
}
}
if ((sum == 8.0f)) {
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
} else {
x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
}
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_1 = {x_GLF_color};
return tint_symbol_1;
}
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;
}
C:\src\tint\test\Shader@0x000001DD183F6C40(187,160-195): error X3531: can't unroll loops marked with loop attribute

View File

@ -0,0 +1,334 @@
SKIP: FAILED
void set_float3(inout float3 vec, int idx, float val) {
vec = (idx.xxx == int3(0, 1, 2)) ? val.xxx : vec;
}
void set_float4(inout float4 vec, int idx, float val) {
vec = (idx.xxxx == int4(0, 1, 2, 3)) ? val.xxxx : vec;
}
void set_float2(inout float2 vec, int idx, float val) {
vec = (idx.xx == int2(0, 1)) ? val.xx : vec;
}
static int x_GLF_global_loop_count = 0;
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
float2x3 m23 = float2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
float2x4 m24 = float2x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
float3x2 m32 = float3x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
float3x3 m33 = float3x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
float3x4 m34 = float3x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
float4x2 m42 = float4x2(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
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);
float4x4 m44 = float4x4(0.0f, 0.0f, 0.0f, 0.0f, 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 i = 0;
int i_1 = 0;
int i_2 = 0;
int i_3 = 0;
int i_4 = 0;
int i_5 = 0;
int i_6 = 0;
int i_7 = 0;
int i_8 = 0;
int i_9 = 0;
int i_10 = 0;
int i_11 = 0;
int i_12 = 0;
int i_13 = 0;
int i_14 = 0;
int i_15 = 0;
int i_16 = 0;
int i_17 = 0;
int i_18 = 0;
int i_19 = 0;
int i_20 = 0;
int i_21 = 0;
int i_22 = 0;
int i_23 = 0;
int i_24 = 0;
int i_25 = 0;
int i_26 = 0;
int i_27 = 0;
int i_28 = 0;
int i_29 = 0;
int i_30 = 0;
int i_31 = 0;
int i_32 = 0;
int i_33 = 0;
int i_34 = 0;
int i_35 = 0;
int i_36 = 0;
int i_37 = 0;
float sum = 0.0f;
int r = 0;
x_GLF_global_loop_count = 0;
m23 = float2x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f));
m24 = float2x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f));
m32 = float3x2(float2(0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f));
m33 = float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f));
m34 = float3x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f));
m42 = float4x2(float2(0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f));
m43 = float4x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f));
m44 = float4x4(float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f));
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_float3(m23[i_37], i_37, 1.0f);
set_float4(m24[i_37], i_37, 1.0f);
set_float2(m32[i_37], i_37, 1.0f);
set_float3(m33[i_37], i_37, 1.0f);
set_float4(m34[i_37], i_37, 1.0f);
set_float2(m42[i_37], i_37, 1.0f);
set_float3(m43[i_37], i_37, 1.0f);
set_float4(m44[i_37], i_37, 1.0f);
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
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);
}
}
if ((sum == 8.0f)) {
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
} else {
x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
}
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_1 = {x_GLF_color};
return tint_symbol_1;
}
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;
}
C:\src\tint\test\Shader@0x00000295E0FBF060(187,160-195): error X3531: can't unroll loops marked with loop attribute

View File

@ -0,0 +1,3 @@
SKIP: FAILED
test timed out after 30s

View File

@ -0,0 +1,3 @@
SKIP: FAILED
test timed out after 30s

View File

@ -0,0 +1,97 @@
SKIP: FAILED
void set_float2(inout float2 vec, int idx, float val) {
vec = (idx.xx == int2(0, 1)) ? val.xx : vec;
}
cbuffer cbuffer_x_5 : register(b0, space0) {
uint4 x_5[4];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
float2x2 m = float2x2(0.0f, 0.0f, 0.0f, 0.0f);
float f = 0.0f;
int i = 0;
int j = 0;
const int x_36 = asint(x_5[1].x);
if ((x_36 == 1)) {
const float x_40 = f;
m = float2x2(float2(x_40, 0.0f), float2(0.0f, x_40));
}
const int x_45 = asint(x_5[1].x);
i = x_45;
[loop] while (true) {
const int x_50 = i;
const uint scalar_offset = ((16u * uint(0))) / 4;
const int x_52 = asint(x_5[scalar_offset / 4][scalar_offset % 4]);
if ((x_50 < x_52)) {
} else {
break;
}
const int x_56 = asint(x_5[1].x);
j = x_56;
[loop] while (true) {
const int x_61 = j;
const uint scalar_offset_1 = ((16u * uint(0))) / 4;
const int x_63 = asint(x_5[scalar_offset_1 / 4][scalar_offset_1 % 4]);
if ((x_61 < x_63)) {
} else {
break;
}
const int x_66 = i;
const int x_67 = j;
const int x_68 = i;
const uint scalar_offset_2 = ((16u * uint(0))) / 4;
const int x_70 = asint(x_5[scalar_offset_2 / 4][scalar_offset_2 % 4]);
set_float2(m[x_66], x_67, float(((x_68 * x_70) + j)));
{
j = (j + 1);
}
}
{
i = (i + 1);
}
}
const float2x2 x_80 = m;
const int x_82 = asint(x_5[1].x);
const int x_85 = asint(x_5[2].x);
const uint scalar_offset_3 = ((16u * uint(0))) / 4;
const int x_88 = asint(x_5[scalar_offset_3 / 4][scalar_offset_3 % 4]);
const int x_91 = asint(x_5[3].x);
const float2x2 x_95 = float2x2(float2(float(x_82), float(x_85)), float2(float(x_88), float(x_91)));
if ((all((x_80[0u] == x_95[0u])) & all((x_80[1u] == x_95[1u])))) {
const int x_109 = asint(x_5[2].x);
const int x_112 = asint(x_5[1].x);
const int x_115 = asint(x_5[1].x);
const int x_118 = asint(x_5[2].x);
x_GLF_color = float4(float(x_109), float(x_112), float(x_115), float(x_118));
} else {
const int x_122 = asint(x_5[1].x);
const float x_123 = float(x_122);
x_GLF_color = float4(x_123, x_123, x_123, x_123);
}
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;
}
C:\src\tint\test\Shader@0x0000027B69224CC0(32,12-23): error X3531: can't unroll loops marked with loop attribute

View File

@ -0,0 +1,101 @@
SKIP: FAILED
void set_float2(inout float2 vec, int idx, float val) {
vec = (idx.xx == int2(0, 1)) ? val.xx : vec;
}
cbuffer cbuffer_x_5 : register(b0, space0) {
uint4 x_5[4];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
float2x2 m = float2x2(0.0f, 0.0f, 0.0f, 0.0f);
float f = 0.0f;
int i = 0;
int j = 0;
const int x_36 = asint(x_5[1].x);
if ((x_36 == 1)) {
const float x_40 = f;
m = float2x2(float2(x_40, 0.0f), float2(0.0f, x_40));
}
const int x_45 = asint(x_5[1].x);
i = x_45;
[loop] while (true) {
const int x_50 = i;
const uint scalar_offset = ((16u * uint(0))) / 4;
const int x_52 = asint(x_5[scalar_offset / 4][scalar_offset % 4]);
if ((x_50 < x_52)) {
} else {
break;
}
const int x_56 = asint(x_5[1].x);
j = x_56;
[loop] while (true) {
const int x_61 = j;
const uint scalar_offset_1 = ((16u * uint(0))) / 4;
const int x_63 = asint(x_5[scalar_offset_1 / 4][scalar_offset_1 % 4]);
if ((x_61 < x_63)) {
} else {
break;
}
const int x_66 = i;
const int x_67 = j;
const int x_68 = i;
const uint scalar_offset_2 = ((16u * uint(0))) / 4;
const int x_70 = asint(x_5[scalar_offset_2 / 4][scalar_offset_2 % 4]);
set_float2(m[x_66], x_67, float(((x_68 * x_70) + j)));
{
j = (j + 1);
}
}
{
i = (i + 1);
}
}
const float2x2 x_80 = m;
const int x_82 = asint(x_5[1].x);
const int x_85 = asint(x_5[2].x);
const uint scalar_offset_3 = ((16u * uint(0))) / 4;
const int x_88 = asint(x_5[scalar_offset_3 / 4][scalar_offset_3 % 4]);
const int x_91 = asint(x_5[3].x);
const float2x2 x_95 = float2x2(float2(float(x_82), float(x_85)), float2(float(x_88), float(x_91)));
bool tint_tmp = all((x_80[0u] == x_95[0u]));
if (tint_tmp) {
tint_tmp = all((x_80[1u] == x_95[1u]));
}
if ((tint_tmp)) {
const int x_109 = asint(x_5[2].x);
const int x_112 = asint(x_5[1].x);
const int x_115 = asint(x_5[1].x);
const int x_118 = asint(x_5[2].x);
x_GLF_color = float4(float(x_109), float(x_112), float(x_115), float(x_118));
} else {
const int x_122 = asint(x_5[1].x);
const float x_123 = float(x_122);
x_GLF_color = float4(x_123, x_123, x_123, x_123);
}
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;
}
C:\src\tint\test\Shader@0x0000019F4EA2D3B0(32,12-23): error X3531: can't unroll loops marked with loop attribute

View File

@ -0,0 +1,60 @@
SKIP: FAILED
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
cbuffer cbuffer_x_5 : register(b0, space0) {
uint4 x_5[2];
};
void main_1() {
const uint scalar_offset = ((16u * uint(0))) / 4;
const int x_22 = asint(x_5[scalar_offset / 4][scalar_offset % 4]);
const int x_25 = asint(x_5[1].x);
const int x_28 = asint(x_5[1].x);
const uint scalar_offset_1 = ((16u * uint(0))) / 4;
const int x_31 = asint(x_5[scalar_offset_1 / 4][scalar_offset_1 % 4]);
x_GLF_color = float4(float(x_22), float(x_25), float(x_28), float(x_31));
const int x_35 = asint(x_5[1].x);
const uint scalar_offset_2 = ((16u * uint(0))) / 4;
const int x_37 = asint(x_5[scalar_offset_2 / 4][scalar_offset_2 % 4]);
if ((x_35 > x_37)) {
[loop] while (true) {
const uint scalar_offset_3 = ((16u * uint(0))) / 4;
const int x_46 = asint(x_5[scalar_offset_3 / 4][scalar_offset_3 % 4]);
const float x_47 = float(x_46);
x_GLF_color = float4(x_47, x_47, x_47, x_47);
{
const int x_50 = asint(x_5[1].x);
const uint scalar_offset_4 = ((16u * uint(0))) / 4;
const int x_52 = asint(x_5[scalar_offset_4 / 4][scalar_offset_4 % 4]);
if ((x_50 > x_52)) {
} else {
break;
}
}
}
return;
}
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;
}
C:\src\tint\test\Shader@0x000002307D6F3EA0(18,19-22): error X3696: infinite loop detected - loop never exits

View File

@ -0,0 +1,60 @@
SKIP: FAILED
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
cbuffer cbuffer_x_5 : register(b0, space0) {
uint4 x_5[2];
};
void main_1() {
const uint scalar_offset = ((16u * uint(0))) / 4;
const int x_22 = asint(x_5[scalar_offset / 4][scalar_offset % 4]);
const int x_25 = asint(x_5[1].x);
const int x_28 = asint(x_5[1].x);
const uint scalar_offset_1 = ((16u * uint(0))) / 4;
const int x_31 = asint(x_5[scalar_offset_1 / 4][scalar_offset_1 % 4]);
x_GLF_color = float4(float(x_22), float(x_25), float(x_28), float(x_31));
const int x_35 = asint(x_5[1].x);
const uint scalar_offset_2 = ((16u * uint(0))) / 4;
const int x_37 = asint(x_5[scalar_offset_2 / 4][scalar_offset_2 % 4]);
if ((x_35 > x_37)) {
[loop] while (true) {
const uint scalar_offset_3 = ((16u * uint(0))) / 4;
const int x_46 = asint(x_5[scalar_offset_3 / 4][scalar_offset_3 % 4]);
const float x_47 = float(x_46);
x_GLF_color = float4(x_47, x_47, x_47, x_47);
{
const int x_50 = asint(x_5[1].x);
const uint scalar_offset_4 = ((16u * uint(0))) / 4;
const int x_52 = asint(x_5[scalar_offset_4 / 4][scalar_offset_4 % 4]);
if ((x_50 > x_52)) {
} else {
break;
}
}
}
return;
}
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;
}
C:\src\tint\test\Shader@0x000001AB97856630(18,19-22): error X3696: infinite loop detected - loop never exits

View File

@ -0,0 +1,94 @@
SKIP: FAILED
struct S {
float numbers[3];
};
cbuffer cbuffer_x_7 : register(b1, space0) {
uint4 x_7[5];
};
cbuffer cbuffer_x_9 : register(b2, space0) {
uint4 x_9[1];
};
cbuffer cbuffer_x_12 : register(b3, space0) {
uint4 x_12[1];
};
cbuffer cbuffer_x_15 : register(b0, space0) {
uint4 x_15[2];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
S obj = (S)0;
float a = 0.0f;
float2 x_49 = float2(0.0f, 0.0f);
float b = 0.0f;
const float x_51 = asfloat(x_7[3].x);
const float x_53 = asfloat(x_7[2].x);
const float x_55 = asfloat(x_7[4].x);
const float tint_symbol_6[3] = {x_51, x_53, x_55};
const S tint_symbol_7 = {tint_symbol_6};
obj = tint_symbol_7;
const float x_59 = asfloat(x_9[0].x);
const uint scalar_offset = ((16u * uint(0))) / 4;
const float x_62 = asfloat(x_7[scalar_offset / 4][scalar_offset % 4]);
obj.numbers[int(x_59)] = x_62;
const float x_65 = asfloat(x_9[0].x);
const uint scalar_offset_1 = ((16u * uint(0))) / 4;
const float x_67 = asfloat(x_7[scalar_offset_1 / 4][scalar_offset_1 % 4]);
if ((x_65 > x_67)) {
const float2 x_73 = asfloat(x_9[0].xy);
x_49 = x_73;
} else {
const float2 x_75 = asfloat(x_12[0].xy);
x_49 = x_75;
}
const float x_77 = x_49.y;
a = x_77;
const uint scalar_offset_2 = ((16u * uint(0))) / 4;
const float x_79 = asfloat(x_7[scalar_offset_2 / 4][scalar_offset_2 % 4]);
const float x_80 = a;
const uint scalar_offset_3 = ((16u * uint(0))) / 4;
const int x_82 = asint(x_15[scalar_offset_3 / 4][scalar_offset_3 % 4]);
const float x_84 = obj.numbers[x_82];
b = lerp(x_79, x_80, x_84);
const float x_86 = b;
const float x_88 = asfloat(x_7[2].x);
const float x_91 = asfloat(x_7[1].x);
if ((distance(x_86, x_88) < x_91)) {
const uint scalar_offset_4 = ((16u * uint(0))) / 4;
const int x_97 = asint(x_15[scalar_offset_4 / 4][scalar_offset_4 % 4]);
const int x_100 = asint(x_15[1].x);
const int x_103 = asint(x_15[1].x);
const uint scalar_offset_5 = ((16u * uint(0))) / 4;
const int x_106 = asint(x_15[scalar_offset_5 / 4][scalar_offset_5 % 4]);
x_GLF_color = float4(float(x_97), float(x_100), float(x_103), float(x_106));
} else {
const int x_110 = asint(x_15[1].x);
const float x_111 = float(x_110);
x_GLF_color = float4(x_111, x_111, x_111, x_111);
}
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_8 = {x_GLF_color};
return tint_symbol_8;
}
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;
}
C:\src\tint\test\Shader@0x0000018BDF85D170(33,3-24): error X3500: array reference cannot be used as an l-value; not natively addressable

View File

@ -0,0 +1,94 @@
SKIP: FAILED
struct S {
float numbers[3];
};
cbuffer cbuffer_x_7 : register(b1, space0) {
uint4 x_7[5];
};
cbuffer cbuffer_x_9 : register(b2, space0) {
uint4 x_9[1];
};
cbuffer cbuffer_x_12 : register(b3, space0) {
uint4 x_12[1];
};
cbuffer cbuffer_x_15 : register(b0, space0) {
uint4 x_15[2];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
S obj = (S)0;
float a = 0.0f;
float2 x_49 = float2(0.0f, 0.0f);
float b = 0.0f;
const float x_51 = asfloat(x_7[3].x);
const float x_53 = asfloat(x_7[2].x);
const float x_55 = asfloat(x_7[4].x);
const float tint_symbol_6[3] = {x_51, x_53, x_55};
const S tint_symbol_7 = {tint_symbol_6};
obj = tint_symbol_7;
const float x_59 = asfloat(x_9[0].x);
const uint scalar_offset = ((16u * uint(0))) / 4;
const float x_62 = asfloat(x_7[scalar_offset / 4][scalar_offset % 4]);
obj.numbers[int(x_59)] = x_62;
const float x_65 = asfloat(x_9[0].x);
const uint scalar_offset_1 = ((16u * uint(0))) / 4;
const float x_67 = asfloat(x_7[scalar_offset_1 / 4][scalar_offset_1 % 4]);
if ((x_65 > x_67)) {
const float2 x_73 = asfloat(x_9[0].xy);
x_49 = x_73;
} else {
const float2 x_75 = asfloat(x_12[0].xy);
x_49 = x_75;
}
const float x_77 = x_49.y;
a = x_77;
const uint scalar_offset_2 = ((16u * uint(0))) / 4;
const float x_79 = asfloat(x_7[scalar_offset_2 / 4][scalar_offset_2 % 4]);
const float x_80 = a;
const uint scalar_offset_3 = ((16u * uint(0))) / 4;
const int x_82 = asint(x_15[scalar_offset_3 / 4][scalar_offset_3 % 4]);
const float x_84 = obj.numbers[x_82];
b = lerp(x_79, x_80, x_84);
const float x_86 = b;
const float x_88 = asfloat(x_7[2].x);
const float x_91 = asfloat(x_7[1].x);
if ((distance(x_86, x_88) < x_91)) {
const uint scalar_offset_4 = ((16u * uint(0))) / 4;
const int x_97 = asint(x_15[scalar_offset_4 / 4][scalar_offset_4 % 4]);
const int x_100 = asint(x_15[1].x);
const int x_103 = asint(x_15[1].x);
const uint scalar_offset_5 = ((16u * uint(0))) / 4;
const int x_106 = asint(x_15[scalar_offset_5 / 4][scalar_offset_5 % 4]);
x_GLF_color = float4(float(x_97), float(x_100), float(x_103), float(x_106));
} else {
const int x_110 = asint(x_15[1].x);
const float x_111 = float(x_110);
x_GLF_color = float4(x_111, x_111, x_111, x_111);
}
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_8 = {x_GLF_color};
return tint_symbol_8;
}
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;
}
C:\src\tint\test\Shader@0x00000172CC1515F0(33,3-24): error X3500: array reference cannot be used as an l-value; not natively addressable

View File

@ -20,7 +20,7 @@ void main_1() {
const uint scalar_offset_1 = ((16u * uint(0))) / 4;
const float x_43 = asfloat(x_5[scalar_offset_1 / 4][scalar_offset_1 % 4]);
if ((x_41 > x_43)) {
while (true) {
[loop] while (true) {
const float x_53 = asfloat(x_5[1].x);
x_GLF_color = float4(x_53, x_53, x_53, x_53);
{
@ -31,15 +31,15 @@ void main_1() {
}
}
} else {
while (true) {
while (true) {
[loop] while (true) {
[loop] while (true) {
if (true) {
} else {
break;
}
const int x_13 = asint(x_10[1].x);
i = x_13;
while (true) {
[loop] while (true) {
const int x_14 = i;
const uint scalar_offset_2 = ((16u * uint(0))) / 4;
const int x_15 = asint(x_10[scalar_offset_2 / 4][scalar_offset_2 % 4]);
@ -81,11 +81,17 @@ struct tint_symbol {
float4 x_GLF_color_1 : SV_Target0;
};
tint_symbol main() {
main_out main_inner() {
main_1();
const main_out tint_symbol_1 = {x_GLF_color};
const tint_symbol tint_symbol_5 = {tint_symbol_1.x_GLF_color_1};
return tint_symbol_5;
const main_out tint_symbol_4 = {x_GLF_color};
return tint_symbol_4;
}
C:\src\tint\test\Shader@0x0000020495BF5060(21,12-15): error X3696: infinite loop detected - loop never exits
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;
}
C:\src\tint\test\Shader@0x000002502549E0E0(21,19-22): error X3696: infinite loop detected - loop never exits

View File

@ -20,7 +20,7 @@ void main_1() {
const uint scalar_offset_1 = ((16u * uint(0))) / 4;
const float x_43 = asfloat(x_5[scalar_offset_1 / 4][scalar_offset_1 % 4]);
if ((x_41 > x_43)) {
while (true) {
[loop] while (true) {
const float x_53 = asfloat(x_5[1].x);
x_GLF_color = float4(x_53, x_53, x_53, x_53);
{
@ -31,15 +31,15 @@ void main_1() {
}
}
} else {
while (true) {
while (true) {
[loop] while (true) {
[loop] while (true) {
if (true) {
} else {
break;
}
const int x_13 = asint(x_10[1].x);
i = x_13;
while (true) {
[loop] while (true) {
const int x_14 = i;
const uint scalar_offset_2 = ((16u * uint(0))) / 4;
const int x_15 = asint(x_10[scalar_offset_2 / 4][scalar_offset_2 % 4]);
@ -81,11 +81,17 @@ struct tint_symbol {
float4 x_GLF_color_1 : SV_Target0;
};
tint_symbol main() {
main_out main_inner() {
main_1();
const main_out tint_symbol_1 = {x_GLF_color};
const tint_symbol tint_symbol_5 = {tint_symbol_1.x_GLF_color_1};
return tint_symbol_5;
const main_out tint_symbol_4 = {x_GLF_color};
return tint_symbol_4;
}
C:\src\tint\test\Shader@0x0000020110131FE0(21,12-15): error X3696: infinite loop detected - loop never exits
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;
}
C:\src\tint\test\Shader@0x000002497A3112E0(21,19-22): error X3696: infinite loop detected - loop never exits

View File

@ -0,0 +1,119 @@
SKIP: FAILED
void set_float3(inout float3 vec, int idx, float val) {
vec = (idx.xxx == int3(0, 1, 2)) ? val.xxx : vec;
}
struct tint_padded_array_element {
float el;
};
cbuffer cbuffer_x_6 : register(b1, space0) {
uint4 x_6[3];
};
cbuffer cbuffer_x_8 : register(b0, space0) {
uint4 x_8[4];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
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);
tint_padded_array_element sums[3] = (tint_padded_array_element[3])0;
int i = 0;
int a = 0;
int x_67_phi = 0;
const float x_44 = asfloat(x_6[1].x);
const float3 x_48 = float3(0.0f, 0.0f, 0.0f);
m43 = float4x3(float3(x_44, 0.0f, 0.0f), float3(0.0f, x_44, 0.0f), float3(0.0f, 0.0f, x_44), float3(0.0f, 0.0f, 0.0f));
const uint scalar_offset = ((16u * uint(0))) / 4;
const int x_51 = asint(x_8[scalar_offset / 4][scalar_offset % 4]);
const uint scalar_offset_1 = ((16u * uint(0))) / 4;
const int x_53 = asint(x_8[scalar_offset_1 / 4][scalar_offset_1 % 4]);
const uint scalar_offset_2 = ((16u * uint(0))) / 4;
const float x_55 = asfloat(x_6[scalar_offset_2 / 4][scalar_offset_2 % 4]);
set_float3(m43[x_51], x_53, x_55);
const uint scalar_offset_3 = ((16u * uint(0))) / 4;
const float x_58 = asfloat(x_6[scalar_offset_3 / 4][scalar_offset_3 % 4]);
const uint scalar_offset_4 = ((16u * uint(0))) / 4;
const float x_60 = asfloat(x_6[scalar_offset_4 / 4][scalar_offset_4 % 4]);
const uint scalar_offset_5 = ((16u * uint(0))) / 4;
const float x_62 = asfloat(x_6[scalar_offset_5 / 4][scalar_offset_5 % 4]);
const tint_padded_array_element tint_symbol_3[3] = {{x_58}, {x_60}, {x_62}};
sums = tint_symbol_3;
const uint scalar_offset_6 = ((16u * uint(0))) / 4;
const int x_65 = asint(x_8[scalar_offset_6 / 4][scalar_offset_6 % 4]);
i = x_65;
x_67_phi = x_65;
[loop] while (true) {
const int x_67 = x_67_phi;
const int x_73 = asint(x_8[3].x);
if ((x_67 < x_73)) {
} else {
break;
}
const uint scalar_offset_7 = ((16u * uint(0))) / 4;
const int x_77 = asint(x_8[scalar_offset_7 / 4][scalar_offset_7 % 4]);
const uint scalar_offset_8 = ((16u * uint(0))) / 4;
const int x_79 = asint(x_8[scalar_offset_8 / 4][scalar_offset_8 % 4]);
const float x_81 = m43[x_67][x_79];
const float x_83 = sums[x_77].el;
sums[x_77].el = (x_83 + x_81);
{
const int x_68 = (x_67 + 1);
i = x_68;
x_67_phi = x_68;
}
}
const int x_87 = asint(x_8[1].x);
if ((x_87 == 1)) {
a = 4;
const int x_92 = asint(x_8[2].x);
const uint scalar_offset_9 = ((16u * uint(0))) / 4;
const int x_94 = asint(x_8[scalar_offset_9 / 4][scalar_offset_9 % 4]);
const float x_96 = m43[4][x_94];
const float x_98 = sums[x_92].el;
sums[x_92].el = (x_98 + x_96);
}
const int x_102 = asint(x_8[1].x);
const float x_104 = sums[x_102].el;
const uint scalar_offset_10 = ((16u * uint(0))) / 4;
const int x_106 = asint(x_8[scalar_offset_10 / 4][scalar_offset_10 % 4]);
const float x_108 = sums[x_106].el;
const float x_111 = asfloat(x_6[2].x);
if (((x_104 + x_108) == x_111)) {
const uint scalar_offset_11 = ((16u * uint(0))) / 4;
const int x_117 = asint(x_8[scalar_offset_11 / 4][scalar_offset_11 % 4]);
const int x_120 = asint(x_8[1].x);
const int x_123 = asint(x_8[1].x);
const uint scalar_offset_12 = ((16u * uint(0))) / 4;
const int x_126 = asint(x_8[scalar_offset_12 / 4][scalar_offset_12 % 4]);
x_GLF_color = float4(float(x_117), float(x_120), float(x_123), float(x_126));
} else {
const int x_130 = asint(x_8[1].x);
const float x_131 = float(x_130);
x_GLF_color = float4(x_131, x_131, x_131, x_131);
}
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_4 = {x_GLF_color};
return tint_symbol_4;
}
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;
}
C:\src\tint\test\Shader@0x000001DF1D9D5EE0(32,14-22): error X3500: array reference cannot be used as an l-value; not natively addressable

View File

@ -0,0 +1,119 @@
SKIP: FAILED
void set_float3(inout float3 vec, int idx, float val) {
vec = (idx.xxx == int3(0, 1, 2)) ? val.xxx : vec;
}
struct tint_padded_array_element {
float el;
};
cbuffer cbuffer_x_6 : register(b1, space0) {
uint4 x_6[3];
};
cbuffer cbuffer_x_8 : register(b0, space0) {
uint4 x_8[4];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
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);
tint_padded_array_element sums[3] = (tint_padded_array_element[3])0;
int i = 0;
int a = 0;
int x_67_phi = 0;
const float x_44 = asfloat(x_6[1].x);
const float3 x_48 = float3(0.0f, 0.0f, 0.0f);
m43 = float4x3(float3(x_44, 0.0f, 0.0f), float3(0.0f, x_44, 0.0f), float3(0.0f, 0.0f, x_44), float3(0.0f, 0.0f, 0.0f));
const uint scalar_offset = ((16u * uint(0))) / 4;
const int x_51 = asint(x_8[scalar_offset / 4][scalar_offset % 4]);
const uint scalar_offset_1 = ((16u * uint(0))) / 4;
const int x_53 = asint(x_8[scalar_offset_1 / 4][scalar_offset_1 % 4]);
const uint scalar_offset_2 = ((16u * uint(0))) / 4;
const float x_55 = asfloat(x_6[scalar_offset_2 / 4][scalar_offset_2 % 4]);
set_float3(m43[x_51], x_53, x_55);
const uint scalar_offset_3 = ((16u * uint(0))) / 4;
const float x_58 = asfloat(x_6[scalar_offset_3 / 4][scalar_offset_3 % 4]);
const uint scalar_offset_4 = ((16u * uint(0))) / 4;
const float x_60 = asfloat(x_6[scalar_offset_4 / 4][scalar_offset_4 % 4]);
const uint scalar_offset_5 = ((16u * uint(0))) / 4;
const float x_62 = asfloat(x_6[scalar_offset_5 / 4][scalar_offset_5 % 4]);
const tint_padded_array_element tint_symbol_3[3] = {{x_58}, {x_60}, {x_62}};
sums = tint_symbol_3;
const uint scalar_offset_6 = ((16u * uint(0))) / 4;
const int x_65 = asint(x_8[scalar_offset_6 / 4][scalar_offset_6 % 4]);
i = x_65;
x_67_phi = x_65;
[loop] while (true) {
const int x_67 = x_67_phi;
const int x_73 = asint(x_8[3].x);
if ((x_67 < x_73)) {
} else {
break;
}
const uint scalar_offset_7 = ((16u * uint(0))) / 4;
const int x_77 = asint(x_8[scalar_offset_7 / 4][scalar_offset_7 % 4]);
const uint scalar_offset_8 = ((16u * uint(0))) / 4;
const int x_79 = asint(x_8[scalar_offset_8 / 4][scalar_offset_8 % 4]);
const float x_81 = m43[x_67][x_79];
const float x_83 = sums[x_77].el;
sums[x_77].el = (x_83 + x_81);
{
const int x_68 = (x_67 + 1);
i = x_68;
x_67_phi = x_68;
}
}
const int x_87 = asint(x_8[1].x);
if ((x_87 == 1)) {
a = 4;
const int x_92 = asint(x_8[2].x);
const uint scalar_offset_9 = ((16u * uint(0))) / 4;
const int x_94 = asint(x_8[scalar_offset_9 / 4][scalar_offset_9 % 4]);
const float x_96 = m43[4][x_94];
const float x_98 = sums[x_92].el;
sums[x_92].el = (x_98 + x_96);
}
const int x_102 = asint(x_8[1].x);
const float x_104 = sums[x_102].el;
const uint scalar_offset_10 = ((16u * uint(0))) / 4;
const int x_106 = asint(x_8[scalar_offset_10 / 4][scalar_offset_10 % 4]);
const float x_108 = sums[x_106].el;
const float x_111 = asfloat(x_6[2].x);
if (((x_104 + x_108) == x_111)) {
const uint scalar_offset_11 = ((16u * uint(0))) / 4;
const int x_117 = asint(x_8[scalar_offset_11 / 4][scalar_offset_11 % 4]);
const int x_120 = asint(x_8[1].x);
const int x_123 = asint(x_8[1].x);
const uint scalar_offset_12 = ((16u * uint(0))) / 4;
const int x_126 = asint(x_8[scalar_offset_12 / 4][scalar_offset_12 % 4]);
x_GLF_color = float4(float(x_117), float(x_120), float(x_123), float(x_126));
} else {
const int x_130 = asint(x_8[1].x);
const float x_131 = float(x_130);
x_GLF_color = float4(x_131, x_131, x_131, x_131);
}
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_4 = {x_GLF_color};
return tint_symbol_4;
}
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;
}
C:\src\tint\test\Shader@0x0000020E5111BFA0(32,14-22): error X3500: array reference cannot be used as an l-value; not natively addressable

View File

@ -0,0 +1,102 @@
SKIP: FAILED
void set_float4(inout float4 vec, int idx, float val) {
vec = (idx.xxxx == int4(0, 1, 2, 3)) ? val.xxxx : vec;
}
cbuffer cbuffer_x_6 : register(b1, space0) {
uint4 x_6[4];
};
cbuffer cbuffer_x_10 : register(b0, space0) {
uint4 x_10[1];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
float4x4 m0 = float4x4(0.0f, 0.0f, 0.0f, 0.0f, 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 c = 0;
float4x4 m1 = float4x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
const int x_40 = asint(x_6[1].x);
const float x_41 = float(x_40);
m0 = float4x4(float4(x_41, 0.0f, 0.0f, 0.0f), float4(0.0f, x_41, 0.0f, 0.0f), float4(0.0f, 0.0f, x_41, 0.0f), float4(0.0f, 0.0f, 0.0f, x_41));
const int x_48 = asint(x_6[2].x);
c = x_48;
[loop] while (true) {
const int x_53 = c;
const uint scalar_offset = ((16u * uint(0))) / 4;
const int x_55 = asint(x_6[scalar_offset / 4][scalar_offset % 4]);
if ((x_53 < x_55)) {
} else {
break;
}
m1 = m0;
const int x_59 = c;
const int x_61 = asint(x_6[3].x);
const int x_64 = asint(x_6[2].x);
const uint scalar_offset_1 = ((16u * uint(0))) / 4;
const float x_66 = asfloat(x_10[scalar_offset_1 / 4][scalar_offset_1 % 4]);
set_float4(m1[(x_59 % x_61)], x_64, x_66);
const int x_68 = c;
const int x_70 = asint(x_6[3].x);
const int x_73 = asint(x_6[2].x);
const uint scalar_offset_2 = ((16u * uint(0))) / 4;
const float x_75 = asfloat(x_10[scalar_offset_2 / 4][scalar_offset_2 % 4]);
set_float4(m0[(x_68 % x_70)], x_73, x_75);
{
c = (c + 1);
}
}
const float4x4 x_79 = m0;
const int x_81 = asint(x_6[1].x);
const int x_84 = asint(x_6[2].x);
const int x_87 = asint(x_6[1].x);
const int x_90 = asint(x_6[1].x);
const int x_93 = asint(x_6[1].x);
const int x_96 = asint(x_6[2].x);
const int x_99 = asint(x_6[1].x);
const int x_102 = asint(x_6[1].x);
const int x_105 = asint(x_6[1].x);
const int x_108 = asint(x_6[2].x);
const int x_111 = asint(x_6[1].x);
const int x_114 = asint(x_6[1].x);
const int x_117 = asint(x_6[1].x);
const int x_120 = asint(x_6[2].x);
const int x_123 = asint(x_6[1].x);
const int x_126 = asint(x_6[1].x);
const float4x4 x_132 = float4x4(float4(float(x_81), float(x_84), float(x_87), float(x_90)), float4(float(x_93), float(x_96), float(x_99), float(x_102)), float4(float(x_105), float(x_108), float(x_111), float(x_114)), float4(float(x_117), float(x_120), float(x_123), float(x_126)));
if ((((all((x_79[0u] == x_132[0u])) & all((x_79[1u] == x_132[1u]))) & all((x_79[2u] == x_132[2u]))) & all((x_79[3u] == x_132[3u])))) {
const int x_156 = asint(x_6[2].x);
const int x_159 = asint(x_6[1].x);
const int x_162 = asint(x_6[1].x);
const int x_165 = asint(x_6[2].x);
x_GLF_color = float4(float(x_156), float(x_159), float(x_162), float(x_165));
} else {
const int x_169 = asint(x_6[1].x);
const float x_170 = float(x_169);
x_GLF_color = float4(x_170, x_170, x_170, x_170);
}
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_3 = {x_GLF_color};
return tint_symbol_3;
}
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;
}
C:\src\tint\test\Shader@0x0000013C243CAFF0(36,20-30): warning X3556: integer modulus may be much slower, try using uints if possible.
C:\src\tint\test\Shader@0x0000013C243CAFF0(22,10-21): error X3531: can't unroll loops marked with loop attribute

View File

@ -0,0 +1,114 @@
SKIP: FAILED
void set_float4(inout float4 vec, int idx, float val) {
vec = (idx.xxxx == int4(0, 1, 2, 3)) ? val.xxxx : vec;
}
cbuffer cbuffer_x_6 : register(b1, space0) {
uint4 x_6[4];
};
cbuffer cbuffer_x_10 : register(b0, space0) {
uint4 x_10[1];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
float4x4 m0 = float4x4(0.0f, 0.0f, 0.0f, 0.0f, 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 c = 0;
float4x4 m1 = float4x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
const int x_40 = asint(x_6[1].x);
const float x_41 = float(x_40);
m0 = float4x4(float4(x_41, 0.0f, 0.0f, 0.0f), float4(0.0f, x_41, 0.0f, 0.0f), float4(0.0f, 0.0f, x_41, 0.0f), float4(0.0f, 0.0f, 0.0f, x_41));
const int x_48 = asint(x_6[2].x);
c = x_48;
[loop] while (true) {
const int x_53 = c;
const uint scalar_offset = ((16u * uint(0))) / 4;
const int x_55 = asint(x_6[scalar_offset / 4][scalar_offset % 4]);
if ((x_53 < x_55)) {
} else {
break;
}
m1 = m0;
const int x_59 = c;
const int x_61 = asint(x_6[3].x);
const int x_64 = asint(x_6[2].x);
const uint scalar_offset_1 = ((16u * uint(0))) / 4;
const float x_66 = asfloat(x_10[scalar_offset_1 / 4][scalar_offset_1 % 4]);
set_float4(m1[(x_59 % x_61)], x_64, x_66);
const int x_68 = c;
const int x_70 = asint(x_6[3].x);
const int x_73 = asint(x_6[2].x);
const uint scalar_offset_2 = ((16u * uint(0))) / 4;
const float x_75 = asfloat(x_10[scalar_offset_2 / 4][scalar_offset_2 % 4]);
set_float4(m0[(x_68 % x_70)], x_73, x_75);
{
c = (c + 1);
}
}
const float4x4 x_79 = m0;
const int x_81 = asint(x_6[1].x);
const int x_84 = asint(x_6[2].x);
const int x_87 = asint(x_6[1].x);
const int x_90 = asint(x_6[1].x);
const int x_93 = asint(x_6[1].x);
const int x_96 = asint(x_6[2].x);
const int x_99 = asint(x_6[1].x);
const int x_102 = asint(x_6[1].x);
const int x_105 = asint(x_6[1].x);
const int x_108 = asint(x_6[2].x);
const int x_111 = asint(x_6[1].x);
const int x_114 = asint(x_6[1].x);
const int x_117 = asint(x_6[1].x);
const int x_120 = asint(x_6[2].x);
const int x_123 = asint(x_6[1].x);
const int x_126 = asint(x_6[1].x);
const float4x4 x_132 = float4x4(float4(float(x_81), float(x_84), float(x_87), float(x_90)), float4(float(x_93), float(x_96), float(x_99), float(x_102)), float4(float(x_105), float(x_108), float(x_111), float(x_114)), float4(float(x_117), float(x_120), float(x_123), float(x_126)));
bool tint_tmp_2 = all((x_79[0u] == x_132[0u]));
if (tint_tmp_2) {
tint_tmp_2 = all((x_79[1u] == x_132[1u]));
}
bool tint_tmp_1 = (tint_tmp_2);
if (tint_tmp_1) {
tint_tmp_1 = all((x_79[2u] == x_132[2u]));
}
bool tint_tmp = (tint_tmp_1);
if (tint_tmp) {
tint_tmp = all((x_79[3u] == x_132[3u]));
}
if ((tint_tmp)) {
const int x_156 = asint(x_6[2].x);
const int x_159 = asint(x_6[1].x);
const int x_162 = asint(x_6[1].x);
const int x_165 = asint(x_6[2].x);
x_GLF_color = float4(float(x_156), float(x_159), float(x_162), float(x_165));
} else {
const int x_169 = asint(x_6[1].x);
const float x_170 = float(x_169);
x_GLF_color = float4(x_170, x_170, x_170, x_170);
}
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_3 = {x_GLF_color};
return tint_symbol_3;
}
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;
}
C:\src\tint\test\Shader@0x000001ABB4809E40(36,20-30): warning X3556: integer modulus may be much slower, try using uints if possible.
C:\src\tint\test\Shader@0x000001ABB4809E40(22,10-21): error X3531: can't unroll loops marked with loop attribute

View File

@ -24,10 +24,10 @@ void main_1() {
if ((x_45 == 1)) {
set_float2(m32[3], x_45, x_40);
}
const float tint_symbol_4[3] = {x_40, x_40, x_40};
sums = tint_symbol_4;
const float tint_symbol_3[3] = {x_40, x_40, x_40};
sums = tint_symbol_3;
x_52_phi = x_45;
while (true) {
[loop] while (true) {
int x_53 = 0;
const int x_52 = x_52_phi;
const int x_56 = asint(x_8[2].x);
@ -59,11 +59,17 @@ struct tint_symbol {
float4 x_GLF_color_1 : SV_Target0;
};
tint_symbol main() {
main_out main_inner() {
main_1();
const main_out tint_symbol_1 = {x_GLF_color};
const tint_symbol tint_symbol_5 = {tint_symbol_1.x_GLF_color_1};
return tint_symbol_5;
const main_out tint_symbol_4 = {x_GLF_color};
return tint_symbol_4;
}
C:\src\tint\test\Shader@0x0000029DDF1A00E0(23,16-21): error X3504: array index out of bounds
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;
}
C:\src\tint\test\Shader@0x0000018CEDCE0230(23,16-21): error X3504: array index out of bounds

View File

@ -24,10 +24,10 @@ void main_1() {
if ((x_45 == 1)) {
set_float2(m32[3], x_45, x_40);
}
const float tint_symbol_4[3] = {x_40, x_40, x_40};
sums = tint_symbol_4;
const float tint_symbol_3[3] = {x_40, x_40, x_40};
sums = tint_symbol_3;
x_52_phi = x_45;
while (true) {
[loop] while (true) {
int x_53 = 0;
const int x_52 = x_52_phi;
const int x_56 = asint(x_8[2].x);
@ -59,11 +59,17 @@ struct tint_symbol {
float4 x_GLF_color_1 : SV_Target0;
};
tint_symbol main() {
main_out main_inner() {
main_1();
const main_out tint_symbol_1 = {x_GLF_color};
const tint_symbol tint_symbol_5 = {tint_symbol_1.x_GLF_color_1};
return tint_symbol_5;
const main_out tint_symbol_4 = {x_GLF_color};
return tint_symbol_4;
}
C:\src\tint\test\Shader@0x0000020469C7EEA0(23,16-21): error X3504: array index out of bounds
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;
}
C:\src\tint\test\Shader@0x00000229BC652210(23,16-21): error X3504: array index out of bounds

View File

@ -0,0 +1,124 @@
SKIP: FAILED
cbuffer cbuffer_x_6 : register(b1, space0) {
uint4 x_6[3];
};
cbuffer cbuffer_x_9 : register(b0, space0) {
uint4 x_9[4];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
float A[2] = (float[2])0;
int i = 0;
int j = 0;
bool x_101 = false;
bool x_102_phi = false;
const float x_39 = asfloat(x_6[1].x);
A[0] = x_39;
const float x_42 = asfloat(x_6[1].x);
A[1] = x_42;
const uint scalar_offset = ((16u * uint(0))) / 4;
const int x_45 = asint(x_9[scalar_offset / 4][scalar_offset % 4]);
i = x_45;
[loop] while (true) {
const int x_50 = i;
const int x_52 = asint(x_9[3].x);
if ((x_50 < x_52)) {
} else {
break;
}
const uint scalar_offset_1 = ((16u * uint(0))) / 4;
const int x_56 = asint(x_9[scalar_offset_1 / 4][scalar_offset_1 % 4]);
j = x_56;
[loop] while (true) {
const int x_61 = j;
const int x_63 = asint(x_9[2].x);
if ((x_61 < x_63)) {
} else {
break;
}
switch(j) {
case 1: {
const int x_78 = i;
const uint scalar_offset_2 = ((16u * uint(0))) / 4;
const float x_80 = asfloat(x_6[scalar_offset_2 / 4][scalar_offset_2 % 4]);
A[x_78] = x_80;
break;
}
case 0: {
if ((-2147483648 < i)) {
{
j = (j + 1);
}
continue;
}
const int x_74 = i;
const float x_76 = asfloat(x_6[2].x);
A[x_74] = x_76;
break;
}
default: {
break;
}
}
{
j = (j + 1);
}
}
{
i = (i + 1);
}
}
const uint scalar_offset_3 = ((16u * uint(0))) / 4;
const int x_87 = asint(x_9[scalar_offset_3 / 4][scalar_offset_3 % 4]);
const float x_89 = A[x_87];
const uint scalar_offset_4 = ((16u * uint(0))) / 4;
const float x_91 = asfloat(x_6[scalar_offset_4 / 4][scalar_offset_4 % 4]);
const bool x_92 = (x_89 == x_91);
x_102_phi = x_92;
if (x_92) {
const int x_96 = asint(x_9[1].x);
const float x_98 = A[x_96];
const uint scalar_offset_5 = ((16u * uint(0))) / 4;
const float x_100 = asfloat(x_6[scalar_offset_5 / 4][scalar_offset_5 % 4]);
x_101 = (x_98 == x_100);
x_102_phi = x_101;
}
if (x_102_phi) {
const int x_107 = asint(x_9[1].x);
const uint scalar_offset_6 = ((16u * uint(0))) / 4;
const int x_110 = asint(x_9[scalar_offset_6 / 4][scalar_offset_6 % 4]);
const uint scalar_offset_7 = ((16u * uint(0))) / 4;
const int x_113 = asint(x_9[scalar_offset_7 / 4][scalar_offset_7 % 4]);
const int x_116 = asint(x_9[1].x);
x_GLF_color = float4(float(x_107), float(x_110), float(x_113), float(x_116));
} else {
const int x_120 = asint(x_9[1].x);
const float x_121 = float(x_120);
x_GLF_color = float4(x_121, x_121, x_121, x_121);
}
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_3 = {x_GLF_color};
return tint_symbol_3;
}
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;
}
C:\src\tint\test\Shader@0x000001CAF72F14F0(52,13-21): error X3708: continue cannot be used in a switch

View File

@ -0,0 +1,124 @@
SKIP: FAILED
cbuffer cbuffer_x_6 : register(b1, space0) {
uint4 x_6[3];
};
cbuffer cbuffer_x_9 : register(b0, space0) {
uint4 x_9[4];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
float A[2] = (float[2])0;
int i = 0;
int j = 0;
bool x_101 = false;
bool x_102_phi = false;
const float x_39 = asfloat(x_6[1].x);
A[0] = x_39;
const float x_42 = asfloat(x_6[1].x);
A[1] = x_42;
const uint scalar_offset = ((16u * uint(0))) / 4;
const int x_45 = asint(x_9[scalar_offset / 4][scalar_offset % 4]);
i = x_45;
[loop] while (true) {
const int x_50 = i;
const int x_52 = asint(x_9[3].x);
if ((x_50 < x_52)) {
} else {
break;
}
const uint scalar_offset_1 = ((16u * uint(0))) / 4;
const int x_56 = asint(x_9[scalar_offset_1 / 4][scalar_offset_1 % 4]);
j = x_56;
[loop] while (true) {
const int x_61 = j;
const int x_63 = asint(x_9[2].x);
if ((x_61 < x_63)) {
} else {
break;
}
switch(j) {
case 1: {
const int x_78 = i;
const uint scalar_offset_2 = ((16u * uint(0))) / 4;
const float x_80 = asfloat(x_6[scalar_offset_2 / 4][scalar_offset_2 % 4]);
A[x_78] = x_80;
break;
}
case 0: {
if ((-2147483648 < i)) {
{
j = (j + 1);
}
continue;
}
const int x_74 = i;
const float x_76 = asfloat(x_6[2].x);
A[x_74] = x_76;
break;
}
default: {
break;
}
}
{
j = (j + 1);
}
}
{
i = (i + 1);
}
}
const uint scalar_offset_3 = ((16u * uint(0))) / 4;
const int x_87 = asint(x_9[scalar_offset_3 / 4][scalar_offset_3 % 4]);
const float x_89 = A[x_87];
const uint scalar_offset_4 = ((16u * uint(0))) / 4;
const float x_91 = asfloat(x_6[scalar_offset_4 / 4][scalar_offset_4 % 4]);
const bool x_92 = (x_89 == x_91);
x_102_phi = x_92;
if (x_92) {
const int x_96 = asint(x_9[1].x);
const float x_98 = A[x_96];
const uint scalar_offset_5 = ((16u * uint(0))) / 4;
const float x_100 = asfloat(x_6[scalar_offset_5 / 4][scalar_offset_5 % 4]);
x_101 = (x_98 == x_100);
x_102_phi = x_101;
}
if (x_102_phi) {
const int x_107 = asint(x_9[1].x);
const uint scalar_offset_6 = ((16u * uint(0))) / 4;
const int x_110 = asint(x_9[scalar_offset_6 / 4][scalar_offset_6 % 4]);
const uint scalar_offset_7 = ((16u * uint(0))) / 4;
const int x_113 = asint(x_9[scalar_offset_7 / 4][scalar_offset_7 % 4]);
const int x_116 = asint(x_9[1].x);
x_GLF_color = float4(float(x_107), float(x_110), float(x_113), float(x_116));
} else {
const int x_120 = asint(x_9[1].x);
const float x_121 = float(x_120);
x_GLF_color = float4(x_121, x_121, x_121, x_121);
}
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_3 = {x_GLF_color};
return tint_symbol_3;
}
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;
}
C:\src\tint\test\Shader@0x0000027536C22E40(52,13-21): error X3708: continue cannot be used in a switch

View File

@ -12,7 +12,7 @@ float fx_() {
const float x_55 = asfloat(x_7[0].y);
return x_55;
}
while (true) {
[loop] while (true) {
if (true) {
} else {
break;
@ -30,7 +30,7 @@ void main_1() {
B = 1.0f;
const float x_34 = fx_();
x_GLF_color = float4(x_34, 0.0f, 0.0f, 1.0f);
while (true) {
[loop] while (true) {
if ((x2 > 2.0f)) {
} else {
break;
@ -54,13 +54,18 @@ struct tint_symbol_2 {
float4 x_GLF_color_1 : SV_Target0;
};
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const float4 gl_FragCoord_param = tint_symbol.gl_FragCoord_param;
main_out main_inner(float4 gl_FragCoord_param) {
gl_FragCoord = gl_FragCoord_param;
main_1();
const main_out tint_symbol_3 = {x_GLF_color};
const tint_symbol_2 tint_symbol_5 = {tint_symbol_3.x_GLF_color_1};
return tint_symbol_5;
const main_out tint_symbol_4 = {x_GLF_color};
return tint_symbol_4;
}
C:\src\tint\test\Shader@0x0000015B7FF57370(13,10-13): error X3696: infinite loop detected - loop never exits
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const main_out inner_result = main_inner(tint_symbol.gl_FragCoord_param);
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
return wrapper_result;
}
C:\src\tint\test\Shader@0x000001DE747F22A0(13,17-20): error X3696: infinite loop detected - loop never exits

View File

@ -12,7 +12,7 @@ float fx_() {
const float x_55 = asfloat(x_7[0].y);
return x_55;
}
while (true) {
[loop] while (true) {
if (true) {
} else {
break;
@ -30,7 +30,7 @@ void main_1() {
B = 1.0f;
const float x_34 = fx_();
x_GLF_color = float4(x_34, 0.0f, 0.0f, 1.0f);
while (true) {
[loop] while (true) {
if ((x2 > 2.0f)) {
} else {
break;
@ -54,13 +54,18 @@ struct tint_symbol_2 {
float4 x_GLF_color_1 : SV_Target0;
};
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const float4 gl_FragCoord_param = tint_symbol.gl_FragCoord_param;
main_out main_inner(float4 gl_FragCoord_param) {
gl_FragCoord = gl_FragCoord_param;
main_1();
const main_out tint_symbol_3 = {x_GLF_color};
const tint_symbol_2 tint_symbol_5 = {tint_symbol_3.x_GLF_color_1};
return tint_symbol_5;
const main_out tint_symbol_4 = {x_GLF_color};
return tint_symbol_4;
}
C:\src\tint\test\Shader@0x0000022DDADAA730(13,10-13): error X3696: infinite loop detected - loop never exits
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const main_out inner_result = main_inner(tint_symbol.gl_FragCoord_param);
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
return wrapper_result;
}
C:\src\tint\test\Shader@0x0000024AE2EDC600(13,17-20): error X3696: infinite loop detected - loop never exits

View File

@ -0,0 +1,288 @@
SKIP: FAILED
static float4 gl_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
cbuffer cbuffer_x_6 : register(b0, space0) {
uint4 x_6[1];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
[loop] while (true) {
bool x_45 = false;
int x_48 = 0;
int x_49 = 0;
bool x_46 = false;
int x_115 = 0;
int x_116 = 0;
bool x_45_phi = false;
int x_48_phi = 0;
int x_50_phi = 0;
int x_52_phi = 0;
int x_111_phi = 0;
bool x_112_phi = false;
int x_115_phi = 0;
int x_118_phi = 0;
int x_120_phi = 0;
int x_161_phi = 0;
const float x_40 = asfloat(x_6[0].x);
const bool x_41 = (x_40 < -1.0f);
x_45_phi = false;
x_48_phi = 0;
x_50_phi = 0;
x_52_phi = 0;
[loop] while (true) {
int x_62 = 0;
int x_65 = 0;
int x_66 = 0;
int x_63 = 0;
int x_53 = 0;
int x_62_phi = 0;
int x_65_phi = 0;
int x_67_phi = 0;
int x_51_phi = 0;
int x_49_phi = 0;
bool x_46_phi = false;
x_45 = x_45_phi;
x_48 = x_48_phi;
const int x_50 = x_50_phi;
const int x_52 = x_52_phi;
const float x_55 = gl_FragCoord.y;
x_111_phi = x_48;
x_112_phi = x_45;
if ((x_52 < ((x_55 > -1.0f) ? 10 : 100))) {
} else {
break;
}
x_62_phi = x_48;
x_65_phi = x_50;
x_67_phi = 0;
[loop] while (true) {
int x_97 = 0;
int x_68 = 0;
int x_66_phi = 0;
x_62 = x_62_phi;
x_65 = x_65_phi;
const int x_67 = x_67_phi;
x_51_phi = x_65;
x_49_phi = x_62;
x_46_phi = x_45;
if ((x_67 < 2)) {
} else {
break;
}
[loop] while (true) {
bool x_78 = false;
int x_86_phi = 0;
int x_97_phi = 0;
bool x_98_phi = false;
const float x_77 = gl_FragCoord.x;
x_78 = (x_77 < -1.0f);
if (!((x_40 < 0.0f))) {
if (x_78) {
x_66_phi = 0;
break;
}
x_86_phi = 1;
[loop] while (true) {
int x_87 = 0;
const int x_86 = x_86_phi;
x_97_phi = x_65;
x_98_phi = false;
if ((x_86 < 3)) {
} else {
break;
}
if (x_78) {
{
x_87 = (x_86 + 1);
x_86_phi = x_87;
}
continue;
}
if ((x_86 > 0)) {
x_97_phi = 1;
x_98_phi = true;
break;
}
{
x_87 = (x_86 + 1);
x_86_phi = x_87;
}
}
x_97 = x_97_phi;
const bool x_98 = x_98_phi;
x_66_phi = x_97;
if (x_98) {
break;
}
}
x_66_phi = 0;
break;
}
x_66 = x_66_phi;
x_63 = asint((x_62 + x_66));
if (x_41) {
[loop] while (true) {
if (x_41) {
} else {
break;
}
{
const float x_105 = float(x_52);
x_GLF_color = float4(x_105, x_105, x_105, x_105);
}
}
x_51_phi = x_66;
x_49_phi = x_63;
x_46_phi = true;
break;
}
{
x_68 = (x_67 + 1);
x_62_phi = x_63;
x_65_phi = x_66;
x_67_phi = x_68;
}
}
const int x_51 = x_51_phi;
x_49 = x_49_phi;
x_46 = x_46_phi;
x_111_phi = x_49;
x_112_phi = x_46;
if (x_46) {
break;
}
if (!(x_41)) {
x_111_phi = x_49;
x_112_phi = x_46;
break;
}
{
x_53 = (x_52 + 1);
x_45_phi = x_46;
x_48_phi = x_49;
x_50_phi = x_51;
x_52_phi = x_53;
}
}
const int x_111 = x_111_phi;
if (x_112_phi) {
break;
}
x_115_phi = x_111;
x_118_phi = 0;
x_120_phi = 0;
[loop] while (true) {
int x_154 = 0;
int x_121 = 0;
int x_119_phi = 0;
x_115 = x_115_phi;
const int x_118 = x_118_phi;
const int x_120 = x_120_phi;
const float x_123 = asfloat(x_6[0].y);
x_161_phi = x_115;
if ((x_120 < int((x_123 + 1.0f)))) {
} else {
break;
}
[loop] while (true) {
bool x_135 = false;
int x_143_phi = 0;
int x_154_phi = 0;
bool x_155_phi = false;
const float x_134 = gl_FragCoord.x;
x_135 = (x_134 < -1.0f);
if (!((x_40 < 0.0f))) {
if (x_135) {
x_119_phi = 0;
break;
}
x_143_phi = 1;
[loop] while (true) {
int x_144 = 0;
const int x_143 = x_143_phi;
x_154_phi = x_118;
x_155_phi = false;
if ((x_143 < 3)) {
} else {
break;
}
if (x_135) {
{
x_144 = (x_143 + 1);
x_143_phi = x_144;
}
continue;
}
if ((x_143 > 0)) {
x_154_phi = 1;
x_155_phi = true;
break;
}
{
x_144 = (x_143 + 1);
x_143_phi = x_144;
}
}
x_154 = x_154_phi;
const bool x_155 = x_155_phi;
x_119_phi = x_154;
if (x_155) {
break;
}
}
x_119_phi = 0;
break;
}
int x_119 = 0;
x_119 = x_119_phi;
x_116 = asint((x_115 + x_119));
if ((!(x_41) ? false : x_41)) {
x_161_phi = x_116;
break;
}
{
x_121 = (x_120 + 1);
x_115_phi = x_116;
x_118_phi = x_119;
x_120_phi = x_121;
}
}
if ((x_161_phi == 4)) {
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
} else {
x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
}
break;
}
return;
}
struct main_out {
float4 x_GLF_color_1;
};
struct tint_symbol_1 {
float4 gl_FragCoord_param : SV_Position;
};
struct tint_symbol_2 {
float4 x_GLF_color_1 : SV_Target0;
};
main_out main_inner(float4 gl_FragCoord_param) {
gl_FragCoord = gl_FragCoord_param;
main_1();
const main_out tint_symbol_4 = {x_GLF_color};
return tint_symbol_4;
}
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const main_out inner_result = main_inner(tint_symbol.gl_FragCoord_param);
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
return wrapper_result;
}
C:\src\tint\test\Shader@0x000002215620C140(8,10-21): warning X3557: loop only executes for 0 iteration(s), consider removing [loop]
C:\src\tint\test\Shader@0x000002215620C140(71,16-27): warning X3557: loop only executes for 0 iteration(s), consider removing [loop]
C:\src\tint\test\Shader@0x000002215620C140(186,14-25): warning X3557: loop only executes for 0 iteration(s), consider removing [loop]
C:\src\tint\test\Shader@0x000002215620C140(123,18-29): error X4029: infinite loop detected - loop never exits

View File

@ -0,0 +1,288 @@
SKIP: FAILED
static float4 gl_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
cbuffer cbuffer_x_6 : register(b0, space0) {
uint4 x_6[1];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
[loop] while (true) {
bool x_45 = false;
int x_48 = 0;
int x_49 = 0;
bool x_46 = false;
int x_115 = 0;
int x_116 = 0;
bool x_45_phi = false;
int x_48_phi = 0;
int x_50_phi = 0;
int x_52_phi = 0;
int x_111_phi = 0;
bool x_112_phi = false;
int x_115_phi = 0;
int x_118_phi = 0;
int x_120_phi = 0;
int x_161_phi = 0;
const float x_40 = asfloat(x_6[0].x);
const bool x_41 = (x_40 < -1.0f);
x_45_phi = false;
x_48_phi = 0;
x_50_phi = 0;
x_52_phi = 0;
[loop] while (true) {
int x_62 = 0;
int x_65 = 0;
int x_66 = 0;
int x_63 = 0;
int x_53 = 0;
int x_62_phi = 0;
int x_65_phi = 0;
int x_67_phi = 0;
int x_51_phi = 0;
int x_49_phi = 0;
bool x_46_phi = false;
x_45 = x_45_phi;
x_48 = x_48_phi;
const int x_50 = x_50_phi;
const int x_52 = x_52_phi;
const float x_55 = gl_FragCoord.y;
x_111_phi = x_48;
x_112_phi = x_45;
if ((x_52 < ((x_55 > -1.0f) ? 10 : 100))) {
} else {
break;
}
x_62_phi = x_48;
x_65_phi = x_50;
x_67_phi = 0;
[loop] while (true) {
int x_97 = 0;
int x_68 = 0;
int x_66_phi = 0;
x_62 = x_62_phi;
x_65 = x_65_phi;
const int x_67 = x_67_phi;
x_51_phi = x_65;
x_49_phi = x_62;
x_46_phi = x_45;
if ((x_67 < 2)) {
} else {
break;
}
[loop] while (true) {
bool x_78 = false;
int x_86_phi = 0;
int x_97_phi = 0;
bool x_98_phi = false;
const float x_77 = gl_FragCoord.x;
x_78 = (x_77 < -1.0f);
if (!((x_40 < 0.0f))) {
if (x_78) {
x_66_phi = 0;
break;
}
x_86_phi = 1;
[loop] while (true) {
int x_87 = 0;
const int x_86 = x_86_phi;
x_97_phi = x_65;
x_98_phi = false;
if ((x_86 < 3)) {
} else {
break;
}
if (x_78) {
{
x_87 = (x_86 + 1);
x_86_phi = x_87;
}
continue;
}
if ((x_86 > 0)) {
x_97_phi = 1;
x_98_phi = true;
break;
}
{
x_87 = (x_86 + 1);
x_86_phi = x_87;
}
}
x_97 = x_97_phi;
const bool x_98 = x_98_phi;
x_66_phi = x_97;
if (x_98) {
break;
}
}
x_66_phi = 0;
break;
}
x_66 = x_66_phi;
x_63 = asint((x_62 + x_66));
if (x_41) {
[loop] while (true) {
if (x_41) {
} else {
break;
}
{
const float x_105 = float(x_52);
x_GLF_color = float4(x_105, x_105, x_105, x_105);
}
}
x_51_phi = x_66;
x_49_phi = x_63;
x_46_phi = true;
break;
}
{
x_68 = (x_67 + 1);
x_62_phi = x_63;
x_65_phi = x_66;
x_67_phi = x_68;
}
}
const int x_51 = x_51_phi;
x_49 = x_49_phi;
x_46 = x_46_phi;
x_111_phi = x_49;
x_112_phi = x_46;
if (x_46) {
break;
}
if (!(x_41)) {
x_111_phi = x_49;
x_112_phi = x_46;
break;
}
{
x_53 = (x_52 + 1);
x_45_phi = x_46;
x_48_phi = x_49;
x_50_phi = x_51;
x_52_phi = x_53;
}
}
const int x_111 = x_111_phi;
if (x_112_phi) {
break;
}
x_115_phi = x_111;
x_118_phi = 0;
x_120_phi = 0;
[loop] while (true) {
int x_154 = 0;
int x_121 = 0;
int x_119_phi = 0;
x_115 = x_115_phi;
const int x_118 = x_118_phi;
const int x_120 = x_120_phi;
const float x_123 = asfloat(x_6[0].y);
x_161_phi = x_115;
if ((x_120 < int((x_123 + 1.0f)))) {
} else {
break;
}
[loop] while (true) {
bool x_135 = false;
int x_143_phi = 0;
int x_154_phi = 0;
bool x_155_phi = false;
const float x_134 = gl_FragCoord.x;
x_135 = (x_134 < -1.0f);
if (!((x_40 < 0.0f))) {
if (x_135) {
x_119_phi = 0;
break;
}
x_143_phi = 1;
[loop] while (true) {
int x_144 = 0;
const int x_143 = x_143_phi;
x_154_phi = x_118;
x_155_phi = false;
if ((x_143 < 3)) {
} else {
break;
}
if (x_135) {
{
x_144 = (x_143 + 1);
x_143_phi = x_144;
}
continue;
}
if ((x_143 > 0)) {
x_154_phi = 1;
x_155_phi = true;
break;
}
{
x_144 = (x_143 + 1);
x_143_phi = x_144;
}
}
x_154 = x_154_phi;
const bool x_155 = x_155_phi;
x_119_phi = x_154;
if (x_155) {
break;
}
}
x_119_phi = 0;
break;
}
int x_119 = 0;
x_119 = x_119_phi;
x_116 = asint((x_115 + x_119));
if ((!(x_41) ? false : x_41)) {
x_161_phi = x_116;
break;
}
{
x_121 = (x_120 + 1);
x_115_phi = x_116;
x_118_phi = x_119;
x_120_phi = x_121;
}
}
if ((x_161_phi == 4)) {
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
} else {
x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
}
break;
}
return;
}
struct main_out {
float4 x_GLF_color_1;
};
struct tint_symbol_1 {
float4 gl_FragCoord_param : SV_Position;
};
struct tint_symbol_2 {
float4 x_GLF_color_1 : SV_Target0;
};
main_out main_inner(float4 gl_FragCoord_param) {
gl_FragCoord = gl_FragCoord_param;
main_1();
const main_out tint_symbol_4 = {x_GLF_color};
return tint_symbol_4;
}
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const main_out inner_result = main_inner(tint_symbol.gl_FragCoord_param);
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
return wrapper_result;
}
C:\src\tint\test\Shader@0x0000020EFE36E240(8,10-21): warning X3557: loop only executes for 0 iteration(s), consider removing [loop]
C:\src\tint\test\Shader@0x0000020EFE36E240(71,16-27): warning X3557: loop only executes for 0 iteration(s), consider removing [loop]
C:\src\tint\test\Shader@0x0000020EFE36E240(186,14-25): warning X3557: loop only executes for 0 iteration(s), consider removing [loop]
C:\src\tint\test\Shader@0x0000020EFE36E240(123,18-29): error X4029: infinite loop detected - loop never exits

View File

@ -0,0 +1,93 @@
SKIP: FAILED
struct BinarySearchObject {
int prime_numbers[10];
};
cbuffer cbuffer_x_8 : register(b0, space0) {
uint4 x_8[1];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
int binarySearch_struct_BinarySearchObject_i1_10_1_(inout BinarySearchObject obj) {
int m = 0;
[loop] while (true) {
const float x_91 = asfloat(x_8[0].x);
if ((x_91 > 1.0f)) {
} else {
break;
}
const float x_95 = asfloat(x_8[0].x);
m = int(x_95);
const int x_15 = obj.prime_numbers[m];
if ((x_15 == 1)) {
return 1;
}
}
return 1;
}
void main_1() {
int i = 0;
BinarySearchObject obj_1 = (BinarySearchObject)0;
BinarySearchObject param = (BinarySearchObject)0;
i = 0;
{
[loop] for(; (i < 10); i = (i + 1)) {
if ((i != 3)) {
const int x_18 = i;
const float x_67 = asfloat(x_8[0].x);
if (((x_18 - int(x_67)) == 4)) {
obj_1.prime_numbers[i] = 11;
} else {
if ((i == 6)) {
obj_1.prime_numbers[i] = 17;
}
continue;
}
}
[loop] while (true) {
{
const float x_82 = asfloat(x_8[0].y);
if ((0.0f > x_82)) {
} else {
break;
}
}
}
}
}
param = obj_1;
const int x_26 = binarySearch_struct_BinarySearchObject_i1_10_1_(param);
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
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;
}
C:\src\tint\test\Shader@0x0000016C5E617FA0(47,14-25): warning X3557: loop doesn't seem to do anything, consider removing [loop]
C:\src\tint\test\Shader@0x0000016C5E617FA0(47,14-25): warning X3551: infinite loop detected - loop writes no values
C:\src\tint\test\Shader@0x0000016C5E617FA0(47,14-25): warning X3557: loop doesn't seem to do anything, consider removing [loop]
C:\src\tint\test\Shader@0x0000016C5E617FA0(47,14-25): warning X3551: infinite loop detected - loop writes no values
C:\src\tint\test\Shader@0x0000016C5E617FA0(47,14-25): warning X3557: loop doesn't seem to do anything, consider removing [loop]
C:\src\tint\test\Shader@0x0000016C5E617FA0(47,14-25): warning X3551: infinite loop detected - loop writes no values
C:\src\tint\test\Shader@0x0000016C5E617FA0(39,11-32): warning X3550: array reference cannot be used as an l-value; not natively addressable, forcing loop to unroll
C:\src\tint\test\Shader@0x0000016C5E617FA0(34,12-39): error X3531: can't unroll loops marked with loop attribute

View File

@ -0,0 +1,93 @@
SKIP: FAILED
struct BinarySearchObject {
int prime_numbers[10];
};
cbuffer cbuffer_x_8 : register(b0, space0) {
uint4 x_8[1];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
int binarySearch_struct_BinarySearchObject_i1_10_1_(inout BinarySearchObject obj) {
int m = 0;
[loop] while (true) {
const float x_91 = asfloat(x_8[0].x);
if ((x_91 > 1.0f)) {
} else {
break;
}
const float x_95 = asfloat(x_8[0].x);
m = int(x_95);
const int x_15 = obj.prime_numbers[m];
if ((x_15 == 1)) {
return 1;
}
}
return 1;
}
void main_1() {
int i = 0;
BinarySearchObject obj_1 = (BinarySearchObject)0;
BinarySearchObject param = (BinarySearchObject)0;
i = 0;
{
[loop] for(; (i < 10); i = (i + 1)) {
if ((i != 3)) {
const int x_18 = i;
const float x_67 = asfloat(x_8[0].x);
if (((x_18 - int(x_67)) == 4)) {
obj_1.prime_numbers[i] = 11;
} else {
if ((i == 6)) {
obj_1.prime_numbers[i] = 17;
}
continue;
}
}
[loop] while (true) {
{
const float x_82 = asfloat(x_8[0].y);
if ((0.0f > x_82)) {
} else {
break;
}
}
}
}
}
param = obj_1;
const int x_26 = binarySearch_struct_BinarySearchObject_i1_10_1_(param);
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
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;
}
C:\src\tint\test\Shader@0x0000022E4AE186A0(47,14-25): warning X3557: loop doesn't seem to do anything, consider removing [loop]
C:\src\tint\test\Shader@0x0000022E4AE186A0(47,14-25): warning X3551: infinite loop detected - loop writes no values
C:\src\tint\test\Shader@0x0000022E4AE186A0(47,14-25): warning X3557: loop doesn't seem to do anything, consider removing [loop]
C:\src\tint\test\Shader@0x0000022E4AE186A0(47,14-25): warning X3551: infinite loop detected - loop writes no values
C:\src\tint\test\Shader@0x0000022E4AE186A0(47,14-25): warning X3557: loop doesn't seem to do anything, consider removing [loop]
C:\src\tint\test\Shader@0x0000022E4AE186A0(47,14-25): warning X3551: infinite loop detected - loop writes no values
C:\src\tint\test\Shader@0x0000022E4AE186A0(39,11-32): warning X3550: array reference cannot be used as an l-value; not natively addressable, forcing loop to unroll
C:\src\tint\test\Shader@0x0000022E4AE186A0(34,12-39): error X3531: can't unroll loops marked with loop attribute

View File

@ -0,0 +1,86 @@
SKIP: FAILED
void set_float4(inout float4 vec, int idx, float val) {
vec = (idx.xxxx == int4(0, 1, 2, 3)) ? val.xxxx : vec;
}
static float4 gl_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
cbuffer cbuffer_x_7 : register(b0, space0) {
uint4 x_7[1];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
float4x4 m44 = float4x4(0.0f, 0.0f, 0.0f, 0.0f, 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 x_10_phi = 0;
m44 = float4x4(float4(1.0f, 2.0f, 3.0f, 4.0f), float4(5.0f, 6.0f, 7.0f, 8.0f), float4(9.0f, 10.0f, 11.0f, 12.0f), float4(13.0f, 14.0f, 15.0f, 16.0f));
x_10_phi = 0;
[loop] while (true) {
int x_9 = 0;
int x_11_phi = 0;
const int x_10 = x_10_phi;
if ((x_10 < 4)) {
} else {
break;
}
const float x_63 = gl_FragCoord.y;
if ((x_63 < 0.0f)) {
break;
}
x_11_phi = 0;
[loop] while (true) {
int x_8 = 0;
const int x_11 = x_11_phi;
if ((x_11 < 4)) {
} else {
break;
}
{
const float x_72 = asfloat(x_7[0].x);
const float x_74 = m44[x_10][x_11];
set_float4(m44[x_10], x_11, (x_74 + x_72));
x_8 = (x_11 + 1);
x_11_phi = x_8;
}
}
{
x_9 = (x_10 + 1);
x_10_phi = x_9;
}
}
const float x_77 = m44[1].y;
float4 x_79_1 = float4(0.0f, 0.0f, 0.0f, 0.0f);
x_79_1.x = (x_77 - 6.0f);
const float4 x_79 = x_79_1;
const float x_81 = m44[2].z;
float4 x_83_1 = x_79;
x_83_1.w = (x_81 - 11.0f);
x_GLF_color = x_83_1;
return;
}
struct main_out {
float4 x_GLF_color_1;
};
struct tint_symbol_1 {
float4 gl_FragCoord_param : SV_Position;
};
struct tint_symbol_2 {
float4 x_GLF_color_1 : SV_Target0;
};
main_out main_inner(float4 gl_FragCoord_param) {
gl_FragCoord = gl_FragCoord_param;
main_1();
const main_out tint_symbol_4 = {x_GLF_color};
return tint_symbol_4;
}
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const main_out inner_result = main_inner(tint_symbol.gl_FragCoord_param);
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
return wrapper_result;
}
C:\src\tint\test\Shader@0x000001CE5E694FB0(29,12-23): error X3531: can't unroll loops marked with loop attribute

View File

@ -0,0 +1,86 @@
SKIP: FAILED
void set_float4(inout float4 vec, int idx, float val) {
vec = (idx.xxxx == int4(0, 1, 2, 3)) ? val.xxxx : vec;
}
static float4 gl_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
cbuffer cbuffer_x_7 : register(b0, space0) {
uint4 x_7[1];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
float4x4 m44 = float4x4(0.0f, 0.0f, 0.0f, 0.0f, 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 x_10_phi = 0;
m44 = float4x4(float4(1.0f, 2.0f, 3.0f, 4.0f), float4(5.0f, 6.0f, 7.0f, 8.0f), float4(9.0f, 10.0f, 11.0f, 12.0f), float4(13.0f, 14.0f, 15.0f, 16.0f));
x_10_phi = 0;
[loop] while (true) {
int x_9 = 0;
int x_11_phi = 0;
const int x_10 = x_10_phi;
if ((x_10 < 4)) {
} else {
break;
}
const float x_63 = gl_FragCoord.y;
if ((x_63 < 0.0f)) {
break;
}
x_11_phi = 0;
[loop] while (true) {
int x_8 = 0;
const int x_11 = x_11_phi;
if ((x_11 < 4)) {
} else {
break;
}
{
const float x_72 = asfloat(x_7[0].x);
const float x_74 = m44[x_10][x_11];
set_float4(m44[x_10], x_11, (x_74 + x_72));
x_8 = (x_11 + 1);
x_11_phi = x_8;
}
}
{
x_9 = (x_10 + 1);
x_10_phi = x_9;
}
}
const float x_77 = m44[1].y;
float4 x_79_1 = float4(0.0f, 0.0f, 0.0f, 0.0f);
x_79_1.x = (x_77 - 6.0f);
const float4 x_79 = x_79_1;
const float x_81 = m44[2].z;
float4 x_83_1 = x_79;
x_83_1.w = (x_81 - 11.0f);
x_GLF_color = x_83_1;
return;
}
struct main_out {
float4 x_GLF_color_1;
};
struct tint_symbol_1 {
float4 gl_FragCoord_param : SV_Position;
};
struct tint_symbol_2 {
float4 x_GLF_color_1 : SV_Target0;
};
main_out main_inner(float4 gl_FragCoord_param) {
gl_FragCoord = gl_FragCoord_param;
main_1();
const main_out tint_symbol_4 = {x_GLF_color};
return tint_symbol_4;
}
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const main_out inner_result = main_inner(tint_symbol.gl_FragCoord_param);
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
return wrapper_result;
}
C:\src\tint\test\Shader@0x000001A0A52BEBB0(29,12-23): error X3531: can't unroll loops marked with loop attribute

View File

@ -19,7 +19,7 @@ void main_1() {
bool x_58_phi = false;
x_40_phi = false;
x_42_phi = float3(0.0f, 0.0f, 0.0f);
while (true) {
[loop] while (true) {
float3 x_43_phi = float3(0.0f, 0.0f, 0.0f);
x_40 = x_40_phi;
const float3 x_42 = x_42_phi;
@ -42,7 +42,7 @@ void main_1() {
x_36 = false;
x_56_phi = x_40;
x_58_phi = false;
while (true) {
[loop] while (true) {
bool x_62 = false;
bool x_62_phi = false;
bool x_64_phi = false;
@ -55,7 +55,7 @@ void main_1() {
x_62_phi = x_56;
x_64_phi = false;
x_65_phi = 0;
while (true) {
[loop] while (true) {
x_62 = x_62_phi;
const bool x_64 = x_64_phi;
const int x_65 = x_65_phi;
@ -103,10 +103,15 @@ struct tint_symbol {
float4 x_GLF_color_1 : SV_Target0;
};
tint_symbol main() {
main_out main_inner() {
main_1();
const main_out tint_symbol_1 = {x_GLF_color};
const tint_symbol tint_symbol_3 = {tint_symbol_1.x_GLF_color_1};
return tint_symbol_3;
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

@ -19,7 +19,7 @@ void main_1() {
bool x_58_phi = false;
x_40_phi = false;
x_42_phi = float3(0.0f, 0.0f, 0.0f);
while (true) {
[loop] while (true) {
float3 x_43_phi = float3(0.0f, 0.0f, 0.0f);
x_40 = x_40_phi;
const float3 x_42 = x_42_phi;
@ -42,7 +42,7 @@ void main_1() {
x_36 = false;
x_56_phi = x_40;
x_58_phi = false;
while (true) {
[loop] while (true) {
bool x_62 = false;
bool x_62_phi = false;
bool x_64_phi = false;
@ -55,7 +55,7 @@ void main_1() {
x_62_phi = x_56;
x_64_phi = false;
x_65_phi = 0;
while (true) {
[loop] while (true) {
x_62 = x_62_phi;
const bool x_64 = x_64_phi;
const int x_65 = x_65_phi;
@ -103,10 +103,15 @@ struct tint_symbol {
float4 x_GLF_color_1 : SV_Target0;
};
tint_symbol main() {
main_out main_inner() {
main_1();
const main_out tint_symbol_1 = {x_GLF_color};
const tint_symbol tint_symbol_3 = {tint_symbol_1.x_GLF_color_1};
return tint_symbol_3;
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

@ -0,0 +1,82 @@
SKIP: FAILED
cbuffer cbuffer_x_7 : register(b0, space0) {
uint4 x_7[1];
};
static float gv = 0.0f;
static float4 gl_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
float lv = 0.0f;
float x_43 = 0.0f;
int GLF_live5r = 0;
int GLF_live5_looplimiter6 = 0;
const float x_45 = asfloat(x_7[0].y);
if ((1.0f > x_45)) {
x_43 = abs(gv);
} else {
x_43 = 260.0f;
}
lv = x_43;
if ((int(lv) < 250)) {
if ((int(lv) < 180)) {
const float x_65 = clamp(lv, 1.0f, 1.0f);
} else {
const float x_67 = gl_FragCoord.y;
if ((x_67 < 0.0f)) {
if ((int(lv) < 210)) {
[loop] while (true) {
{
if (true) {
} else {
break;
}
}
}
}
GLF_live5r = 0;
[loop] while (true) {
if (true) {
} else {
break;
}
if ((GLF_live5_looplimiter6 >= 6)) {
break;
}
GLF_live5_looplimiter6 = (GLF_live5_looplimiter6 + 1);
}
}
}
}
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
return;
}
struct main_out {
float4 x_GLF_color_1;
};
struct tint_symbol_1 {
float4 gl_FragCoord_param : SV_Position;
};
struct tint_symbol_2 {
float4 x_GLF_color_1 : SV_Target0;
};
main_out main_inner(float4 gl_FragCoord_param) {
gl_FragCoord = gl_FragCoord_param;
main_1();
const main_out tint_symbol_4 = {x_GLF_color};
return tint_symbol_4;
}
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const main_out inner_result = main_inner(tint_symbol.gl_FragCoord_param);
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
return wrapper_result;
}
C:\src\tint\test\Shader@0x000001DCBE0206C0(27,18-29): warning X3557: loop doesn't seem to do anything, consider removing [loop]
C:\src\tint\test\Shader@0x000001DCBE0206C0(27,18-29): warning X3551: infinite loop detected - loop writes no values
C:\src\tint\test\Shader@0x000001DCBE0206C0(27,25-28): error X3696: infinite loop detected - loop never exits

View File

@ -0,0 +1,82 @@
SKIP: FAILED
cbuffer cbuffer_x_7 : register(b0, space0) {
uint4 x_7[1];
};
static float gv = 0.0f;
static float4 gl_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
float lv = 0.0f;
float x_43 = 0.0f;
int GLF_live5r = 0;
int GLF_live5_looplimiter6 = 0;
const float x_45 = asfloat(x_7[0].y);
if ((1.0f > x_45)) {
x_43 = abs(gv);
} else {
x_43 = 260.0f;
}
lv = x_43;
if ((int(lv) < 250)) {
if ((int(lv) < 180)) {
const float x_65 = clamp(lv, 1.0f, 1.0f);
} else {
const float x_67 = gl_FragCoord.y;
if ((x_67 < 0.0f)) {
if ((int(lv) < 210)) {
[loop] while (true) {
{
if (true) {
} else {
break;
}
}
}
}
GLF_live5r = 0;
[loop] while (true) {
if (true) {
} else {
break;
}
if ((GLF_live5_looplimiter6 >= 6)) {
break;
}
GLF_live5_looplimiter6 = (GLF_live5_looplimiter6 + 1);
}
}
}
}
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
return;
}
struct main_out {
float4 x_GLF_color_1;
};
struct tint_symbol_1 {
float4 gl_FragCoord_param : SV_Position;
};
struct tint_symbol_2 {
float4 x_GLF_color_1 : SV_Target0;
};
main_out main_inner(float4 gl_FragCoord_param) {
gl_FragCoord = gl_FragCoord_param;
main_1();
const main_out tint_symbol_4 = {x_GLF_color};
return tint_symbol_4;
}
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const main_out inner_result = main_inner(tint_symbol.gl_FragCoord_param);
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
return wrapper_result;
}
C:\src\tint\test\Shader@0x0000023F9486F180(27,18-29): warning X3557: loop doesn't seem to do anything, consider removing [loop]
C:\src\tint\test\Shader@0x0000023F9486F180(27,18-29): warning X3551: infinite loop detected - loop writes no values
C:\src\tint\test\Shader@0x0000023F9486F180(27,25-28): error X3696: infinite loop detected - loop never exits

View File

@ -0,0 +1,778 @@
SKIP: FAILED
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
struct BST {
int data;
int leftIndex;
int rightIndex;
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
BST tree[10] = (BST[10])0;
int x_360 = 0;
int x_62_phi = 0;
bool x_90_phi = false;
int x_357_phi = 0;
int x_360_phi = 0;
int x_362_phi = 0;
const BST tint_symbol_1 = {9, -1, -1};
tree[0] = tint_symbol_1;
0u;
do {
x_62_phi = 0;
[loop] while (true) {
int x_88 = 0;
int x_80 = 0;
int x_63 = 0;
int x_63_phi = 0;
const int x_62 = x_62_phi;
x_90_phi = false;
if ((x_62 <= 1)) {
} else {
break;
}
const int x_69 = tree[x_62].data;
if ((5 <= x_69)) {
const int x_82_save = x_62;
const int x_83 = tree[x_82_save].leftIndex;
if ((x_83 == -1)) {
tree[x_82_save].leftIndex = 1;
const BST tint_symbol_2 = {5, -1, -1};
tree[1] = tint_symbol_2;
x_90_phi = true;
break;
} else {
x_88 = tree[x_82_save].leftIndex;
x_63_phi = x_88;
{
x_63 = x_63_phi;
x_62_phi = x_63;
}
continue;
}
return;
} else {
const int x_74_save = x_62;
const int x_75 = tree[x_74_save].rightIndex;
if ((x_75 == -1)) {
tree[x_74_save].rightIndex = 1;
const BST tint_symbol_3 = {5, -1, -1};
tree[1] = tint_symbol_3;
x_90_phi = true;
break;
} else {
x_80 = tree[x_74_save].rightIndex;
x_63_phi = x_80;
{
x_63 = x_63_phi;
x_62_phi = x_63;
}
continue;
}
return;
}
return;
{
x_63 = x_63_phi;
x_62_phi = x_63;
}
}
if (x_90_phi) {
break;
}
} while (false);
int x_95_phi = 0;
bool x_123_phi = false;
0u;
do {
x_95_phi = 0;
[loop] while (true) {
int x_121 = 0;
int x_113 = 0;
int x_96 = 0;
int x_96_phi = 0;
const int x_95 = x_95_phi;
x_123_phi = false;
if ((x_95 <= 2)) {
} else {
break;
}
const int x_102 = tree[x_95].data;
if ((12 <= x_102)) {
const int x_115_save = x_95;
const int x_116 = tree[x_115_save].leftIndex;
if ((x_116 == -1)) {
tree[x_115_save].leftIndex = 2;
const BST tint_symbol_4 = {12, -1, -1};
tree[2] = tint_symbol_4;
x_123_phi = true;
break;
} else {
x_121 = tree[x_115_save].leftIndex;
x_96_phi = x_121;
{
x_96 = x_96_phi;
x_95_phi = x_96;
}
continue;
}
return;
} else {
const int x_107_save = x_95;
const int x_108 = tree[x_107_save].rightIndex;
if ((x_108 == -1)) {
tree[x_107_save].rightIndex = 2;
const BST tint_symbol_5 = {12, -1, -1};
tree[2] = tint_symbol_5;
x_123_phi = true;
break;
} else {
x_113 = tree[x_107_save].rightIndex;
x_96_phi = x_113;
{
x_96 = x_96_phi;
x_95_phi = x_96;
}
continue;
}
return;
}
return;
{
x_96 = x_96_phi;
x_95_phi = x_96;
}
}
if (x_123_phi) {
break;
}
} while (false);
int x_128_phi = 0;
bool x_156_phi = false;
0u;
do {
x_128_phi = 0;
[loop] while (true) {
int x_154 = 0;
int x_146 = 0;
int x_129 = 0;
int x_129_phi = 0;
const int x_128 = x_128_phi;
x_156_phi = false;
if ((x_128 <= 3)) {
} else {
break;
}
const int x_135 = tree[x_128].data;
if ((15 <= x_135)) {
const int x_148_save = x_128;
const int x_149 = tree[x_148_save].leftIndex;
if ((x_149 == -1)) {
tree[x_148_save].leftIndex = 3;
const BST tint_symbol_6 = {15, -1, -1};
tree[3] = tint_symbol_6;
x_156_phi = true;
break;
} else {
x_154 = tree[x_148_save].leftIndex;
x_129_phi = x_154;
{
x_129 = x_129_phi;
x_128_phi = x_129;
}
continue;
}
return;
} else {
const int x_140_save = x_128;
const int x_141 = tree[x_140_save].rightIndex;
if ((x_141 == -1)) {
tree[x_140_save].rightIndex = 3;
const BST tint_symbol_7 = {15, -1, -1};
tree[3] = tint_symbol_7;
x_156_phi = true;
break;
} else {
x_146 = tree[x_140_save].rightIndex;
x_129_phi = x_146;
{
x_129 = x_129_phi;
x_128_phi = x_129;
}
continue;
}
return;
}
return;
{
x_129 = x_129_phi;
x_128_phi = x_129;
}
}
if (x_156_phi) {
break;
}
} while (false);
int x_161_phi = 0;
bool x_189_phi = false;
0u;
do {
x_161_phi = 0;
[loop] while (true) {
int x_187 = 0;
int x_179 = 0;
int x_162 = 0;
int x_162_phi = 0;
const int x_161 = x_161_phi;
x_189_phi = false;
if ((x_161 <= 4)) {
} else {
break;
}
const int x_168 = tree[x_161].data;
if ((7 <= x_168)) {
const int x_181_save = x_161;
const int x_182 = tree[x_181_save].leftIndex;
if ((x_182 == -1)) {
tree[x_181_save].leftIndex = 4;
const BST tint_symbol_8 = {7, -1, -1};
tree[4] = tint_symbol_8;
x_189_phi = true;
break;
} else {
x_187 = tree[x_181_save].leftIndex;
x_162_phi = x_187;
{
x_162 = x_162_phi;
x_161_phi = x_162;
}
continue;
}
return;
} else {
const int x_173_save = x_161;
const int x_174 = tree[x_173_save].rightIndex;
if ((x_174 == -1)) {
tree[x_173_save].rightIndex = 4;
const BST tint_symbol_9 = {7, -1, -1};
tree[4] = tint_symbol_9;
x_189_phi = true;
break;
} else {
x_179 = tree[x_173_save].rightIndex;
x_162_phi = x_179;
{
x_162 = x_162_phi;
x_161_phi = x_162;
}
continue;
}
return;
}
return;
{
x_162 = x_162_phi;
x_161_phi = x_162;
}
}
if (x_189_phi) {
break;
}
} while (false);
int x_194_phi = 0;
bool x_222_phi = false;
0u;
do {
x_194_phi = 0;
[loop] while (true) {
int x_220 = 0;
int x_212 = 0;
int x_195 = 0;
int x_195_phi = 0;
const int x_194 = x_194_phi;
x_222_phi = false;
if ((x_194 <= 5)) {
} else {
break;
}
const int x_201 = tree[x_194].data;
if ((8 <= x_201)) {
const int x_214_save = x_194;
const int x_215 = tree[x_214_save].leftIndex;
if ((x_215 == -1)) {
tree[x_214_save].leftIndex = 5;
const BST tint_symbol_10 = {8, -1, -1};
tree[5] = tint_symbol_10;
x_222_phi = true;
break;
} else {
x_220 = tree[x_214_save].leftIndex;
x_195_phi = x_220;
{
x_195 = x_195_phi;
x_194_phi = x_195;
}
continue;
}
return;
} else {
const int x_206_save = x_194;
const int x_207 = tree[x_206_save].rightIndex;
if ((x_207 == -1)) {
tree[x_206_save].rightIndex = 5;
const BST tint_symbol_11 = {8, -1, -1};
tree[5] = tint_symbol_11;
x_222_phi = true;
break;
} else {
x_212 = tree[x_206_save].rightIndex;
x_195_phi = x_212;
{
x_195 = x_195_phi;
x_194_phi = x_195;
}
continue;
}
return;
}
return;
{
x_195 = x_195_phi;
x_194_phi = x_195;
}
}
if (x_222_phi) {
break;
}
} while (false);
int x_227_phi = 0;
bool x_255_phi = false;
0u;
do {
x_227_phi = 0;
[loop] while (true) {
int x_253 = 0;
int x_245 = 0;
int x_228 = 0;
int x_228_phi = 0;
const int x_227 = x_227_phi;
x_255_phi = false;
if ((x_227 <= 6)) {
} else {
break;
}
const int x_234 = tree[x_227].data;
if ((2 <= x_234)) {
const int x_247_save = x_227;
const int x_248 = tree[x_247_save].leftIndex;
if ((x_248 == -1)) {
tree[x_247_save].leftIndex = 6;
const BST tint_symbol_12 = {2, -1, -1};
tree[6] = tint_symbol_12;
x_255_phi = true;
break;
} else {
x_253 = tree[x_247_save].leftIndex;
x_228_phi = x_253;
{
x_228 = x_228_phi;
x_227_phi = x_228;
}
continue;
}
return;
} else {
const int x_239_save = x_227;
const int x_240 = tree[x_239_save].rightIndex;
if ((x_240 == -1)) {
tree[x_239_save].rightIndex = 6;
const BST tint_symbol_13 = {2, -1, -1};
tree[6] = tint_symbol_13;
x_255_phi = true;
break;
} else {
x_245 = tree[x_239_save].rightIndex;
x_228_phi = x_245;
{
x_228 = x_228_phi;
x_227_phi = x_228;
}
continue;
}
return;
}
return;
{
x_228 = x_228_phi;
x_227_phi = x_228;
}
}
if (x_255_phi) {
break;
}
} while (false);
int x_260_phi = 0;
bool x_288_phi = false;
0u;
do {
x_260_phi = 0;
[loop] while (true) {
int x_286 = 0;
int x_278 = 0;
int x_261 = 0;
int x_261_phi = 0;
const int x_260 = x_260_phi;
x_288_phi = false;
if ((x_260 <= 7)) {
} else {
break;
}
const int x_267 = tree[x_260].data;
if ((6 <= x_267)) {
const int x_280_save = x_260;
const int x_281 = tree[x_280_save].leftIndex;
if ((x_281 == -1)) {
tree[x_280_save].leftIndex = 7;
const BST tint_symbol_14 = {6, -1, -1};
tree[7] = tint_symbol_14;
x_288_phi = true;
break;
} else {
x_286 = tree[x_280_save].leftIndex;
x_261_phi = x_286;
{
x_261 = x_261_phi;
x_260_phi = x_261;
}
continue;
}
return;
} else {
const int x_272_save = x_260;
const int x_273 = tree[x_272_save].rightIndex;
if ((x_273 == -1)) {
tree[x_272_save].rightIndex = 7;
const BST tint_symbol_15 = {6, -1, -1};
tree[7] = tint_symbol_15;
x_288_phi = true;
break;
} else {
x_278 = tree[x_272_save].rightIndex;
x_261_phi = x_278;
{
x_261 = x_261_phi;
x_260_phi = x_261;
}
continue;
}
return;
}
return;
{
x_261 = x_261_phi;
x_260_phi = x_261;
}
}
if (x_288_phi) {
break;
}
} while (false);
int x_293_phi = 0;
bool x_321_phi = false;
0u;
do {
x_293_phi = 0;
[loop] while (true) {
int x_319 = 0;
int x_311 = 0;
int x_294 = 0;
int x_294_phi = 0;
const int x_293 = x_293_phi;
x_321_phi = false;
if ((x_293 <= 8)) {
} else {
break;
}
const int x_300 = tree[x_293].data;
if ((17 <= x_300)) {
const int x_313_save = x_293;
const int x_314 = tree[x_313_save].leftIndex;
if ((x_314 == -1)) {
tree[x_313_save].leftIndex = 8;
const BST tint_symbol_16 = {17, -1, -1};
tree[8] = tint_symbol_16;
x_321_phi = true;
break;
} else {
x_319 = tree[x_313_save].leftIndex;
x_294_phi = x_319;
{
x_294 = x_294_phi;
x_293_phi = x_294;
}
continue;
}
return;
} else {
const int x_305_save = x_293;
const int x_306 = tree[x_305_save].rightIndex;
if ((x_306 == -1)) {
tree[x_305_save].rightIndex = 8;
const BST tint_symbol_17 = {17, -1, -1};
tree[8] = tint_symbol_17;
x_321_phi = true;
break;
} else {
x_311 = tree[x_305_save].rightIndex;
x_294_phi = x_311;
{
x_294 = x_294_phi;
x_293_phi = x_294;
}
continue;
}
return;
}
return;
{
x_294 = x_294_phi;
x_293_phi = x_294;
}
}
if (x_321_phi) {
break;
}
} while (false);
int x_326_phi = 0;
bool x_354_phi = false;
0u;
do {
x_326_phi = 0;
[loop] while (true) {
int x_352 = 0;
int x_344 = 0;
int x_327 = 0;
int x_327_phi = 0;
const int x_326 = x_326_phi;
x_354_phi = false;
if ((x_326 <= 9)) {
} else {
break;
}
const int x_333 = tree[x_326].data;
if ((13 <= x_333)) {
const int x_346_save = x_326;
const int x_347 = tree[x_346_save].leftIndex;
if ((x_347 == -1)) {
tree[x_346_save].leftIndex = 9;
const BST tint_symbol_18 = {13, -1, -1};
tree[9] = tint_symbol_18;
x_354_phi = true;
break;
} else {
x_352 = tree[x_346_save].leftIndex;
x_327_phi = x_352;
{
x_327 = x_327_phi;
x_326_phi = x_327;
}
continue;
}
return;
} else {
const int x_338_save = x_326;
const int x_339 = tree[x_338_save].rightIndex;
if ((x_339 == -1)) {
tree[x_338_save].rightIndex = 9;
const BST tint_symbol_19 = {13, -1, -1};
tree[9] = tint_symbol_19;
x_354_phi = true;
break;
} else {
x_344 = tree[x_338_save].rightIndex;
x_327_phi = x_344;
{
x_327 = x_327_phi;
x_326_phi = x_327;
}
continue;
}
return;
}
return;
{
x_327 = x_327_phi;
x_326_phi = x_327;
}
}
if (x_354_phi) {
break;
}
} while (false);
x_357_phi = 0;
x_360_phi = 0;
x_362_phi = 0;
[loop] while (true) {
int x_392 = 0;
int x_402 = 0;
int x_407 = 0;
int x_363 = 0;
int x_358_phi = 0;
int x_361_phi = 0;
const int x_357 = x_357_phi;
x_360 = x_360_phi;
const int x_362 = x_362_phi;
const int x_365 = (6 - 15);
if ((x_362 < 20)) {
} else {
break;
}
int x_374_phi = 0;
int x_392_phi = 0;
bool x_393_phi = false;
0u;
do {
x_374_phi = 0;
[loop] while (true) {
const int x_374 = x_374_phi;
x_392_phi = x_357;
x_393_phi = false;
if ((x_374 != -1)) {
} else {
break;
}
const BST x_381 = tree[x_374];
const int x_382 = x_381.data;
const int x_383 = x_381.leftIndex;
const int x_385 = x_381.rightIndex;
if ((x_382 == x_362)) {
x_392_phi = x_362;
x_393_phi = true;
break;
}
const float x_389 = x_GLF_color[((3u <= 3u) ? 3u : 3u)];
{
x_374_phi = (!((x_362 <= x_382)) ? x_385 : x_383);
}
}
x_392 = x_392_phi;
const bool x_393 = x_393_phi;
x_358_phi = x_392;
if (x_393) {
break;
}
x_358_phi = -1;
} while (false);
int x_358 = 0;
int x_401 = 0;
int x_406 = 0;
int x_402_phi = 0;
int x_407_phi = 0;
x_358 = x_358_phi;
switch(x_362) {
case 2:
case 5:
case 6:
case 7:
case 8:
case 9:
case 12:
case 13:
case 15:
case 17: {
x_402_phi = x_360;
if ((x_358 == asint(x_362))) {
x_401 = asint((x_360 + asint(1)));
x_402_phi = x_401;
}
x_402 = x_402_phi;
x_361_phi = x_402;
break;
}
default: {
x_407_phi = x_360;
if ((x_358 == asint(-1))) {
x_406 = asint((x_360 + asint(1)));
x_407_phi = x_406;
}
x_407 = x_407_phi;
x_361_phi = x_407;
break;
}
}
const int x_361 = x_361_phi;
{
x_363 = (x_362 + 1);
x_357_phi = x_358;
x_360_phi = x_361;
x_362_phi = x_363;
}
}
if ((x_360 == asint(20))) {
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
} else {
x_GLF_color = float4(0.0f, 0.0f, 1.0f, 1.0f);
}
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_20 = {x_GLF_color};
return tint_symbol_20;
}
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;
}
C:\src\tint\test\Shader@0x000001F9FB4F5860(82,5-17): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
C:\src\tint\test\Shader@0x000001F9FB4F5860(22,12-23): warning X3557: loop only executes for 0 iteration(s), consider removing [loop]
C:\src\tint\test\Shader@0x000001F9FB4F5860(148,5-17): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
C:\src\tint\test\Shader@0x000001F9FB4F5860(214,5-17): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
C:\src\tint\test\Shader@0x000001F9FB4F5860(280,5-17): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
C:\src\tint\test\Shader@0x000001F9FB4F5860(346,5-17): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
C:\src\tint\test\Shader@0x000001F9FB4F5860(412,5-17): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
C:\src\tint\test\Shader@0x000001F9FB4F5860(478,5-17): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
C:\src\tint\test\Shader@0x000001F9FB4F5860(544,5-17): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
C:\src\tint\test\Shader@0x000001F9FB4F5860(610,5-17): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
C:\src\tint\test\Shader@0x000001F9FB4F5860(664,7-19): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
internal error: compilation aborted unexpectedly

View File

@ -0,0 +1,859 @@
SKIP: FAILED
vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl:46:11 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl:60:11 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl:62:9 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl:105:11 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl:119:11 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl:121:9 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl:164:11 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl:178:11 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl:180:9 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl:223:11 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl:237:11 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl:239:9 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl:282:11 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl:296:11 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl:298:9 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl:341:11 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl:355:11 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl:357:9 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl:400:11 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl:414:11 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl:416:9 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl:459:11 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl:473:11 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl:475:9 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl:518:11 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl:532:11 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/spv-load-from-frag-color/1.wgsl:534:9 warning: code is unreachable
return;
^^^^^^
struct BST {
int data;
int leftIndex;
int rightIndex;
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
BST tree[10] = (BST[10])0;
int x_360 = 0;
int x_62_phi = 0;
bool x_90_phi = false;
int x_357_phi = 0;
int x_360_phi = 0;
int x_362_phi = 0;
const BST tint_symbol_1 = {9, -1, -1};
tree[0] = tint_symbol_1;
0u;
do {
x_62_phi = 0;
[loop] while (true) {
int x_88 = 0;
int x_80 = 0;
int x_63 = 0;
int x_63_phi = 0;
const int x_62 = x_62_phi;
x_90_phi = false;
if ((x_62 <= 1)) {
} else {
break;
}
const int x_69 = tree[x_62].data;
if ((5 <= x_69)) {
const int x_82_save = x_62;
const int x_83 = tree[x_82_save].leftIndex;
if ((x_83 == -1)) {
tree[x_82_save].leftIndex = 1;
const BST tint_symbol_2 = {5, -1, -1};
tree[1] = tint_symbol_2;
x_90_phi = true;
break;
} else {
x_88 = tree[x_82_save].leftIndex;
x_63_phi = x_88;
{
x_63 = x_63_phi;
x_62_phi = x_63;
}
continue;
}
return;
} else {
const int x_74_save = x_62;
const int x_75 = tree[x_74_save].rightIndex;
if ((x_75 == -1)) {
tree[x_74_save].rightIndex = 1;
const BST tint_symbol_3 = {5, -1, -1};
tree[1] = tint_symbol_3;
x_90_phi = true;
break;
} else {
x_80 = tree[x_74_save].rightIndex;
x_63_phi = x_80;
{
x_63 = x_63_phi;
x_62_phi = x_63;
}
continue;
}
return;
}
return;
{
x_63 = x_63_phi;
x_62_phi = x_63;
}
}
if (x_90_phi) {
break;
}
} while (false);
int x_95_phi = 0;
bool x_123_phi = false;
0u;
do {
x_95_phi = 0;
[loop] while (true) {
int x_121 = 0;
int x_113 = 0;
int x_96 = 0;
int x_96_phi = 0;
const int x_95 = x_95_phi;
x_123_phi = false;
if ((x_95 <= 2)) {
} else {
break;
}
const int x_102 = tree[x_95].data;
if ((12 <= x_102)) {
const int x_115_save = x_95;
const int x_116 = tree[x_115_save].leftIndex;
if ((x_116 == -1)) {
tree[x_115_save].leftIndex = 2;
const BST tint_symbol_4 = {12, -1, -1};
tree[2] = tint_symbol_4;
x_123_phi = true;
break;
} else {
x_121 = tree[x_115_save].leftIndex;
x_96_phi = x_121;
{
x_96 = x_96_phi;
x_95_phi = x_96;
}
continue;
}
return;
} else {
const int x_107_save = x_95;
const int x_108 = tree[x_107_save].rightIndex;
if ((x_108 == -1)) {
tree[x_107_save].rightIndex = 2;
const BST tint_symbol_5 = {12, -1, -1};
tree[2] = tint_symbol_5;
x_123_phi = true;
break;
} else {
x_113 = tree[x_107_save].rightIndex;
x_96_phi = x_113;
{
x_96 = x_96_phi;
x_95_phi = x_96;
}
continue;
}
return;
}
return;
{
x_96 = x_96_phi;
x_95_phi = x_96;
}
}
if (x_123_phi) {
break;
}
} while (false);
int x_128_phi = 0;
bool x_156_phi = false;
0u;
do {
x_128_phi = 0;
[loop] while (true) {
int x_154 = 0;
int x_146 = 0;
int x_129 = 0;
int x_129_phi = 0;
const int x_128 = x_128_phi;
x_156_phi = false;
if ((x_128 <= 3)) {
} else {
break;
}
const int x_135 = tree[x_128].data;
if ((15 <= x_135)) {
const int x_148_save = x_128;
const int x_149 = tree[x_148_save].leftIndex;
if ((x_149 == -1)) {
tree[x_148_save].leftIndex = 3;
const BST tint_symbol_6 = {15, -1, -1};
tree[3] = tint_symbol_6;
x_156_phi = true;
break;
} else {
x_154 = tree[x_148_save].leftIndex;
x_129_phi = x_154;
{
x_129 = x_129_phi;
x_128_phi = x_129;
}
continue;
}
return;
} else {
const int x_140_save = x_128;
const int x_141 = tree[x_140_save].rightIndex;
if ((x_141 == -1)) {
tree[x_140_save].rightIndex = 3;
const BST tint_symbol_7 = {15, -1, -1};
tree[3] = tint_symbol_7;
x_156_phi = true;
break;
} else {
x_146 = tree[x_140_save].rightIndex;
x_129_phi = x_146;
{
x_129 = x_129_phi;
x_128_phi = x_129;
}
continue;
}
return;
}
return;
{
x_129 = x_129_phi;
x_128_phi = x_129;
}
}
if (x_156_phi) {
break;
}
} while (false);
int x_161_phi = 0;
bool x_189_phi = false;
0u;
do {
x_161_phi = 0;
[loop] while (true) {
int x_187 = 0;
int x_179 = 0;
int x_162 = 0;
int x_162_phi = 0;
const int x_161 = x_161_phi;
x_189_phi = false;
if ((x_161 <= 4)) {
} else {
break;
}
const int x_168 = tree[x_161].data;
if ((7 <= x_168)) {
const int x_181_save = x_161;
const int x_182 = tree[x_181_save].leftIndex;
if ((x_182 == -1)) {
tree[x_181_save].leftIndex = 4;
const BST tint_symbol_8 = {7, -1, -1};
tree[4] = tint_symbol_8;
x_189_phi = true;
break;
} else {
x_187 = tree[x_181_save].leftIndex;
x_162_phi = x_187;
{
x_162 = x_162_phi;
x_161_phi = x_162;
}
continue;
}
return;
} else {
const int x_173_save = x_161;
const int x_174 = tree[x_173_save].rightIndex;
if ((x_174 == -1)) {
tree[x_173_save].rightIndex = 4;
const BST tint_symbol_9 = {7, -1, -1};
tree[4] = tint_symbol_9;
x_189_phi = true;
break;
} else {
x_179 = tree[x_173_save].rightIndex;
x_162_phi = x_179;
{
x_162 = x_162_phi;
x_161_phi = x_162;
}
continue;
}
return;
}
return;
{
x_162 = x_162_phi;
x_161_phi = x_162;
}
}
if (x_189_phi) {
break;
}
} while (false);
int x_194_phi = 0;
bool x_222_phi = false;
0u;
do {
x_194_phi = 0;
[loop] while (true) {
int x_220 = 0;
int x_212 = 0;
int x_195 = 0;
int x_195_phi = 0;
const int x_194 = x_194_phi;
x_222_phi = false;
if ((x_194 <= 5)) {
} else {
break;
}
const int x_201 = tree[x_194].data;
if ((8 <= x_201)) {
const int x_214_save = x_194;
const int x_215 = tree[x_214_save].leftIndex;
if ((x_215 == -1)) {
tree[x_214_save].leftIndex = 5;
const BST tint_symbol_10 = {8, -1, -1};
tree[5] = tint_symbol_10;
x_222_phi = true;
break;
} else {
x_220 = tree[x_214_save].leftIndex;
x_195_phi = x_220;
{
x_195 = x_195_phi;
x_194_phi = x_195;
}
continue;
}
return;
} else {
const int x_206_save = x_194;
const int x_207 = tree[x_206_save].rightIndex;
if ((x_207 == -1)) {
tree[x_206_save].rightIndex = 5;
const BST tint_symbol_11 = {8, -1, -1};
tree[5] = tint_symbol_11;
x_222_phi = true;
break;
} else {
x_212 = tree[x_206_save].rightIndex;
x_195_phi = x_212;
{
x_195 = x_195_phi;
x_194_phi = x_195;
}
continue;
}
return;
}
return;
{
x_195 = x_195_phi;
x_194_phi = x_195;
}
}
if (x_222_phi) {
break;
}
} while (false);
int x_227_phi = 0;
bool x_255_phi = false;
0u;
do {
x_227_phi = 0;
[loop] while (true) {
int x_253 = 0;
int x_245 = 0;
int x_228 = 0;
int x_228_phi = 0;
const int x_227 = x_227_phi;
x_255_phi = false;
if ((x_227 <= 6)) {
} else {
break;
}
const int x_234 = tree[x_227].data;
if ((2 <= x_234)) {
const int x_247_save = x_227;
const int x_248 = tree[x_247_save].leftIndex;
if ((x_248 == -1)) {
tree[x_247_save].leftIndex = 6;
const BST tint_symbol_12 = {2, -1, -1};
tree[6] = tint_symbol_12;
x_255_phi = true;
break;
} else {
x_253 = tree[x_247_save].leftIndex;
x_228_phi = x_253;
{
x_228 = x_228_phi;
x_227_phi = x_228;
}
continue;
}
return;
} else {
const int x_239_save = x_227;
const int x_240 = tree[x_239_save].rightIndex;
if ((x_240 == -1)) {
tree[x_239_save].rightIndex = 6;
const BST tint_symbol_13 = {2, -1, -1};
tree[6] = tint_symbol_13;
x_255_phi = true;
break;
} else {
x_245 = tree[x_239_save].rightIndex;
x_228_phi = x_245;
{
x_228 = x_228_phi;
x_227_phi = x_228;
}
continue;
}
return;
}
return;
{
x_228 = x_228_phi;
x_227_phi = x_228;
}
}
if (x_255_phi) {
break;
}
} while (false);
int x_260_phi = 0;
bool x_288_phi = false;
0u;
do {
x_260_phi = 0;
[loop] while (true) {
int x_286 = 0;
int x_278 = 0;
int x_261 = 0;
int x_261_phi = 0;
const int x_260 = x_260_phi;
x_288_phi = false;
if ((x_260 <= 7)) {
} else {
break;
}
const int x_267 = tree[x_260].data;
if ((6 <= x_267)) {
const int x_280_save = x_260;
const int x_281 = tree[x_280_save].leftIndex;
if ((x_281 == -1)) {
tree[x_280_save].leftIndex = 7;
const BST tint_symbol_14 = {6, -1, -1};
tree[7] = tint_symbol_14;
x_288_phi = true;
break;
} else {
x_286 = tree[x_280_save].leftIndex;
x_261_phi = x_286;
{
x_261 = x_261_phi;
x_260_phi = x_261;
}
continue;
}
return;
} else {
const int x_272_save = x_260;
const int x_273 = tree[x_272_save].rightIndex;
if ((x_273 == -1)) {
tree[x_272_save].rightIndex = 7;
const BST tint_symbol_15 = {6, -1, -1};
tree[7] = tint_symbol_15;
x_288_phi = true;
break;
} else {
x_278 = tree[x_272_save].rightIndex;
x_261_phi = x_278;
{
x_261 = x_261_phi;
x_260_phi = x_261;
}
continue;
}
return;
}
return;
{
x_261 = x_261_phi;
x_260_phi = x_261;
}
}
if (x_288_phi) {
break;
}
} while (false);
int x_293_phi = 0;
bool x_321_phi = false;
0u;
do {
x_293_phi = 0;
[loop] while (true) {
int x_319 = 0;
int x_311 = 0;
int x_294 = 0;
int x_294_phi = 0;
const int x_293 = x_293_phi;
x_321_phi = false;
if ((x_293 <= 8)) {
} else {
break;
}
const int x_300 = tree[x_293].data;
if ((17 <= x_300)) {
const int x_313_save = x_293;
const int x_314 = tree[x_313_save].leftIndex;
if ((x_314 == -1)) {
tree[x_313_save].leftIndex = 8;
const BST tint_symbol_16 = {17, -1, -1};
tree[8] = tint_symbol_16;
x_321_phi = true;
break;
} else {
x_319 = tree[x_313_save].leftIndex;
x_294_phi = x_319;
{
x_294 = x_294_phi;
x_293_phi = x_294;
}
continue;
}
return;
} else {
const int x_305_save = x_293;
const int x_306 = tree[x_305_save].rightIndex;
if ((x_306 == -1)) {
tree[x_305_save].rightIndex = 8;
const BST tint_symbol_17 = {17, -1, -1};
tree[8] = tint_symbol_17;
x_321_phi = true;
break;
} else {
x_311 = tree[x_305_save].rightIndex;
x_294_phi = x_311;
{
x_294 = x_294_phi;
x_293_phi = x_294;
}
continue;
}
return;
}
return;
{
x_294 = x_294_phi;
x_293_phi = x_294;
}
}
if (x_321_phi) {
break;
}
} while (false);
int x_326_phi = 0;
bool x_354_phi = false;
0u;
do {
x_326_phi = 0;
[loop] while (true) {
int x_352 = 0;
int x_344 = 0;
int x_327 = 0;
int x_327_phi = 0;
const int x_326 = x_326_phi;
x_354_phi = false;
if ((x_326 <= 9)) {
} else {
break;
}
const int x_333 = tree[x_326].data;
if ((13 <= x_333)) {
const int x_346_save = x_326;
const int x_347 = tree[x_346_save].leftIndex;
if ((x_347 == -1)) {
tree[x_346_save].leftIndex = 9;
const BST tint_symbol_18 = {13, -1, -1};
tree[9] = tint_symbol_18;
x_354_phi = true;
break;
} else {
x_352 = tree[x_346_save].leftIndex;
x_327_phi = x_352;
{
x_327 = x_327_phi;
x_326_phi = x_327;
}
continue;
}
return;
} else {
const int x_338_save = x_326;
const int x_339 = tree[x_338_save].rightIndex;
if ((x_339 == -1)) {
tree[x_338_save].rightIndex = 9;
const BST tint_symbol_19 = {13, -1, -1};
tree[9] = tint_symbol_19;
x_354_phi = true;
break;
} else {
x_344 = tree[x_338_save].rightIndex;
x_327_phi = x_344;
{
x_327 = x_327_phi;
x_326_phi = x_327;
}
continue;
}
return;
}
return;
{
x_327 = x_327_phi;
x_326_phi = x_327;
}
}
if (x_354_phi) {
break;
}
} while (false);
x_357_phi = 0;
x_360_phi = 0;
x_362_phi = 0;
[loop] while (true) {
int x_392 = 0;
int x_402 = 0;
int x_407 = 0;
int x_363 = 0;
int x_358_phi = 0;
int x_361_phi = 0;
const int x_357 = x_357_phi;
x_360 = x_360_phi;
const int x_362 = x_362_phi;
const int x_365 = (6 - 15);
if ((x_362 < 20)) {
} else {
break;
}
int x_374_phi = 0;
int x_392_phi = 0;
bool x_393_phi = false;
0u;
do {
x_374_phi = 0;
[loop] while (true) {
const int x_374 = x_374_phi;
x_392_phi = x_357;
x_393_phi = false;
if ((x_374 != -1)) {
} else {
break;
}
const BST x_381 = tree[x_374];
const int x_382 = x_381.data;
const int x_383 = x_381.leftIndex;
const int x_385 = x_381.rightIndex;
if ((x_382 == x_362)) {
x_392_phi = x_362;
x_393_phi = true;
break;
}
const float x_389 = x_GLF_color[((3u <= 3u) ? 3u : 3u)];
{
x_374_phi = (!((x_362 <= x_382)) ? x_385 : x_383);
}
}
x_392 = x_392_phi;
const bool x_393 = x_393_phi;
x_358_phi = x_392;
if (x_393) {
break;
}
x_358_phi = -1;
} while (false);
int x_358 = 0;
int x_401 = 0;
int x_406 = 0;
int x_402_phi = 0;
int x_407_phi = 0;
x_358 = x_358_phi;
switch(x_362) {
case 2:
case 5:
case 6:
case 7:
case 8:
case 9:
case 12:
case 13:
case 15:
case 17: {
x_402_phi = x_360;
if ((x_358 == asint(x_362))) {
x_401 = asint((x_360 + asint(1)));
x_402_phi = x_401;
}
x_402 = x_402_phi;
x_361_phi = x_402;
break;
}
default: {
x_407_phi = x_360;
if ((x_358 == asint(-1))) {
x_406 = asint((x_360 + asint(1)));
x_407_phi = x_406;
}
x_407 = x_407_phi;
x_361_phi = x_407;
break;
}
}
const int x_361 = x_361_phi;
{
x_363 = (x_362 + 1);
x_357_phi = x_358;
x_360_phi = x_361;
x_362_phi = x_363;
}
}
if ((x_360 == asint(20))) {
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
} else {
x_GLF_color = float4(0.0f, 0.0f, 1.0f, 1.0f);
}
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_20 = {x_GLF_color};
return tint_symbol_20;
}
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;
}
C:\src\tint\test\Shader@0x0000018520DAA240(82,5-17): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
C:\src\tint\test\Shader@0x0000018520DAA240(22,12-23): warning X3557: loop only executes for 0 iteration(s), consider removing [loop]
C:\src\tint\test\Shader@0x0000018520DAA240(148,5-17): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
C:\src\tint\test\Shader@0x0000018520DAA240(214,5-17): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
C:\src\tint\test\Shader@0x0000018520DAA240(280,5-17): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
C:\src\tint\test\Shader@0x0000018520DAA240(346,5-17): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
C:\src\tint\test\Shader@0x0000018520DAA240(412,5-17): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
C:\src\tint\test\Shader@0x0000018520DAA240(478,5-17): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
C:\src\tint\test\Shader@0x0000018520DAA240(544,5-17): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
C:\src\tint\test\Shader@0x0000018520DAA240(610,5-17): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
C:\src\tint\test\Shader@0x0000018520DAA240(664,7-19): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
internal error: compilation aborted unexpectedly

View File

@ -0,0 +1 @@
SKIP: flaky test that takes ~25s and often times out with FXC.

View File

@ -0,0 +1,3 @@
SKIP: FAILED
test timed out after 30s

View File

@ -0,0 +1,224 @@
SKIP: FAILED
struct QuicksortObject {
int numbers[10];
};
static QuicksortObject obj = (QuicksortObject)0;
static float4 gl_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
cbuffer cbuffer_x_32 : register(b0, space0) {
uint4 x_32[1];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void swap_i1_i1_(inout int i, inout int j) {
int temp = 0;
const int x_225 = i;
const int x_227 = obj.numbers[x_225];
temp = x_227;
const int x_228 = i;
const int x_229 = j;
const int x_231 = obj.numbers[x_229];
obj.numbers[x_228] = x_231;
const int x_233 = j;
obj.numbers[x_233] = temp;
return;
}
int performPartition_i1_i1_(inout int l, inout int h) {
int pivot = 0;
int i_1 = 0;
int j_1 = 0;
int param = 0;
int param_1 = 0;
int param_2 = 0;
int param_3 = 0;
const int x_237 = h;
const int x_239 = obj.numbers[x_237];
pivot = x_239;
const int x_240 = l;
i_1 = (x_240 - 1);
const int x_242 = l;
j_1 = x_242;
[loop] while (true) {
const int x_247 = j_1;
const int x_248 = h;
if ((x_247 <= (x_248 - 1))) {
} else {
break;
}
const int x_254 = obj.numbers[j_1];
if ((x_254 <= pivot)) {
i_1 = (i_1 + 1);
param = i_1;
param_1 = j_1;
swap_i1_i1_(param, param_1);
}
{
j_1 = (j_1 + 1);
}
}
i_1 = (i_1 + 1);
param_2 = i_1;
const int x_269 = h;
param_3 = x_269;
swap_i1_i1_(param_2, param_3);
return i_1;
}
void quicksort_() {
int l_1 = 0;
int h_1 = 0;
int top = 0;
int stack[10] = (int[10])0;
int p = 0;
int param_4 = 0;
int param_5 = 0;
l_1 = 0;
h_1 = 9;
top = -1;
const int x_274 = (top + 1);
top = x_274;
stack[x_274] = l_1;
const int x_278 = (top + 1);
top = x_278;
stack[x_278] = h_1;
[loop] while (true) {
if ((top >= 0)) {
} else {
break;
}
const int x_288 = top;
top = (x_288 - 1);
const int x_291 = stack[x_288];
h_1 = x_291;
const int x_292 = top;
top = (x_292 - 1);
const int x_295 = stack[x_292];
l_1 = x_295;
param_4 = l_1;
param_5 = h_1;
const int x_298 = performPartition_i1_i1_(param_4, param_5);
p = x_298;
if (((p - 1) > l_1)) {
const int x_306 = (top + 1);
top = x_306;
stack[x_306] = l_1;
const int x_310 = (top + 1);
top = x_310;
stack[x_310] = (p - 1);
}
if (((p + 1) < h_1)) {
const int x_321 = (top + 1);
top = x_321;
stack[x_321] = (p + 1);
const int x_326 = (top + 1);
top = x_326;
stack[x_326] = h_1;
}
}
return;
}
void main_1() {
int i_2 = 0;
float2 uv = float2(0.0f, 0.0f);
float3 color = float3(0.0f, 0.0f, 0.0f);
i_2 = 0;
{
[loop] for(; (i_2 < 10); i_2 = (i_2 + 1)) {
obj.numbers[i_2] = (10 - i_2);
const int x_92 = i_2;
const int x_95 = obj.numbers[i_2];
const int x_98 = obj.numbers[i_2];
obj.numbers[x_92] = (x_95 * x_98);
}
}
quicksort_();
const float4 x_104 = gl_FragCoord;
const float2 x_107 = asfloat(x_32[0].xy);
uv = (float2(x_104.x, x_104.y) / x_107);
color = float3(1.0f, 2.0f, 3.0f);
const int x_110 = obj.numbers[0];
const float x_113 = color.x;
color.x = (x_113 + float(x_110));
const float x_117 = uv.x;
if ((x_117 > 0.25f)) {
const int x_122 = obj.numbers[1];
const float x_125 = color.x;
color.x = (x_125 + float(x_122));
}
const float x_129 = uv.x;
if ((x_129 > 0.5f)) {
const int x_134 = obj.numbers[2];
const float x_137 = color.y;
color.y = (x_137 + float(x_134));
}
const float x_141 = uv.x;
if ((x_141 > 0.75f)) {
const int x_146 = obj.numbers[3];
const float x_149 = color.z;
color.z = (x_149 + float(x_146));
}
const int x_153 = obj.numbers[4];
const float x_156 = color.y;
color.y = (x_156 + float(x_153));
const float x_160 = uv.y;
if ((x_160 > 0.25f)) {
const int x_165 = obj.numbers[5];
const float x_168 = color.x;
color.x = (x_168 + float(x_165));
}
const float x_172 = uv.y;
if ((x_172 > 0.5f)) {
const int x_177 = obj.numbers[6];
const float x_180 = color.y;
color.y = (x_180 + float(x_177));
}
const float x_184 = uv.y;
if ((x_184 > 0.75f)) {
const int x_189 = obj.numbers[7];
const float x_192 = color.z;
color.z = (x_192 + float(x_189));
}
const int x_196 = obj.numbers[8];
const float x_199 = color.z;
color.z = (x_199 + float(x_196));
const float x_203 = uv.x;
const float x_205 = uv.y;
if ((abs((x_203 - x_205)) < 0.25f)) {
const int x_212 = obj.numbers[9];
const float x_215 = color.x;
color.x = (x_215 + float(x_212));
}
const float3 x_219 = normalize(color);
x_GLF_color = float4(x_219.x, x_219.y, x_219.z, 1.0f);
return;
}
struct main_out {
float4 x_GLF_color_1;
};
struct tint_symbol_1 {
float4 gl_FragCoord_param : SV_Position;
};
struct tint_symbol_2 {
float4 x_GLF_color_1 : SV_Target0;
};
main_out main_inner(float4 gl_FragCoord_param) {
gl_FragCoord = gl_FragCoord_param;
main_1();
const main_out tint_symbol_4 = {x_GLF_color};
return tint_symbol_4;
}
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const main_out inner_result = main_inner(tint_symbol.gl_FragCoord_param);
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
return wrapper_result;
}
C:\src\tint\test\Shader@0x000001609F0E92A0(128,7-22): warning X3550: array reference cannot be used as an l-value; not natively addressable, forcing loop to unroll
C:\src\tint\test\Shader@0x000001609F0E92A0(127,12-45): error X3531: can't unroll loops marked with loop attribute

View File

@ -0,0 +1,224 @@
SKIP: FAILED
struct QuicksortObject {
int numbers[10];
};
static QuicksortObject obj = (QuicksortObject)0;
static float4 gl_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
cbuffer cbuffer_x_32 : register(b0, space0) {
uint4 x_32[1];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void swap_i1_i1_(inout int i, inout int j) {
int temp = 0;
const int x_225 = i;
const int x_227 = obj.numbers[x_225];
temp = x_227;
const int x_228 = i;
const int x_229 = j;
const int x_231 = obj.numbers[x_229];
obj.numbers[x_228] = x_231;
const int x_233 = j;
obj.numbers[x_233] = temp;
return;
}
int performPartition_i1_i1_(inout int l, inout int h) {
int pivot = 0;
int i_1 = 0;
int j_1 = 0;
int param = 0;
int param_1 = 0;
int param_2 = 0;
int param_3 = 0;
const int x_237 = h;
const int x_239 = obj.numbers[x_237];
pivot = x_239;
const int x_240 = l;
i_1 = (x_240 - 1);
const int x_242 = l;
j_1 = x_242;
[loop] while (true) {
const int x_247 = j_1;
const int x_248 = h;
if ((x_247 <= (x_248 - 1))) {
} else {
break;
}
const int x_254 = obj.numbers[j_1];
if ((x_254 <= pivot)) {
i_1 = (i_1 + 1);
param = i_1;
param_1 = j_1;
swap_i1_i1_(param, param_1);
}
{
j_1 = (j_1 + 1);
}
}
i_1 = (i_1 + 1);
param_2 = i_1;
const int x_269 = h;
param_3 = x_269;
swap_i1_i1_(param_2, param_3);
return i_1;
}
void quicksort_() {
int l_1 = 0;
int h_1 = 0;
int top = 0;
int stack[10] = (int[10])0;
int p = 0;
int param_4 = 0;
int param_5 = 0;
l_1 = 0;
h_1 = 9;
top = -1;
const int x_274 = (top + 1);
top = x_274;
stack[x_274] = l_1;
const int x_278 = (top + 1);
top = x_278;
stack[x_278] = h_1;
[loop] while (true) {
if ((top >= 0)) {
} else {
break;
}
const int x_288 = top;
top = (x_288 - 1);
const int x_291 = stack[x_288];
h_1 = x_291;
const int x_292 = top;
top = (x_292 - 1);
const int x_295 = stack[x_292];
l_1 = x_295;
param_4 = l_1;
param_5 = h_1;
const int x_298 = performPartition_i1_i1_(param_4, param_5);
p = x_298;
if (((p - 1) > l_1)) {
const int x_306 = (top + 1);
top = x_306;
stack[x_306] = l_1;
const int x_310 = (top + 1);
top = x_310;
stack[x_310] = (p - 1);
}
if (((p + 1) < h_1)) {
const int x_321 = (top + 1);
top = x_321;
stack[x_321] = (p + 1);
const int x_326 = (top + 1);
top = x_326;
stack[x_326] = h_1;
}
}
return;
}
void main_1() {
int i_2 = 0;
float2 uv = float2(0.0f, 0.0f);
float3 color = float3(0.0f, 0.0f, 0.0f);
i_2 = 0;
{
[loop] for(; (i_2 < 10); i_2 = (i_2 + 1)) {
obj.numbers[i_2] = (10 - i_2);
const int x_92 = i_2;
const int x_95 = obj.numbers[i_2];
const int x_98 = obj.numbers[i_2];
obj.numbers[x_92] = (x_95 * x_98);
}
}
quicksort_();
const float4 x_104 = gl_FragCoord;
const float2 x_107 = asfloat(x_32[0].xy);
uv = (float2(x_104.x, x_104.y) / x_107);
color = float3(1.0f, 2.0f, 3.0f);
const int x_110 = obj.numbers[0];
const float x_113 = color.x;
color.x = (x_113 + float(x_110));
const float x_117 = uv.x;
if ((x_117 > 0.25f)) {
const int x_122 = obj.numbers[1];
const float x_125 = color.x;
color.x = (x_125 + float(x_122));
}
const float x_129 = uv.x;
if ((x_129 > 0.5f)) {
const int x_134 = obj.numbers[2];
const float x_137 = color.y;
color.y = (x_137 + float(x_134));
}
const float x_141 = uv.x;
if ((x_141 > 0.75f)) {
const int x_146 = obj.numbers[3];
const float x_149 = color.z;
color.z = (x_149 + float(x_146));
}
const int x_153 = obj.numbers[4];
const float x_156 = color.y;
color.y = (x_156 + float(x_153));
const float x_160 = uv.y;
if ((x_160 > 0.25f)) {
const int x_165 = obj.numbers[5];
const float x_168 = color.x;
color.x = (x_168 + float(x_165));
}
const float x_172 = uv.y;
if ((x_172 > 0.5f)) {
const int x_177 = obj.numbers[6];
const float x_180 = color.y;
color.y = (x_180 + float(x_177));
}
const float x_184 = uv.y;
if ((x_184 > 0.75f)) {
const int x_189 = obj.numbers[7];
const float x_192 = color.z;
color.z = (x_192 + float(x_189));
}
const int x_196 = obj.numbers[8];
const float x_199 = color.z;
color.z = (x_199 + float(x_196));
const float x_203 = uv.x;
const float x_205 = uv.y;
if ((abs((x_203 - x_205)) < 0.25f)) {
const int x_212 = obj.numbers[9];
const float x_215 = color.x;
color.x = (x_215 + float(x_212));
}
const float3 x_219 = normalize(color);
x_GLF_color = float4(x_219.x, x_219.y, x_219.z, 1.0f);
return;
}
struct main_out {
float4 x_GLF_color_1;
};
struct tint_symbol_1 {
float4 gl_FragCoord_param : SV_Position;
};
struct tint_symbol_2 {
float4 x_GLF_color_1 : SV_Target0;
};
main_out main_inner(float4 gl_FragCoord_param) {
gl_FragCoord = gl_FragCoord_param;
main_1();
const main_out tint_symbol_4 = {x_GLF_color};
return tint_symbol_4;
}
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const main_out inner_result = main_inner(tint_symbol.gl_FragCoord_param);
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
return wrapper_result;
}
C:\src\tint\test\Shader@0x00000219A1C1C120(128,7-22): warning X3550: array reference cannot be used as an l-value; not natively addressable, forcing loop to unroll
C:\src\tint\test\Shader@0x00000219A1C1C120(127,12-45): error X3531: can't unroll loops marked with loop attribute

View File

@ -0,0 +1,224 @@
SKIP: FAILED
struct QuicksortObject {
int numbers[10];
};
static QuicksortObject obj = (QuicksortObject)0;
static float4 gl_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
cbuffer cbuffer_x_32 : register(b0, space0) {
uint4 x_32[1];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void swap_i1_i1_(inout int i, inout int j, float3x3 x_228) {
int temp = 0;
const int x_230 = i;
const int x_232 = obj.numbers[x_230];
temp = x_232;
const int x_233 = i;
const int x_234 = j;
const int x_236 = obj.numbers[x_234];
obj.numbers[x_233] = x_236;
const int x_238 = j;
obj.numbers[x_238] = temp;
return;
}
int performPartition_i1_i1_(inout int l, inout int h) {
int pivot = 0;
int i_1 = 0;
int j_1 = 0;
int param = 0;
int param_1 = 0;
int param_2 = 0;
int param_3 = 0;
const int x_242 = h;
const int x_244 = obj.numbers[x_242];
pivot = x_244;
const int x_245 = l;
i_1 = (x_245 - 1);
const int x_247 = l;
j_1 = x_247;
[loop] while (true) {
const int x_252 = j_1;
const int x_253 = h;
if ((x_252 <= (x_253 - 1))) {
} else {
break;
}
const int x_259 = obj.numbers[j_1];
if ((x_259 <= pivot)) {
i_1 = (i_1 + 1);
param = i_1;
param_1 = j_1;
swap_i1_i1_(param, param_1, float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)));
}
{
j_1 = (j_1 + 1);
}
}
i_1 = (i_1 + 1);
param_2 = i_1;
const int x_274 = h;
param_3 = x_274;
swap_i1_i1_(param_2, param_3, float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)));
return i_1;
}
void quicksort_() {
int l_1 = 0;
int h_1 = 0;
int top = 0;
int stack[10] = (int[10])0;
int p = 0;
int param_4 = 0;
int param_5 = 0;
l_1 = 0;
h_1 = 9;
top = -1;
const int x_279 = (top + 1);
top = x_279;
stack[x_279] = l_1;
const int x_283 = (top + 1);
top = x_283;
stack[x_283] = h_1;
[loop] while (true) {
if ((top >= 0)) {
} else {
break;
}
const int x_293 = top;
top = (x_293 - 1);
const int x_296 = stack[x_293];
h_1 = x_296;
const int x_297 = top;
top = (x_297 - 1);
const int x_300 = stack[x_297];
l_1 = x_300;
param_4 = l_1;
param_5 = h_1;
const int x_303 = performPartition_i1_i1_(param_4, param_5);
p = x_303;
if (((p - 1) > l_1)) {
const int x_311 = (top + 1);
top = x_311;
stack[x_311] = l_1;
const int x_315 = (top + 1);
top = x_315;
stack[x_315] = (p - 1);
}
if (((p + 1) < h_1)) {
const int x_326 = (top + 1);
top = x_326;
stack[x_326] = (p + 1);
const int x_331 = (top + 1);
top = x_331;
stack[x_331] = h_1;
}
}
return;
}
void main_1() {
int i_2 = 0;
float2 uv = float2(0.0f, 0.0f);
float3 color = float3(0.0f, 0.0f, 0.0f);
i_2 = 0;
{
[loop] for(; (i_2 < 10); i_2 = (i_2 + 1)) {
obj.numbers[i_2] = (10 - i_2);
const int x_96 = i_2;
const int x_99 = obj.numbers[i_2];
const int x_102 = obj.numbers[i_2];
obj.numbers[x_96] = (x_99 * x_102);
}
}
quicksort_();
const float4 x_108 = gl_FragCoord;
const float2 x_111 = asfloat(x_32[0].xy);
uv = (float2(x_108.x, x_108.y) / x_111);
color = float3(1.0f, 2.0f, 3.0f);
const int x_114 = obj.numbers[0];
const float x_117 = color.x;
color.x = (x_117 + float(x_114));
const float x_121 = uv.x;
if ((x_121 > 0.25f)) {
const int x_126 = obj.numbers[1];
const float x_129 = color.x;
color.x = (x_129 + float(x_126));
}
const float x_133 = uv.x;
if ((x_133 > 0.5f)) {
const int x_138 = obj.numbers[2];
const float x_141 = color.y;
color.y = (x_141 + float(x_138));
}
const float x_145 = uv.x;
if ((x_145 > 0.75f)) {
const int x_150 = obj.numbers[3];
const float x_153 = color.z;
color.z = (x_153 + float(x_150));
}
const int x_157 = obj.numbers[4];
const float x_160 = color.y;
color.y = (x_160 + float(x_157));
const float x_164 = uv.y;
if ((x_164 > 0.25f)) {
const int x_169 = obj.numbers[5];
const float x_172 = color.x;
color.x = (x_172 + float(x_169));
}
const float x_176 = uv.y;
if ((x_176 > 0.5f)) {
const int x_181 = obj.numbers[6];
const float x_184 = color.y;
color.y = (x_184 + float(x_181));
}
const float x_188 = uv.y;
if ((x_188 > 0.75f)) {
const int x_193 = obj.numbers[7];
const float x_196 = color.z;
color.z = (x_196 + float(x_193));
}
const int x_200 = obj.numbers[8];
const float x_203 = color.z;
color.z = (x_203 + float(x_200));
const float x_207 = uv.x;
const float x_209 = uv.y;
if ((abs((x_207 - x_209)) < 0.25f)) {
const int x_216 = obj.numbers[9];
const float x_219 = color.x;
color.x = (x_219 + float(x_216));
}
const float3 x_223 = normalize(color);
x_GLF_color = float4(x_223.x, x_223.y, x_223.z, 1.0f);
return;
}
struct main_out {
float4 x_GLF_color_1;
};
struct tint_symbol_1 {
float4 gl_FragCoord_param : SV_Position;
};
struct tint_symbol_2 {
float4 x_GLF_color_1 : SV_Target0;
};
main_out main_inner(float4 gl_FragCoord_param) {
gl_FragCoord = gl_FragCoord_param;
main_1();
const main_out tint_symbol_4 = {x_GLF_color};
return tint_symbol_4;
}
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const main_out inner_result = main_inner(tint_symbol.gl_FragCoord_param);
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
return wrapper_result;
}
C:\src\tint\test\Shader@0x0000029339D00EC0(128,7-22): warning X3550: array reference cannot be used as an l-value; not natively addressable, forcing loop to unroll
C:\src\tint\test\Shader@0x0000029339D00EC0(127,12-45): error X3531: can't unroll loops marked with loop attribute

View File

@ -0,0 +1,224 @@
SKIP: FAILED
struct QuicksortObject {
int numbers[10];
};
static QuicksortObject obj = (QuicksortObject)0;
static float4 gl_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
cbuffer cbuffer_x_32 : register(b0, space0) {
uint4 x_32[1];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void swap_i1_i1_(inout int i, inout int j, float3x3 x_228) {
int temp = 0;
const int x_230 = i;
const int x_232 = obj.numbers[x_230];
temp = x_232;
const int x_233 = i;
const int x_234 = j;
const int x_236 = obj.numbers[x_234];
obj.numbers[x_233] = x_236;
const int x_238 = j;
obj.numbers[x_238] = temp;
return;
}
int performPartition_i1_i1_(inout int l, inout int h) {
int pivot = 0;
int i_1 = 0;
int j_1 = 0;
int param = 0;
int param_1 = 0;
int param_2 = 0;
int param_3 = 0;
const int x_242 = h;
const int x_244 = obj.numbers[x_242];
pivot = x_244;
const int x_245 = l;
i_1 = (x_245 - 1);
const int x_247 = l;
j_1 = x_247;
[loop] while (true) {
const int x_252 = j_1;
const int x_253 = h;
if ((x_252 <= (x_253 - 1))) {
} else {
break;
}
const int x_259 = obj.numbers[j_1];
if ((x_259 <= pivot)) {
i_1 = (i_1 + 1);
param = i_1;
param_1 = j_1;
swap_i1_i1_(param, param_1, float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)));
}
{
j_1 = (j_1 + 1);
}
}
i_1 = (i_1 + 1);
param_2 = i_1;
const int x_274 = h;
param_3 = x_274;
swap_i1_i1_(param_2, param_3, float3x3(float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f), float3(0.0f, 0.0f, 0.0f)));
return i_1;
}
void quicksort_() {
int l_1 = 0;
int h_1 = 0;
int top = 0;
int stack[10] = (int[10])0;
int p = 0;
int param_4 = 0;
int param_5 = 0;
l_1 = 0;
h_1 = 9;
top = -1;
const int x_279 = (top + 1);
top = x_279;
stack[x_279] = l_1;
const int x_283 = (top + 1);
top = x_283;
stack[x_283] = h_1;
[loop] while (true) {
if ((top >= 0)) {
} else {
break;
}
const int x_293 = top;
top = (x_293 - 1);
const int x_296 = stack[x_293];
h_1 = x_296;
const int x_297 = top;
top = (x_297 - 1);
const int x_300 = stack[x_297];
l_1 = x_300;
param_4 = l_1;
param_5 = h_1;
const int x_303 = performPartition_i1_i1_(param_4, param_5);
p = x_303;
if (((p - 1) > l_1)) {
const int x_311 = (top + 1);
top = x_311;
stack[x_311] = l_1;
const int x_315 = (top + 1);
top = x_315;
stack[x_315] = (p - 1);
}
if (((p + 1) < h_1)) {
const int x_326 = (top + 1);
top = x_326;
stack[x_326] = (p + 1);
const int x_331 = (top + 1);
top = x_331;
stack[x_331] = h_1;
}
}
return;
}
void main_1() {
int i_2 = 0;
float2 uv = float2(0.0f, 0.0f);
float3 color = float3(0.0f, 0.0f, 0.0f);
i_2 = 0;
{
[loop] for(; (i_2 < 10); i_2 = (i_2 + 1)) {
obj.numbers[i_2] = (10 - i_2);
const int x_96 = i_2;
const int x_99 = obj.numbers[i_2];
const int x_102 = obj.numbers[i_2];
obj.numbers[x_96] = (x_99 * x_102);
}
}
quicksort_();
const float4 x_108 = gl_FragCoord;
const float2 x_111 = asfloat(x_32[0].xy);
uv = (float2(x_108.x, x_108.y) / x_111);
color = float3(1.0f, 2.0f, 3.0f);
const int x_114 = obj.numbers[0];
const float x_117 = color.x;
color.x = (x_117 + float(x_114));
const float x_121 = uv.x;
if ((x_121 > 0.25f)) {
const int x_126 = obj.numbers[1];
const float x_129 = color.x;
color.x = (x_129 + float(x_126));
}
const float x_133 = uv.x;
if ((x_133 > 0.5f)) {
const int x_138 = obj.numbers[2];
const float x_141 = color.y;
color.y = (x_141 + float(x_138));
}
const float x_145 = uv.x;
if ((x_145 > 0.75f)) {
const int x_150 = obj.numbers[3];
const float x_153 = color.z;
color.z = (x_153 + float(x_150));
}
const int x_157 = obj.numbers[4];
const float x_160 = color.y;
color.y = (x_160 + float(x_157));
const float x_164 = uv.y;
if ((x_164 > 0.25f)) {
const int x_169 = obj.numbers[5];
const float x_172 = color.x;
color.x = (x_172 + float(x_169));
}
const float x_176 = uv.y;
if ((x_176 > 0.5f)) {
const int x_181 = obj.numbers[6];
const float x_184 = color.y;
color.y = (x_184 + float(x_181));
}
const float x_188 = uv.y;
if ((x_188 > 0.75f)) {
const int x_193 = obj.numbers[7];
const float x_196 = color.z;
color.z = (x_196 + float(x_193));
}
const int x_200 = obj.numbers[8];
const float x_203 = color.z;
color.z = (x_203 + float(x_200));
const float x_207 = uv.x;
const float x_209 = uv.y;
if ((abs((x_207 - x_209)) < 0.25f)) {
const int x_216 = obj.numbers[9];
const float x_219 = color.x;
color.x = (x_219 + float(x_216));
}
const float3 x_223 = normalize(color);
x_GLF_color = float4(x_223.x, x_223.y, x_223.z, 1.0f);
return;
}
struct main_out {
float4 x_GLF_color_1;
};
struct tint_symbol_1 {
float4 gl_FragCoord_param : SV_Position;
};
struct tint_symbol_2 {
float4 x_GLF_color_1 : SV_Target0;
};
main_out main_inner(float4 gl_FragCoord_param) {
gl_FragCoord = gl_FragCoord_param;
main_1();
const main_out tint_symbol_4 = {x_GLF_color};
return tint_symbol_4;
}
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const main_out inner_result = main_inner(tint_symbol.gl_FragCoord_param);
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
return wrapper_result;
}
C:\src\tint\test\Shader@0x000001F0DC256BE0(128,7-22): warning X3550: array reference cannot be used as an l-value; not natively addressable, forcing loop to unroll
C:\src\tint\test\Shader@0x000001F0DC256BE0(127,12-45): error X3531: can't unroll loops marked with loop attribute

View File

@ -0,0 +1,776 @@
SKIP: FAILED
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
struct BST {
int data;
int leftIndex;
int rightIndex;
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
BST tree[10] = (BST[10])0;
int x_356 = 0;
int x_58_phi = 0;
bool x_86_phi = false;
int x_353_phi = 0;
int x_356_phi = 0;
int x_358_phi = 0;
const BST tint_symbol_1 = {9, -1, -1};
tree[0] = tint_symbol_1;
0u;
do {
x_58_phi = 0;
[loop] while (true) {
int x_84 = 0;
int x_76 = 0;
int x_59 = 0;
int x_59_phi = 0;
const int x_58 = x_58_phi;
x_86_phi = false;
if ((x_58 <= 1)) {
} else {
break;
}
const int x_65 = tree[x_58].data;
if ((5 <= x_65)) {
const int x_78_save = x_58;
const int x_79 = tree[x_78_save].leftIndex;
if ((x_79 == -1)) {
tree[x_78_save].leftIndex = 1;
const BST tint_symbol_2 = {5, -1, -1};
tree[1] = tint_symbol_2;
x_86_phi = true;
break;
} else {
x_84 = tree[x_78_save].leftIndex;
x_59_phi = x_84;
{
x_59 = x_59_phi;
x_58_phi = x_59;
}
continue;
}
return;
} else {
const int x_70_save = x_58;
const int x_71 = tree[x_70_save].rightIndex;
if ((x_71 == -1)) {
tree[x_70_save].rightIndex = 1;
const BST tint_symbol_3 = {5, -1, -1};
tree[1] = tint_symbol_3;
x_86_phi = true;
break;
} else {
x_76 = tree[x_70_save].rightIndex;
x_59_phi = x_76;
{
x_59 = x_59_phi;
x_58_phi = x_59;
}
continue;
}
return;
}
return;
{
x_59 = x_59_phi;
x_58_phi = x_59;
}
}
if (x_86_phi) {
break;
}
} while (false);
int x_91_phi = 0;
bool x_119_phi = false;
0u;
do {
x_91_phi = 0;
[loop] while (true) {
int x_117 = 0;
int x_109 = 0;
int x_92 = 0;
int x_92_phi = 0;
const int x_91 = x_91_phi;
x_119_phi = false;
if ((x_91 <= 2)) {
} else {
break;
}
const int x_98 = tree[x_91].data;
if ((12 <= x_98)) {
const int x_111_save = x_91;
const int x_112 = tree[x_111_save].leftIndex;
if ((x_112 == -1)) {
tree[x_111_save].leftIndex = 2;
const BST tint_symbol_4 = {12, -1, -1};
tree[2] = tint_symbol_4;
x_119_phi = true;
break;
} else {
x_117 = tree[x_111_save].leftIndex;
x_92_phi = x_117;
{
x_92 = x_92_phi;
x_91_phi = x_92;
}
continue;
}
return;
} else {
const int x_103_save = x_91;
const int x_104 = tree[x_103_save].rightIndex;
if ((x_104 == -1)) {
tree[x_103_save].rightIndex = 2;
const BST tint_symbol_5 = {12, -1, -1};
tree[2] = tint_symbol_5;
x_119_phi = true;
break;
} else {
x_109 = tree[x_103_save].rightIndex;
x_92_phi = x_109;
{
x_92 = x_92_phi;
x_91_phi = x_92;
}
continue;
}
return;
}
return;
{
x_92 = x_92_phi;
x_91_phi = x_92;
}
}
if (x_119_phi) {
break;
}
} while (false);
int x_124_phi = 0;
bool x_152_phi = false;
0u;
do {
x_124_phi = 0;
[loop] while (true) {
int x_150 = 0;
int x_142 = 0;
int x_125 = 0;
int x_125_phi = 0;
const int x_124 = x_124_phi;
x_152_phi = false;
if ((x_124 <= 3)) {
} else {
break;
}
const int x_131 = tree[x_124].data;
if ((15 <= x_131)) {
const int x_144_save = x_124;
const int x_145 = tree[x_144_save].leftIndex;
if ((x_145 == -1)) {
tree[x_144_save].leftIndex = 3;
const BST tint_symbol_6 = {15, -1, -1};
tree[3] = tint_symbol_6;
x_152_phi = true;
break;
} else {
x_150 = tree[x_144_save].leftIndex;
x_125_phi = x_150;
{
x_125 = x_125_phi;
x_124_phi = x_125;
}
continue;
}
return;
} else {
const int x_136_save = x_124;
const int x_137 = tree[x_136_save].rightIndex;
if ((x_137 == -1)) {
tree[x_136_save].rightIndex = 3;
const BST tint_symbol_7 = {15, -1, -1};
tree[3] = tint_symbol_7;
x_152_phi = true;
break;
} else {
x_142 = tree[x_136_save].rightIndex;
x_125_phi = x_142;
{
x_125 = x_125_phi;
x_124_phi = x_125;
}
continue;
}
return;
}
return;
{
x_125 = x_125_phi;
x_124_phi = x_125;
}
}
if (x_152_phi) {
break;
}
} while (false);
int x_157_phi = 0;
bool x_185_phi = false;
0u;
do {
x_157_phi = 0;
[loop] while (true) {
int x_183 = 0;
int x_175 = 0;
int x_158 = 0;
int x_158_phi = 0;
const int x_157 = x_157_phi;
x_185_phi = false;
if ((x_157 <= 4)) {
} else {
break;
}
const int x_164 = tree[x_157].data;
if ((7 <= x_164)) {
const int x_177_save = x_157;
const int x_178 = tree[x_177_save].leftIndex;
if ((x_178 == -1)) {
tree[x_177_save].leftIndex = 4;
const BST tint_symbol_8 = {7, -1, -1};
tree[4] = tint_symbol_8;
x_185_phi = true;
break;
} else {
x_183 = tree[x_177_save].leftIndex;
x_158_phi = x_183;
{
x_158 = x_158_phi;
x_157_phi = x_158;
}
continue;
}
return;
} else {
const int x_169_save = x_157;
const int x_170 = tree[x_169_save].rightIndex;
if ((x_170 == -1)) {
tree[x_169_save].rightIndex = 4;
const BST tint_symbol_9 = {7, -1, -1};
tree[4] = tint_symbol_9;
x_185_phi = true;
break;
} else {
x_175 = tree[x_169_save].rightIndex;
x_158_phi = x_175;
{
x_158 = x_158_phi;
x_157_phi = x_158;
}
continue;
}
return;
}
return;
{
x_158 = x_158_phi;
x_157_phi = x_158;
}
}
if (x_185_phi) {
break;
}
} while (false);
int x_190_phi = 0;
bool x_218_phi = false;
0u;
do {
x_190_phi = 0;
[loop] while (true) {
int x_216 = 0;
int x_208 = 0;
int x_191 = 0;
int x_191_phi = 0;
const int x_190 = x_190_phi;
x_218_phi = false;
if ((x_190 <= 5)) {
} else {
break;
}
const int x_197 = tree[x_190].data;
if ((8 <= x_197)) {
const int x_210_save = x_190;
const int x_211 = tree[x_210_save].leftIndex;
if ((x_211 == -1)) {
tree[x_210_save].leftIndex = 5;
const BST tint_symbol_10 = {8, -1, -1};
tree[5] = tint_symbol_10;
x_218_phi = true;
break;
} else {
x_216 = tree[x_210_save].leftIndex;
x_191_phi = x_216;
{
x_191 = x_191_phi;
x_190_phi = x_191;
}
continue;
}
return;
} else {
const int x_202_save = x_190;
const int x_203 = tree[x_202_save].rightIndex;
if ((x_203 == -1)) {
tree[x_202_save].rightIndex = 5;
const BST tint_symbol_11 = {8, -1, -1};
tree[5] = tint_symbol_11;
x_218_phi = true;
break;
} else {
x_208 = tree[x_202_save].rightIndex;
x_191_phi = x_208;
{
x_191 = x_191_phi;
x_190_phi = x_191;
}
continue;
}
return;
}
return;
{
x_191 = x_191_phi;
x_190_phi = x_191;
}
}
if (x_218_phi) {
break;
}
} while (false);
int x_223_phi = 0;
bool x_251_phi = false;
0u;
do {
x_223_phi = 0;
[loop] while (true) {
int x_249 = 0;
int x_241 = 0;
int x_224 = 0;
int x_224_phi = 0;
const int x_223 = x_223_phi;
x_251_phi = false;
if ((x_223 <= 6)) {
} else {
break;
}
const int x_230 = tree[x_223].data;
if ((2 <= x_230)) {
const int x_243_save = x_223;
const int x_244 = tree[x_243_save].leftIndex;
if ((x_244 == -1)) {
tree[x_243_save].leftIndex = 6;
const BST tint_symbol_12 = {2, -1, -1};
tree[6] = tint_symbol_12;
x_251_phi = true;
break;
} else {
x_249 = tree[x_243_save].leftIndex;
x_224_phi = x_249;
{
x_224 = x_224_phi;
x_223_phi = x_224;
}
continue;
}
return;
} else {
const int x_235_save = x_223;
const int x_236 = tree[x_235_save].rightIndex;
if ((x_236 == -1)) {
tree[x_235_save].rightIndex = 6;
const BST tint_symbol_13 = {2, -1, -1};
tree[6] = tint_symbol_13;
x_251_phi = true;
break;
} else {
x_241 = tree[x_235_save].rightIndex;
x_224_phi = x_241;
{
x_224 = x_224_phi;
x_223_phi = x_224;
}
continue;
}
return;
}
return;
{
x_224 = x_224_phi;
x_223_phi = x_224;
}
}
if (x_251_phi) {
break;
}
} while (false);
int x_256_phi = 0;
bool x_284_phi = false;
0u;
do {
x_256_phi = 0;
[loop] while (true) {
int x_282 = 0;
int x_274 = 0;
int x_257 = 0;
int x_257_phi = 0;
const int x_256 = x_256_phi;
x_284_phi = false;
if ((x_256 <= 7)) {
} else {
break;
}
const int x_263 = tree[x_256].data;
if ((6 <= x_263)) {
const int x_276_save = x_256;
const int x_277 = tree[x_276_save].leftIndex;
if ((x_277 == -1)) {
tree[x_276_save].leftIndex = 7;
const BST tint_symbol_14 = {6, -1, -1};
tree[7] = tint_symbol_14;
x_284_phi = true;
break;
} else {
x_282 = tree[x_276_save].leftIndex;
x_257_phi = x_282;
{
x_257 = x_257_phi;
x_256_phi = x_257;
}
continue;
}
return;
} else {
const int x_268_save = x_256;
const int x_269 = tree[x_268_save].rightIndex;
if ((x_269 == -1)) {
tree[x_268_save].rightIndex = 7;
const BST tint_symbol_15 = {6, -1, -1};
tree[7] = tint_symbol_15;
x_284_phi = true;
break;
} else {
x_274 = tree[x_268_save].rightIndex;
x_257_phi = x_274;
{
x_257 = x_257_phi;
x_256_phi = x_257;
}
continue;
}
return;
}
return;
{
x_257 = x_257_phi;
x_256_phi = x_257;
}
}
if (x_284_phi) {
break;
}
} while (false);
int x_289_phi = 0;
bool x_317_phi = false;
0u;
do {
x_289_phi = 0;
[loop] while (true) {
int x_315 = 0;
int x_307 = 0;
int x_290 = 0;
int x_290_phi = 0;
const int x_289 = x_289_phi;
x_317_phi = false;
if ((x_289 <= 8)) {
} else {
break;
}
const int x_296 = tree[x_289].data;
if ((17 <= x_296)) {
const int x_309_save = x_289;
const int x_310 = tree[x_309_save].leftIndex;
if ((x_310 == -1)) {
tree[x_309_save].leftIndex = 8;
const BST tint_symbol_16 = {17, -1, -1};
tree[8] = tint_symbol_16;
x_317_phi = true;
break;
} else {
x_315 = tree[x_309_save].leftIndex;
x_290_phi = x_315;
{
x_290 = x_290_phi;
x_289_phi = x_290;
}
continue;
}
return;
} else {
const int x_301_save = x_289;
const int x_302 = tree[x_301_save].rightIndex;
if ((x_302 == -1)) {
tree[x_301_save].rightIndex = 8;
const BST tint_symbol_17 = {17, -1, -1};
tree[8] = tint_symbol_17;
x_317_phi = true;
break;
} else {
x_307 = tree[x_301_save].rightIndex;
x_290_phi = x_307;
{
x_290 = x_290_phi;
x_289_phi = x_290;
}
continue;
}
return;
}
return;
{
x_290 = x_290_phi;
x_289_phi = x_290;
}
}
if (x_317_phi) {
break;
}
} while (false);
int x_322_phi = 0;
bool x_350_phi = false;
0u;
do {
x_322_phi = 0;
[loop] while (true) {
int x_348 = 0;
int x_340 = 0;
int x_323 = 0;
int x_323_phi = 0;
const int x_322 = x_322_phi;
x_350_phi = false;
if ((x_322 <= 9)) {
} else {
break;
}
const int x_329 = tree[x_322].data;
if ((13 <= x_329)) {
const int x_342_save = x_322;
const int x_343 = tree[x_342_save].leftIndex;
if ((x_343 == -1)) {
tree[x_342_save].leftIndex = 9;
const BST tint_symbol_18 = {13, -1, -1};
tree[9] = tint_symbol_18;
x_350_phi = true;
break;
} else {
x_348 = tree[x_342_save].leftIndex;
x_323_phi = x_348;
{
x_323 = x_323_phi;
x_322_phi = x_323;
}
continue;
}
return;
} else {
const int x_334_save = x_322;
const int x_335 = tree[x_334_save].rightIndex;
if ((x_335 == -1)) {
tree[x_334_save].rightIndex = 9;
const BST tint_symbol_19 = {13, -1, -1};
tree[9] = tint_symbol_19;
x_350_phi = true;
break;
} else {
x_340 = tree[x_334_save].rightIndex;
x_323_phi = x_340;
{
x_323 = x_323_phi;
x_322_phi = x_323;
}
continue;
}
return;
}
return;
{
x_323 = x_323_phi;
x_322_phi = x_323;
}
}
if (x_350_phi) {
break;
}
} while (false);
x_353_phi = 0;
x_356_phi = 0;
x_358_phi = 0;
[loop] while (true) {
int x_381 = 0;
int x_391 = 0;
int x_396 = 0;
int x_359 = 0;
int x_354_phi = 0;
int x_357_phi = 0;
const int x_353 = x_353_phi;
x_356 = x_356_phi;
const int x_358 = x_358_phi;
if ((x_358 < 20)) {
} else {
break;
}
int x_366_phi = 0;
int x_381_phi = 0;
bool x_382_phi = false;
0u;
do {
x_366_phi = 0;
[loop] while (true) {
const int x_366 = x_366_phi;
x_381_phi = x_353;
x_382_phi = false;
if ((x_366 != -1)) {
} else {
break;
}
const BST x_373 = tree[x_366];
const int x_374 = x_373.data;
const int x_375 = x_373.leftIndex;
const int x_376 = x_373.rightIndex;
if ((x_374 == x_358)) {
x_381_phi = x_358;
x_382_phi = true;
break;
}
{
x_366_phi = ((x_358 > x_374) ? x_376 : x_375);
}
}
x_381 = x_381_phi;
const bool x_382 = x_382_phi;
x_354_phi = x_381;
if (x_382) {
break;
}
x_354_phi = -1;
} while (false);
int x_354 = 0;
int x_390 = 0;
int x_395 = 0;
int x_391_phi = 0;
int x_396_phi = 0;
x_354 = x_354_phi;
switch(x_358) {
case 2:
case 5:
case 6:
case 7:
case 8:
case 9:
case 12:
case 13:
case 15:
case 17: {
x_391_phi = x_356;
if ((x_354 == asint(x_358))) {
x_390 = asint((x_356 + asint(1)));
x_391_phi = x_390;
}
x_391 = x_391_phi;
x_357_phi = x_391;
break;
}
default: {
x_396_phi = x_356;
if ((x_354 == asint(-1))) {
x_395 = asint((x_356 + asint(1)));
x_396_phi = x_395;
}
x_396 = x_396_phi;
x_357_phi = x_396;
break;
}
}
const int x_357 = x_357_phi;
{
x_359 = (x_358 + 1);
x_353_phi = x_354;
x_356_phi = x_357;
x_358_phi = x_359;
}
}
if ((x_356 == asint(20))) {
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
} else {
x_GLF_color = float4(0.0f, 0.0f, 1.0f, 1.0f);
}
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_20 = {x_GLF_color};
return tint_symbol_20;
}
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;
}
C:\src\tint\test\Shader@0x0000022EDBF08060(82,5-17): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
C:\src\tint\test\Shader@0x0000022EDBF08060(22,12-23): warning X3557: loop only executes for 0 iteration(s), consider removing [loop]
C:\src\tint\test\Shader@0x0000022EDBF08060(148,5-17): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
C:\src\tint\test\Shader@0x0000022EDBF08060(214,5-17): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
C:\src\tint\test\Shader@0x0000022EDBF08060(280,5-17): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
C:\src\tint\test\Shader@0x0000022EDBF08060(346,5-17): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
C:\src\tint\test\Shader@0x0000022EDBF08060(412,5-17): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
C:\src\tint\test\Shader@0x0000022EDBF08060(478,5-17): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
C:\src\tint\test\Shader@0x0000022EDBF08060(544,5-17): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
C:\src\tint\test\Shader@0x0000022EDBF08060(610,5-17): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
C:\src\tint\test\Shader@0x0000022EDBF08060(662,7-19): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
internal error: compilation aborted unexpectedly

View File

@ -0,0 +1,857 @@
SKIP: FAILED
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl:46:11 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl:60:11 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl:62:9 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl:105:11 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl:119:11 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl:121:9 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl:164:11 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl:178:11 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl:180:9 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl:223:11 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl:237:11 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl:239:9 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl:282:11 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl:296:11 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl:298:9 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl:341:11 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl:355:11 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl:357:9 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl:400:11 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl:414:11 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl:416:9 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl:459:11 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl:473:11 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl:475:9 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl:518:11 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl:532:11 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-false-if-discard-loop/0.wgsl:534:9 warning: code is unreachable
return;
^^^^^^
struct BST {
int data;
int leftIndex;
int rightIndex;
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
BST tree[10] = (BST[10])0;
int x_356 = 0;
int x_58_phi = 0;
bool x_86_phi = false;
int x_353_phi = 0;
int x_356_phi = 0;
int x_358_phi = 0;
const BST tint_symbol_1 = {9, -1, -1};
tree[0] = tint_symbol_1;
0u;
do {
x_58_phi = 0;
[loop] while (true) {
int x_84 = 0;
int x_76 = 0;
int x_59 = 0;
int x_59_phi = 0;
const int x_58 = x_58_phi;
x_86_phi = false;
if ((x_58 <= 1)) {
} else {
break;
}
const int x_65 = tree[x_58].data;
if ((5 <= x_65)) {
const int x_78_save = x_58;
const int x_79 = tree[x_78_save].leftIndex;
if ((x_79 == -1)) {
tree[x_78_save].leftIndex = 1;
const BST tint_symbol_2 = {5, -1, -1};
tree[1] = tint_symbol_2;
x_86_phi = true;
break;
} else {
x_84 = tree[x_78_save].leftIndex;
x_59_phi = x_84;
{
x_59 = x_59_phi;
x_58_phi = x_59;
}
continue;
}
return;
} else {
const int x_70_save = x_58;
const int x_71 = tree[x_70_save].rightIndex;
if ((x_71 == -1)) {
tree[x_70_save].rightIndex = 1;
const BST tint_symbol_3 = {5, -1, -1};
tree[1] = tint_symbol_3;
x_86_phi = true;
break;
} else {
x_76 = tree[x_70_save].rightIndex;
x_59_phi = x_76;
{
x_59 = x_59_phi;
x_58_phi = x_59;
}
continue;
}
return;
}
return;
{
x_59 = x_59_phi;
x_58_phi = x_59;
}
}
if (x_86_phi) {
break;
}
} while (false);
int x_91_phi = 0;
bool x_119_phi = false;
0u;
do {
x_91_phi = 0;
[loop] while (true) {
int x_117 = 0;
int x_109 = 0;
int x_92 = 0;
int x_92_phi = 0;
const int x_91 = x_91_phi;
x_119_phi = false;
if ((x_91 <= 2)) {
} else {
break;
}
const int x_98 = tree[x_91].data;
if ((12 <= x_98)) {
const int x_111_save = x_91;
const int x_112 = tree[x_111_save].leftIndex;
if ((x_112 == -1)) {
tree[x_111_save].leftIndex = 2;
const BST tint_symbol_4 = {12, -1, -1};
tree[2] = tint_symbol_4;
x_119_phi = true;
break;
} else {
x_117 = tree[x_111_save].leftIndex;
x_92_phi = x_117;
{
x_92 = x_92_phi;
x_91_phi = x_92;
}
continue;
}
return;
} else {
const int x_103_save = x_91;
const int x_104 = tree[x_103_save].rightIndex;
if ((x_104 == -1)) {
tree[x_103_save].rightIndex = 2;
const BST tint_symbol_5 = {12, -1, -1};
tree[2] = tint_symbol_5;
x_119_phi = true;
break;
} else {
x_109 = tree[x_103_save].rightIndex;
x_92_phi = x_109;
{
x_92 = x_92_phi;
x_91_phi = x_92;
}
continue;
}
return;
}
return;
{
x_92 = x_92_phi;
x_91_phi = x_92;
}
}
if (x_119_phi) {
break;
}
} while (false);
int x_124_phi = 0;
bool x_152_phi = false;
0u;
do {
x_124_phi = 0;
[loop] while (true) {
int x_150 = 0;
int x_142 = 0;
int x_125 = 0;
int x_125_phi = 0;
const int x_124 = x_124_phi;
x_152_phi = false;
if ((x_124 <= 3)) {
} else {
break;
}
const int x_131 = tree[x_124].data;
if ((15 <= x_131)) {
const int x_144_save = x_124;
const int x_145 = tree[x_144_save].leftIndex;
if ((x_145 == -1)) {
tree[x_144_save].leftIndex = 3;
const BST tint_symbol_6 = {15, -1, -1};
tree[3] = tint_symbol_6;
x_152_phi = true;
break;
} else {
x_150 = tree[x_144_save].leftIndex;
x_125_phi = x_150;
{
x_125 = x_125_phi;
x_124_phi = x_125;
}
continue;
}
return;
} else {
const int x_136_save = x_124;
const int x_137 = tree[x_136_save].rightIndex;
if ((x_137 == -1)) {
tree[x_136_save].rightIndex = 3;
const BST tint_symbol_7 = {15, -1, -1};
tree[3] = tint_symbol_7;
x_152_phi = true;
break;
} else {
x_142 = tree[x_136_save].rightIndex;
x_125_phi = x_142;
{
x_125 = x_125_phi;
x_124_phi = x_125;
}
continue;
}
return;
}
return;
{
x_125 = x_125_phi;
x_124_phi = x_125;
}
}
if (x_152_phi) {
break;
}
} while (false);
int x_157_phi = 0;
bool x_185_phi = false;
0u;
do {
x_157_phi = 0;
[loop] while (true) {
int x_183 = 0;
int x_175 = 0;
int x_158 = 0;
int x_158_phi = 0;
const int x_157 = x_157_phi;
x_185_phi = false;
if ((x_157 <= 4)) {
} else {
break;
}
const int x_164 = tree[x_157].data;
if ((7 <= x_164)) {
const int x_177_save = x_157;
const int x_178 = tree[x_177_save].leftIndex;
if ((x_178 == -1)) {
tree[x_177_save].leftIndex = 4;
const BST tint_symbol_8 = {7, -1, -1};
tree[4] = tint_symbol_8;
x_185_phi = true;
break;
} else {
x_183 = tree[x_177_save].leftIndex;
x_158_phi = x_183;
{
x_158 = x_158_phi;
x_157_phi = x_158;
}
continue;
}
return;
} else {
const int x_169_save = x_157;
const int x_170 = tree[x_169_save].rightIndex;
if ((x_170 == -1)) {
tree[x_169_save].rightIndex = 4;
const BST tint_symbol_9 = {7, -1, -1};
tree[4] = tint_symbol_9;
x_185_phi = true;
break;
} else {
x_175 = tree[x_169_save].rightIndex;
x_158_phi = x_175;
{
x_158 = x_158_phi;
x_157_phi = x_158;
}
continue;
}
return;
}
return;
{
x_158 = x_158_phi;
x_157_phi = x_158;
}
}
if (x_185_phi) {
break;
}
} while (false);
int x_190_phi = 0;
bool x_218_phi = false;
0u;
do {
x_190_phi = 0;
[loop] while (true) {
int x_216 = 0;
int x_208 = 0;
int x_191 = 0;
int x_191_phi = 0;
const int x_190 = x_190_phi;
x_218_phi = false;
if ((x_190 <= 5)) {
} else {
break;
}
const int x_197 = tree[x_190].data;
if ((8 <= x_197)) {
const int x_210_save = x_190;
const int x_211 = tree[x_210_save].leftIndex;
if ((x_211 == -1)) {
tree[x_210_save].leftIndex = 5;
const BST tint_symbol_10 = {8, -1, -1};
tree[5] = tint_symbol_10;
x_218_phi = true;
break;
} else {
x_216 = tree[x_210_save].leftIndex;
x_191_phi = x_216;
{
x_191 = x_191_phi;
x_190_phi = x_191;
}
continue;
}
return;
} else {
const int x_202_save = x_190;
const int x_203 = tree[x_202_save].rightIndex;
if ((x_203 == -1)) {
tree[x_202_save].rightIndex = 5;
const BST tint_symbol_11 = {8, -1, -1};
tree[5] = tint_symbol_11;
x_218_phi = true;
break;
} else {
x_208 = tree[x_202_save].rightIndex;
x_191_phi = x_208;
{
x_191 = x_191_phi;
x_190_phi = x_191;
}
continue;
}
return;
}
return;
{
x_191 = x_191_phi;
x_190_phi = x_191;
}
}
if (x_218_phi) {
break;
}
} while (false);
int x_223_phi = 0;
bool x_251_phi = false;
0u;
do {
x_223_phi = 0;
[loop] while (true) {
int x_249 = 0;
int x_241 = 0;
int x_224 = 0;
int x_224_phi = 0;
const int x_223 = x_223_phi;
x_251_phi = false;
if ((x_223 <= 6)) {
} else {
break;
}
const int x_230 = tree[x_223].data;
if ((2 <= x_230)) {
const int x_243_save = x_223;
const int x_244 = tree[x_243_save].leftIndex;
if ((x_244 == -1)) {
tree[x_243_save].leftIndex = 6;
const BST tint_symbol_12 = {2, -1, -1};
tree[6] = tint_symbol_12;
x_251_phi = true;
break;
} else {
x_249 = tree[x_243_save].leftIndex;
x_224_phi = x_249;
{
x_224 = x_224_phi;
x_223_phi = x_224;
}
continue;
}
return;
} else {
const int x_235_save = x_223;
const int x_236 = tree[x_235_save].rightIndex;
if ((x_236 == -1)) {
tree[x_235_save].rightIndex = 6;
const BST tint_symbol_13 = {2, -1, -1};
tree[6] = tint_symbol_13;
x_251_phi = true;
break;
} else {
x_241 = tree[x_235_save].rightIndex;
x_224_phi = x_241;
{
x_224 = x_224_phi;
x_223_phi = x_224;
}
continue;
}
return;
}
return;
{
x_224 = x_224_phi;
x_223_phi = x_224;
}
}
if (x_251_phi) {
break;
}
} while (false);
int x_256_phi = 0;
bool x_284_phi = false;
0u;
do {
x_256_phi = 0;
[loop] while (true) {
int x_282 = 0;
int x_274 = 0;
int x_257 = 0;
int x_257_phi = 0;
const int x_256 = x_256_phi;
x_284_phi = false;
if ((x_256 <= 7)) {
} else {
break;
}
const int x_263 = tree[x_256].data;
if ((6 <= x_263)) {
const int x_276_save = x_256;
const int x_277 = tree[x_276_save].leftIndex;
if ((x_277 == -1)) {
tree[x_276_save].leftIndex = 7;
const BST tint_symbol_14 = {6, -1, -1};
tree[7] = tint_symbol_14;
x_284_phi = true;
break;
} else {
x_282 = tree[x_276_save].leftIndex;
x_257_phi = x_282;
{
x_257 = x_257_phi;
x_256_phi = x_257;
}
continue;
}
return;
} else {
const int x_268_save = x_256;
const int x_269 = tree[x_268_save].rightIndex;
if ((x_269 == -1)) {
tree[x_268_save].rightIndex = 7;
const BST tint_symbol_15 = {6, -1, -1};
tree[7] = tint_symbol_15;
x_284_phi = true;
break;
} else {
x_274 = tree[x_268_save].rightIndex;
x_257_phi = x_274;
{
x_257 = x_257_phi;
x_256_phi = x_257;
}
continue;
}
return;
}
return;
{
x_257 = x_257_phi;
x_256_phi = x_257;
}
}
if (x_284_phi) {
break;
}
} while (false);
int x_289_phi = 0;
bool x_317_phi = false;
0u;
do {
x_289_phi = 0;
[loop] while (true) {
int x_315 = 0;
int x_307 = 0;
int x_290 = 0;
int x_290_phi = 0;
const int x_289 = x_289_phi;
x_317_phi = false;
if ((x_289 <= 8)) {
} else {
break;
}
const int x_296 = tree[x_289].data;
if ((17 <= x_296)) {
const int x_309_save = x_289;
const int x_310 = tree[x_309_save].leftIndex;
if ((x_310 == -1)) {
tree[x_309_save].leftIndex = 8;
const BST tint_symbol_16 = {17, -1, -1};
tree[8] = tint_symbol_16;
x_317_phi = true;
break;
} else {
x_315 = tree[x_309_save].leftIndex;
x_290_phi = x_315;
{
x_290 = x_290_phi;
x_289_phi = x_290;
}
continue;
}
return;
} else {
const int x_301_save = x_289;
const int x_302 = tree[x_301_save].rightIndex;
if ((x_302 == -1)) {
tree[x_301_save].rightIndex = 8;
const BST tint_symbol_17 = {17, -1, -1};
tree[8] = tint_symbol_17;
x_317_phi = true;
break;
} else {
x_307 = tree[x_301_save].rightIndex;
x_290_phi = x_307;
{
x_290 = x_290_phi;
x_289_phi = x_290;
}
continue;
}
return;
}
return;
{
x_290 = x_290_phi;
x_289_phi = x_290;
}
}
if (x_317_phi) {
break;
}
} while (false);
int x_322_phi = 0;
bool x_350_phi = false;
0u;
do {
x_322_phi = 0;
[loop] while (true) {
int x_348 = 0;
int x_340 = 0;
int x_323 = 0;
int x_323_phi = 0;
const int x_322 = x_322_phi;
x_350_phi = false;
if ((x_322 <= 9)) {
} else {
break;
}
const int x_329 = tree[x_322].data;
if ((13 <= x_329)) {
const int x_342_save = x_322;
const int x_343 = tree[x_342_save].leftIndex;
if ((x_343 == -1)) {
tree[x_342_save].leftIndex = 9;
const BST tint_symbol_18 = {13, -1, -1};
tree[9] = tint_symbol_18;
x_350_phi = true;
break;
} else {
x_348 = tree[x_342_save].leftIndex;
x_323_phi = x_348;
{
x_323 = x_323_phi;
x_322_phi = x_323;
}
continue;
}
return;
} else {
const int x_334_save = x_322;
const int x_335 = tree[x_334_save].rightIndex;
if ((x_335 == -1)) {
tree[x_334_save].rightIndex = 9;
const BST tint_symbol_19 = {13, -1, -1};
tree[9] = tint_symbol_19;
x_350_phi = true;
break;
} else {
x_340 = tree[x_334_save].rightIndex;
x_323_phi = x_340;
{
x_323 = x_323_phi;
x_322_phi = x_323;
}
continue;
}
return;
}
return;
{
x_323 = x_323_phi;
x_322_phi = x_323;
}
}
if (x_350_phi) {
break;
}
} while (false);
x_353_phi = 0;
x_356_phi = 0;
x_358_phi = 0;
[loop] while (true) {
int x_381 = 0;
int x_391 = 0;
int x_396 = 0;
int x_359 = 0;
int x_354_phi = 0;
int x_357_phi = 0;
const int x_353 = x_353_phi;
x_356 = x_356_phi;
const int x_358 = x_358_phi;
if ((x_358 < 20)) {
} else {
break;
}
int x_366_phi = 0;
int x_381_phi = 0;
bool x_382_phi = false;
0u;
do {
x_366_phi = 0;
[loop] while (true) {
const int x_366 = x_366_phi;
x_381_phi = x_353;
x_382_phi = false;
if ((x_366 != -1)) {
} else {
break;
}
const BST x_373 = tree[x_366];
const int x_374 = x_373.data;
const int x_375 = x_373.leftIndex;
const int x_376 = x_373.rightIndex;
if ((x_374 == x_358)) {
x_381_phi = x_358;
x_382_phi = true;
break;
}
{
x_366_phi = ((x_358 > x_374) ? x_376 : x_375);
}
}
x_381 = x_381_phi;
const bool x_382 = x_382_phi;
x_354_phi = x_381;
if (x_382) {
break;
}
x_354_phi = -1;
} while (false);
int x_354 = 0;
int x_390 = 0;
int x_395 = 0;
int x_391_phi = 0;
int x_396_phi = 0;
x_354 = x_354_phi;
switch(x_358) {
case 2:
case 5:
case 6:
case 7:
case 8:
case 9:
case 12:
case 13:
case 15:
case 17: {
x_391_phi = x_356;
if ((x_354 == asint(x_358))) {
x_390 = asint((x_356 + asint(1)));
x_391_phi = x_390;
}
x_391 = x_391_phi;
x_357_phi = x_391;
break;
}
default: {
x_396_phi = x_356;
if ((x_354 == asint(-1))) {
x_395 = asint((x_356 + asint(1)));
x_396_phi = x_395;
}
x_396 = x_396_phi;
x_357_phi = x_396;
break;
}
}
const int x_357 = x_357_phi;
{
x_359 = (x_358 + 1);
x_353_phi = x_354;
x_356_phi = x_357;
x_358_phi = x_359;
}
}
if ((x_356 == asint(20))) {
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
} else {
x_GLF_color = float4(0.0f, 0.0f, 1.0f, 1.0f);
}
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_20 = {x_GLF_color};
return tint_symbol_20;
}
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;
}
C:\src\tint\test\Shader@0x000001F23007A140(82,5-17): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
C:\src\tint\test\Shader@0x000001F23007A140(22,12-23): warning X3557: loop only executes for 0 iteration(s), consider removing [loop]
C:\src\tint\test\Shader@0x000001F23007A140(148,5-17): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
C:\src\tint\test\Shader@0x000001F23007A140(214,5-17): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
C:\src\tint\test\Shader@0x000001F23007A140(280,5-17): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
C:\src\tint\test\Shader@0x000001F23007A140(346,5-17): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
C:\src\tint\test\Shader@0x000001F23007A140(412,5-17): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
C:\src\tint\test\Shader@0x000001F23007A140(478,5-17): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
C:\src\tint\test\Shader@0x000001F23007A140(544,5-17): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
C:\src\tint\test\Shader@0x000001F23007A140(610,5-17): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
C:\src\tint\test\Shader@0x000001F23007A140(662,7-19): warning X3557: loop only executes for 1 iteration(s), forcing loop to unroll
internal error: compilation aborted unexpectedly

View File

@ -0,0 +1,246 @@
SKIP: FAILED
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
struct BST {
int data;
int leftIndex;
int rightIndex;
};
static BST tree_1[10] = (BST[10])0;
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void makeTreeNode_struct_BST_i1_i1_i11_i1_(inout BST tree, inout int data) {
const int x_158 = data;
tree.data = x_158;
tree.leftIndex = -1;
tree.rightIndex = -1;
return;
}
void insert_i1_i1_(inout int treeIndex, inout int data_1) {
int baseIndex = 0;
BST param = (BST)0;
int param_1 = 0;
BST param_2 = (BST)0;
int param_3 = 0;
baseIndex = 0;
[loop] while (true) {
const int x_167 = baseIndex;
const int x_168 = treeIndex;
if ((x_167 <= x_168)) {
} else {
break;
}
const int x_171 = data_1;
const int x_174 = tree_1[baseIndex].data;
if ((x_171 <= x_174)) {
const int x_181 = tree_1[baseIndex].leftIndex;
if ((x_181 == -1)) {
const int x_186 = baseIndex;
const int x_187 = treeIndex;
tree_1[x_186].leftIndex = x_187;
const int x_189 = treeIndex;
const BST x_191 = tree_1[x_189];
param = x_191;
const int x_192 = data_1;
param_1 = x_192;
makeTreeNode_struct_BST_i1_i1_i11_i1_(param, param_1);
tree_1[x_189] = param;
return;
} else {
const int x_198 = tree_1[baseIndex].leftIndex;
baseIndex = x_198;
continue;
}
return;
} else {
const int x_201 = tree_1[baseIndex].rightIndex;
if ((x_201 == -1)) {
const int x_206 = baseIndex;
const int x_207 = treeIndex;
tree_1[x_206].rightIndex = x_207;
const int x_209 = treeIndex;
const BST x_211 = tree_1[x_209];
param_2 = x_211;
const int x_212 = data_1;
param_3 = x_212;
makeTreeNode_struct_BST_i1_i1_i11_i1_(param_2, param_3);
tree_1[x_209] = param_2;
return;
} else {
const int x_218 = tree_1[baseIndex].rightIndex;
baseIndex = x_218;
continue;
}
return;
}
return;
}
return;
}
int search_i1_(inout int target) {
int index = 0;
BST currentNode = (BST)0;
int x_220 = 0;
index = 0;
[loop] while (true) {
if ((index != -1)) {
} else {
break;
}
const BST x_230 = tree_1[index];
currentNode = x_230;
const int x_232 = currentNode.data;
const int x_233 = target;
if ((x_232 == x_233)) {
const int x_237 = target;
return x_237;
}
const int x_238 = target;
const int x_240 = currentNode.data;
if ((x_238 > x_240)) {
const int x_246 = currentNode.rightIndex;
x_220 = x_246;
} else {
const int x_248 = currentNode.leftIndex;
x_220 = x_248;
}
index = x_220;
}
return -1;
}
void main_1() {
int treeIndex_1 = 0;
BST param_4 = (BST)0;
int param_5 = 0;
int param_6 = 0;
int param_7 = 0;
int param_8 = 0;
int param_9 = 0;
int param_10 = 0;
int param_11 = 0;
int param_12 = 0;
int param_13 = 0;
int param_14 = 0;
int param_15 = 0;
int param_16 = 0;
int param_17 = 0;
int param_18 = 0;
int param_19 = 0;
int param_20 = 0;
int param_21 = 0;
int param_22 = 0;
int param_23 = 0;
int count = 0;
int i = 0;
int result = 0;
int param_24 = 0;
treeIndex_1 = 0;
const BST x_84 = tree_1[0];
param_4 = x_84;
param_5 = 9;
makeTreeNode_struct_BST_i1_i1_i11_i1_(param_4, param_5);
tree_1[0] = param_4;
treeIndex_1 = (treeIndex_1 + 1);
param_6 = treeIndex_1;
param_7 = 5;
insert_i1_i1_(param_6, param_7);
treeIndex_1 = (treeIndex_1 + 1);
param_8 = treeIndex_1;
param_9 = 12;
insert_i1_i1_(param_8, param_9);
treeIndex_1 = (treeIndex_1 + 1);
param_10 = treeIndex_1;
param_11 = 15;
insert_i1_i1_(param_10, param_11);
treeIndex_1 = (treeIndex_1 + 1);
param_12 = treeIndex_1;
param_13 = 7;
insert_i1_i1_(param_12, param_13);
treeIndex_1 = (treeIndex_1 + 1);
param_14 = treeIndex_1;
param_15 = 8;
insert_i1_i1_(param_14, param_15);
treeIndex_1 = (treeIndex_1 + 1);
param_16 = treeIndex_1;
param_17 = 2;
insert_i1_i1_(param_16, param_17);
treeIndex_1 = (treeIndex_1 + 1);
param_18 = treeIndex_1;
param_19 = 6;
insert_i1_i1_(param_18, param_19);
treeIndex_1 = (treeIndex_1 + 1);
param_20 = treeIndex_1;
param_21 = 17;
insert_i1_i1_(param_20, param_21);
treeIndex_1 = (treeIndex_1 + 1);
param_22 = treeIndex_1;
param_23 = 13;
insert_i1_i1_(param_22, param_23);
count = 0;
i = 0;
{
[loop] for(; (i < 20); i = (i + 1)) {
param_24 = i;
const int x_132 = search_i1_(param_24);
result = x_132;
switch(i) {
case 2:
case 5:
case 6:
case 7:
case 8:
case 9:
case 12:
case 13:
case 15:
case 17: {
if ((result == i)) {
count = (count + 1);
}
break;
}
default: {
if ((result == -1)) {
count = (count + 1);
}
break;
}
}
}
}
if ((count == 20)) {
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
} else {
x_GLF_color = float4(0.0f, 0.0f, 1.0f, 1.0f);
}
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_1 = {x_GLF_color};
return tint_symbol_1;
}
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;
}
C:\src\tint\test\Shader@0x000002912962B080(25,10-21): warning X3557: loop only executes for 0 iteration(s), consider removing [loop]
internal error: compilation aborted unexpectedly

View File

@ -0,0 +1,255 @@
SKIP: FAILED
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/0.wgsl:58:7 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/0.wgsl:81:7 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/0.wgsl:83:5 warning: code is unreachable
return;
^^^^^^
struct BST {
int data;
int leftIndex;
int rightIndex;
};
static BST tree_1[10] = (BST[10])0;
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void makeTreeNode_struct_BST_i1_i1_i11_i1_(inout BST tree, inout int data) {
const int x_158 = data;
tree.data = x_158;
tree.leftIndex = -1;
tree.rightIndex = -1;
return;
}
void insert_i1_i1_(inout int treeIndex, inout int data_1) {
int baseIndex = 0;
BST param = (BST)0;
int param_1 = 0;
BST param_2 = (BST)0;
int param_3 = 0;
baseIndex = 0;
[loop] while (true) {
const int x_167 = baseIndex;
const int x_168 = treeIndex;
if ((x_167 <= x_168)) {
} else {
break;
}
const int x_171 = data_1;
const int x_174 = tree_1[baseIndex].data;
if ((x_171 <= x_174)) {
const int x_181 = tree_1[baseIndex].leftIndex;
if ((x_181 == -1)) {
const int x_186 = baseIndex;
const int x_187 = treeIndex;
tree_1[x_186].leftIndex = x_187;
const int x_189 = treeIndex;
const BST x_191 = tree_1[x_189];
param = x_191;
const int x_192 = data_1;
param_1 = x_192;
makeTreeNode_struct_BST_i1_i1_i11_i1_(param, param_1);
tree_1[x_189] = param;
return;
} else {
const int x_198 = tree_1[baseIndex].leftIndex;
baseIndex = x_198;
continue;
}
return;
} else {
const int x_201 = tree_1[baseIndex].rightIndex;
if ((x_201 == -1)) {
const int x_206 = baseIndex;
const int x_207 = treeIndex;
tree_1[x_206].rightIndex = x_207;
const int x_209 = treeIndex;
const BST x_211 = tree_1[x_209];
param_2 = x_211;
const int x_212 = data_1;
param_3 = x_212;
makeTreeNode_struct_BST_i1_i1_i11_i1_(param_2, param_3);
tree_1[x_209] = param_2;
return;
} else {
const int x_218 = tree_1[baseIndex].rightIndex;
baseIndex = x_218;
continue;
}
return;
}
return;
}
return;
}
int search_i1_(inout int target) {
int index = 0;
BST currentNode = (BST)0;
int x_220 = 0;
index = 0;
[loop] while (true) {
if ((index != -1)) {
} else {
break;
}
const BST x_230 = tree_1[index];
currentNode = x_230;
const int x_232 = currentNode.data;
const int x_233 = target;
if ((x_232 == x_233)) {
const int x_237 = target;
return x_237;
}
const int x_238 = target;
const int x_240 = currentNode.data;
if ((x_238 > x_240)) {
const int x_246 = currentNode.rightIndex;
x_220 = x_246;
} else {
const int x_248 = currentNode.leftIndex;
x_220 = x_248;
}
index = x_220;
}
return -1;
}
void main_1() {
int treeIndex_1 = 0;
BST param_4 = (BST)0;
int param_5 = 0;
int param_6 = 0;
int param_7 = 0;
int param_8 = 0;
int param_9 = 0;
int param_10 = 0;
int param_11 = 0;
int param_12 = 0;
int param_13 = 0;
int param_14 = 0;
int param_15 = 0;
int param_16 = 0;
int param_17 = 0;
int param_18 = 0;
int param_19 = 0;
int param_20 = 0;
int param_21 = 0;
int param_22 = 0;
int param_23 = 0;
int count = 0;
int i = 0;
int result = 0;
int param_24 = 0;
treeIndex_1 = 0;
const BST x_84 = tree_1[0];
param_4 = x_84;
param_5 = 9;
makeTreeNode_struct_BST_i1_i1_i11_i1_(param_4, param_5);
tree_1[0] = param_4;
treeIndex_1 = (treeIndex_1 + 1);
param_6 = treeIndex_1;
param_7 = 5;
insert_i1_i1_(param_6, param_7);
treeIndex_1 = (treeIndex_1 + 1);
param_8 = treeIndex_1;
param_9 = 12;
insert_i1_i1_(param_8, param_9);
treeIndex_1 = (treeIndex_1 + 1);
param_10 = treeIndex_1;
param_11 = 15;
insert_i1_i1_(param_10, param_11);
treeIndex_1 = (treeIndex_1 + 1);
param_12 = treeIndex_1;
param_13 = 7;
insert_i1_i1_(param_12, param_13);
treeIndex_1 = (treeIndex_1 + 1);
param_14 = treeIndex_1;
param_15 = 8;
insert_i1_i1_(param_14, param_15);
treeIndex_1 = (treeIndex_1 + 1);
param_16 = treeIndex_1;
param_17 = 2;
insert_i1_i1_(param_16, param_17);
treeIndex_1 = (treeIndex_1 + 1);
param_18 = treeIndex_1;
param_19 = 6;
insert_i1_i1_(param_18, param_19);
treeIndex_1 = (treeIndex_1 + 1);
param_20 = treeIndex_1;
param_21 = 17;
insert_i1_i1_(param_20, param_21);
treeIndex_1 = (treeIndex_1 + 1);
param_22 = treeIndex_1;
param_23 = 13;
insert_i1_i1_(param_22, param_23);
count = 0;
i = 0;
{
[loop] for(; (i < 20); i = (i + 1)) {
param_24 = i;
const int x_132 = search_i1_(param_24);
result = x_132;
switch(i) {
case 2:
case 5:
case 6:
case 7:
case 8:
case 9:
case 12:
case 13:
case 15:
case 17: {
if ((result == i)) {
count = (count + 1);
}
break;
}
default: {
if ((result == -1)) {
count = (count + 1);
}
break;
}
}
}
}
if ((count == 20)) {
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
} else {
x_GLF_color = float4(0.0f, 0.0f, 1.0f, 1.0f);
}
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_1 = {x_GLF_color};
return tint_symbol_1;
}
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;
}
C:\src\tint\test\Shader@0x000001CA0D820F20(25,10-21): warning X3557: loop only executes for 0 iteration(s), consider removing [loop]
internal error: compilation aborted unexpectedly

View File

@ -0,0 +1,260 @@
SKIP: FAILED
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
struct BST {
int data;
int leftIndex;
int rightIndex;
};
static BST tree_1[10] = (BST[10])0;
static float4 gl_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void makeTreeNode_struct_BST_i1_i1_i11_i1_(inout BST tree, inout int data) {
const int x_169 = data;
tree.data = x_169;
tree.leftIndex = -1;
tree.rightIndex = -1;
return;
}
void insert_i1_i1_(inout int treeIndex, inout int data_1) {
int baseIndex = 0;
BST param = (BST)0;
int param_1 = 0;
BST param_2 = (BST)0;
int param_3 = 0;
baseIndex = 0;
[loop] while (true) {
const int x_178 = baseIndex;
const int x_179 = treeIndex;
if ((x_178 <= x_179)) {
} else {
break;
}
const int x_182 = data_1;
const int x_185 = tree_1[baseIndex].data;
if ((x_182 <= x_185)) {
const int x_192 = tree_1[baseIndex].leftIndex;
if ((x_192 == -1)) {
const int x_197 = baseIndex;
const int x_198 = treeIndex;
tree_1[x_197].leftIndex = x_198;
const int x_200 = treeIndex;
const BST x_202 = tree_1[x_200];
param = x_202;
const int x_203 = data_1;
param_1 = x_203;
makeTreeNode_struct_BST_i1_i1_i11_i1_(param, param_1);
tree_1[x_200] = param;
return;
} else {
const int x_209 = tree_1[baseIndex].leftIndex;
baseIndex = x_209;
continue;
}
return;
} else {
const int x_212 = tree_1[baseIndex].rightIndex;
if ((x_212 == -1)) {
const int x_217 = baseIndex;
const int x_218 = treeIndex;
tree_1[x_217].rightIndex = x_218;
const int x_220 = treeIndex;
const BST x_222 = tree_1[x_220];
param_2 = x_222;
const int x_223 = data_1;
param_3 = x_223;
makeTreeNode_struct_BST_i1_i1_i11_i1_(param_2, param_3);
tree_1[x_220] = param_2;
return;
} else {
const int x_229 = tree_1[baseIndex].rightIndex;
baseIndex = x_229;
continue;
}
return;
}
return;
}
return;
}
int search_i1_(inout int target) {
int index = 0;
BST currentNode = (BST)0;
int x_231 = 0;
index = 0;
[loop] while (true) {
if ((index != -1)) {
} else {
break;
}
const BST x_241 = tree_1[index];
currentNode = x_241;
const int x_243 = currentNode.data;
const int x_244 = target;
if ((x_243 == x_244)) {
const int x_248 = target;
return x_248;
}
const int x_249 = target;
const int x_251 = currentNode.data;
if ((x_249 > x_251)) {
const int x_257 = currentNode.rightIndex;
x_231 = x_257;
} else {
const int x_259 = currentNode.leftIndex;
x_231 = x_259;
}
index = x_231;
}
return -1;
}
void main_1() {
int treeIndex_1 = 0;
BST param_4 = (BST)0;
int param_5 = 0;
int param_6 = 0;
int param_7 = 0;
int param_8 = 0;
int param_9 = 0;
int param_10 = 0;
int param_11 = 0;
int param_12 = 0;
int param_13 = 0;
int param_14 = 0;
int param_15 = 0;
int param_16 = 0;
int param_17 = 0;
int param_18 = 0;
int param_19 = 0;
int param_20 = 0;
int param_21 = 0;
int param_22 = 0;
int param_23 = 0;
int count = 0;
int i = 0;
int result = 0;
int param_24 = 0;
treeIndex_1 = 0;
const BST x_88 = tree_1[0];
param_4 = x_88;
param_5 = 9;
makeTreeNode_struct_BST_i1_i1_i11_i1_(param_4, param_5);
tree_1[0] = param_4;
treeIndex_1 = (treeIndex_1 + 1);
param_6 = treeIndex_1;
param_7 = 5;
insert_i1_i1_(param_6, param_7);
treeIndex_1 = (treeIndex_1 + 1);
param_8 = treeIndex_1;
param_9 = 12;
insert_i1_i1_(param_8, param_9);
treeIndex_1 = (treeIndex_1 + 1);
param_10 = treeIndex_1;
param_11 = 15;
insert_i1_i1_(param_10, param_11);
treeIndex_1 = (treeIndex_1 + 1);
param_12 = treeIndex_1;
param_13 = 7;
insert_i1_i1_(param_12, param_13);
treeIndex_1 = (treeIndex_1 + 1);
param_14 = treeIndex_1;
param_15 = 8;
insert_i1_i1_(param_14, param_15);
treeIndex_1 = (treeIndex_1 + 1);
param_16 = treeIndex_1;
param_17 = 2;
insert_i1_i1_(param_16, param_17);
treeIndex_1 = (treeIndex_1 + 1);
param_18 = treeIndex_1;
param_19 = 6;
insert_i1_i1_(param_18, param_19);
treeIndex_1 = (treeIndex_1 + 1);
param_20 = treeIndex_1;
param_21 = 17;
insert_i1_i1_(param_20, param_21);
treeIndex_1 = (treeIndex_1 + 1);
param_22 = treeIndex_1;
param_23 = 13;
insert_i1_i1_(param_22, param_23);
count = 0;
i = 0;
{
[loop] for(; (i < 20); i = (i + 1)) {
bool x_155 = false;
bool x_156_phi = false;
param_24 = i;
const int x_136 = search_i1_(param_24);
result = x_136;
switch(i) {
case 2:
case 5:
case 6:
case 7:
case 8:
case 9:
case 12:
case 13:
case 15:
case 17: {
const bool x_149 = (result == i);
x_156_phi = x_149;
if (!(x_149)) {
const float x_154 = gl_FragCoord.x;
x_155 = (x_154 < 0.0f);
x_156_phi = x_155;
}
if (x_156_phi) {
count = (count + 1);
}
break;
}
default: {
if ((result == -1)) {
count = (count + 1);
}
break;
}
}
}
}
if ((count == 20)) {
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
} else {
x_GLF_color = float4(0.0f, 0.0f, 1.0f, 1.0f);
}
return;
}
struct main_out {
float4 x_GLF_color_1;
};
struct tint_symbol_1 {
float4 gl_FragCoord_param : SV_Position;
};
struct tint_symbol_2 {
float4 x_GLF_color_1 : SV_Target0;
};
main_out main_inner(float4 gl_FragCoord_param) {
gl_FragCoord = gl_FragCoord_param;
main_1();
const main_out tint_symbol_3 = {x_GLF_color};
return tint_symbol_3;
}
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const main_out inner_result = main_inner(tint_symbol.gl_FragCoord_param);
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
return wrapper_result;
}
C:\src\tint\test\Shader@0x000002A8C1306820(26,10-21): warning X3557: loop only executes for 0 iteration(s), consider removing [loop]
internal error: compilation aborted unexpectedly

View File

@ -0,0 +1,269 @@
SKIP: FAILED
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/1.wgsl:60:7 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/1.wgsl:83:7 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-fragcoord-less-than-zero/1.wgsl:85:5 warning: code is unreachable
return;
^^^^^^
struct BST {
int data;
int leftIndex;
int rightIndex;
};
static BST tree_1[10] = (BST[10])0;
static float4 gl_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void makeTreeNode_struct_BST_i1_i1_i11_i1_(inout BST tree, inout int data) {
const int x_169 = data;
tree.data = x_169;
tree.leftIndex = -1;
tree.rightIndex = -1;
return;
}
void insert_i1_i1_(inout int treeIndex, inout int data_1) {
int baseIndex = 0;
BST param = (BST)0;
int param_1 = 0;
BST param_2 = (BST)0;
int param_3 = 0;
baseIndex = 0;
[loop] while (true) {
const int x_178 = baseIndex;
const int x_179 = treeIndex;
if ((x_178 <= x_179)) {
} else {
break;
}
const int x_182 = data_1;
const int x_185 = tree_1[baseIndex].data;
if ((x_182 <= x_185)) {
const int x_192 = tree_1[baseIndex].leftIndex;
if ((x_192 == -1)) {
const int x_197 = baseIndex;
const int x_198 = treeIndex;
tree_1[x_197].leftIndex = x_198;
const int x_200 = treeIndex;
const BST x_202 = tree_1[x_200];
param = x_202;
const int x_203 = data_1;
param_1 = x_203;
makeTreeNode_struct_BST_i1_i1_i11_i1_(param, param_1);
tree_1[x_200] = param;
return;
} else {
const int x_209 = tree_1[baseIndex].leftIndex;
baseIndex = x_209;
continue;
}
return;
} else {
const int x_212 = tree_1[baseIndex].rightIndex;
if ((x_212 == -1)) {
const int x_217 = baseIndex;
const int x_218 = treeIndex;
tree_1[x_217].rightIndex = x_218;
const int x_220 = treeIndex;
const BST x_222 = tree_1[x_220];
param_2 = x_222;
const int x_223 = data_1;
param_3 = x_223;
makeTreeNode_struct_BST_i1_i1_i11_i1_(param_2, param_3);
tree_1[x_220] = param_2;
return;
} else {
const int x_229 = tree_1[baseIndex].rightIndex;
baseIndex = x_229;
continue;
}
return;
}
return;
}
return;
}
int search_i1_(inout int target) {
int index = 0;
BST currentNode = (BST)0;
int x_231 = 0;
index = 0;
[loop] while (true) {
if ((index != -1)) {
} else {
break;
}
const BST x_241 = tree_1[index];
currentNode = x_241;
const int x_243 = currentNode.data;
const int x_244 = target;
if ((x_243 == x_244)) {
const int x_248 = target;
return x_248;
}
const int x_249 = target;
const int x_251 = currentNode.data;
if ((x_249 > x_251)) {
const int x_257 = currentNode.rightIndex;
x_231 = x_257;
} else {
const int x_259 = currentNode.leftIndex;
x_231 = x_259;
}
index = x_231;
}
return -1;
}
void main_1() {
int treeIndex_1 = 0;
BST param_4 = (BST)0;
int param_5 = 0;
int param_6 = 0;
int param_7 = 0;
int param_8 = 0;
int param_9 = 0;
int param_10 = 0;
int param_11 = 0;
int param_12 = 0;
int param_13 = 0;
int param_14 = 0;
int param_15 = 0;
int param_16 = 0;
int param_17 = 0;
int param_18 = 0;
int param_19 = 0;
int param_20 = 0;
int param_21 = 0;
int param_22 = 0;
int param_23 = 0;
int count = 0;
int i = 0;
int result = 0;
int param_24 = 0;
treeIndex_1 = 0;
const BST x_88 = tree_1[0];
param_4 = x_88;
param_5 = 9;
makeTreeNode_struct_BST_i1_i1_i11_i1_(param_4, param_5);
tree_1[0] = param_4;
treeIndex_1 = (treeIndex_1 + 1);
param_6 = treeIndex_1;
param_7 = 5;
insert_i1_i1_(param_6, param_7);
treeIndex_1 = (treeIndex_1 + 1);
param_8 = treeIndex_1;
param_9 = 12;
insert_i1_i1_(param_8, param_9);
treeIndex_1 = (treeIndex_1 + 1);
param_10 = treeIndex_1;
param_11 = 15;
insert_i1_i1_(param_10, param_11);
treeIndex_1 = (treeIndex_1 + 1);
param_12 = treeIndex_1;
param_13 = 7;
insert_i1_i1_(param_12, param_13);
treeIndex_1 = (treeIndex_1 + 1);
param_14 = treeIndex_1;
param_15 = 8;
insert_i1_i1_(param_14, param_15);
treeIndex_1 = (treeIndex_1 + 1);
param_16 = treeIndex_1;
param_17 = 2;
insert_i1_i1_(param_16, param_17);
treeIndex_1 = (treeIndex_1 + 1);
param_18 = treeIndex_1;
param_19 = 6;
insert_i1_i1_(param_18, param_19);
treeIndex_1 = (treeIndex_1 + 1);
param_20 = treeIndex_1;
param_21 = 17;
insert_i1_i1_(param_20, param_21);
treeIndex_1 = (treeIndex_1 + 1);
param_22 = treeIndex_1;
param_23 = 13;
insert_i1_i1_(param_22, param_23);
count = 0;
i = 0;
{
[loop] for(; (i < 20); i = (i + 1)) {
bool x_155 = false;
bool x_156_phi = false;
param_24 = i;
const int x_136 = search_i1_(param_24);
result = x_136;
switch(i) {
case 2:
case 5:
case 6:
case 7:
case 8:
case 9:
case 12:
case 13:
case 15:
case 17: {
const bool x_149 = (result == i);
x_156_phi = x_149;
if (!(x_149)) {
const float x_154 = gl_FragCoord.x;
x_155 = (x_154 < 0.0f);
x_156_phi = x_155;
}
if (x_156_phi) {
count = (count + 1);
}
break;
}
default: {
if ((result == -1)) {
count = (count + 1);
}
break;
}
}
}
}
if ((count == 20)) {
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
} else {
x_GLF_color = float4(0.0f, 0.0f, 1.0f, 1.0f);
}
return;
}
struct main_out {
float4 x_GLF_color_1;
};
struct tint_symbol_1 {
float4 gl_FragCoord_param : SV_Position;
};
struct tint_symbol_2 {
float4 x_GLF_color_1 : SV_Target0;
};
main_out main_inner(float4 gl_FragCoord_param) {
gl_FragCoord = gl_FragCoord_param;
main_1();
const main_out tint_symbol_3 = {x_GLF_color};
return tint_symbol_3;
}
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const main_out inner_result = main_inner(tint_symbol.gl_FragCoord_param);
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
return wrapper_result;
}
C:\src\tint\test\Shader@0x000001BE36107D80(26,10-21): warning X3557: loop only executes for 0 iteration(s), consider removing [loop]
internal error: compilation aborted unexpectedly

View File

@ -0,0 +1,246 @@
SKIP: FAILED
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
struct BST {
int data;
int leftIndex;
int rightIndex;
};
static BST tree[10] = (BST[10])0;
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void makeTreeNode_struct_BST_i1_i1_i11_i1_(inout BST node, inout int data) {
const int x_158 = data;
node.data = x_158;
node.leftIndex = -1;
node.rightIndex = -1;
return;
}
void insert_i1_i1_(inout int treeIndex, inout int data_1) {
int baseIndex = 0;
BST param = (BST)0;
int param_1 = 0;
BST param_2 = (BST)0;
int param_3 = 0;
baseIndex = 0;
[loop] while (true) {
const int x_167 = baseIndex;
const int x_168 = treeIndex;
if ((x_167 <= x_168)) {
} else {
break;
}
const int x_171 = data_1;
const int x_174 = tree[baseIndex].data;
if ((x_171 <= x_174)) {
const int x_181 = tree[baseIndex].leftIndex;
if ((x_181 == -1)) {
const int x_186 = baseIndex;
const int x_187 = treeIndex;
tree[x_186].leftIndex = x_187;
const int x_189 = treeIndex;
const BST x_191 = tree[x_189];
param = x_191;
const int x_192 = data_1;
param_1 = x_192;
makeTreeNode_struct_BST_i1_i1_i11_i1_(param, param_1);
tree[x_189] = param;
return;
} else {
const int x_198 = tree[baseIndex].leftIndex;
baseIndex = x_198;
continue;
}
return;
} else {
const int x_201 = tree[baseIndex].rightIndex;
if ((x_201 == -1)) {
const int x_206 = baseIndex;
const int x_207 = treeIndex;
tree[x_206].rightIndex = x_207;
const int x_209 = treeIndex;
const BST x_211 = tree[x_209];
param_2 = x_211;
const int x_212 = data_1;
param_3 = x_212;
makeTreeNode_struct_BST_i1_i1_i11_i1_(param_2, param_3);
tree[x_209] = param_2;
return;
} else {
const int x_218 = tree[baseIndex].rightIndex;
baseIndex = x_218;
continue;
}
return;
}
return;
}
return;
}
int search_i1_(inout int target) {
int index = 0;
BST currentNode = (BST)0;
int x_220 = 0;
index = 0;
[loop] while (true) {
if ((index != -1)) {
} else {
break;
}
const BST x_230 = tree[index];
currentNode = x_230;
const int x_232 = currentNode.data;
const int x_233 = target;
if ((x_232 == x_233)) {
const int x_237 = target;
return x_237;
}
const int x_238 = target;
const int x_240 = currentNode.data;
if ((x_238 > x_240)) {
const int x_246 = currentNode.rightIndex;
x_220 = x_246;
} else {
const int x_248 = currentNode.leftIndex;
x_220 = x_248;
}
index = x_220;
}
return -1;
}
void main_1() {
int treeIndex_1 = 0;
BST param_4 = (BST)0;
int param_5 = 0;
int param_6 = 0;
int param_7 = 0;
int param_8 = 0;
int param_9 = 0;
int param_10 = 0;
int param_11 = 0;
int param_12 = 0;
int param_13 = 0;
int param_14 = 0;
int param_15 = 0;
int param_16 = 0;
int param_17 = 0;
int param_18 = 0;
int param_19 = 0;
int param_20 = 0;
int param_21 = 0;
int param_22 = 0;
int param_23 = 0;
int count = 0;
int i = 0;
int result = 0;
int param_24 = 0;
treeIndex_1 = 0;
const BST x_84 = tree[0];
param_4 = x_84;
param_5 = 9;
makeTreeNode_struct_BST_i1_i1_i11_i1_(param_4, param_5);
tree[0] = param_4;
treeIndex_1 = (treeIndex_1 + 1);
param_6 = treeIndex_1;
param_7 = 5;
insert_i1_i1_(param_6, param_7);
treeIndex_1 = (treeIndex_1 + 1);
param_8 = treeIndex_1;
param_9 = 12;
insert_i1_i1_(param_8, param_9);
treeIndex_1 = (treeIndex_1 + 1);
param_10 = treeIndex_1;
param_11 = 15;
insert_i1_i1_(param_10, param_11);
treeIndex_1 = (treeIndex_1 + 1);
param_12 = treeIndex_1;
param_13 = 7;
insert_i1_i1_(param_12, param_13);
treeIndex_1 = (treeIndex_1 + 1);
param_14 = treeIndex_1;
param_15 = 8;
insert_i1_i1_(param_14, param_15);
treeIndex_1 = (treeIndex_1 + 1);
param_16 = treeIndex_1;
param_17 = 2;
insert_i1_i1_(param_16, param_17);
treeIndex_1 = (treeIndex_1 + 1);
param_18 = treeIndex_1;
param_19 = 6;
insert_i1_i1_(param_18, param_19);
treeIndex_1 = (treeIndex_1 + 1);
param_20 = treeIndex_1;
param_21 = 17;
insert_i1_i1_(param_20, param_21);
treeIndex_1 = (treeIndex_1 + 1);
param_22 = treeIndex_1;
param_23 = 13;
insert_i1_i1_(param_22, param_23);
count = 0;
i = 0;
{
[loop] for(; (i < 20); i = (i + 1)) {
param_24 = i;
const int x_132 = search_i1_(param_24);
result = x_132;
switch(i) {
case 2:
case 5:
case 6:
case 7:
case 8:
case 9:
case 12:
case 13:
case 15:
case 17: {
if ((result == i)) {
count = (count + 1);
}
break;
}
default: {
if ((result == -1)) {
count = (count + 1);
}
break;
}
}
}
}
if ((count == 20)) {
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
} else {
x_GLF_color = float4(0.0f, 0.0f, 1.0f, 1.0f);
}
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_1 = {x_GLF_color};
return tint_symbol_1;
}
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;
}
C:\src\tint\test\Shader@0x0000025CD445EF60(25,10-21): warning X3557: loop only executes for 0 iteration(s), consider removing [loop]
internal error: compilation aborted unexpectedly

View File

@ -0,0 +1,255 @@
SKIP: FAILED
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/0-opt.wgsl:58:7 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/0-opt.wgsl:81:7 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/0-opt.wgsl:83:5 warning: code is unreachable
return;
^^^^^^
struct BST {
int data;
int leftIndex;
int rightIndex;
};
static BST tree[10] = (BST[10])0;
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void makeTreeNode_struct_BST_i1_i1_i11_i1_(inout BST node, inout int data) {
const int x_158 = data;
node.data = x_158;
node.leftIndex = -1;
node.rightIndex = -1;
return;
}
void insert_i1_i1_(inout int treeIndex, inout int data_1) {
int baseIndex = 0;
BST param = (BST)0;
int param_1 = 0;
BST param_2 = (BST)0;
int param_3 = 0;
baseIndex = 0;
[loop] while (true) {
const int x_167 = baseIndex;
const int x_168 = treeIndex;
if ((x_167 <= x_168)) {
} else {
break;
}
const int x_171 = data_1;
const int x_174 = tree[baseIndex].data;
if ((x_171 <= x_174)) {
const int x_181 = tree[baseIndex].leftIndex;
if ((x_181 == -1)) {
const int x_186 = baseIndex;
const int x_187 = treeIndex;
tree[x_186].leftIndex = x_187;
const int x_189 = treeIndex;
const BST x_191 = tree[x_189];
param = x_191;
const int x_192 = data_1;
param_1 = x_192;
makeTreeNode_struct_BST_i1_i1_i11_i1_(param, param_1);
tree[x_189] = param;
return;
} else {
const int x_198 = tree[baseIndex].leftIndex;
baseIndex = x_198;
continue;
}
return;
} else {
const int x_201 = tree[baseIndex].rightIndex;
if ((x_201 == -1)) {
const int x_206 = baseIndex;
const int x_207 = treeIndex;
tree[x_206].rightIndex = x_207;
const int x_209 = treeIndex;
const BST x_211 = tree[x_209];
param_2 = x_211;
const int x_212 = data_1;
param_3 = x_212;
makeTreeNode_struct_BST_i1_i1_i11_i1_(param_2, param_3);
tree[x_209] = param_2;
return;
} else {
const int x_218 = tree[baseIndex].rightIndex;
baseIndex = x_218;
continue;
}
return;
}
return;
}
return;
}
int search_i1_(inout int target) {
int index = 0;
BST currentNode = (BST)0;
int x_220 = 0;
index = 0;
[loop] while (true) {
if ((index != -1)) {
} else {
break;
}
const BST x_230 = tree[index];
currentNode = x_230;
const int x_232 = currentNode.data;
const int x_233 = target;
if ((x_232 == x_233)) {
const int x_237 = target;
return x_237;
}
const int x_238 = target;
const int x_240 = currentNode.data;
if ((x_238 > x_240)) {
const int x_246 = currentNode.rightIndex;
x_220 = x_246;
} else {
const int x_248 = currentNode.leftIndex;
x_220 = x_248;
}
index = x_220;
}
return -1;
}
void main_1() {
int treeIndex_1 = 0;
BST param_4 = (BST)0;
int param_5 = 0;
int param_6 = 0;
int param_7 = 0;
int param_8 = 0;
int param_9 = 0;
int param_10 = 0;
int param_11 = 0;
int param_12 = 0;
int param_13 = 0;
int param_14 = 0;
int param_15 = 0;
int param_16 = 0;
int param_17 = 0;
int param_18 = 0;
int param_19 = 0;
int param_20 = 0;
int param_21 = 0;
int param_22 = 0;
int param_23 = 0;
int count = 0;
int i = 0;
int result = 0;
int param_24 = 0;
treeIndex_1 = 0;
const BST x_84 = tree[0];
param_4 = x_84;
param_5 = 9;
makeTreeNode_struct_BST_i1_i1_i11_i1_(param_4, param_5);
tree[0] = param_4;
treeIndex_1 = (treeIndex_1 + 1);
param_6 = treeIndex_1;
param_7 = 5;
insert_i1_i1_(param_6, param_7);
treeIndex_1 = (treeIndex_1 + 1);
param_8 = treeIndex_1;
param_9 = 12;
insert_i1_i1_(param_8, param_9);
treeIndex_1 = (treeIndex_1 + 1);
param_10 = treeIndex_1;
param_11 = 15;
insert_i1_i1_(param_10, param_11);
treeIndex_1 = (treeIndex_1 + 1);
param_12 = treeIndex_1;
param_13 = 7;
insert_i1_i1_(param_12, param_13);
treeIndex_1 = (treeIndex_1 + 1);
param_14 = treeIndex_1;
param_15 = 8;
insert_i1_i1_(param_14, param_15);
treeIndex_1 = (treeIndex_1 + 1);
param_16 = treeIndex_1;
param_17 = 2;
insert_i1_i1_(param_16, param_17);
treeIndex_1 = (treeIndex_1 + 1);
param_18 = treeIndex_1;
param_19 = 6;
insert_i1_i1_(param_18, param_19);
treeIndex_1 = (treeIndex_1 + 1);
param_20 = treeIndex_1;
param_21 = 17;
insert_i1_i1_(param_20, param_21);
treeIndex_1 = (treeIndex_1 + 1);
param_22 = treeIndex_1;
param_23 = 13;
insert_i1_i1_(param_22, param_23);
count = 0;
i = 0;
{
[loop] for(; (i < 20); i = (i + 1)) {
param_24 = i;
const int x_132 = search_i1_(param_24);
result = x_132;
switch(i) {
case 2:
case 5:
case 6:
case 7:
case 8:
case 9:
case 12:
case 13:
case 15:
case 17: {
if ((result == i)) {
count = (count + 1);
}
break;
}
default: {
if ((result == -1)) {
count = (count + 1);
}
break;
}
}
}
}
if ((count == 20)) {
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
} else {
x_GLF_color = float4(0.0f, 0.0f, 1.0f, 1.0f);
}
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_1 = {x_GLF_color};
return tint_symbol_1;
}
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;
}
C:\src\tint\test\Shader@0x000001737220A3A0(25,10-21): warning X3557: loop only executes for 0 iteration(s), consider removing [loop]
internal error: compilation aborted unexpectedly

View File

@ -0,0 +1,285 @@
SKIP: FAILED
warning: code is unreachable
warning: code is unreachable
warning: code is unreachable
struct BST {
int data;
int leftIndex;
int rightIndex;
};
struct QuicksortObject {
int numbers[10];
};
static QuicksortObject obj = (QuicksortObject)0;
static BST tree[10] = (BST[10])0;
cbuffer cbuffer_x_50 : register(b0, space0) {
uint4 x_50[1];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void makeTreeNode_struct_BST_i1_i1_i11_i1_(inout BST node, inout int data) {
const int x_208 = data;
node.data = x_208;
node.leftIndex = -1;
node.rightIndex = -1;
return;
}
void insert_i1_i1_(inout int treeIndex, inout int data_1) {
int baseIndex = 0;
BST param = (BST)0;
int param_1 = 0;
BST param_2 = (BST)0;
int param_3 = 0;
baseIndex = 0;
[loop] while (true) {
const int x_217 = baseIndex;
const int x_218 = treeIndex;
if ((x_217 <= x_218)) {
} else {
break;
}
const int x_221 = data_1;
const int x_224 = tree[baseIndex].data;
if ((x_221 <= x_224)) {
const int x_231 = tree[baseIndex].leftIndex;
if ((x_231 == -1)) {
const int x_236 = baseIndex;
const int x_237 = treeIndex;
tree[x_236].leftIndex = x_237;
const int x_239 = treeIndex;
const BST x_241 = tree[x_239];
param = x_241;
const int x_242 = data_1;
param_1 = x_242;
makeTreeNode_struct_BST_i1_i1_i11_i1_(param, param_1);
tree[x_239] = param;
return;
} else {
const int x_248 = tree[baseIndex].leftIndex;
baseIndex = x_248;
continue;
}
return;
} else {
const int x_251 = tree[baseIndex].rightIndex;
if ((x_251 == -1)) {
const int x_256 = baseIndex;
const int x_257 = treeIndex;
tree[x_256].rightIndex = x_257;
const int x_259 = treeIndex;
const BST x_261 = tree[x_259];
param_2 = x_261;
const int x_262 = data_1;
param_3 = x_262;
makeTreeNode_struct_BST_i1_i1_i11_i1_(param_2, param_3);
tree[x_259] = param_2;
return;
} else {
const int x_268 = tree[baseIndex].rightIndex;
baseIndex = x_268;
continue;
}
return;
}
return;
}
return;
}
int identity_i1_(inout int a) {
const int x_202 = a;
const int x_203 = a;
obj.numbers[x_202] = x_203;
const int x_206 = obj.numbers[2];
return x_206;
}
int search_i1_(inout int target) {
int index = 0;
BST currentNode = (BST)0;
int x_270 = 0;
index = 0;
[loop] while (true) {
if ((index != -1)) {
} else {
break;
}
const BST x_280 = tree[index];
currentNode = x_280;
const int x_282 = currentNode.data;
const int x_283 = target;
if ((x_282 == x_283)) {
const int x_287 = target;
return x_287;
}
const int x_288 = target;
const int x_290 = currentNode.data;
if ((x_288 > x_290)) {
const int x_296 = currentNode.rightIndex;
x_270 = x_296;
} else {
const int x_298 = currentNode.leftIndex;
x_270 = x_298;
}
index = x_270;
}
return -1;
}
void main_1() {
int treeIndex_1 = 0;
BST param_4 = (BST)0;
int param_5 = 0;
int param_6 = 0;
int param_7 = 0;
int param_8 = 0;
int param_9 = 0;
int param_10 = 0;
int param_11 = 0;
int param_12 = 0;
int param_13 = 0;
int param_14 = 0;
int param_15 = 0;
int param_16 = 0;
int param_17 = 0;
int param_18 = 0;
int param_19 = 0;
int param_20 = 0;
int param_21 = 0;
int param_22 = 0;
int param_23 = 0;
int pp = 0;
int looplimiter0 = 0;
int i = 0;
int param_24 = 0;
int count = 0;
int i_1 = 0;
int result = 0;
int param_25 = 0;
treeIndex_1 = 0;
const BST x_101 = tree[0];
param_4 = x_101;
param_5 = 9;
makeTreeNode_struct_BST_i1_i1_i11_i1_(param_4, param_5);
tree[0] = param_4;
treeIndex_1 = (treeIndex_1 + 1);
param_6 = treeIndex_1;
param_7 = 5;
insert_i1_i1_(param_6, param_7);
treeIndex_1 = (treeIndex_1 + 1);
param_8 = treeIndex_1;
param_9 = 12;
insert_i1_i1_(param_8, param_9);
treeIndex_1 = (treeIndex_1 + 1);
param_10 = treeIndex_1;
param_11 = 15;
insert_i1_i1_(param_10, param_11);
treeIndex_1 = (treeIndex_1 + 1);
param_12 = treeIndex_1;
param_13 = 7;
insert_i1_i1_(param_12, param_13);
treeIndex_1 = (treeIndex_1 + 1);
param_14 = treeIndex_1;
param_15 = 8;
insert_i1_i1_(param_14, param_15);
treeIndex_1 = (treeIndex_1 + 1);
param_16 = treeIndex_1;
param_17 = 2;
insert_i1_i1_(param_16, param_17);
treeIndex_1 = (treeIndex_1 + 1);
param_18 = treeIndex_1;
param_19 = 6;
insert_i1_i1_(param_18, param_19);
treeIndex_1 = (treeIndex_1 + 1);
param_20 = treeIndex_1;
param_21 = 17;
insert_i1_i1_(param_20, param_21);
treeIndex_1 = (treeIndex_1 + 1);
param_22 = treeIndex_1;
param_23 = 13;
insert_i1_i1_(param_22, param_23);
pp = 0;
looplimiter0 = 0;
i = 0;
{
[loop] for(; (i < 10000); i = (i + 1)) {
const int x_148 = looplimiter0;
const float x_150 = asfloat(x_50[0].y);
if ((x_148 >= int(x_150))) {
const float x_156 = asfloat(x_50[0].y);
param_24 = (1 + int(x_156));
const int x_159 = identity_i1_(param_24);
pp = x_159;
break;
}
looplimiter0 = (looplimiter0 + 1);
}
}
if ((pp != 2)) {
return;
}
count = 0;
i_1 = 0;
{
[loop] for(; (i_1 < 20); i_1 = (i_1 + 1)) {
param_25 = i_1;
const int x_176 = search_i1_(param_25);
result = x_176;
switch(i_1) {
case 2:
case 5:
case 6:
case 7:
case 8:
case 9:
case 12:
case 13:
case 15:
case 17: {
if ((result == i_1)) {
count = (count + 1);
}
break;
}
default: {
if ((result == -1)) {
count = (count + 1);
}
break;
}
}
}
}
if ((count == 20)) {
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
} else {
x_GLF_color = float4(0.0f, 0.0f, 1.0f, 1.0f);
}
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;
}
C:\src\tint\test\Shader@0x000002117DDC0DA0(32,10-21): warning X3557: loop only executes for 0 iteration(s), consider removing [loop]
C:\src\tint\test\Shader@0x000002117DDC0DA0(203,12-42): error X3531: can't unroll loops marked with loop attribute

View File

@ -0,0 +1,294 @@
SKIP: FAILED
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/1.wgsl:71:7 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/1.wgsl:94:7 warning: code is unreachable
return;
^^^^^^
vk-gl-cts/graphicsfuzz/stable-binarysearch-tree-with-loop-read-write-global/1.wgsl:96:5 warning: code is unreachable
return;
^^^^^^
struct BST {
int data;
int leftIndex;
int rightIndex;
};
struct QuicksortObject {
int numbers[10];
};
static QuicksortObject obj = (QuicksortObject)0;
static BST tree[10] = (BST[10])0;
cbuffer cbuffer_x_50 : register(b0, space0) {
uint4 x_50[1];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void makeTreeNode_struct_BST_i1_i1_i11_i1_(inout BST node, inout int data) {
const int x_208 = data;
node.data = x_208;
node.leftIndex = -1;
node.rightIndex = -1;
return;
}
void insert_i1_i1_(inout int treeIndex, inout int data_1) {
int baseIndex = 0;
BST param = (BST)0;
int param_1 = 0;
BST param_2 = (BST)0;
int param_3 = 0;
baseIndex = 0;
[loop] while (true) {
const int x_217 = baseIndex;
const int x_218 = treeIndex;
if ((x_217 <= x_218)) {
} else {
break;
}
const int x_221 = data_1;
const int x_224 = tree[baseIndex].data;
if ((x_221 <= x_224)) {
const int x_231 = tree[baseIndex].leftIndex;
if ((x_231 == -1)) {
const int x_236 = baseIndex;
const int x_237 = treeIndex;
tree[x_236].leftIndex = x_237;
const int x_239 = treeIndex;
const BST x_241 = tree[x_239];
param = x_241;
const int x_242 = data_1;
param_1 = x_242;
makeTreeNode_struct_BST_i1_i1_i11_i1_(param, param_1);
tree[x_239] = param;
return;
} else {
const int x_248 = tree[baseIndex].leftIndex;
baseIndex = x_248;
continue;
}
return;
} else {
const int x_251 = tree[baseIndex].rightIndex;
if ((x_251 == -1)) {
const int x_256 = baseIndex;
const int x_257 = treeIndex;
tree[x_256].rightIndex = x_257;
const int x_259 = treeIndex;
const BST x_261 = tree[x_259];
param_2 = x_261;
const int x_262 = data_1;
param_3 = x_262;
makeTreeNode_struct_BST_i1_i1_i11_i1_(param_2, param_3);
tree[x_259] = param_2;
return;
} else {
const int x_268 = tree[baseIndex].rightIndex;
baseIndex = x_268;
continue;
}
return;
}
return;
}
return;
}
int identity_i1_(inout int a) {
const int x_202 = a;
const int x_203 = a;
obj.numbers[x_202] = x_203;
const int x_206 = obj.numbers[2];
return x_206;
}
int search_i1_(inout int target) {
int index = 0;
BST currentNode = (BST)0;
int x_270 = 0;
index = 0;
[loop] while (true) {
if ((index != -1)) {
} else {
break;
}
const BST x_280 = tree[index];
currentNode = x_280;
const int x_282 = currentNode.data;
const int x_283 = target;
if ((x_282 == x_283)) {
const int x_287 = target;
return x_287;
}
const int x_288 = target;
const int x_290 = currentNode.data;
if ((x_288 > x_290)) {
const int x_296 = currentNode.rightIndex;
x_270 = x_296;
} else {
const int x_298 = currentNode.leftIndex;
x_270 = x_298;
}
index = x_270;
}
return -1;
}
void main_1() {
int treeIndex_1 = 0;
BST param_4 = (BST)0;
int param_5 = 0;
int param_6 = 0;
int param_7 = 0;
int param_8 = 0;
int param_9 = 0;
int param_10 = 0;
int param_11 = 0;
int param_12 = 0;
int param_13 = 0;
int param_14 = 0;
int param_15 = 0;
int param_16 = 0;
int param_17 = 0;
int param_18 = 0;
int param_19 = 0;
int param_20 = 0;
int param_21 = 0;
int param_22 = 0;
int param_23 = 0;
int pp = 0;
int looplimiter0 = 0;
int i = 0;
int param_24 = 0;
int count = 0;
int i_1 = 0;
int result = 0;
int param_25 = 0;
treeIndex_1 = 0;
const BST x_101 = tree[0];
param_4 = x_101;
param_5 = 9;
makeTreeNode_struct_BST_i1_i1_i11_i1_(param_4, param_5);
tree[0] = param_4;
treeIndex_1 = (treeIndex_1 + 1);
param_6 = treeIndex_1;
param_7 = 5;
insert_i1_i1_(param_6, param_7);
treeIndex_1 = (treeIndex_1 + 1);
param_8 = treeIndex_1;
param_9 = 12;
insert_i1_i1_(param_8, param_9);
treeIndex_1 = (treeIndex_1 + 1);
param_10 = treeIndex_1;
param_11 = 15;
insert_i1_i1_(param_10, param_11);
treeIndex_1 = (treeIndex_1 + 1);
param_12 = treeIndex_1;
param_13 = 7;
insert_i1_i1_(param_12, param_13);
treeIndex_1 = (treeIndex_1 + 1);
param_14 = treeIndex_1;
param_15 = 8;
insert_i1_i1_(param_14, param_15);
treeIndex_1 = (treeIndex_1 + 1);
param_16 = treeIndex_1;
param_17 = 2;
insert_i1_i1_(param_16, param_17);
treeIndex_1 = (treeIndex_1 + 1);
param_18 = treeIndex_1;
param_19 = 6;
insert_i1_i1_(param_18, param_19);
treeIndex_1 = (treeIndex_1 + 1);
param_20 = treeIndex_1;
param_21 = 17;
insert_i1_i1_(param_20, param_21);
treeIndex_1 = (treeIndex_1 + 1);
param_22 = treeIndex_1;
param_23 = 13;
insert_i1_i1_(param_22, param_23);
pp = 0;
looplimiter0 = 0;
i = 0;
{
[loop] for(; (i < 10000); i = (i + 1)) {
const int x_148 = looplimiter0;
const float x_150 = asfloat(x_50[0].y);
if ((x_148 >= int(x_150))) {
const float x_156 = asfloat(x_50[0].y);
param_24 = (1 + int(x_156));
const int x_159 = identity_i1_(param_24);
pp = x_159;
break;
}
looplimiter0 = (looplimiter0 + 1);
}
}
if ((pp != 2)) {
return;
}
count = 0;
i_1 = 0;
{
[loop] for(; (i_1 < 20); i_1 = (i_1 + 1)) {
param_25 = i_1;
const int x_176 = search_i1_(param_25);
result = x_176;
switch(i_1) {
case 2:
case 5:
case 6:
case 7:
case 8:
case 9:
case 12:
case 13:
case 15:
case 17: {
if ((result == i_1)) {
count = (count + 1);
}
break;
}
default: {
if ((result == -1)) {
count = (count + 1);
}
break;
}
}
}
}
if ((count == 20)) {
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
} else {
x_GLF_color = float4(0.0f, 0.0f, 1.0f, 1.0f);
}
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;
}
C:\src\tint\test\Shader@0x00000219E1FE81C0(32,10-21): warning X3557: loop only executes for 0 iteration(s), consider removing [loop]
C:\src\tint\test\Shader@0x00000219E1FE81C0(203,12-42): error X3531: can't unroll loops marked with loop attribute

View File

@ -0,0 +1,242 @@
SKIP: FAILED
struct QuicksortObject {
int numbers[10];
};
static QuicksortObject obj = (QuicksortObject)0;
static float4 gl_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
cbuffer cbuffer_x_34 : register(b0, space0) {
uint4 x_34[1];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void swap_i1_i1_(inout int i, inout int j) {
int temp = 0;
const int x_230 = i;
const int x_232 = obj.numbers[x_230];
temp = x_232;
const int x_233 = i;
const int x_234 = j;
const int x_236 = obj.numbers[x_234];
obj.numbers[x_233] = x_236;
const int x_238 = j;
obj.numbers[x_238] = temp;
return;
}
int performPartition_i1_i1_(inout int l, inout int h) {
int pivot = 0;
int i_1 = 0;
int j_1 = 0;
int param = 0;
int param_1 = 0;
int param_2 = 0;
int param_3 = 0;
const int x_242 = h;
const int x_244 = obj.numbers[x_242];
pivot = x_244;
const int x_245 = l;
i_1 = (x_245 - 1);
const int x_247 = l;
j_1 = x_247;
[loop] while (true) {
const int x_252 = j_1;
const int x_253 = h;
if ((x_252 <= (x_253 - 1))) {
} else {
break;
}
const int x_259 = obj.numbers[j_1];
if ((x_259 <= pivot)) {
i_1 = (i_1 + 1);
param = i_1;
param_1 = j_1;
swap_i1_i1_(param, param_1);
}
{
j_1 = (j_1 + 1);
}
}
i_1 = (i_1 + 1);
param_2 = i_1;
const int x_274 = h;
param_3 = x_274;
swap_i1_i1_(param_2, param_3);
return i_1;
}
void quicksort_() {
int l_1 = 0;
int h_1 = 0;
int top = 0;
int stack[10] = (int[10])0;
int int_a = 0;
int x_278 = 0;
int x_279 = 0;
int clamp_a = 0;
int p = 0;
int param_4 = 0;
int param_5 = 0;
l_1 = 0;
h_1 = 9;
top = -1;
const int x_281 = (top + 1);
top = x_281;
stack[x_281] = l_1;
const float x_285 = gl_FragCoord.y;
if ((x_285 >= 0.0f)) {
const int x_290 = h_1;
if (false) {
x_279 = 1;
} else {
x_279 = (h_1 << asuint(0));
}
x_278 = (x_290 | x_279);
} else {
x_278 = 1;
}
int_a = x_278;
clamp_a = clamp(h_1, h_1, int_a);
const int x_304 = (top + 1);
top = x_304;
stack[x_304] = (clamp_a / 1);
[loop] while (true) {
if ((top >= 0)) {
} else {
break;
}
const int x_315 = top;
top = (x_315 - 1);
const int x_318 = stack[x_315];
h_1 = x_318;
const int x_319 = top;
top = (x_319 - 1);
const int x_322 = stack[x_319];
l_1 = x_322;
param_4 = l_1;
param_5 = h_1;
const int x_325 = performPartition_i1_i1_(param_4, param_5);
p = x_325;
if (((p - 1) > l_1)) {
const int x_333 = (top + 1);
top = x_333;
stack[x_333] = l_1;
const int x_337 = (top + 1);
top = x_337;
stack[x_337] = (p - 1);
}
if (((p + 1) < h_1)) {
const int x_348 = (top + 1);
top = x_348;
stack[x_348] = (p + 1);
const int x_353 = (top + 1);
top = x_353;
stack[x_353] = h_1;
}
}
return;
}
void main_1() {
int i_2 = 0;
float2 uv = float2(0.0f, 0.0f);
float3 color = float3(0.0f, 0.0f, 0.0f);
i_2 = 0;
{
[loop] for(; (i_2 < 10); i_2 = (i_2 + 1)) {
obj.numbers[i_2] = (10 - i_2);
const int x_97 = i_2;
const int x_100 = obj.numbers[i_2];
const int x_103 = obj.numbers[i_2];
obj.numbers[x_97] = (x_100 * x_103);
}
}
quicksort_();
const float4 x_109 = gl_FragCoord;
const float2 x_112 = asfloat(x_34[0].xy);
uv = (float2(x_109.x, x_109.y) / x_112);
color = float3(1.0f, 2.0f, 3.0f);
const int x_115 = obj.numbers[0];
const float x_118 = color.x;
color.x = (x_118 + float(x_115));
const float x_122 = uv.x;
if ((x_122 > 0.25f)) {
const int x_127 = obj.numbers[1];
const float x_130 = color.x;
color.x = (x_130 + float(x_127));
}
const float x_134 = uv.x;
if ((x_134 > 0.5f)) {
const int x_139 = obj.numbers[2];
const float x_142 = color.y;
color.y = (x_142 + float(x_139));
}
const float x_146 = uv.x;
if ((x_146 > 0.75f)) {
const int x_151 = obj.numbers[3];
const float x_154 = color.z;
color.z = (x_154 + float(x_151));
}
const int x_158 = obj.numbers[4];
const float x_161 = color.y;
color.y = (x_161 + float(x_158));
const float x_165 = uv.y;
if ((x_165 > 0.25f)) {
const int x_170 = obj.numbers[5];
const float x_173 = color.x;
color.x = (x_173 + float(x_170));
}
const float x_177 = uv.y;
if ((x_177 > 0.5f)) {
const int x_182 = obj.numbers[6];
const float x_185 = color.y;
color.y = (x_185 + float(x_182));
}
const float x_189 = uv.y;
if ((x_189 > 0.75f)) {
const int x_194 = obj.numbers[7];
const float x_197 = color.z;
color.z = (x_197 + float(x_194));
}
const int x_201 = obj.numbers[8];
const float x_204 = color.z;
color.z = (x_204 + float(x_201));
const float x_208 = uv.x;
const float x_210 = uv.y;
if ((abs((x_208 - x_210)) < 0.25f)) {
const int x_217 = obj.numbers[9];
const float x_220 = color.x;
color.x = (x_220 + float(x_217));
}
const float3 x_224 = normalize(color);
x_GLF_color = float4(x_224.x, x_224.y, x_224.z, 1.0f);
return;
}
struct main_out {
float4 x_GLF_color_1;
};
struct tint_symbol_1 {
float4 gl_FragCoord_param : SV_Position;
};
struct tint_symbol_2 {
float4 x_GLF_color_1 : SV_Target0;
};
main_out main_inner(float4 gl_FragCoord_param) {
gl_FragCoord = gl_FragCoord_param;
main_1();
const main_out tint_symbol_4 = {x_GLF_color};
return tint_symbol_4;
}
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const main_out inner_result = main_inner(tint_symbol.gl_FragCoord_param);
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
return wrapper_result;
}
C:\src\tint\test\Shader@0x00000240D57880E0(146,7-22): warning X3550: array reference cannot be used as an l-value; not natively addressable, forcing loop to unroll
C:\src\tint\test\Shader@0x00000240D57880E0(145,12-45): error X3531: can't unroll loops marked with loop attribute

View File

@ -0,0 +1,242 @@
SKIP: FAILED
struct QuicksortObject {
int numbers[10];
};
static QuicksortObject obj = (QuicksortObject)0;
static float4 gl_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
cbuffer cbuffer_x_34 : register(b0, space0) {
uint4 x_34[1];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void swap_i1_i1_(inout int i, inout int j) {
int temp = 0;
const int x_230 = i;
const int x_232 = obj.numbers[x_230];
temp = x_232;
const int x_233 = i;
const int x_234 = j;
const int x_236 = obj.numbers[x_234];
obj.numbers[x_233] = x_236;
const int x_238 = j;
obj.numbers[x_238] = temp;
return;
}
int performPartition_i1_i1_(inout int l, inout int h) {
int pivot = 0;
int i_1 = 0;
int j_1 = 0;
int param = 0;
int param_1 = 0;
int param_2 = 0;
int param_3 = 0;
const int x_242 = h;
const int x_244 = obj.numbers[x_242];
pivot = x_244;
const int x_245 = l;
i_1 = (x_245 - 1);
const int x_247 = l;
j_1 = x_247;
[loop] while (true) {
const int x_252 = j_1;
const int x_253 = h;
if ((x_252 <= (x_253 - 1))) {
} else {
break;
}
const int x_259 = obj.numbers[j_1];
if ((x_259 <= pivot)) {
i_1 = (i_1 + 1);
param = i_1;
param_1 = j_1;
swap_i1_i1_(param, param_1);
}
{
j_1 = (j_1 + 1);
}
}
i_1 = (i_1 + 1);
param_2 = i_1;
const int x_274 = h;
param_3 = x_274;
swap_i1_i1_(param_2, param_3);
return i_1;
}
void quicksort_() {
int l_1 = 0;
int h_1 = 0;
int top = 0;
int stack[10] = (int[10])0;
int int_a = 0;
int x_278 = 0;
int x_279 = 0;
int clamp_a = 0;
int p = 0;
int param_4 = 0;
int param_5 = 0;
l_1 = 0;
h_1 = 9;
top = -1;
const int x_281 = (top + 1);
top = x_281;
stack[x_281] = l_1;
const float x_285 = gl_FragCoord.y;
if ((x_285 >= 0.0f)) {
const int x_290 = h_1;
if (false) {
x_279 = 1;
} else {
x_279 = (h_1 << asuint(0));
}
x_278 = (x_290 | x_279);
} else {
x_278 = 1;
}
int_a = x_278;
clamp_a = clamp(h_1, h_1, int_a);
const int x_304 = (top + 1);
top = x_304;
stack[x_304] = (clamp_a / 1);
[loop] while (true) {
if ((top >= 0)) {
} else {
break;
}
const int x_315 = top;
top = (x_315 - 1);
const int x_318 = stack[x_315];
h_1 = x_318;
const int x_319 = top;
top = (x_319 - 1);
const int x_322 = stack[x_319];
l_1 = x_322;
param_4 = l_1;
param_5 = h_1;
const int x_325 = performPartition_i1_i1_(param_4, param_5);
p = x_325;
if (((p - 1) > l_1)) {
const int x_333 = (top + 1);
top = x_333;
stack[x_333] = l_1;
const int x_337 = (top + 1);
top = x_337;
stack[x_337] = (p - 1);
}
if (((p + 1) < h_1)) {
const int x_348 = (top + 1);
top = x_348;
stack[x_348] = (p + 1);
const int x_353 = (top + 1);
top = x_353;
stack[x_353] = h_1;
}
}
return;
}
void main_1() {
int i_2 = 0;
float2 uv = float2(0.0f, 0.0f);
float3 color = float3(0.0f, 0.0f, 0.0f);
i_2 = 0;
{
[loop] for(; (i_2 < 10); i_2 = (i_2 + 1)) {
obj.numbers[i_2] = (10 - i_2);
const int x_97 = i_2;
const int x_100 = obj.numbers[i_2];
const int x_103 = obj.numbers[i_2];
obj.numbers[x_97] = (x_100 * x_103);
}
}
quicksort_();
const float4 x_109 = gl_FragCoord;
const float2 x_112 = asfloat(x_34[0].xy);
uv = (float2(x_109.x, x_109.y) / x_112);
color = float3(1.0f, 2.0f, 3.0f);
const int x_115 = obj.numbers[0];
const float x_118 = color.x;
color.x = (x_118 + float(x_115));
const float x_122 = uv.x;
if ((x_122 > 0.25f)) {
const int x_127 = obj.numbers[1];
const float x_130 = color.x;
color.x = (x_130 + float(x_127));
}
const float x_134 = uv.x;
if ((x_134 > 0.5f)) {
const int x_139 = obj.numbers[2];
const float x_142 = color.y;
color.y = (x_142 + float(x_139));
}
const float x_146 = uv.x;
if ((x_146 > 0.75f)) {
const int x_151 = obj.numbers[3];
const float x_154 = color.z;
color.z = (x_154 + float(x_151));
}
const int x_158 = obj.numbers[4];
const float x_161 = color.y;
color.y = (x_161 + float(x_158));
const float x_165 = uv.y;
if ((x_165 > 0.25f)) {
const int x_170 = obj.numbers[5];
const float x_173 = color.x;
color.x = (x_173 + float(x_170));
}
const float x_177 = uv.y;
if ((x_177 > 0.5f)) {
const int x_182 = obj.numbers[6];
const float x_185 = color.y;
color.y = (x_185 + float(x_182));
}
const float x_189 = uv.y;
if ((x_189 > 0.75f)) {
const int x_194 = obj.numbers[7];
const float x_197 = color.z;
color.z = (x_197 + float(x_194));
}
const int x_201 = obj.numbers[8];
const float x_204 = color.z;
color.z = (x_204 + float(x_201));
const float x_208 = uv.x;
const float x_210 = uv.y;
if ((abs((x_208 - x_210)) < 0.25f)) {
const int x_217 = obj.numbers[9];
const float x_220 = color.x;
color.x = (x_220 + float(x_217));
}
const float3 x_224 = normalize(color);
x_GLF_color = float4(x_224.x, x_224.y, x_224.z, 1.0f);
return;
}
struct main_out {
float4 x_GLF_color_1;
};
struct tint_symbol_1 {
float4 gl_FragCoord_param : SV_Position;
};
struct tint_symbol_2 {
float4 x_GLF_color_1 : SV_Target0;
};
main_out main_inner(float4 gl_FragCoord_param) {
gl_FragCoord = gl_FragCoord_param;
main_1();
const main_out tint_symbol_4 = {x_GLF_color};
return tint_symbol_4;
}
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const main_out inner_result = main_inner(tint_symbol.gl_FragCoord_param);
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
return wrapper_result;
}
C:\src\tint\test\Shader@0x000001EE8601E080(146,7-22): warning X3550: array reference cannot be used as an l-value; not natively addressable, forcing loop to unroll
C:\src\tint\test\Shader@0x000001EE8601E080(145,12-45): error X3531: can't unroll loops marked with loop attribute

View File

@ -0,0 +1,230 @@
SKIP: FAILED
struct QuicksortObject {
int numbers[10];
};
static QuicksortObject obj = (QuicksortObject)0;
static float4 x_GLF_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
static float4 x_GLF_pos = float4(0.0f, 0.0f, 0.0f, 0.0f);
cbuffer cbuffer_x_34 : register(b0, space0) {
uint4 x_34[1];
};
static float4 frag_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
static float4 gl_Position = float4(0.0f, 0.0f, 0.0f, 0.0f);
void swap_i1_i1_(inout int i, inout int j) {
int temp = 0;
const int x_239 = i;
const int x_241 = obj.numbers[x_239];
temp = x_241;
const int x_242 = i;
const int x_243 = j;
const int x_245 = obj.numbers[x_243];
obj.numbers[x_242] = x_245;
const int x_247 = j;
obj.numbers[x_247] = temp;
return;
}
int performPartition_i1_i1_(inout int l, inout int h) {
int pivot = 0;
int i_1 = 0;
int j_1 = 0;
int param = 0;
int param_1 = 0;
int param_2 = 0;
int param_3 = 0;
const int x_251 = h;
const int x_253 = obj.numbers[x_251];
pivot = x_253;
const int x_254 = l;
i_1 = (x_254 - 1);
const int x_256 = l;
j_1 = x_256;
[loop] while (true) {
const int x_261 = j_1;
const int x_262 = h;
if ((x_261 <= (x_262 - 1))) {
} else {
break;
}
const int x_268 = obj.numbers[j_1];
if ((x_268 <= pivot)) {
i_1 = (i_1 + 1);
param = i_1;
param_1 = j_1;
swap_i1_i1_(param, param_1);
}
{
j_1 = (j_1 + 1);
}
}
param_2 = (i_1 + 1);
const int x_282 = h;
param_3 = x_282;
swap_i1_i1_(param_2, param_3);
return (i_1 + 1);
}
void quicksort_() {
int l_1 = 0;
int h_1 = 0;
int top = 0;
int stack[10] = (int[10])0;
int p = 0;
int param_4 = 0;
int param_5 = 0;
l_1 = 0;
h_1 = 9;
top = -1;
const int x_288 = (top + 1);
top = x_288;
stack[x_288] = l_1;
const int x_292 = (top + 1);
top = x_292;
stack[x_292] = h_1;
[loop] while (true) {
if ((top >= 0)) {
} else {
break;
}
const int x_302 = top;
top = (x_302 - 1);
const int x_305 = stack[x_302];
h_1 = x_305;
const int x_306 = top;
top = (x_306 - 1);
const int x_309 = stack[x_306];
l_1 = x_309;
param_4 = l_1;
param_5 = h_1;
const int x_312 = performPartition_i1_i1_(param_4, param_5);
p = x_312;
if (((p - 1) > l_1)) {
const int x_320 = (top + 1);
top = x_320;
stack[x_320] = l_1;
const int x_324 = (top + 1);
top = x_324;
stack[x_324] = (p - 1);
}
if (((p + 1) < h_1)) {
const int x_335 = (top + 1);
top = x_335;
stack[x_335] = (p + 1);
const int x_340 = (top + 1);
top = x_340;
stack[x_340] = h_1;
}
}
return;
}
void main_1() {
int i_2 = 0;
float2 uv = float2(0.0f, 0.0f);
float3 color = float3(0.0f, 0.0f, 0.0f);
x_GLF_FragCoord = ((x_GLF_pos + float4(1.0f, 1.0f, 0.0f, 0.0f)) * float4(128.0f, 128.0f, 1.0f, 1.0f));
i_2 = 0;
{
[loop] for(; (i_2 < 10); i_2 = (i_2 + 1)) {
obj.numbers[i_2] = (10 - i_2);
const int x_104 = i_2;
const int x_107 = obj.numbers[i_2];
const int x_110 = obj.numbers[i_2];
obj.numbers[x_104] = (x_107 * x_110);
}
}
quicksort_();
const float4 x_116 = x_GLF_FragCoord;
const float2 x_119 = asfloat(x_34[0].xy);
uv = (float2(x_116.x, x_116.y) / x_119);
color = float3(1.0f, 2.0f, 3.0f);
const int x_122 = obj.numbers[0];
const float x_125 = color.x;
color.x = (x_125 + float(x_122));
const float x_129 = uv.x;
if ((x_129 > 0.25f)) {
const int x_134 = obj.numbers[1];
const float x_137 = color.x;
color.x = (x_137 + float(x_134));
}
const float x_141 = uv.x;
if ((x_141 > 0.5f)) {
const int x_146 = obj.numbers[2];
const float x_149 = color.y;
color.y = (x_149 + float(x_146));
}
const float x_153 = uv.x;
if ((x_153 > 0.75f)) {
const int x_158 = obj.numbers[3];
const float x_161 = color.z;
color.z = (x_161 + float(x_158));
}
const int x_165 = obj.numbers[4];
const float x_168 = color.y;
color.y = (x_168 + float(x_165));
const float x_172 = uv.y;
if ((x_172 > 0.25f)) {
const int x_177 = obj.numbers[5];
const float x_180 = color.x;
color.x = (x_180 + float(x_177));
}
const float x_184 = uv.y;
if ((x_184 > 0.5f)) {
const int x_189 = obj.numbers[6];
const float x_192 = color.y;
color.y = (x_192 + float(x_189));
}
const float x_196 = uv.y;
if ((x_196 > 0.75f)) {
const int x_201 = obj.numbers[7];
const float x_204 = color.z;
color.z = (x_204 + float(x_201));
}
const int x_208 = obj.numbers[8];
const float x_211 = color.z;
color.z = (x_211 + float(x_208));
const float x_215 = uv.x;
const float x_217 = uv.y;
if ((abs((x_215 - x_217)) < 0.25f)) {
const int x_224 = obj.numbers[9];
const float x_227 = color.x;
color.x = (x_227 + float(x_224));
}
const float3 x_231 = normalize(color);
frag_color = float4(x_231.x, x_231.y, x_231.z, 1.0f);
gl_Position = x_GLF_pos;
return;
}
struct main_out {
float4 frag_color_1;
float4 gl_Position;
};
struct tint_symbol_1 {
float4 x_GLF_pos_param : TEXCOORD0;
};
struct tint_symbol_2 {
float4 frag_color_1 : TEXCOORD0;
float4 gl_Position : SV_Position;
};
main_out main_inner(float4 x_GLF_pos_param) {
x_GLF_pos = x_GLF_pos_param;
main_1();
const main_out tint_symbol_4 = {frag_color, gl_Position};
return tint_symbol_4;
}
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const main_out inner_result = main_inner(tint_symbol.x_GLF_pos_param);
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
wrapper_result.frag_color_1 = inner_result.frag_color_1;
wrapper_result.gl_Position = inner_result.gl_Position;
return wrapper_result;
}
C:\src\tint\test\Shader@0x000001E481EDD080(130,7-22): warning X3550: array reference cannot be used as an l-value; not natively addressable, forcing loop to unroll
C:\src\tint\test\Shader@0x000001E481EDD080(129,12-45): error X3531: can't unroll loops marked with loop attribute

View File

@ -0,0 +1,230 @@
SKIP: FAILED
struct QuicksortObject {
int numbers[10];
};
static QuicksortObject obj = (QuicksortObject)0;
static float4 x_GLF_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
static float4 x_GLF_pos = float4(0.0f, 0.0f, 0.0f, 0.0f);
cbuffer cbuffer_x_34 : register(b0, space0) {
uint4 x_34[1];
};
static float4 frag_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
static float4 gl_Position = float4(0.0f, 0.0f, 0.0f, 0.0f);
void swap_i1_i1_(inout int i, inout int j) {
int temp = 0;
const int x_239 = i;
const int x_241 = obj.numbers[x_239];
temp = x_241;
const int x_242 = i;
const int x_243 = j;
const int x_245 = obj.numbers[x_243];
obj.numbers[x_242] = x_245;
const int x_247 = j;
obj.numbers[x_247] = temp;
return;
}
int performPartition_i1_i1_(inout int l, inout int h) {
int pivot = 0;
int i_1 = 0;
int j_1 = 0;
int param = 0;
int param_1 = 0;
int param_2 = 0;
int param_3 = 0;
const int x_251 = h;
const int x_253 = obj.numbers[x_251];
pivot = x_253;
const int x_254 = l;
i_1 = (x_254 - 1);
const int x_256 = l;
j_1 = x_256;
[loop] while (true) {
const int x_261 = j_1;
const int x_262 = h;
if ((x_261 <= (x_262 - 1))) {
} else {
break;
}
const int x_268 = obj.numbers[j_1];
if ((x_268 <= pivot)) {
i_1 = (i_1 + 1);
param = i_1;
param_1 = j_1;
swap_i1_i1_(param, param_1);
}
{
j_1 = (j_1 + 1);
}
}
param_2 = (i_1 + 1);
const int x_282 = h;
param_3 = x_282;
swap_i1_i1_(param_2, param_3);
return (i_1 + 1);
}
void quicksort_() {
int l_1 = 0;
int h_1 = 0;
int top = 0;
int stack[10] = (int[10])0;
int p = 0;
int param_4 = 0;
int param_5 = 0;
l_1 = 0;
h_1 = 9;
top = -1;
const int x_288 = (top + 1);
top = x_288;
stack[x_288] = l_1;
const int x_292 = (top + 1);
top = x_292;
stack[x_292] = h_1;
[loop] while (true) {
if ((top >= 0)) {
} else {
break;
}
const int x_302 = top;
top = (x_302 - 1);
const int x_305 = stack[x_302];
h_1 = x_305;
const int x_306 = top;
top = (x_306 - 1);
const int x_309 = stack[x_306];
l_1 = x_309;
param_4 = l_1;
param_5 = h_1;
const int x_312 = performPartition_i1_i1_(param_4, param_5);
p = x_312;
if (((p - 1) > l_1)) {
const int x_320 = (top + 1);
top = x_320;
stack[x_320] = l_1;
const int x_324 = (top + 1);
top = x_324;
stack[x_324] = (p - 1);
}
if (((p + 1) < h_1)) {
const int x_335 = (top + 1);
top = x_335;
stack[x_335] = (p + 1);
const int x_340 = (top + 1);
top = x_340;
stack[x_340] = h_1;
}
}
return;
}
void main_1() {
int i_2 = 0;
float2 uv = float2(0.0f, 0.0f);
float3 color = float3(0.0f, 0.0f, 0.0f);
x_GLF_FragCoord = ((x_GLF_pos + float4(1.0f, 1.0f, 0.0f, 0.0f)) * float4(128.0f, 128.0f, 1.0f, 1.0f));
i_2 = 0;
{
[loop] for(; (i_2 < 10); i_2 = (i_2 + 1)) {
obj.numbers[i_2] = (10 - i_2);
const int x_104 = i_2;
const int x_107 = obj.numbers[i_2];
const int x_110 = obj.numbers[i_2];
obj.numbers[x_104] = (x_107 * x_110);
}
}
quicksort_();
const float4 x_116 = x_GLF_FragCoord;
const float2 x_119 = asfloat(x_34[0].xy);
uv = (float2(x_116.x, x_116.y) / x_119);
color = float3(1.0f, 2.0f, 3.0f);
const int x_122 = obj.numbers[0];
const float x_125 = color.x;
color.x = (x_125 + float(x_122));
const float x_129 = uv.x;
if ((x_129 > 0.25f)) {
const int x_134 = obj.numbers[1];
const float x_137 = color.x;
color.x = (x_137 + float(x_134));
}
const float x_141 = uv.x;
if ((x_141 > 0.5f)) {
const int x_146 = obj.numbers[2];
const float x_149 = color.y;
color.y = (x_149 + float(x_146));
}
const float x_153 = uv.x;
if ((x_153 > 0.75f)) {
const int x_158 = obj.numbers[3];
const float x_161 = color.z;
color.z = (x_161 + float(x_158));
}
const int x_165 = obj.numbers[4];
const float x_168 = color.y;
color.y = (x_168 + float(x_165));
const float x_172 = uv.y;
if ((x_172 > 0.25f)) {
const int x_177 = obj.numbers[5];
const float x_180 = color.x;
color.x = (x_180 + float(x_177));
}
const float x_184 = uv.y;
if ((x_184 > 0.5f)) {
const int x_189 = obj.numbers[6];
const float x_192 = color.y;
color.y = (x_192 + float(x_189));
}
const float x_196 = uv.y;
if ((x_196 > 0.75f)) {
const int x_201 = obj.numbers[7];
const float x_204 = color.z;
color.z = (x_204 + float(x_201));
}
const int x_208 = obj.numbers[8];
const float x_211 = color.z;
color.z = (x_211 + float(x_208));
const float x_215 = uv.x;
const float x_217 = uv.y;
if ((abs((x_215 - x_217)) < 0.25f)) {
const int x_224 = obj.numbers[9];
const float x_227 = color.x;
color.x = (x_227 + float(x_224));
}
const float3 x_231 = normalize(color);
frag_color = float4(x_231.x, x_231.y, x_231.z, 1.0f);
gl_Position = x_GLF_pos;
return;
}
struct main_out {
float4 frag_color_1;
float4 gl_Position;
};
struct tint_symbol_1 {
float4 x_GLF_pos_param : TEXCOORD0;
};
struct tint_symbol_2 {
float4 frag_color_1 : TEXCOORD0;
float4 gl_Position : SV_Position;
};
main_out main_inner(float4 x_GLF_pos_param) {
x_GLF_pos = x_GLF_pos_param;
main_1();
const main_out tint_symbol_4 = {frag_color, gl_Position};
return tint_symbol_4;
}
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const main_out inner_result = main_inner(tint_symbol.x_GLF_pos_param);
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
wrapper_result.frag_color_1 = inner_result.frag_color_1;
wrapper_result.gl_Position = inner_result.gl_Position;
return wrapper_result;
}
C:\src\tint\test\Shader@0x000001D05546D140(130,7-22): warning X3550: array reference cannot be used as an l-value; not natively addressable, forcing loop to unroll
C:\src\tint\test\Shader@0x000001D05546D140(129,12-45): error X3531: can't unroll loops marked with loop attribute

View File

@ -0,0 +1,238 @@
SKIP: FAILED
struct QuicksortObject {
int numbers[10];
};
static QuicksortObject obj = (QuicksortObject)0;
static float4 x_GLF_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
static float4 x_GLF_pos = float4(0.0f, 0.0f, 0.0f, 0.0f);
cbuffer cbuffer_x_33 : register(b0, space0) {
uint4 x_33[1];
};
cbuffer cbuffer_x_36 : register(b1, space0) {
uint4 x_36[1];
};
static float4 frag_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
static float4 gl_Position = float4(0.0f, 0.0f, 0.0f, 0.0f);
void swap_i1_i1_(inout int i, inout int j) {
int temp = 0;
const int x_250 = i;
const int x_252 = obj.numbers[x_250];
temp = x_252;
const int x_253 = i;
const int x_254 = j;
const int x_256 = obj.numbers[x_254];
obj.numbers[x_253] = x_256;
const int x_258 = j;
obj.numbers[x_258] = temp;
return;
}
int performPartition_i1_i1_(inout int l, inout int h) {
int pivot = 0;
int i_1 = 0;
int j_1 = 0;
int param = 0;
int param_1 = 0;
int param_2 = 0;
int param_3 = 0;
const int x_262 = h;
const int x_264 = obj.numbers[x_262];
pivot = x_264;
const int x_265 = l;
i_1 = (x_265 - 1);
const int x_267 = l;
j_1 = x_267;
[loop] while (true) {
const int x_272 = j_1;
const int x_273 = h;
if ((x_272 <= (x_273 - 1))) {
} else {
break;
}
const int x_279 = obj.numbers[j_1];
if ((x_279 <= pivot)) {
i_1 = (i_1 + 1);
param = i_1;
param_1 = j_1;
swap_i1_i1_(param, param_1);
}
{
j_1 = (j_1 + 1);
}
}
param_2 = (i_1 + 1);
const int x_293 = h;
param_3 = x_293;
swap_i1_i1_(param_2, param_3);
return (i_1 + 1);
}
void quicksort_() {
int l_1 = 0;
int h_1 = 0;
int top = 0;
int stack[10] = (int[10])0;
int p = 0;
int param_4 = 0;
int param_5 = 0;
l_1 = 0;
h_1 = 9;
top = -1;
const int x_299 = (top + 1);
top = x_299;
stack[x_299] = l_1;
const int x_303 = (top + 1);
top = x_303;
stack[x_303] = h_1;
[loop] while (true) {
if ((top >= 0)) {
} else {
break;
}
const int x_313 = top;
top = (x_313 - 1);
const int x_316 = stack[x_313];
h_1 = x_316;
const int x_317 = top;
top = (x_317 - 1);
const int x_320 = stack[x_317];
l_1 = x_320;
param_4 = l_1;
param_5 = h_1;
const int x_323 = performPartition_i1_i1_(param_4, param_5);
p = x_323;
if (((p - 1) > l_1)) {
const int x_331 = (top + 1);
top = x_331;
stack[x_331] = l_1;
const int x_335 = (top + 1);
top = x_335;
stack[x_335] = (p - 1);
}
if (((p + 1) < h_1)) {
const int x_346 = (top + 1);
top = x_346;
stack[x_346] = (p + 1);
const int x_351 = (top + 1);
top = x_351;
stack[x_351] = h_1;
}
}
return;
}
void main_1() {
int i_2 = 0;
float2 uv = float2(0.0f, 0.0f);
float3 color = float3(0.0f, 0.0f, 0.0f);
x_GLF_FragCoord = ((x_GLF_pos + float4(1.0f, 1.0f, 0.0f, 0.0f)) * float4(128.0f, 128.0f, 1.0f, 1.0f));
i_2 = 0;
{
[loop] for(; (i_2 < 10); i_2 = (i_2 + 1)) {
obj.numbers[i_2] = (10 - i_2);
const float x_109 = asfloat(x_33[0].x);
const float x_111 = asfloat(x_33[0].y);
if ((x_109 > x_111)) {
break;
}
const int x_115 = i_2;
const int x_118 = obj.numbers[i_2];
const int x_121 = obj.numbers[i_2];
obj.numbers[x_115] = (x_118 * x_121);
}
}
quicksort_();
const float4 x_127 = x_GLF_FragCoord;
const float2 x_130 = asfloat(x_36[0].xy);
uv = (float2(x_127.x, x_127.y) / x_130);
color = float3(1.0f, 2.0f, 3.0f);
const int x_133 = obj.numbers[0];
const float x_136 = color.x;
color.x = (x_136 + float(x_133));
const float x_140 = uv.x;
if ((x_140 > 0.25f)) {
const int x_145 = obj.numbers[1];
const float x_148 = color.x;
color.x = (x_148 + float(x_145));
}
const float x_152 = uv.x;
if ((x_152 > 0.5f)) {
const int x_157 = obj.numbers[2];
const float x_160 = color.y;
color.y = (x_160 + float(x_157));
}
const float x_164 = uv.x;
if ((x_164 > 0.75f)) {
const int x_169 = obj.numbers[3];
const float x_172 = color.z;
color.z = (x_172 + float(x_169));
}
const int x_176 = obj.numbers[4];
const float x_179 = color.y;
color.y = (x_179 + float(x_176));
const float x_183 = uv.y;
if ((x_183 > 0.25f)) {
const int x_188 = obj.numbers[5];
const float x_191 = color.x;
color.x = (x_191 + float(x_188));
}
const float x_195 = uv.y;
if ((x_195 > 0.5f)) {
const int x_200 = obj.numbers[6];
const float x_203 = color.y;
color.y = (x_203 + float(x_200));
}
const float x_207 = uv.y;
if ((x_207 > 0.75f)) {
const int x_212 = obj.numbers[7];
const float x_215 = color.z;
color.z = (x_215 + float(x_212));
}
const int x_219 = obj.numbers[8];
const float x_222 = color.z;
color.z = (x_222 + float(x_219));
const float x_226 = uv.x;
const float x_228 = uv.y;
if ((abs((x_226 - x_228)) < 0.25f)) {
const int x_235 = obj.numbers[9];
const float x_238 = color.x;
color.x = (x_238 + float(x_235));
}
const float3 x_242 = normalize(color);
frag_color = float4(x_242.x, x_242.y, x_242.z, 1.0f);
gl_Position = x_GLF_pos;
return;
}
struct main_out {
float4 frag_color_1;
float4 gl_Position;
};
struct tint_symbol_1 {
float4 x_GLF_pos_param : TEXCOORD0;
};
struct tint_symbol_2 {
float4 frag_color_1 : TEXCOORD0;
float4 gl_Position : SV_Position;
};
main_out main_inner(float4 x_GLF_pos_param) {
x_GLF_pos = x_GLF_pos_param;
main_1();
const main_out tint_symbol_5 = {frag_color, gl_Position};
return tint_symbol_5;
}
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const main_out inner_result = main_inner(tint_symbol.x_GLF_pos_param);
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
wrapper_result.frag_color_1 = inner_result.frag_color_1;
wrapper_result.gl_Position = inner_result.gl_Position;
return wrapper_result;
}
C:\src\tint\test\Shader@0x00000277FFA71560(133,7-22): warning X3550: array reference cannot be used as an l-value; not natively addressable, forcing loop to unroll
C:\src\tint\test\Shader@0x00000277FFA71560(132,12-45): error X3531: can't unroll loops marked with loop attribute

View File

@ -0,0 +1,238 @@
SKIP: FAILED
struct QuicksortObject {
int numbers[10];
};
static QuicksortObject obj = (QuicksortObject)0;
static float4 x_GLF_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
static float4 x_GLF_pos = float4(0.0f, 0.0f, 0.0f, 0.0f);
cbuffer cbuffer_x_33 : register(b0, space0) {
uint4 x_33[1];
};
cbuffer cbuffer_x_36 : register(b1, space0) {
uint4 x_36[1];
};
static float4 frag_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
static float4 gl_Position = float4(0.0f, 0.0f, 0.0f, 0.0f);
void swap_i1_i1_(inout int i, inout int j) {
int temp = 0;
const int x_250 = i;
const int x_252 = obj.numbers[x_250];
temp = x_252;
const int x_253 = i;
const int x_254 = j;
const int x_256 = obj.numbers[x_254];
obj.numbers[x_253] = x_256;
const int x_258 = j;
obj.numbers[x_258] = temp;
return;
}
int performPartition_i1_i1_(inout int l, inout int h) {
int pivot = 0;
int i_1 = 0;
int j_1 = 0;
int param = 0;
int param_1 = 0;
int param_2 = 0;
int param_3 = 0;
const int x_262 = h;
const int x_264 = obj.numbers[x_262];
pivot = x_264;
const int x_265 = l;
i_1 = (x_265 - 1);
const int x_267 = l;
j_1 = x_267;
[loop] while (true) {
const int x_272 = j_1;
const int x_273 = h;
if ((x_272 <= (x_273 - 1))) {
} else {
break;
}
const int x_279 = obj.numbers[j_1];
if ((x_279 <= pivot)) {
i_1 = (i_1 + 1);
param = i_1;
param_1 = j_1;
swap_i1_i1_(param, param_1);
}
{
j_1 = (j_1 + 1);
}
}
param_2 = (i_1 + 1);
const int x_293 = h;
param_3 = x_293;
swap_i1_i1_(param_2, param_3);
return (i_1 + 1);
}
void quicksort_() {
int l_1 = 0;
int h_1 = 0;
int top = 0;
int stack[10] = (int[10])0;
int p = 0;
int param_4 = 0;
int param_5 = 0;
l_1 = 0;
h_1 = 9;
top = -1;
const int x_299 = (top + 1);
top = x_299;
stack[x_299] = l_1;
const int x_303 = (top + 1);
top = x_303;
stack[x_303] = h_1;
[loop] while (true) {
if ((top >= 0)) {
} else {
break;
}
const int x_313 = top;
top = (x_313 - 1);
const int x_316 = stack[x_313];
h_1 = x_316;
const int x_317 = top;
top = (x_317 - 1);
const int x_320 = stack[x_317];
l_1 = x_320;
param_4 = l_1;
param_5 = h_1;
const int x_323 = performPartition_i1_i1_(param_4, param_5);
p = x_323;
if (((p - 1) > l_1)) {
const int x_331 = (top + 1);
top = x_331;
stack[x_331] = l_1;
const int x_335 = (top + 1);
top = x_335;
stack[x_335] = (p - 1);
}
if (((p + 1) < h_1)) {
const int x_346 = (top + 1);
top = x_346;
stack[x_346] = (p + 1);
const int x_351 = (top + 1);
top = x_351;
stack[x_351] = h_1;
}
}
return;
}
void main_1() {
int i_2 = 0;
float2 uv = float2(0.0f, 0.0f);
float3 color = float3(0.0f, 0.0f, 0.0f);
x_GLF_FragCoord = ((x_GLF_pos + float4(1.0f, 1.0f, 0.0f, 0.0f)) * float4(128.0f, 128.0f, 1.0f, 1.0f));
i_2 = 0;
{
[loop] for(; (i_2 < 10); i_2 = (i_2 + 1)) {
obj.numbers[i_2] = (10 - i_2);
const float x_109 = asfloat(x_33[0].x);
const float x_111 = asfloat(x_33[0].y);
if ((x_109 > x_111)) {
break;
}
const int x_115 = i_2;
const int x_118 = obj.numbers[i_2];
const int x_121 = obj.numbers[i_2];
obj.numbers[x_115] = (x_118 * x_121);
}
}
quicksort_();
const float4 x_127 = x_GLF_FragCoord;
const float2 x_130 = asfloat(x_36[0].xy);
uv = (float2(x_127.x, x_127.y) / x_130);
color = float3(1.0f, 2.0f, 3.0f);
const int x_133 = obj.numbers[0];
const float x_136 = color.x;
color.x = (x_136 + float(x_133));
const float x_140 = uv.x;
if ((x_140 > 0.25f)) {
const int x_145 = obj.numbers[1];
const float x_148 = color.x;
color.x = (x_148 + float(x_145));
}
const float x_152 = uv.x;
if ((x_152 > 0.5f)) {
const int x_157 = obj.numbers[2];
const float x_160 = color.y;
color.y = (x_160 + float(x_157));
}
const float x_164 = uv.x;
if ((x_164 > 0.75f)) {
const int x_169 = obj.numbers[3];
const float x_172 = color.z;
color.z = (x_172 + float(x_169));
}
const int x_176 = obj.numbers[4];
const float x_179 = color.y;
color.y = (x_179 + float(x_176));
const float x_183 = uv.y;
if ((x_183 > 0.25f)) {
const int x_188 = obj.numbers[5];
const float x_191 = color.x;
color.x = (x_191 + float(x_188));
}
const float x_195 = uv.y;
if ((x_195 > 0.5f)) {
const int x_200 = obj.numbers[6];
const float x_203 = color.y;
color.y = (x_203 + float(x_200));
}
const float x_207 = uv.y;
if ((x_207 > 0.75f)) {
const int x_212 = obj.numbers[7];
const float x_215 = color.z;
color.z = (x_215 + float(x_212));
}
const int x_219 = obj.numbers[8];
const float x_222 = color.z;
color.z = (x_222 + float(x_219));
const float x_226 = uv.x;
const float x_228 = uv.y;
if ((abs((x_226 - x_228)) < 0.25f)) {
const int x_235 = obj.numbers[9];
const float x_238 = color.x;
color.x = (x_238 + float(x_235));
}
const float3 x_242 = normalize(color);
frag_color = float4(x_242.x, x_242.y, x_242.z, 1.0f);
gl_Position = x_GLF_pos;
return;
}
struct main_out {
float4 frag_color_1;
float4 gl_Position;
};
struct tint_symbol_1 {
float4 x_GLF_pos_param : TEXCOORD0;
};
struct tint_symbol_2 {
float4 frag_color_1 : TEXCOORD0;
float4 gl_Position : SV_Position;
};
main_out main_inner(float4 x_GLF_pos_param) {
x_GLF_pos = x_GLF_pos_param;
main_1();
const main_out tint_symbol_5 = {frag_color, gl_Position};
return tint_symbol_5;
}
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const main_out inner_result = main_inner(tint_symbol.x_GLF_pos_param);
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
wrapper_result.frag_color_1 = inner_result.frag_color_1;
wrapper_result.gl_Position = inner_result.gl_Position;
return wrapper_result;
}
C:\src\tint\test\Shader@0x000001A3B2C08520(133,7-22): warning X3550: array reference cannot be used as an l-value; not natively addressable, forcing loop to unroll
C:\src\tint\test\Shader@0x000001A3B2C08520(132,12-45): error X3531: can't unroll loops marked with loop attribute

View File

@ -0,0 +1,317 @@
SKIP: FAILED
struct QuicksortObject {
int numbers[10];
};
static QuicksortObject obj = (QuicksortObject)0;
static float4 x_GLF_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
static float4 x_GLF_pos = float4(0.0f, 0.0f, 0.0f, 0.0f);
cbuffer cbuffer_x_34 : register(b0, space0) {
uint4 x_34[1];
};
static float4 frag_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
static float4 gl_Position = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
int x_90 = 0;
int x_91 = 0;
int x_92 = 0;
int x_93 = 0;
int x_94 = 0;
int x_95 = 0;
int x_96 = 0;
int x_97 = 0;
int x_98 = 0;
int x_99 = 0;
int x_100 = 0;
int x_101 = 0;
int x_102 = 0;
int x_103[10] = (int[10])0;
int x_104 = 0;
int x_105 = 0;
int x_106 = 0;
int i_2 = 0;
float2 uv = float2(0.0f, 0.0f);
float3 color = float3(0.0f, 0.0f, 0.0f);
x_GLF_FragCoord = ((x_GLF_pos + float4(1.0f, 1.0f, 0.0f, 0.0f)) * float4(128.0f, 128.0f, 1.0f, 1.0f));
i_2 = 0;
{
[loop] for(; (i_2 < 10); i_2 = (i_2 + 1)) {
obj.numbers[i_2] = (10 - i_2);
const int x_121 = i_2;
const int x_124 = obj.numbers[i_2];
const int x_127 = obj.numbers[i_2];
obj.numbers[x_121] = (x_124 * x_127);
}
}
x_100 = 0;
x_101 = 9;
x_102 = -1;
const int x_133 = (x_102 + 1);
x_102 = x_133;
x_103[x_133] = x_100;
const int x_137 = (x_102 + 1);
x_102 = x_137;
x_103[x_137] = x_101;
[loop] while (true) {
if ((x_102 >= 0)) {
} else {
break;
}
const int x_147 = x_102;
x_102 = (x_147 - 1);
const int x_150 = x_103[x_147];
x_101 = x_150;
const int x_151 = x_102;
x_102 = (x_151 - 1);
const int x_154 = x_103[x_151];
x_100 = x_154;
x_105 = x_100;
x_106 = x_101;
const int x_159 = obj.numbers[x_106];
x_92 = x_159;
x_93 = (x_105 - 1);
x_94 = x_105;
{
[loop] for(; (x_94 <= (x_106 - 1)); x_94 = (x_94 + 1)) {
const int x_174 = obj.numbers[x_94];
if ((x_174 <= x_92)) {
x_93 = (x_93 + 1);
x_95 = x_93;
x_96 = x_94;
const int x_185 = obj.numbers[x_95];
x_91 = x_185;
const int x_186 = x_95;
const int x_189 = obj.numbers[x_96];
obj.numbers[x_186] = x_189;
obj.numbers[x_96] = x_91;
}
}
}
x_97 = (x_93 + 1);
x_98 = x_106;
const int x_201 = obj.numbers[x_97];
x_90 = x_201;
const int x_202 = x_97;
const int x_205 = obj.numbers[x_98];
obj.numbers[x_202] = x_205;
obj.numbers[x_98] = x_90;
x_99 = (x_93 + 1);
x_104 = x_99;
if (((x_104 - 1) > x_100)) {
const int x_220 = (x_102 + 1);
x_102 = x_220;
x_103[x_220] = x_100;
const int x_224 = (x_102 + 1);
x_102 = x_224;
x_103[x_224] = (x_104 - 1);
}
if (((x_104 + 1) < x_101)) {
const int x_235 = (x_102 + 1);
x_102 = x_235;
x_103[x_235] = (x_104 + 1);
const int x_240 = (x_102 + 1);
x_102 = x_240;
x_103[x_240] = x_101;
}
}
const float4 x_243 = x_GLF_FragCoord;
const float2 x_246 = asfloat(x_34[0].xy);
uv = (float2(x_243.x, x_243.y) / x_246);
color = float3(1.0f, 2.0f, 3.0f);
const int x_249 = obj.numbers[0];
const float x_252 = color.x;
color.x = (x_252 + float(x_249));
const float x_256 = uv.x;
if ((x_256 > 0.25f)) {
const int x_261 = obj.numbers[1];
const float x_264 = color.x;
color.x = (x_264 + float(x_261));
}
const float x_268 = uv.x;
if ((x_268 > 0.5f)) {
const int x_273 = obj.numbers[2];
const float x_276 = color.y;
color.y = (x_276 + float(x_273));
}
const float x_280 = uv.x;
if ((x_280 > 0.75f)) {
const int x_285 = obj.numbers[3];
const float x_288 = color.z;
color.z = (x_288 + float(x_285));
}
const int x_292 = obj.numbers[4];
const float x_295 = color.y;
color.y = (x_295 + float(x_292));
const float x_299 = uv.y;
if ((x_299 > 0.25f)) {
const int x_304 = obj.numbers[5];
const float x_307 = color.x;
color.x = (x_307 + float(x_304));
}
const float x_311 = uv.y;
if ((x_311 > 0.5f)) {
const int x_316 = obj.numbers[6];
const float x_319 = color.y;
color.y = (x_319 + float(x_316));
}
const float x_323 = uv.y;
if ((x_323 > 0.75f)) {
const int x_328 = obj.numbers[7];
const float x_331 = color.z;
color.z = (x_331 + float(x_328));
}
const int x_335 = obj.numbers[8];
const float x_338 = color.z;
color.z = (x_338 + float(x_335));
const float x_342 = uv.x;
const float x_344 = uv.y;
if ((abs((x_342 - x_344)) < 0.25f)) {
const int x_351 = obj.numbers[9];
const float x_354 = color.x;
color.x = (x_354 + float(x_351));
}
const float3 x_358 = normalize(color);
frag_color = float4(x_358.x, x_358.y, x_358.z, 1.0f);
gl_Position = x_GLF_pos;
return;
}
struct main_out {
float4 frag_color_1;
float4 gl_Position;
};
struct tint_symbol_1 {
float4 x_GLF_pos_param : TEXCOORD0;
};
struct tint_symbol_2 {
float4 frag_color_1 : TEXCOORD0;
float4 gl_Position : SV_Position;
};
main_out main_inner(float4 x_GLF_pos_param) {
x_GLF_pos = x_GLF_pos_param;
main_1();
const main_out tint_symbol_4 = {frag_color, gl_Position};
return tint_symbol_4;
}
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const main_out inner_result = main_inner(tint_symbol.x_GLF_pos_param);
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
wrapper_result.frag_color_1 = inner_result.frag_color_1;
wrapper_result.gl_Position = inner_result.gl_Position;
return wrapper_result;
}
void swap_i1_i1_(inout int i, inout int j) {
int temp = 0;
const int x_366 = i;
const int x_368 = obj.numbers[x_366];
temp = x_368;
const int x_369 = i;
const int x_370 = j;
const int x_372 = obj.numbers[x_370];
obj.numbers[x_369] = x_372;
const int x_374 = j;
obj.numbers[x_374] = temp;
return;
}
int performPartition_i1_i1_(inout int l, inout int h) {
int pivot = 0;
int i_1 = 0;
int j_1 = 0;
int param = 0;
int param_1 = 0;
int param_2 = 0;
int param_3 = 0;
const int x_378 = h;
const int x_380 = obj.numbers[x_378];
pivot = x_380;
const int x_381 = l;
i_1 = (x_381 - 1);
const int x_383 = l;
j_1 = x_383;
[loop] while (true) {
const int x_388 = j_1;
const int x_389 = h;
if ((x_388 <= (x_389 - 1))) {
} else {
break;
}
const int x_395 = obj.numbers[j_1];
if ((x_395 <= pivot)) {
i_1 = (i_1 + 1);
param = i_1;
param_1 = j_1;
swap_i1_i1_(param, param_1);
}
{
j_1 = (j_1 + 1);
}
}
param_2 = (i_1 + 1);
const int x_409 = h;
param_3 = x_409;
swap_i1_i1_(param_2, param_3);
return (i_1 + 1);
}
void quicksort_() {
int l_1 = 0;
int h_1 = 0;
int top = 0;
int stack[10] = (int[10])0;
int p = 0;
int param_4 = 0;
int param_5 = 0;
l_1 = 0;
h_1 = 9;
top = -1;
const int x_415 = (top + 1);
top = x_415;
stack[x_415] = l_1;
const int x_419 = (top + 1);
top = x_419;
stack[x_419] = h_1;
[loop] while (true) {
if ((top >= 0)) {
} else {
break;
}
const int x_429 = top;
top = (x_429 - 1);
const int x_432 = stack[x_429];
h_1 = x_432;
const int x_433 = top;
top = (x_433 - 1);
const int x_436 = stack[x_433];
l_1 = x_436;
param_4 = l_1;
param_5 = h_1;
const int x_439 = performPartition_i1_i1_(param_4, param_5);
p = x_439;
if (((p - 1) > l_1)) {
const int x_447 = (top + 1);
top = x_447;
stack[x_447] = l_1;
const int x_451 = (top + 1);
top = x_451;
stack[x_451] = (p - 1);
}
if (((p + 1) < h_1)) {
const int x_462 = (top + 1);
top = x_462;
stack[x_462] = (p + 1);
const int x_467 = (top + 1);
top = x_467;
stack[x_467] = h_1;
}
}
return;
}
C:\src\tint\test\Shader@0x0000028832314060(39,7-22): warning X3550: array reference cannot be used as an l-value; not natively addressable, forcing loop to unroll
C:\src\tint\test\Shader@0x0000028832314060(38,12-45): error X3531: can't unroll loops marked with loop attribute

View File

@ -0,0 +1,317 @@
SKIP: FAILED
struct QuicksortObject {
int numbers[10];
};
static QuicksortObject obj = (QuicksortObject)0;
static float4 x_GLF_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
static float4 x_GLF_pos = float4(0.0f, 0.0f, 0.0f, 0.0f);
cbuffer cbuffer_x_34 : register(b0, space0) {
uint4 x_34[1];
};
static float4 frag_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
static float4 gl_Position = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
int x_90 = 0;
int x_91 = 0;
int x_92 = 0;
int x_93 = 0;
int x_94 = 0;
int x_95 = 0;
int x_96 = 0;
int x_97 = 0;
int x_98 = 0;
int x_99 = 0;
int x_100 = 0;
int x_101 = 0;
int x_102 = 0;
int x_103[10] = (int[10])0;
int x_104 = 0;
int x_105 = 0;
int x_106 = 0;
int i_2 = 0;
float2 uv = float2(0.0f, 0.0f);
float3 color = float3(0.0f, 0.0f, 0.0f);
x_GLF_FragCoord = ((x_GLF_pos + float4(1.0f, 1.0f, 0.0f, 0.0f)) * float4(128.0f, 128.0f, 1.0f, 1.0f));
i_2 = 0;
{
[loop] for(; (i_2 < 10); i_2 = (i_2 + 1)) {
obj.numbers[i_2] = (10 - i_2);
const int x_121 = i_2;
const int x_124 = obj.numbers[i_2];
const int x_127 = obj.numbers[i_2];
obj.numbers[x_121] = (x_124 * x_127);
}
}
x_100 = 0;
x_101 = 9;
x_102 = -1;
const int x_133 = (x_102 + 1);
x_102 = x_133;
x_103[x_133] = x_100;
const int x_137 = (x_102 + 1);
x_102 = x_137;
x_103[x_137] = x_101;
[loop] while (true) {
if ((x_102 >= 0)) {
} else {
break;
}
const int x_147 = x_102;
x_102 = (x_147 - 1);
const int x_150 = x_103[x_147];
x_101 = x_150;
const int x_151 = x_102;
x_102 = (x_151 - 1);
const int x_154 = x_103[x_151];
x_100 = x_154;
x_105 = x_100;
x_106 = x_101;
const int x_159 = obj.numbers[x_106];
x_92 = x_159;
x_93 = (x_105 - 1);
x_94 = x_105;
{
[loop] for(; (x_94 <= (x_106 - 1)); x_94 = (x_94 + 1)) {
const int x_174 = obj.numbers[x_94];
if ((x_174 <= x_92)) {
x_93 = (x_93 + 1);
x_95 = x_93;
x_96 = x_94;
const int x_185 = obj.numbers[x_95];
x_91 = x_185;
const int x_186 = x_95;
const int x_189 = obj.numbers[x_96];
obj.numbers[x_186] = x_189;
obj.numbers[x_96] = x_91;
}
}
}
x_97 = (x_93 + 1);
x_98 = x_106;
const int x_201 = obj.numbers[x_97];
x_90 = x_201;
const int x_202 = x_97;
const int x_205 = obj.numbers[x_98];
obj.numbers[x_202] = x_205;
obj.numbers[x_98] = x_90;
x_99 = (x_93 + 1);
x_104 = x_99;
if (((x_104 - 1) > x_100)) {
const int x_220 = (x_102 + 1);
x_102 = x_220;
x_103[x_220] = x_100;
const int x_224 = (x_102 + 1);
x_102 = x_224;
x_103[x_224] = (x_104 - 1);
}
if (((x_104 + 1) < x_101)) {
const int x_235 = (x_102 + 1);
x_102 = x_235;
x_103[x_235] = (x_104 + 1);
const int x_240 = (x_102 + 1);
x_102 = x_240;
x_103[x_240] = x_101;
}
}
const float4 x_243 = x_GLF_FragCoord;
const float2 x_246 = asfloat(x_34[0].xy);
uv = (float2(x_243.x, x_243.y) / x_246);
color = float3(1.0f, 2.0f, 3.0f);
const int x_249 = obj.numbers[0];
const float x_252 = color.x;
color.x = (x_252 + float(x_249));
const float x_256 = uv.x;
if ((x_256 > 0.25f)) {
const int x_261 = obj.numbers[1];
const float x_264 = color.x;
color.x = (x_264 + float(x_261));
}
const float x_268 = uv.x;
if ((x_268 > 0.5f)) {
const int x_273 = obj.numbers[2];
const float x_276 = color.y;
color.y = (x_276 + float(x_273));
}
const float x_280 = uv.x;
if ((x_280 > 0.75f)) {
const int x_285 = obj.numbers[3];
const float x_288 = color.z;
color.z = (x_288 + float(x_285));
}
const int x_292 = obj.numbers[4];
const float x_295 = color.y;
color.y = (x_295 + float(x_292));
const float x_299 = uv.y;
if ((x_299 > 0.25f)) {
const int x_304 = obj.numbers[5];
const float x_307 = color.x;
color.x = (x_307 + float(x_304));
}
const float x_311 = uv.y;
if ((x_311 > 0.5f)) {
const int x_316 = obj.numbers[6];
const float x_319 = color.y;
color.y = (x_319 + float(x_316));
}
const float x_323 = uv.y;
if ((x_323 > 0.75f)) {
const int x_328 = obj.numbers[7];
const float x_331 = color.z;
color.z = (x_331 + float(x_328));
}
const int x_335 = obj.numbers[8];
const float x_338 = color.z;
color.z = (x_338 + float(x_335));
const float x_342 = uv.x;
const float x_344 = uv.y;
if ((abs((x_342 - x_344)) < 0.25f)) {
const int x_351 = obj.numbers[9];
const float x_354 = color.x;
color.x = (x_354 + float(x_351));
}
const float3 x_358 = normalize(color);
frag_color = float4(x_358.x, x_358.y, x_358.z, 1.0f);
gl_Position = x_GLF_pos;
return;
}
struct main_out {
float4 frag_color_1;
float4 gl_Position;
};
struct tint_symbol_1 {
float4 x_GLF_pos_param : TEXCOORD0;
};
struct tint_symbol_2 {
float4 frag_color_1 : TEXCOORD0;
float4 gl_Position : SV_Position;
};
main_out main_inner(float4 x_GLF_pos_param) {
x_GLF_pos = x_GLF_pos_param;
main_1();
const main_out tint_symbol_4 = {frag_color, gl_Position};
return tint_symbol_4;
}
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const main_out inner_result = main_inner(tint_symbol.x_GLF_pos_param);
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
wrapper_result.frag_color_1 = inner_result.frag_color_1;
wrapper_result.gl_Position = inner_result.gl_Position;
return wrapper_result;
}
void swap_i1_i1_(inout int i, inout int j) {
int temp = 0;
const int x_366 = i;
const int x_368 = obj.numbers[x_366];
temp = x_368;
const int x_369 = i;
const int x_370 = j;
const int x_372 = obj.numbers[x_370];
obj.numbers[x_369] = x_372;
const int x_374 = j;
obj.numbers[x_374] = temp;
return;
}
int performPartition_i1_i1_(inout int l, inout int h) {
int pivot = 0;
int i_1 = 0;
int j_1 = 0;
int param = 0;
int param_1 = 0;
int param_2 = 0;
int param_3 = 0;
const int x_378 = h;
const int x_380 = obj.numbers[x_378];
pivot = x_380;
const int x_381 = l;
i_1 = (x_381 - 1);
const int x_383 = l;
j_1 = x_383;
[loop] while (true) {
const int x_388 = j_1;
const int x_389 = h;
if ((x_388 <= (x_389 - 1))) {
} else {
break;
}
const int x_395 = obj.numbers[j_1];
if ((x_395 <= pivot)) {
i_1 = (i_1 + 1);
param = i_1;
param_1 = j_1;
swap_i1_i1_(param, param_1);
}
{
j_1 = (j_1 + 1);
}
}
param_2 = (i_1 + 1);
const int x_409 = h;
param_3 = x_409;
swap_i1_i1_(param_2, param_3);
return (i_1 + 1);
}
void quicksort_() {
int l_1 = 0;
int h_1 = 0;
int top = 0;
int stack[10] = (int[10])0;
int p = 0;
int param_4 = 0;
int param_5 = 0;
l_1 = 0;
h_1 = 9;
top = -1;
const int x_415 = (top + 1);
top = x_415;
stack[x_415] = l_1;
const int x_419 = (top + 1);
top = x_419;
stack[x_419] = h_1;
[loop] while (true) {
if ((top >= 0)) {
} else {
break;
}
const int x_429 = top;
top = (x_429 - 1);
const int x_432 = stack[x_429];
h_1 = x_432;
const int x_433 = top;
top = (x_433 - 1);
const int x_436 = stack[x_433];
l_1 = x_436;
param_4 = l_1;
param_5 = h_1;
const int x_439 = performPartition_i1_i1_(param_4, param_5);
p = x_439;
if (((p - 1) > l_1)) {
const int x_447 = (top + 1);
top = x_447;
stack[x_447] = l_1;
const int x_451 = (top + 1);
top = x_451;
stack[x_451] = (p - 1);
}
if (((p + 1) < h_1)) {
const int x_462 = (top + 1);
top = x_462;
stack[x_462] = (p + 1);
const int x_467 = (top + 1);
top = x_467;
stack[x_467] = h_1;
}
}
return;
}
C:\src\tint\test\Shader@0x0000028832C83FA0(39,7-22): warning X3550: array reference cannot be used as an l-value; not natively addressable, forcing loop to unroll
C:\src\tint\test\Shader@0x0000028832C83FA0(38,12-45): error X3531: can't unroll loops marked with loop attribute

View File

@ -0,0 +1,295 @@
SKIP: FAILED
struct QuicksortObject {
int numbers[10];
};
static QuicksortObject obj = (QuicksortObject)0;
static float4 x_GLF_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
static float4 x_GLF_pos = float4(0.0f, 0.0f, 0.0f, 0.0f);
cbuffer cbuffer_x_34 : register(b0, space0) {
uint4 x_34[1];
};
static float4 frag_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
static float4 gl_Position = float4(0.0f, 0.0f, 0.0f, 0.0f);
int performPartition_i1_i1_(inout int l, inout int h) {
int x_314 = 0;
int x_315 = 0;
int pivot = 0;
int i_1 = 0;
int j_1 = 0;
int param = 0;
int param_1 = 0;
int param_2 = 0;
int param_3 = 0;
const int x_316 = h;
const int x_318 = obj.numbers[x_316];
pivot = x_318;
const int x_319 = l;
i_1 = (x_319 - 1);
const int x_321 = l;
j_1 = x_321;
[loop] while (true) {
const int x_326 = j_1;
const int x_327 = h;
if ((x_326 <= (x_327 - 1))) {
} else {
break;
}
const int x_333 = obj.numbers[j_1];
if ((x_333 <= pivot)) {
i_1 = (i_1 + 1);
param = i_1;
param_1 = j_1;
const int x_344 = obj.numbers[param];
x_315 = x_344;
const int x_345 = param;
const int x_348 = obj.numbers[param_1];
obj.numbers[x_345] = x_348;
obj.numbers[param_1] = x_315;
}
{
j_1 = (j_1 + 1);
}
}
param_2 = (i_1 + 1);
const int x_357 = h;
param_3 = x_357;
const int x_360 = obj.numbers[param_2];
x_314 = x_360;
const int x_361 = param_2;
const int x_364 = obj.numbers[param_3];
obj.numbers[x_361] = x_364;
obj.numbers[param_3] = x_314;
if (false) {
} else {
return (i_1 + 1);
}
return 0;
}
void main_1() {
int x_91 = 0;
int x_92 = 0;
int x_93 = 0;
int x_94[10] = (int[10])0;
int x_95 = 0;
int x_96 = 0;
int x_97 = 0;
int i_2 = 0;
float2 uv = float2(0.0f, 0.0f);
float3 color = float3(0.0f, 0.0f, 0.0f);
x_GLF_FragCoord = ((x_GLF_pos + float4(1.0f, 1.0f, 0.0f, 0.0f)) * float4(128.0f, 128.0f, 1.0f, 1.0f));
i_2 = 0;
{
[loop] for(; (i_2 < 10); i_2 = (i_2 + 1)) {
obj.numbers[i_2] = (10 - i_2);
const int x_112 = i_2;
const int x_115 = obj.numbers[i_2];
const int x_118 = obj.numbers[i_2];
obj.numbers[x_112] = (x_115 * x_118);
}
}
x_91 = 0;
x_92 = 9;
x_93 = -1;
const int x_124 = (x_93 + 1);
x_93 = x_124;
x_94[x_124] = x_91;
const int x_128 = (x_93 + 1);
x_93 = x_128;
x_94[x_128] = x_92;
[loop] while (true) {
if ((x_93 >= 0)) {
} else {
break;
}
const int x_138 = x_93;
x_93 = (x_138 - 1);
const int x_141 = x_94[x_138];
x_92 = x_141;
const int x_142 = x_93;
x_93 = (x_142 - 1);
const int x_145 = x_94[x_142];
x_91 = x_145;
x_96 = x_91;
x_97 = x_92;
const int x_148 = performPartition_i1_i1_(x_96, x_97);
x_95 = x_148;
if (((x_95 - 1) > x_91)) {
const int x_156 = (x_93 + 1);
x_93 = x_156;
x_94[x_156] = x_91;
const int x_160 = (x_93 + 1);
x_93 = x_160;
x_94[x_160] = (x_95 - 1);
}
if (((x_95 + 1) < x_92)) {
const int x_171 = (x_93 + 1);
x_93 = x_171;
x_94[x_171] = (x_95 + 1);
const int x_176 = (x_93 + 1);
x_93 = x_176;
x_94[x_176] = x_92;
}
}
const float4 x_179 = x_GLF_FragCoord;
const float2 x_182 = asfloat(x_34[0].xy);
uv = (float2(x_179.x, x_179.y) / x_182);
color = float3(1.0f, 2.0f, 3.0f);
const int x_185 = obj.numbers[0];
const float x_188 = color.x;
color.x = (x_188 + float(x_185));
const float x_192 = uv.x;
if ((x_192 > 0.25f)) {
const int x_197 = obj.numbers[1];
const float x_200 = color.x;
color.x = (x_200 + float(x_197));
}
const float x_204 = uv.x;
if ((x_204 > 0.5f)) {
const int x_209 = obj.numbers[2];
const float x_212 = color.y;
color.y = (x_212 + float(x_209));
}
const float x_216 = uv.x;
if ((x_216 > 0.75f)) {
const int x_221 = obj.numbers[3];
const float x_224 = color.z;
color.z = (x_224 + float(x_221));
}
const int x_228 = obj.numbers[4];
const float x_231 = color.y;
color.y = (x_231 + float(x_228));
const float x_235 = uv.y;
if ((x_235 > 0.25f)) {
const int x_240 = obj.numbers[5];
const float x_243 = color.x;
color.x = (x_243 + float(x_240));
}
const float x_247 = uv.y;
if ((x_247 > 0.5f)) {
const int x_252 = obj.numbers[6];
const float x_255 = color.y;
color.y = (x_255 + float(x_252));
}
const float x_259 = uv.y;
if ((x_259 > 0.75f)) {
const int x_264 = obj.numbers[7];
const float x_267 = color.z;
color.z = (x_267 + float(x_264));
}
const int x_271 = obj.numbers[8];
const float x_274 = color.z;
color.z = (x_274 + float(x_271));
const float x_278 = uv.x;
const float x_280 = uv.y;
if ((abs((x_278 - x_280)) < 0.25f)) {
const int x_287 = obj.numbers[9];
const float x_290 = color.x;
color.x = (x_290 + float(x_287));
}
const float3 x_294 = normalize(color);
frag_color = float4(x_294.x, x_294.y, x_294.z, 1.0f);
gl_Position = x_GLF_pos;
return;
}
struct main_out {
float4 frag_color_1;
float4 gl_Position;
};
struct tint_symbol_1 {
float4 x_GLF_pos_param : TEXCOORD0;
};
struct tint_symbol_2 {
float4 frag_color_1 : TEXCOORD0;
float4 gl_Position : SV_Position;
};
main_out main_inner(float4 x_GLF_pos_param) {
x_GLF_pos = x_GLF_pos_param;
main_1();
const main_out tint_symbol_4 = {frag_color, gl_Position};
return tint_symbol_4;
}
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const main_out inner_result = main_inner(tint_symbol.x_GLF_pos_param);
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
wrapper_result.frag_color_1 = inner_result.frag_color_1;
wrapper_result.gl_Position = inner_result.gl_Position;
return wrapper_result;
}
void swap_i1_i1_(inout int i, inout int j) {
int temp = 0;
const int x_302 = i;
const int x_304 = obj.numbers[x_302];
temp = x_304;
const int x_305 = i;
const int x_306 = j;
const int x_308 = obj.numbers[x_306];
obj.numbers[x_305] = x_308;
const int x_310 = j;
obj.numbers[x_310] = temp;
return;
}
void quicksort_() {
int l_1 = 0;
int h_1 = 0;
int top = 0;
int stack[10] = (int[10])0;
int p = 0;
int param_4 = 0;
int param_5 = 0;
l_1 = 0;
h_1 = 9;
top = -1;
const int x_377 = (top + 1);
top = x_377;
stack[x_377] = l_1;
const int x_381 = (top + 1);
top = x_381;
stack[x_381] = h_1;
[loop] while (true) {
if ((top >= 0)) {
} else {
break;
}
const int x_391 = top;
top = (x_391 - 1);
const int x_394 = stack[x_391];
h_1 = x_394;
const int x_395 = top;
top = (x_395 - 1);
const int x_398 = stack[x_395];
l_1 = x_398;
param_4 = l_1;
param_5 = h_1;
const int x_401 = performPartition_i1_i1_(param_4, param_5);
p = x_401;
if (((p - 1) > l_1)) {
const int x_409 = (top + 1);
top = x_409;
stack[x_409] = l_1;
const int x_413 = (top + 1);
top = x_413;
stack[x_413] = (p - 1);
}
if (((p + 1) < h_1)) {
const int x_424 = (top + 1);
top = x_424;
stack[x_424] = (p + 1);
const int x_429 = (top + 1);
top = x_429;
stack[x_429] = h_1;
}
}
return;
}
C:\src\tint\test\Shader@0x000002B401B06060(85,7-22): warning X3550: array reference cannot be used as an l-value; not natively addressable, forcing loop to unroll
C:\src\tint\test\Shader@0x000002B401B06060(84,12-45): error X3531: can't unroll loops marked with loop attribute

View File

@ -0,0 +1,295 @@
SKIP: FAILED
struct QuicksortObject {
int numbers[10];
};
static QuicksortObject obj = (QuicksortObject)0;
static float4 x_GLF_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
static float4 x_GLF_pos = float4(0.0f, 0.0f, 0.0f, 0.0f);
cbuffer cbuffer_x_34 : register(b0, space0) {
uint4 x_34[1];
};
static float4 frag_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
static float4 gl_Position = float4(0.0f, 0.0f, 0.0f, 0.0f);
int performPartition_i1_i1_(inout int l, inout int h) {
int x_314 = 0;
int x_315 = 0;
int pivot = 0;
int i_1 = 0;
int j_1 = 0;
int param = 0;
int param_1 = 0;
int param_2 = 0;
int param_3 = 0;
const int x_316 = h;
const int x_318 = obj.numbers[x_316];
pivot = x_318;
const int x_319 = l;
i_1 = (x_319 - 1);
const int x_321 = l;
j_1 = x_321;
[loop] while (true) {
const int x_326 = j_1;
const int x_327 = h;
if ((x_326 <= (x_327 - 1))) {
} else {
break;
}
const int x_333 = obj.numbers[j_1];
if ((x_333 <= pivot)) {
i_1 = (i_1 + 1);
param = i_1;
param_1 = j_1;
const int x_344 = obj.numbers[param];
x_315 = x_344;
const int x_345 = param;
const int x_348 = obj.numbers[param_1];
obj.numbers[x_345] = x_348;
obj.numbers[param_1] = x_315;
}
{
j_1 = (j_1 + 1);
}
}
param_2 = (i_1 + 1);
const int x_357 = h;
param_3 = x_357;
const int x_360 = obj.numbers[param_2];
x_314 = x_360;
const int x_361 = param_2;
const int x_364 = obj.numbers[param_3];
obj.numbers[x_361] = x_364;
obj.numbers[param_3] = x_314;
if (false) {
} else {
return (i_1 + 1);
}
return 0;
}
void main_1() {
int x_91 = 0;
int x_92 = 0;
int x_93 = 0;
int x_94[10] = (int[10])0;
int x_95 = 0;
int x_96 = 0;
int x_97 = 0;
int i_2 = 0;
float2 uv = float2(0.0f, 0.0f);
float3 color = float3(0.0f, 0.0f, 0.0f);
x_GLF_FragCoord = ((x_GLF_pos + float4(1.0f, 1.0f, 0.0f, 0.0f)) * float4(128.0f, 128.0f, 1.0f, 1.0f));
i_2 = 0;
{
[loop] for(; (i_2 < 10); i_2 = (i_2 + 1)) {
obj.numbers[i_2] = (10 - i_2);
const int x_112 = i_2;
const int x_115 = obj.numbers[i_2];
const int x_118 = obj.numbers[i_2];
obj.numbers[x_112] = (x_115 * x_118);
}
}
x_91 = 0;
x_92 = 9;
x_93 = -1;
const int x_124 = (x_93 + 1);
x_93 = x_124;
x_94[x_124] = x_91;
const int x_128 = (x_93 + 1);
x_93 = x_128;
x_94[x_128] = x_92;
[loop] while (true) {
if ((x_93 >= 0)) {
} else {
break;
}
const int x_138 = x_93;
x_93 = (x_138 - 1);
const int x_141 = x_94[x_138];
x_92 = x_141;
const int x_142 = x_93;
x_93 = (x_142 - 1);
const int x_145 = x_94[x_142];
x_91 = x_145;
x_96 = x_91;
x_97 = x_92;
const int x_148 = performPartition_i1_i1_(x_96, x_97);
x_95 = x_148;
if (((x_95 - 1) > x_91)) {
const int x_156 = (x_93 + 1);
x_93 = x_156;
x_94[x_156] = x_91;
const int x_160 = (x_93 + 1);
x_93 = x_160;
x_94[x_160] = (x_95 - 1);
}
if (((x_95 + 1) < x_92)) {
const int x_171 = (x_93 + 1);
x_93 = x_171;
x_94[x_171] = (x_95 + 1);
const int x_176 = (x_93 + 1);
x_93 = x_176;
x_94[x_176] = x_92;
}
}
const float4 x_179 = x_GLF_FragCoord;
const float2 x_182 = asfloat(x_34[0].xy);
uv = (float2(x_179.x, x_179.y) / x_182);
color = float3(1.0f, 2.0f, 3.0f);
const int x_185 = obj.numbers[0];
const float x_188 = color.x;
color.x = (x_188 + float(x_185));
const float x_192 = uv.x;
if ((x_192 > 0.25f)) {
const int x_197 = obj.numbers[1];
const float x_200 = color.x;
color.x = (x_200 + float(x_197));
}
const float x_204 = uv.x;
if ((x_204 > 0.5f)) {
const int x_209 = obj.numbers[2];
const float x_212 = color.y;
color.y = (x_212 + float(x_209));
}
const float x_216 = uv.x;
if ((x_216 > 0.75f)) {
const int x_221 = obj.numbers[3];
const float x_224 = color.z;
color.z = (x_224 + float(x_221));
}
const int x_228 = obj.numbers[4];
const float x_231 = color.y;
color.y = (x_231 + float(x_228));
const float x_235 = uv.y;
if ((x_235 > 0.25f)) {
const int x_240 = obj.numbers[5];
const float x_243 = color.x;
color.x = (x_243 + float(x_240));
}
const float x_247 = uv.y;
if ((x_247 > 0.5f)) {
const int x_252 = obj.numbers[6];
const float x_255 = color.y;
color.y = (x_255 + float(x_252));
}
const float x_259 = uv.y;
if ((x_259 > 0.75f)) {
const int x_264 = obj.numbers[7];
const float x_267 = color.z;
color.z = (x_267 + float(x_264));
}
const int x_271 = obj.numbers[8];
const float x_274 = color.z;
color.z = (x_274 + float(x_271));
const float x_278 = uv.x;
const float x_280 = uv.y;
if ((abs((x_278 - x_280)) < 0.25f)) {
const int x_287 = obj.numbers[9];
const float x_290 = color.x;
color.x = (x_290 + float(x_287));
}
const float3 x_294 = normalize(color);
frag_color = float4(x_294.x, x_294.y, x_294.z, 1.0f);
gl_Position = x_GLF_pos;
return;
}
struct main_out {
float4 frag_color_1;
float4 gl_Position;
};
struct tint_symbol_1 {
float4 x_GLF_pos_param : TEXCOORD0;
};
struct tint_symbol_2 {
float4 frag_color_1 : TEXCOORD0;
float4 gl_Position : SV_Position;
};
main_out main_inner(float4 x_GLF_pos_param) {
x_GLF_pos = x_GLF_pos_param;
main_1();
const main_out tint_symbol_4 = {frag_color, gl_Position};
return tint_symbol_4;
}
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const main_out inner_result = main_inner(tint_symbol.x_GLF_pos_param);
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
wrapper_result.frag_color_1 = inner_result.frag_color_1;
wrapper_result.gl_Position = inner_result.gl_Position;
return wrapper_result;
}
void swap_i1_i1_(inout int i, inout int j) {
int temp = 0;
const int x_302 = i;
const int x_304 = obj.numbers[x_302];
temp = x_304;
const int x_305 = i;
const int x_306 = j;
const int x_308 = obj.numbers[x_306];
obj.numbers[x_305] = x_308;
const int x_310 = j;
obj.numbers[x_310] = temp;
return;
}
void quicksort_() {
int l_1 = 0;
int h_1 = 0;
int top = 0;
int stack[10] = (int[10])0;
int p = 0;
int param_4 = 0;
int param_5 = 0;
l_1 = 0;
h_1 = 9;
top = -1;
const int x_377 = (top + 1);
top = x_377;
stack[x_377] = l_1;
const int x_381 = (top + 1);
top = x_381;
stack[x_381] = h_1;
[loop] while (true) {
if ((top >= 0)) {
} else {
break;
}
const int x_391 = top;
top = (x_391 - 1);
const int x_394 = stack[x_391];
h_1 = x_394;
const int x_395 = top;
top = (x_395 - 1);
const int x_398 = stack[x_395];
l_1 = x_398;
param_4 = l_1;
param_5 = h_1;
const int x_401 = performPartition_i1_i1_(param_4, param_5);
p = x_401;
if (((p - 1) > l_1)) {
const int x_409 = (top + 1);
top = x_409;
stack[x_409] = l_1;
const int x_413 = (top + 1);
top = x_413;
stack[x_413] = (p - 1);
}
if (((p + 1) < h_1)) {
const int x_424 = (top + 1);
top = x_424;
stack[x_424] = (p + 1);
const int x_429 = (top + 1);
top = x_429;
stack[x_429] = h_1;
}
}
return;
}
C:\src\tint\test\Shader@0x000001381E0F76E0(85,7-22): warning X3550: array reference cannot be used as an l-value; not natively addressable, forcing loop to unroll
C:\src\tint\test\Shader@0x000001381E0F76E0(84,12-45): error X3531: can't unroll loops marked with loop attribute

View File

@ -0,0 +1,236 @@
SKIP: FAILED
struct QuicksortObject {
int numbers[10];
};
static QuicksortObject obj = (QuicksortObject)0;
static float4 x_GLF_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
static float4 x_GLF_pos = float4(0.0f, 0.0f, 0.0f, 0.0f);
cbuffer cbuffer_x_34 : register(b1, space0) {
uint4 x_34[1];
};
cbuffer cbuffer_x_37 : register(b0, space0) {
uint4 x_37[1];
};
static float4 frag_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
static float4 gl_Position = float4(0.0f, 0.0f, 0.0f, 0.0f);
void swap_i1_i1_(inout int i, inout int j) {
int temp = 0;
const int x_257 = i;
const int x_259 = obj.numbers[x_257];
temp = x_259;
const int x_260 = i;
const int x_261 = j;
const int x_263 = obj.numbers[x_261];
obj.numbers[x_260] = x_263;
const int x_265 = j;
obj.numbers[x_265] = temp;
return;
}
int performPartition_i1_i1_(inout int l, inout int h) {
int pivot = 0;
int i_1 = 0;
int j_1 = 0;
int param = 0;
int param_1 = 0;
int param_2 = 0;
int param_3 = 0;
const int x_269 = h;
const int x_271 = obj.numbers[x_269];
pivot = x_271;
const int x_272 = l;
i_1 = (x_272 - 1);
const int x_274 = l;
j_1 = x_274;
[loop] while (true) {
const int x_279 = j_1;
const int x_280 = h;
if ((x_279 <= (x_280 - 1))) {
} else {
break;
}
const int x_286 = obj.numbers[j_1];
if ((x_286 <= pivot)) {
i_1 = (i_1 + 1);
param = i_1;
param_1 = j_1;
swap_i1_i1_(param, param_1);
}
{
j_1 = (j_1 + 1);
}
}
param_2 = (i_1 + 1);
const int x_300 = h;
param_3 = x_300;
swap_i1_i1_(param_2, param_3);
return (i_1 + 1);
}
void quicksort_() {
int l_1 = 0;
int h_1 = 0;
int top = 0;
int stack[10] = (int[10])0;
int p = 0;
int param_4 = 0;
int param_5 = 0;
l_1 = 0;
h_1 = 9;
top = -1;
const int x_306 = (top + 1);
top = x_306;
stack[x_306] = l_1;
const int x_310 = (top + 1);
top = x_310;
stack[x_310] = h_1;
[loop] while (true) {
if ((top >= 0)) {
} else {
break;
}
const int x_320 = top;
top = (x_320 - 1);
const int x_323 = stack[x_320];
h_1 = x_323;
const int x_324 = top;
top = (x_324 - 1);
const int x_327 = stack[x_324];
l_1 = x_327;
param_4 = l_1;
param_5 = h_1;
const int x_330 = performPartition_i1_i1_(param_4, param_5);
p = x_330;
if (((p - 1) > l_1)) {
const int x_338 = (top + 1);
top = x_338;
stack[x_338] = l_1;
const int x_342 = (top + 1);
top = x_342;
stack[x_342] = (p - 1);
}
if (((p + 1) < h_1)) {
const int x_353 = (top + 1);
top = x_353;
stack[x_353] = (p + 1);
const int x_358 = (top + 1);
top = x_358;
stack[x_358] = h_1;
}
}
return;
}
void main_1() {
int i_2 = 0;
float2 uv = float2(0.0f, 0.0f);
float3 color = float3(0.0f, 0.0f, 0.0f);
x_GLF_FragCoord = ((x_GLF_pos + float4(1.0f, 1.0f, 0.0f, 0.0f)) * float4(128.0f, 128.0f, 1.0f, 1.0f));
i_2 = 0;
{
[loop] for(; (i_2 < 10); i_2 = (i_2 + 1)) {
obj.numbers[i_2] = (10 - i_2);
const int x_108 = i_2;
const int x_111 = obj.numbers[i_2];
const int x_114 = obj.numbers[i_2];
obj.numbers[x_108] = (x_111 * x_114);
}
}
quicksort_();
const float4 x_120 = x_GLF_FragCoord;
const float2 x_123 = asfloat(x_34[0].xy);
uv = (float2(x_120.x, x_120.y) / x_123);
color = float3(1.0f, 2.0f, 3.0f);
const int x_126 = obj.numbers[0];
const float x_129 = color.x;
color.x = (x_129 + float(x_126));
const float x_133 = uv.x;
if ((x_133 > 0.25f)) {
const int x_138 = obj.numbers[1];
const float x_141 = color.x;
color.x = (x_141 + float(x_138));
}
const float x_145 = uv.x;
if ((x_145 > 0.5f)) {
const float x_150 = asfloat(x_37[0].y);
const int x_155 = obj.numbers[max((2 * int(x_150)), 2)];
const float x_158 = asfloat(x_37[0].y);
const int x_163 = obj.numbers[max((2 * int(x_158)), 2)];
const float x_167 = color.y;
color.y = (x_167 + max(float(x_155), float(x_163)));
}
const float x_171 = uv.x;
if ((x_171 > 0.75f)) {
const int x_176 = obj.numbers[3];
const float x_179 = color.z;
color.z = (x_179 + float(x_176));
}
const int x_183 = obj.numbers[4];
const float x_186 = color.y;
color.y = (x_186 + float(x_183));
const float x_190 = uv.y;
if ((x_190 > 0.25f)) {
const int x_195 = obj.numbers[5];
const float x_198 = color.x;
color.x = (x_198 + float(x_195));
}
const float x_202 = uv.y;
if ((x_202 > 0.5f)) {
const int x_207 = obj.numbers[6];
const float x_210 = color.y;
color.y = (x_210 + float(x_207));
}
const float x_214 = uv.y;
if ((x_214 > 0.75f)) {
const int x_219 = obj.numbers[7];
const float x_222 = color.z;
color.z = (x_222 + float(x_219));
}
const int x_226 = obj.numbers[8];
const float x_229 = color.z;
color.z = (x_229 + float(x_226));
const float x_233 = uv.x;
const float x_235 = uv.y;
if ((abs((x_233 - x_235)) < 0.25f)) {
const int x_242 = obj.numbers[9];
const float x_245 = color.x;
color.x = (x_245 + float(x_242));
}
const float3 x_249 = normalize(color);
frag_color = float4(x_249.x, x_249.y, x_249.z, 1.0f);
gl_Position = x_GLF_pos;
return;
}
struct main_out {
float4 frag_color_1;
float4 gl_Position;
};
struct tint_symbol_1 {
float4 x_GLF_pos_param : TEXCOORD0;
};
struct tint_symbol_2 {
float4 frag_color_1 : TEXCOORD0;
float4 gl_Position : SV_Position;
};
main_out main_inner(float4 x_GLF_pos_param) {
x_GLF_pos = x_GLF_pos_param;
main_1();
const main_out tint_symbol_5 = {frag_color, gl_Position};
return tint_symbol_5;
}
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const main_out inner_result = main_inner(tint_symbol.x_GLF_pos_param);
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
wrapper_result.frag_color_1 = inner_result.frag_color_1;
wrapper_result.gl_Position = inner_result.gl_Position;
return wrapper_result;
}
C:\src\tint\test\Shader@0x0000015776479900(133,7-22): warning X3550: array reference cannot be used as an l-value; not natively addressable, forcing loop to unroll
C:\src\tint\test\Shader@0x0000015776479900(132,12-45): error X3531: can't unroll loops marked with loop attribute

View File

@ -0,0 +1,236 @@
SKIP: FAILED
struct QuicksortObject {
int numbers[10];
};
static QuicksortObject obj = (QuicksortObject)0;
static float4 x_GLF_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
static float4 x_GLF_pos = float4(0.0f, 0.0f, 0.0f, 0.0f);
cbuffer cbuffer_x_34 : register(b1, space0) {
uint4 x_34[1];
};
cbuffer cbuffer_x_37 : register(b0, space0) {
uint4 x_37[1];
};
static float4 frag_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
static float4 gl_Position = float4(0.0f, 0.0f, 0.0f, 0.0f);
void swap_i1_i1_(inout int i, inout int j) {
int temp = 0;
const int x_257 = i;
const int x_259 = obj.numbers[x_257];
temp = x_259;
const int x_260 = i;
const int x_261 = j;
const int x_263 = obj.numbers[x_261];
obj.numbers[x_260] = x_263;
const int x_265 = j;
obj.numbers[x_265] = temp;
return;
}
int performPartition_i1_i1_(inout int l, inout int h) {
int pivot = 0;
int i_1 = 0;
int j_1 = 0;
int param = 0;
int param_1 = 0;
int param_2 = 0;
int param_3 = 0;
const int x_269 = h;
const int x_271 = obj.numbers[x_269];
pivot = x_271;
const int x_272 = l;
i_1 = (x_272 - 1);
const int x_274 = l;
j_1 = x_274;
[loop] while (true) {
const int x_279 = j_1;
const int x_280 = h;
if ((x_279 <= (x_280 - 1))) {
} else {
break;
}
const int x_286 = obj.numbers[j_1];
if ((x_286 <= pivot)) {
i_1 = (i_1 + 1);
param = i_1;
param_1 = j_1;
swap_i1_i1_(param, param_1);
}
{
j_1 = (j_1 + 1);
}
}
param_2 = (i_1 + 1);
const int x_300 = h;
param_3 = x_300;
swap_i1_i1_(param_2, param_3);
return (i_1 + 1);
}
void quicksort_() {
int l_1 = 0;
int h_1 = 0;
int top = 0;
int stack[10] = (int[10])0;
int p = 0;
int param_4 = 0;
int param_5 = 0;
l_1 = 0;
h_1 = 9;
top = -1;
const int x_306 = (top + 1);
top = x_306;
stack[x_306] = l_1;
const int x_310 = (top + 1);
top = x_310;
stack[x_310] = h_1;
[loop] while (true) {
if ((top >= 0)) {
} else {
break;
}
const int x_320 = top;
top = (x_320 - 1);
const int x_323 = stack[x_320];
h_1 = x_323;
const int x_324 = top;
top = (x_324 - 1);
const int x_327 = stack[x_324];
l_1 = x_327;
param_4 = l_1;
param_5 = h_1;
const int x_330 = performPartition_i1_i1_(param_4, param_5);
p = x_330;
if (((p - 1) > l_1)) {
const int x_338 = (top + 1);
top = x_338;
stack[x_338] = l_1;
const int x_342 = (top + 1);
top = x_342;
stack[x_342] = (p - 1);
}
if (((p + 1) < h_1)) {
const int x_353 = (top + 1);
top = x_353;
stack[x_353] = (p + 1);
const int x_358 = (top + 1);
top = x_358;
stack[x_358] = h_1;
}
}
return;
}
void main_1() {
int i_2 = 0;
float2 uv = float2(0.0f, 0.0f);
float3 color = float3(0.0f, 0.0f, 0.0f);
x_GLF_FragCoord = ((x_GLF_pos + float4(1.0f, 1.0f, 0.0f, 0.0f)) * float4(128.0f, 128.0f, 1.0f, 1.0f));
i_2 = 0;
{
[loop] for(; (i_2 < 10); i_2 = (i_2 + 1)) {
obj.numbers[i_2] = (10 - i_2);
const int x_108 = i_2;
const int x_111 = obj.numbers[i_2];
const int x_114 = obj.numbers[i_2];
obj.numbers[x_108] = (x_111 * x_114);
}
}
quicksort_();
const float4 x_120 = x_GLF_FragCoord;
const float2 x_123 = asfloat(x_34[0].xy);
uv = (float2(x_120.x, x_120.y) / x_123);
color = float3(1.0f, 2.0f, 3.0f);
const int x_126 = obj.numbers[0];
const float x_129 = color.x;
color.x = (x_129 + float(x_126));
const float x_133 = uv.x;
if ((x_133 > 0.25f)) {
const int x_138 = obj.numbers[1];
const float x_141 = color.x;
color.x = (x_141 + float(x_138));
}
const float x_145 = uv.x;
if ((x_145 > 0.5f)) {
const float x_150 = asfloat(x_37[0].y);
const int x_155 = obj.numbers[max((2 * int(x_150)), 2)];
const float x_158 = asfloat(x_37[0].y);
const int x_163 = obj.numbers[max((2 * int(x_158)), 2)];
const float x_167 = color.y;
color.y = (x_167 + max(float(x_155), float(x_163)));
}
const float x_171 = uv.x;
if ((x_171 > 0.75f)) {
const int x_176 = obj.numbers[3];
const float x_179 = color.z;
color.z = (x_179 + float(x_176));
}
const int x_183 = obj.numbers[4];
const float x_186 = color.y;
color.y = (x_186 + float(x_183));
const float x_190 = uv.y;
if ((x_190 > 0.25f)) {
const int x_195 = obj.numbers[5];
const float x_198 = color.x;
color.x = (x_198 + float(x_195));
}
const float x_202 = uv.y;
if ((x_202 > 0.5f)) {
const int x_207 = obj.numbers[6];
const float x_210 = color.y;
color.y = (x_210 + float(x_207));
}
const float x_214 = uv.y;
if ((x_214 > 0.75f)) {
const int x_219 = obj.numbers[7];
const float x_222 = color.z;
color.z = (x_222 + float(x_219));
}
const int x_226 = obj.numbers[8];
const float x_229 = color.z;
color.z = (x_229 + float(x_226));
const float x_233 = uv.x;
const float x_235 = uv.y;
if ((abs((x_233 - x_235)) < 0.25f)) {
const int x_242 = obj.numbers[9];
const float x_245 = color.x;
color.x = (x_245 + float(x_242));
}
const float3 x_249 = normalize(color);
frag_color = float4(x_249.x, x_249.y, x_249.z, 1.0f);
gl_Position = x_GLF_pos;
return;
}
struct main_out {
float4 frag_color_1;
float4 gl_Position;
};
struct tint_symbol_1 {
float4 x_GLF_pos_param : TEXCOORD0;
};
struct tint_symbol_2 {
float4 frag_color_1 : TEXCOORD0;
float4 gl_Position : SV_Position;
};
main_out main_inner(float4 x_GLF_pos_param) {
x_GLF_pos = x_GLF_pos_param;
main_1();
const main_out tint_symbol_5 = {frag_color, gl_Position};
return tint_symbol_5;
}
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const main_out inner_result = main_inner(tint_symbol.x_GLF_pos_param);
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
wrapper_result.frag_color_1 = inner_result.frag_color_1;
wrapper_result.gl_Position = inner_result.gl_Position;
return wrapper_result;
}
C:\src\tint\test\Shader@0x00000203506D3380(133,7-22): warning X3550: array reference cannot be used as an l-value; not natively addressable, forcing loop to unroll
C:\src\tint\test\Shader@0x00000203506D3380(132,12-45): error X3531: can't unroll loops marked with loop attribute

View File

@ -0,0 +1,86 @@
SKIP: FAILED
cbuffer cbuffer_x_6 : register(b0, space0) {
uint4 x_6[1];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
int i = 0;
const float x_51 = asfloat(x_6[0].x);
i = int(x_51);
switch(i) {
case 0: {
[loop] while (true) {
i = (i + 1);
switch(i) {
case 2: {
i = (i + 5);
break;
}
case 1: {
{
if ((i > 200)) {
} else {
break;
}
}
continue;
break;
}
default: {
i = (i + 7);
break;
}
}
{
if ((i > 200)) {
} else {
break;
}
}
}
if ((i > 100)) {
i = (i - 2);
break;
}
/* fallthrough */
{
i = (i - 3);
}
break;
}
default: {
i = (i - 3);
break;
}
}
if ((i == -2)) {
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
} else {
x_GLF_color = float4(0.0f, 0.0f, 0.0f, 1.0f);
}
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;
}
C:\src\tint\test\Shader@0x0000013B8CBD6FE0(26,13-21): error X3708: continue cannot be used in a switch

View File

@ -0,0 +1,86 @@
SKIP: FAILED
cbuffer cbuffer_x_6 : register(b0, space0) {
uint4 x_6[1];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
void main_1() {
int i = 0;
const float x_51 = asfloat(x_6[0].x);
i = int(x_51);
switch(i) {
case 0: {
[loop] while (true) {
i = (i + 1);
switch(i) {
case 2: {
i = (i + 5);
break;
}
case 1: {
{
if ((i > 200)) {
} else {
break;
}
}
continue;
break;
}
default: {
i = (i + 7);
break;
}
}
{
if ((i > 200)) {
} else {
break;
}
}
}
if ((i > 100)) {
i = (i - 2);
break;
}
/* fallthrough */
{
i = (i - 3);
}
break;
}
default: {
i = (i - 3);
break;
}
}
if ((i == -2)) {
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
} else {
x_GLF_color = float4(0.0f, 0.0f, 0.0f, 1.0f);
}
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;
}
C:\src\tint\test\Shader@0x0000019C85DE9DB0(26,13-21): error X3708: continue cannot be used in a switch

View File

@ -13,7 +13,7 @@ void main_1() {
GLF_dead6index = 0;
const float x_34 = asfloat(x_6[0].y);
if ((x_34 < 0.0f)) {
while (true) {
[loop] while (true) {
if (true) {
} else {
break;
@ -33,11 +33,17 @@ struct tint_symbol {
float4 x_GLF_color_1 : SV_Target0;
};
tint_symbol main() {
main_out main_inner() {
main_1();
const main_out tint_symbol_1 = {x_GLF_color};
const tint_symbol tint_symbol_3 = {tint_symbol_1.x_GLF_color_1};
return tint_symbol_3;
const main_out tint_symbol_2 = {x_GLF_color};
return tint_symbol_2;
}
C:\src\tint\test\Shader@0x000001A8C062E2C0(14,12-15): error X3696: infinite loop detected - loop never exits
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;
}
C:\src\tint\test\Shader@0x00000256420D6A10(14,19-22): error X3696: infinite loop detected - loop never exits

View File

@ -13,7 +13,7 @@ void main_1() {
GLF_dead6index = 0;
const float x_34 = asfloat(x_6[0].y);
if ((x_34 < 0.0f)) {
while (true) {
[loop] while (true) {
if (true) {
} else {
break;
@ -33,11 +33,17 @@ struct tint_symbol {
float4 x_GLF_color_1 : SV_Target0;
};
tint_symbol main() {
main_out main_inner() {
main_1();
const main_out tint_symbol_1 = {x_GLF_color};
const tint_symbol tint_symbol_3 = {tint_symbol_1.x_GLF_color_1};
return tint_symbol_3;
const main_out tint_symbol_2 = {x_GLF_color};
return tint_symbol_2;
}
C:\src\tint\test\Shader@0x000001FA30492000(14,12-15): error X3696: infinite loop detected - loop never exits
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;
}
C:\src\tint\test\Shader@0x000001BA0B4E7BF0(14,19-22): error X3696: infinite loop detected - loop never exits

View File

@ -0,0 +1,64 @@
SKIP: FAILED
cbuffer cbuffer_x_7 : register(b0, space0) {
uint4 x_7[1];
};
static float4 gl_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
float3 computePoint_() {
if (true) {
const float x_48 = asfloat(x_7[0].x);
const float x_50 = asfloat(x_7[0].y);
if ((x_48 > x_50)) {
discard;
}
return float3(0.0f, 0.0f, 0.0f);
}
float3 unused;
return unused;
}
void main_1() {
bool x_34 = false;
[loop] while (true) {
const float3 x_36 = computePoint_();
const float x_41 = gl_FragCoord.x;
if ((x_41 < 0.0f)) {
x_34 = true;
break;
}
const float3 x_45 = computePoint_();
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
x_34 = true;
break;
}
return;
}
struct main_out {
float4 x_GLF_color_1;
};
struct tint_symbol_1 {
float4 gl_FragCoord_param : SV_Position;
};
struct tint_symbol_2 {
float4 x_GLF_color_1 : SV_Target0;
};
main_out main_inner(float4 gl_FragCoord_param) {
gl_FragCoord = gl_FragCoord_param;
main_1();
const main_out tint_symbol_4 = {x_GLF_color};
return tint_symbol_4;
}
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const main_out inner_result = main_inner(tint_symbol.gl_FragCoord_param);
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
return wrapper_result;
}
C:\src\tint\test\Shader@0x0000014F8C58FE70(22,10-21): warning X3557: loop only executes for 0 iteration(s), consider removing [loop]
C:\src\tint\test\Shader@0x0000014F8C58FE70(11,10-13): internal error: invalid access of unbound variable

View File

@ -0,0 +1,64 @@
SKIP: FAILED
cbuffer cbuffer_x_7 : register(b0, space0) {
uint4 x_7[1];
};
static float4 gl_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);
float3 computePoint_() {
if (true) {
const float x_48 = asfloat(x_7[0].x);
const float x_50 = asfloat(x_7[0].y);
if ((x_48 > x_50)) {
discard;
}
return float3(0.0f, 0.0f, 0.0f);
}
float3 unused;
return unused;
}
void main_1() {
bool x_34 = false;
[loop] while (true) {
const float3 x_36 = computePoint_();
const float x_41 = gl_FragCoord.x;
if ((x_41 < 0.0f)) {
x_34 = true;
break;
}
const float3 x_45 = computePoint_();
x_GLF_color = float4(1.0f, 0.0f, 0.0f, 1.0f);
x_34 = true;
break;
}
return;
}
struct main_out {
float4 x_GLF_color_1;
};
struct tint_symbol_1 {
float4 gl_FragCoord_param : SV_Position;
};
struct tint_symbol_2 {
float4 x_GLF_color_1 : SV_Target0;
};
main_out main_inner(float4 gl_FragCoord_param) {
gl_FragCoord = gl_FragCoord_param;
main_1();
const main_out tint_symbol_4 = {x_GLF_color};
return tint_symbol_4;
}
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const main_out inner_result = main_inner(tint_symbol.gl_FragCoord_param);
tint_symbol_2 wrapper_result = (tint_symbol_2)0;
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
return wrapper_result;
}
C:\src\tint\test\Shader@0x0000017E3AA920C0(22,10-21): warning X3557: loop only executes for 0 iteration(s), consider removing [loop]
C:\src\tint\test\Shader@0x0000017E3AA920C0(11,10-13): internal error: invalid access of unbound variable

Some files were not shown because too many files have changed in this diff Show More