cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

Raistmer
Adept II

Returning single boolean result from kernel - will it work?

I need to do some transformation on 2D array and return another 2D array from kernel and single boolean value that will show if some additional postprocessing needed for this data block or not.
Currently 2D array processed in gather + ordinary streams, not scatter.

Smth like
kernel void kernel_A(float4 input[][], out float4 output<>);

that boolean value will be 1 if any of elements in output array meets some condition.

The question:
can I use such kernel:

kernel void kernel_B(float4[][], out float4 output<>, out int condition[]);
where condition stream defined as
unsigned ssize=1;
brook::Stream< int > condition(1,&ssize);

and do next thing in kernel:

if(result.x>threshold){
condition[0]=1;
}
output.x=result.x;


Will I get required behavior in this case? (that is, condition will be zero if nothing in 2D array was above thrreshold and condition will be 1 if any of 2D elements was above threshold) Can I assume that if no writes in scatter array were done it will be zero ?
0 Likes
11 Replies
gaurav_garg
Adept I

I think this should work. You can initialize condition stream with 0 using streamRead.

As in this kernel, multiple threads will write the same value or won't write anything, data-race would not be a problem.

0 Likes

It seems it doesn't work....

In listed kernel second if condition chosen deliberatly that way it never can be true.
But was_pulse still contains some big number (last thread in block or smth close to last thread).

First condition can be true only for first element of array.

Whe I changes j<1 to j< -10, that is both conditions became false, was_pulse contained zero as it should be.

Brook+ can't correctly process logical expressions like A < B && C < D correctly or ?...

Why I recived such results ?

kernel void GPU_fetch_array_kernel10(int sizes[],float src[],int offsets[][],float freq[],int thresholds[][],out float4 dest<>,out int was_pulse[]){ int j=instance().y; int threadID=instance().x; float threshold=(float)thresholds[0][threadID];//R: fetch always starts with zero coadd level int k=0; int l=0; float4 acc=float4(0.f,0.f,0.f,0.f); float f=freq[threadID]; //double period=periods[threadID];//(double)sub_buffer_size/(double)f; int n_per=(int)f; for(k=0;k<n_per;k++){ l=offsets[threadID]; l+=(4*j);//R: index to data array computed acc.x+=src; acc.y+=src[l+1]; acc.z+=src[l+2]; acc.w+=src[l+3]; } if (j < 1 && acc.x < -10 ){ was_pulse[0]=threadID; } /* if(4*j+1<1){ if(acc.y<0){ was_pulse[0]=threadID; } } if(4*j+2<1){ if(acc.z<0){ was_pulse[0]=threadID; } } if(4*j+3<1){ if(acc.w<0){ was_pulse[0]=threadID; } } */ dest=acc; }

0 Likes

It seems Brook+ kernel writes in scatter array always
But sometimes it writes some trash....
0 Likes

First condition can be true only for first element of array.


It will be true for the first row.

What are the dimensions of dest stream you are using?

PS: Also, can you try nested if blocks instead of &&, in case your doubt is correct.

0 Likes

Originally posted by: gaurav.garg

First condition can be true only for first element of array.



It will be true for the first row.


What are the dimensions of dest stream you are using?


PS: Also, can you try nested if blocks instead of &&, in case your doubt is correct.


I meant first element of each 1D array from matrix, sorry.
2D array I use actually is collection of many 1D independed arrays joined into 2D array only for diminish kernel call overhead, algorithm work on 1D, not 2D structures.

About nested block - actually I beginned with nested blocks as you can see in my another post about kernel call error (there was just another modification of the same kernel).
Nested blocks gave same result too.

Actually I came to such expression (attached) but still got non-zero was_pulse.

The only case when I got zero was_pulse was situation where both conditions were false for each element of 2D stream.
That is j < -10 && acc.x < -10
That condition never calls scatter stream write indeed.

It was increasely strange to recive something like 2244 in scatter element for this code:
if (j < 1 && acc.x < -10.f ){
was_pulse[ 0 ]=( int ) acc.x;
}
positive value was assigned when condition says "do assing only for negative values"....


I would really appreciate info about how to update scatter stream only whae needed cause it would save me ~ 1/3 of all kernel calls and greatly increase (as I hope) app performance...
For now I should call separate kernel just to check if newly generated power values lower than threshold or not. This kernel attempted to merge new power value producing with checking if it exceed threshold or not (in vast majority of cases it will not exceed threshold, pulse above threshold considered as rare event for my app).

if ( j < 1){A=1;} else{A=0;} if(acc.x < -10.f ){B=1;} else{B=0;} if(A*B==1){ C=1; }else{ C=0; } if(C==1){ was_pulse[0]=(int)acc.x; }

0 Likes

Originally posted by: gaurav.garg

What are the dimensions of dest stream you are using?




Answerring on this your question:

dest stream has 8192 elements along X-axis, but kernel called 8 temes on execution domains 1024 element along X axis each (it appeared to do 8 kernel calls with Sleep() between saves more CPU than one big kernel call - fact strange by itself.

Y-dimension has variable size. It can be ~400 for example.


0 Likes

A similar brook+ code with a single element scatter stream, written on condition only, works fine on my machine.

Are you sure you first initialized your stream 'was_pulse' with a stream read?

0 Likes

Originally posted by: youplaboom

A similar brook+ code with a single element scatter stream, written on condition only, works fine on my machine.


Are you sure you first initialized your stream 'was_pulse' with a stream read?


Yes, I'm pretty sure. Cause there was case when I've seen zero as it should be.
+ I see changes when I assign different values inside kernel, it's not just trash leaved in uninitialized stream.

Do you use single condition or 2 conditions as I do ?
I could check if it will pass something like
if( j< -10 && (j+1) < -10 ) for example.
My current "theory": brook can't properly handle 2 condition statements and goes both paths even condition in total never met.
0 Likes

I always use parentheses in multiple conditions statements; but for the sack of argument I tried without them and it was still working.

Try that:

if ((j< -10) && ((j+1) < -10))

0 Likes

Ok, will post what I try and what I get:

1)
if ( ( (j < 1) && ((j+1)<-10 ) ) ){
was_pulse[0]=j+1;
}
result:
0 (as should be!)

2)

if ( ( (j < 1) && ((acc.x)<-10 ) ) ){
was_pulse[0]=(int)acc.x;
}

result:
2438 (not as should be)

positive number while condition is less than some negative number... what is wrong?...
IL output for last example attached....

const char __GPU_fetch_array_kernel10_cal_desc_tech0_pass0[] = "il_ps_2_0\n" "dcl_literal l0,0x00000000,0x00000000,0x00000000,0x00000000\n" "dcl_literal l1,0x00000001,0x00000001,0x00000001,0x00000001\n" "dcl_literal l2,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF\n" "dcl_literal l3,0x7FFFFFFF,0x7FFFFFFF,0x7FFFFFFF,0x7FFFFFFF\n" "dcl_literal l4,0x7F800000,0x7F800000,0x7F800000,0x7F800000\n" "dcl_literal l5,0x80000000,0x80000000,0x80000000,0x80000000\n" "dcl_literal l6,0x3E9A209B,0x3E9A209B,0x3E9A209B,0x3E9A209B\n" "dcl_literal l7,0x3F317218,0x3F317218,0x3F317218,0x3F317218\n" "dcl_literal l8,0x40490FDB,0x40490FDB,0x40490FDB,0x40490FDB\n" "dcl_literal l9,0x3FC90FDB,0x3FC90FDB,0x3FC90FDB,0x3FC90FDB\n" "dcl_literal l10,0x00000003,0x00000003,0x00000003,0x00000003\n" "dcl_literal l11,0x00000002,0x00000002,0x00000002,0x00000002\n" "dcl_literal l12,0x00000000,0x00000000,0x00000000,0x00000000\n" "dcl_literal l13,0x00000001,0x00000001,0x00000001,0x00000001\n" "dcl_literal l14,0x00000001,0x00000001,0x00000001,0x00000001\n" "dcl_literal l15,0x00000001,0x00000001,0x00000001,0x00000001\n" ";global (g) declared, size = 4096\n" "dcl_literal l16,0x00000004,0x00000004,0x00000004,0x00000004\n" "dcl_literal l17,0x00000002,0x00000002,0x00000002,0x00000002\n" "dcl_literal l18,0x00000003,0x00000003,0x00000003,0x00000003\n" "dcl_literal l19,0x0000000A,0x0000000A,0x0000000A,0x0000000A\n" "dcl_literal l20,0x40000000,0x40000000,0x40000000,0x40000000\n" "dcl_literal l21,0x00000002,0x00000002,0x00000002,0x00000002\n" "dcl_literal l22,0x00000001,0x00000001,0x00000001,0x00000001\n" "dcl_literal l23,0x00000005,0x00000005,0x00000005,0x00000005\n" "dcl_literal l24,0x00000006,0x00000006,0x00000006,0x00000006\n" "dcl_literal l25,0x00000007,0x00000007,0x00000007,0x00000007\n" "dcl_output_usage(generic) o0.xyzw\n" "dcl_resource_id(0)_type(2d,unnorm)_fmtx(float)_fmty(float)_fmtz(float)_fmtw(float)\n" "dcl_resource_id(1)_type(2d,unnorm)_fmtx(float)_fmty(float)_fmtz(float)_fmtw(float)\n" "dcl_resource_id(2)_type(2d,unnorm)_fmtx(float)_fmty(float)_fmtz(float)_fmtw(float)\n" "dcl_resource_id(3)_type(2d,unnorm)_fmtx(float)_fmty(float)_fmtz(float)_fmtw(float)\n" "dcl_resource_id(4)_type(2d,unnorm)_fmtx(float)_fmty(float)_fmtz(float)_fmtw(float)\n" "dcl_literal l26,0x00000004,0x00000004,0x00000004,0x00000004\n" "dcl_input_position_interp(linear_noperspective) v0.xy__\n" "dcl_literal l27,0x3F000000,0x3F000000,0x3F000000,0x3F000000\n" "dcl_literal l28,0x3F000000,0x3F000000,0x3F000000,0x3F000000\n" "mov r920.xy__,v0.xyzw\n" "call 55 \n" "call 0 \n" "endmain\n" "\n" "func 0\n" "mov o0.xyzw,r919.xyzw\n" "ret\n" "\n" "func 2\n" "ieq r0.x___,r17.x000,l0.x000\n" "if_logicalnz r0.x000\n" "sample_resource(0)_sampler(0) r19.xyzw,r18.xy00\n" "endif\n" "ieq r0.x___,r17.x000,l1.x000\n" "if_logicalnz r0.x000\n" "sample_resource(1)_sampler(0) r19.xyzw,r18.xy00\n" "endif\n" "ieq r0.x___,r17.x000,l11.x000\n" "if_logicalnz r0.x000\n" "sample_resource(2)_sampler(0) r19.xyzw,r18.xy00\n" "endif\n" "ieq r0.x___,r17.x000,l10.x000\n" "if_logicalnz r0.x000\n" "sample_resource(3)_sampler(0) r19.xyzw,r18.xy00\n" "endif\n" "ieq r0.x___,r17.x000,l26.x000\n" "if_logicalnz r0.x000\n" "sample_resource(4)_sampler(0) r19.xyzw,r18.xy00\n" "endif\n" "mov r16.x___,r19.x000\n" "ret_dyn\n" "ret\n" "\n" "func 10\n" "ieq r0.x___,r57.x000,l0.x000\n" "if_logicalnz r0.x000\n" "sample_resource(0)_sampler(0) r59.xyzw,r58.x000\n" "endif\n" "ieq r0.x___,r57.x000,l1.x000\n" "if_logicalnz r0.x000\n" "sample_resource(1)_sampler(0) r59.xyzw,r58.x000\n" "endif\n" "ieq r0.x___,r57.x000,l11.x000\n" "if_logicalnz r0.x000\n" "sample_resource(2)_sampler(0) r59.xyzw,r58.x000\n" "endif\n" "ieq r0.x___,r57.x000,l10.x000\n" "if_logicalnz r0.x000\n" "sample_resource(3)_sampler(0) r59.xyzw,r58.x000\n" "endif\n" "ieq r0.x___,r57.x000,l26.x000\n" "if_logicalnz r0.x000\n" "sample_resource(4)_sampler(0) r59.xyzw,r58.x000\n" "endif\n" "mov r56.xyzw,r59.xyzw\n" "ret_dyn\n" "ret\n" "\n" "func 11\n" "ieq r0.x___,r62.x000,l0.x000\n" "if_logicalnz r0.x000\n" "sample_resource(0)_sampler(0) r64.xyzw,r63.xy00\n" "endif\n" "ieq r0.x___,r62.x000,l1.x000\n" "if_logicalnz r0.x000\n" "sample_resource(1)_sampler(0) r64.xyzw,r63.xy00\n" "endif\n" "ieq r0.x___,r62.x000,l11.x000\n" "if_logicalnz r0.x000\n" "sample_resource(2)_sampler(0) r64.xyzw,r63.xy00\n" "endif\n" "ieq r0.x___,r62.x000,l10.x000\n" "if_logicalnz r0.x000\n" "sample_resource(3)_sampler(0) r64.xyzw,r63.xy00\n" "endif\n" "ieq r0.x___,r62.x000,l26.x000\n" "if_logicalnz r0.x000\n" "sample_resource(4)_sampler(0) r64.xyzw,r63.xy00\n" "endif\n" "mov r61.xyzw,r64.xyzw\n" "ret_dyn\n" "ret\n" "\n" "func 12\n" "ieq r0.x___,r67.x000,l0.x000\n" "if_logicalnz r0.x000\n" "sample_resource(0)_sampler(0) r69.xyzw,r68.xyz0\n" "endif\n" "ieq r0.x___,r67.x000,l1.x000\n" "if_logicalnz r0.x000\n" "sample_resource(1)_sampler(0) r69.xyzw,r68.xyz0\n" "endif\n" "ieq r0.x___,r67.x000,l11.x000\n" "if_logicalnz r0.x000\n" "sample_resource(2)_sampler(0) r69.xyzw,r68.xyz0\n" "endif\n" "ieq r0.x___,r67.x000,l10.x000\n" "if_logicalnz r0.x000\n" "sample_resource(3)_sampler(0) r69.xyzw,r68.xyz0\n" "endif\n" "ieq r0.x___,r67.x000,l26.x000\n" "if_logicalnz r0.x000\n" "sample_resource(4)_sampler(0) r69.xyzw,r68.xyz0\n" "endif\n" "mov r66.xyzw,r69.xyzw\n" "ret_dyn\n" "ret\n" "\n" "func 20\n" "ieq r0.x___,r144.x000,l0.x000\n" "if_logicalnz r0.x000\n" "sample_resource(0)_sampler(0) r146.xyzw,r145.xy00\n" "endif\n" "ieq r0.x___,r144.x000,l1.x000\n" "if_logicalnz r0.x000\n" "sample_resource(1)_sampler(0) r146.xyzw,r145.xy00\n" "endif\n" "ieq r0.x___,r144.x000,l11.x000\n" "if_logicalnz r0.x000\n" "sample_resource(2)_sampler(0) r146.xyzw,r145.xy00\n" "endif\n" "ieq r0.x___,r144.x000,l10.x000\n" "if_logicalnz r0.x000\n" "sample_resource(3)_sampler(0) r146.xyzw,r145.xy00\n" "endif\n" "ieq r0.x___,r144.x000,l26.x000\n" "if_logicalnz r0.x000\n" "sample_resource(4)_sampler(0) r146.xyzw,r145.xy00\n" "endif\n" "mov r147.x___,r146.x000\n" "mov r143.x___,r147.x000\n" "ret_dyn\n" "ret\n" "\n" "func 28\n" "ieq r0.x___,r213.x000,l0.x000\n" "if_logicalnz r0.x000\n" "sample_resource(0)_sampler(0) r217.xyzw,r214.x000\n" "endif\n" "ieq r0.x___,r213.x000,l1.x000\n" "if_logicalnz r0.x000\n" "sample_resource(1)_sampler(0) r217.xyzw,r214.x000\n" "endif\n" "ieq r0.x___,r213.x000,l11.x000\n" "if_logicalnz r0.x000\n" "sample_resource(2)_sampler(0) r217.xyzw,r214.x000\n" "endif\n" "ieq r0.x___,r213.x000,l10.x000\n" "if_logicalnz r0.x000\n" "sample_resource(3)_sampler(0) r217.xyzw,r214.x000\n" "endif\n" "ieq r0.x___,r213.x000,l26.x000\n" "if_logicalnz r0.x000\n" "sample_resource(4)_sampler(0) r217.xyzw,r214.x000\n" "endif\n" "mov r215.xyzw,r217.xyzw\n" "mov r218.x___,r215.x000\n" "mov r216.x___,r218.x000\n" "mov r219.x___,r215.y000\n" "mov r216._y__,r219.0x00\n" "mov r220.x___,r215.z000\n" "mov r216.__z_,r220.00x0\n" "mov r221.x___,r215.w000\n" "mov r216.___w,r221.000x\n" "mov r212.xyzw,r216.xyzw\n" "ret_dyn\n" "ret\n" "\n" "func 29\n" "ieq r0.x___,r224.x000,l0.x000\n" "if_logicalnz r0.x000\n" "sample_resource(0)_sampler(0) r228.xyzw,r225.xy00\n" "endif\n" "ieq r0.x___,r224.x000,l1.x000\n" "if_logicalnz r0.x000\n" "sample_resource(1)_sampler(0) r228.xyzw,r225.xy00\n" "endif\n" "ieq r0.x___,r224.x000,l11.x000\n" "if_logicalnz r0.x000\n" "sample_resource(2)_sampler(0) r228.xyzw,r225.xy00\n" "endif\n" "ieq r0.x___,r224.x000,l10.x000\n" "if_logicalnz r0.x000\n" "sample_resource(3)_sampler(0) r228.xyzw,r225.xy00\n" "endif\n" "ieq r0.x___,r224.x000,l26.x000\n" "if_logicalnz r0.x000\n" "sample_resource(4)_sampler(0) r228.xyzw,r225.xy00\n" "endif\n" "mov r226.xyzw,r228.xyzw\n" "mov r229.x___,r226.x000\n" "mov r227.x___,r229.x000\n" "mov r230.x___,r226.y000\n" "mov r227._y__,r230.0x00\n" "mov r231.x___,r226.z000\n" "mov r227.__z_,r231.00x0\n" "mov r232.x___,r226.w000\n" "mov r227.___w,r232.000x\n" "mov r223.xyzw,r227.xyzw\n" "ret_dyn\n" "ret\n" "\n" "func 30\n" "ieq r0.x___,r235.x000,l0.x000\n" "if_logicalnz r0.x000\n" "sample_resource(0)_sampler(0) r239.xyzw,r236.xyz0\n" "endif\n" "ieq r0.x___,r235.x000,l1.x000\n" "if_logicalnz r0.x000\n" "sample_resource(1)_sampler(0) r239.xyzw,r236.xyz0\n" "endif\n" "ieq r0.x___,r235.x000,l11.x000\n" "if_logicalnz r0.x000\n" "sample_resource(2)_sampler(0) r239.xyzw,r236.xyz0\n" "endif\n" "ieq r0.x___,r235.x000,l10.x000\n" "if_logicalnz r0.x000\n" "sample_resource(3)_sampler(0) r239.xyzw,r236.xyz0\n" "endif\n" "ieq r0.x___,r235.x000,l26.x000\n" "if_logicalnz r0.x000\n" "sample_resource(4)_sampler(0) r239.xyzw,r236.xyz0\n" "endif\n" "mov r237.xyzw,r239.xyzw\n" "mov r240.x___,r237.x000\n" "mov r238.x___,r240.x000\n" "mov r241.x___,r237.y000\n" "mov r238._y__,r241.0x00\n" "mov r242.x___,r237.z000\n" "mov r238.__z_,r242.00x0\n" "mov r243.x___,r237.w000\n" "mov r238.___w,r243.000x\n" "mov r234.xyzw,r238.xyzw\n" "ret_dyn\n" "ret\n" "\n" "func 44\n" "mov r927.x___,r373.y000\n" "mov r374.x___,r927.x000\n" "mov r375.x___,r373.x000\n" "itof r928.x___,r375.x000\n" "mov r385.x___,r928.x000\n" "itof r929.x___,l12.x000\n" "mov r385._y__,r929.0x00\n" "mov r144.x___,r371.x000\n" "mov r145.xy__,r385.xy00\n" "call 20 \n" "mov r930.x___,r143.x000\n" "itof r931.x___,r930.x000\n" "mov r386.x___,r931.x000\n" "mov r376.x___,r386.x000\n" "mov r377.x___,l12.x000\n" "mov r378.x___,l12.x000\n" "mov r387.x___,l12.x000\n" "mov r387._y__,l12.0x00\n" "mov r387.__z_,l12.00x0\n" "mov r387.___w,l12.000x\n" "mov r379.xyzw,r387.xyzw\n" "itof r932.x___,r375.x000\n" "mov r388.x___,r932.x000\n" "mov r388._y__,l0.0x00\n" "mov r17.x___,r370.x000\n" "mov r18.xy__,r388.xy00\n" "call 2 \n" "mov r933.x___,r16.x000\n" "mov r380.x___,r933.x000\n" "mov r381.x___,l12.x000\n" "mov r382.x___,l12.x000\n" "mov r383.x___,l12.x000\n" "ftoi r934.x___,r380.x000\n" "mov r389.x___,r934.x000\n" "mov r384.x___,r389.x000\n" "mov r377.x___,l12.x000\n" "whileloop\n" "ilt r390.x___,r377.x000,r384.x000\n" "break_logicalz r390.x000\n" "itof r935.x___,r375.x000\n" "mov r391.x___,r935.x000\n" "itof r936.x___,r377.x000\n" "mov r391._y__,r936.0x00\n" "mov r144.x___,r369.x000\n" "mov r145.xy__,r391.xy00\n" "call 20 \n" "mov r937.x___,r143.x000\n" "mov r378.x___,r937.x000\n" "imul r392.x___,l16.x000,r374.x000\n" "iadd r393.x___,r378.x000,r392.x000\n" "mov r378.x___,r393.x000\n" "itof r938.x___,r378.x000\n" "mov r394.x___,r938.x000\n" "mov r394._y__,l0.0x00\n" "mov r17.x___,r368.x000\n" "mov r18.xy__,r394.xy00\n" "call 2 \n" "mov r939.x___,r16.x000\n" "add r395.x___,r379.x000,r939.x000\n" "mov r379.x___,r395.x000\n" "iadd r396.x___,r378.x000,l13.x000\n" "itof r940.x___,r396.x000\n" "mov r397.x___,r940.x000\n" "mov r397._y__,l0.0x00\n" "mov r17.x___,r368.x000\n" "mov r18.xy__,r397.xy00\n" "call 2 \n" "mov r941.x___,r16.x000\n" "mov r942.x___,r379.y000\n" "add r398.x___,r942.x000,r941.x000\n" "mov r379._y__,r398.0x00\n" "iadd r399.x___,r378.x000,l17.x000\n" "itof r943.x___,r399.x000\n" "mov r400.x___,r943.x000\n" "mov r400._y__,l0.0x00\n" "mov r17.x___,r368.x000\n" "mov r18.xy__,r400.xy00\n" "call 2 \n" "mov r944.x___,r16.x000\n" "mov r945.x___,r379.z000\n" "add r401.x___,r945.x000,r944.x000\n" "mov r379.__z_,r401.00x0\n" "iadd r402.x___,r378.x000,l18.x000\n" "itof r946.x___,r402.x000\n" "mov r403.x___,r946.x000\n" "mov r403._y__,l0.0x00\n" "mov r17.x___,r368.x000\n" "mov r18.xy__,r403.xy00\n" "call 2 \n" "mov r947.x___,r16.x000\n" "mov r948.x___,r379.w000\n" "add r404.x___,r948.x000,r947.x000\n" "mov r379.___w,r404.000x\n" "iadd r405.x___,r377.x000,l13.x000\n" "mov r406.x___,r377.x000\n" "mov r377.x___,r405.x000\n" "endloop\n" "ilt r407.x___,r374.x000,l13.x000\n" "inegate r408.x___,l19.x000\n" "itof r949.x___,r408.x000\n" "lt r409.x___,r379.x000,r949.x000\n" "and r410.x___,r407.x000,r409.x000\n" "if_logicalnz r410.x000\n" "mov r411.x___,l12.x000\n" "umul r412.x___,l13.x000,r411.x000\n" "iadd r412.x___,r412.x000,l0.x000\n" "ftoi r950.x___,r379.x000\n" "mov r413.x___,r950.x000\n" "mov g[r412.x + 0].x___,r413.x000\n" "endif\n" "mov r372.xyzw,r379.xyzw\n" "ret\n" "\n" "func 55\n" "mov r924.x___,l27.x000\n" "mov r924._y__,l28.0x00\n" "sub r925.xy__,r920.xy00,r924.xy00\n" "mov r951.xyzw,r925.xy00\n" "mov r923.xyzw,r951.xyzw\n" "mov r367.x___,l0.x000\n" "mov r368.x___,l1.x000\n" "mov r369.x___,l11.x000\n" "mov r370.x___,l10.x000\n" "mov r371.x___,l26.x000\n" "ftoi r952.xyzw,r923.xyzw\n" "mov r373.xyzw,r952.xyzw\n" "call 44 \n" "mov r922.xyzw,r372.xyzw\n" "mov r921.xyzw,r922.xyzw\n" "mov r919.xyzw,r921.xyzw\n" "ret_dyn\n" "ret\n" "\n" "end\n" ""; const char __GPU_fetch_array_kernel10_cal_desc_tech1_pass0[] = "il_ps_2_0\n" "dcl_literal l0,0x00000000,0x00000000,0x00000000,0x00000000\n" "dcl_literal l1,0x00000001,0x00000001,0x00000001,0x00000001\n" "dcl_literal l2,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF\n" "dcl_literal l3,0x7FFFFFFF,0x7FFFFFFF,0x7FFFFFFF,0x7FFFFFFF\n" "dcl_literal l4,0x7F800000,0x7F800000,0x7F800000,0x7F800000\n" "dcl_literal l5,0x80000000,0x80000000,0x80000000,0x80000000\n" "dcl_literal l6,0x3E9A209B,0x3E9A209B,0x3E9A209B,0x3E9A209B\n" "dcl_literal l7,0x3F317218,0x3F317218,0x3F317218,0x3F317218\n" "dcl_literal l8,0x40490FDB,0x40490FDB,0x40490FDB,0x40490FDB\n" "dcl_literal l9,0x3FC90FDB,0x3FC90FDB,0x3FC90FDB,0x3FC90FDB\n" "dcl_literal l10,0x00000003,0x00000003,0x00000003,0x00000003\n" "dcl_literal l11,0x00000002,0x00000002,0x00000002,0x00000002\n" "dcl_literal l12,0x00000000,0x00000000,0x00000000,0x00000000\n" "dcl_literal l13,0x00000001,0x00000001,0x00000001,0x00000001\n" "dcl_literal l14,0x3F000000,0x3F000000,0x3F000000,0x3F000000\n" "dcl_literal l15,0x00000001,0x00000001,0x00000001,0x00000001\n" "dcl_literal l16,0x00000001,0x00000001,0x00000001,0x00000001\n" "dcl_literal l17,0x00000001,0x00000001,0x00000001,0x00000001\n" "dcl_literal l18,0x00000000,0x00000000,0x00000000,0x00000000\n" "dcl_literal l19,0x00000001,0x00000001,0x00000001,0x00000001\n" ";global (g) declared, size = 4096\n" "dcl_literal l20,0x00000004,0x00000004,0x00000004,0x00000004\n" "dcl_literal l21,0x00000002,0x00000002,0x00000002,0x00000002\n" "dcl_literal l22,0x00000003,0x00000003,0x00000003,0x00000003\n" "dcl_literal l23,0x00000000,0x00000000,0x00000000,0x00000000\n" "dcl_literal l24,0x0000000A,0x0000000A,0x0000000A,0x0000000A\n" "dcl_literal l25,0x00000001,0x00000001,0x00000001,0x00000001\n" "dcl_literal l26,0x40000000,0x40000000,0x40000000,0x40000000\n" "dcl_literal l27,0x00000005,0x00000005,0x00000005,0x00000005\n" "dcl_literal l28,0x00000006,0x00000006,0x00000006,0x00000006\n" "dcl_literal l29,0x00000007,0x00000007,0x00000007,0x00000007\n" "dcl_output_usage(generic) o0.xyzw\n" "dcl_resource_id(0)_type(2d,unnorm)_fmtx(float)_fmty(float)_fmtz(float)_fmtw(float)\n" "dcl_resource_id(1)_type(2d,unnorm)_fmtx(float)_fmty(float)_fmtz(float)_fmtw(float)\n" "dcl_resource_id(2)_type(2d,unnorm)_fmtx(float)_fmty(float)_fmtz(float)_fmtw(float)\n" "dcl_resource_id(3)_type(2d,unnorm)_fmtx(float)_fmty(float)_fmtz(float)_fmtw(float)\n" "dcl_resource_id(4)_type(2d,unnorm)_fmtx(float)_fmty(float)_fmtz(float)_fmtw(float)\n" "dcl_literal l30,0x00000004,0x00000004,0x00000004,0x00000004\n" "dcl_input_position_interp(linear_noperspective) v0.xy__\n" "dcl_cb cb0[12]\n" "mov r1011.xy__,v0.xyzw\n" "mov r408.xyzw,cb0[l0.x + 0].xyzw\n" "mov r409.xyzw,cb0[l0.x + 1].xyzw\n" "mov r410.xyzw,cb0[l0.x + 2].xyzw\n" "mov r411.xyzw,cb0[l0.x + 3].xyzw\n" "mov r412.xyzw,cb0[l0.x + 4].xyzw\n" "mov r413.xyzw,cb0[l0.x + 5].xyzw\n" "mov r414.xyzw,cb0[l0.x + 6].xyzw\n" "mov r415.xyzw,cb0[l0.x + 7].xyzw\n" "mov r416.xyzw,cb0[l0.x + 8].xyzw\n" "mov r417.xyzw,cb0[l0.x + 9].xyzw\n" "mov r418.xyzw,cb0[l0.x + 10].xyzw\n" "mov r419.xyzw,cb0[l0.x + 11].xyzw\n" "call 59 \n" "call 0 \n" "endmain\n" "\n" "func 0\n" "mov o0.xyzw,r1010.xyzw\n" "ret\n" "\n" "func 2\n" "ieq r0.x___,r17.x000,l0.x000\n" "if_logicalnz r0.x000\n" "sample_resource(0)_sampler(0) r19.xyzw,r18.xy00\n" "endif\n" "ieq r0.x___,r17.x000,l1.x000\n" "if_logicalnz r0.x000\n" "sample_resource(1)_sampler(0) r19.xyzw,r18.xy00\n" "endif\n" "ieq r0.x___,r17.x000,l11.x000\n" "if_logicalnz r0.x000\n" "sample_resource(2)_sampler(0) r19.xyzw,r18.xy00\n" "endif\n" "ieq r0.x___,r17.x000,l10.x000\n" "if_logicalnz r0.x000\n" "sample_resource(3)_sampler(0) r19.xyzw,r18.xy00\n" "endif\n" "ieq r0.x___,r17.x000,l30.x000\n" "if_logicalnz r0.x000\n" "sample_resource(4)_sampler(0) r19.xyzw,r18.xy00\n" "endif\n" "mov r16.x___,r19.x000\n" "ret_dyn\n" "ret\n" "\n" "func 10\n" "ieq r0.x___,r57.x000,l0.x000\n" "if_logicalnz r0.x000\n" "sample_resource(0)_sampler(0) r59.xyzw,r58.x000\n" "endif\n" "ieq r0.x___,r57.x000,l1.x000\n" "if_logicalnz r0.x000\n" "sample_resource(1)_sampler(0) r59.xyzw,r58.x000\n" "endif\n" "ieq r0.x___,r57.x000,l11.x000\n" "if_logicalnz r0.x000\n" "sample_resource(2)_sampler(0) r59.xyzw,r58.x000\n" "endif\n" "ieq r0.x___,r57.x000,l10.x000\n" "if_logicalnz r0.x000\n" "sample_resource(3)_sampler(0) r59.xyzw,r58.x000\n" "endif\n" "ieq r0.x___,r57.x000,l30.x000\n" "if_logicalnz r0.x000\n" "sample_resource(4)_sampler(0) r59.xyzw,r58.x000\n" "endif\n" "mov r56.xyzw,r59.xyzw\n" "ret_dyn\n" "ret\n" "\n" "func 11\n" "ieq r0.x___,r62.x000,l0.x000\n" "if_logicalnz r0.x000\n" "sample_resource(0)_sampler(0) r64.xyzw,r63.xy00\n" "endif\n" "ieq r0.x___,r62.x000,l1.x000\n" "if_logicalnz r0.x000\n" "sample_resource(1)_sampler(0) r64.xyzw,r63.xy00\n" "endif\n" "ieq r0.x___,r62.x000,l11.x000\n" "if_logicalnz r0.x000\n" "sample_resource(2)_sampler(0) r64.xyzw,r63.xy00\n" "endif\n" "ieq r0.x___,r62.x000,l10.x000\n" "if_logicalnz r0.x000\n" "sample_resource(3)_sampler(0) r64.xyzw,r63.xy00\n" "endif\n" "ieq r0.x___,r62.x000,l30.x000\n" "if_logicalnz r0.x000\n" "sample_resource(4)_sampler(0) r64.xyzw,r63.xy00\n" "endif\n" "mov r61.xyzw,r64.xyzw\n" "ret_dyn\n" "ret\n" "\n" "func 12\n" "ieq r0.x___,r67.x000,l0.x000\n" "if_logicalnz r0.x000\n" "sample_resource(0)_sampler(0) r69.xyzw,r68.xyz0\n" "endif\n" "ieq r0.x___,r67.x000,l1.x000\n" "if_logicalnz r0.x000\n" "sample_resource(1)_sampler(0) r69.xyzw,r68.xyz0\n" "endif\n" "ieq r0.x___,r67.x000,l11.x000\n" "if_logicalnz r0.x000\n" "sample_resource(2)_sampler(0) r69.xyzw,r68.xyz0\n" "endif\n" "ieq r0.x___,r67.x000,l10.x000\n" "if_logicalnz r0.x000\n" "sample_resource(3)_sampler(0) r69.xyzw,r68.xyz0\n" "endif\n" "ieq r0.x___,r67.x000,l30.x000\n" "if_logicalnz r0.x000\n" "sample_resource(4)_sampler(0) r69.xyzw,r68.xyz0\n" "endif\n" "mov r66.xyzw,r69.xyzw\n" "ret_dyn\n" "ret\n" "\n" "func 20\n" "ieq r0.x___,r144.x000,l0.x000\n" "if_logicalnz r0.x000\n" "sample_resource(0)_sampler(0) r146.xyzw,r145.xy00\n" "endif\n" "ieq r0.x___,r144.x000,l1.x000\n" "if_logicalnz r0.x000\n" "sample_resource(1)_sampler(0) r146.xyzw,r145.xy00\n" "endif\n" "ieq r0.x___,r144.x000,l11.x000\n" "if_logicalnz r0.x000\n" "sample_resource(2)_sampler(0) r146.xyzw,r145.xy00\n" "endif\n" "ieq r0.x___,r144.x000,l10.x000\n" "if_logicalnz r0.x000\n" "sample_resource(3)_sampler(0) r146.xyzw,r145.xy00\n" "endif\n" "ieq r0.x___,r144.x000,l30.x000\n" "if_logicalnz r0.x000\n" "sample_resource(4)_sampler(0) r146.xyzw,r145.xy00\n" "endif\n" "mov r147.x___,r146.x000\n" "mov r143.x___,r147.x000\n" "ret_dyn\n" "ret\n" "\n" "func 28\n" "ieq r0.x___,r213.x000,l0.x000\n" "if_logicalnz r0.x000\n" "sample_resource(0)_sampler(0) r217.xyzw,r214.x000\n" "endif\n" "ieq r0.x___,r213.x000,l1.x000\n" "if_logicalnz r0.x000\n" "sample_resource(1)_sampler(0) r217.xyzw,r214.x000\n" "endif\n" "ieq r0.x___,r213.x000,l11.x000\n" "if_logicalnz r0.x000\n" "sample_resource(2)_sampler(0) r217.xyzw,r214.x000\n" "endif\n" "ieq r0.x___,r213.x000,l10.x000\n" "if_logicalnz r0.x000\n" "sample_resource(3)_sampler(0) r217.xyzw,r214.x000\n" "endif\n" "ieq r0.x___,r213.x000,l30.x000\n" "if_logicalnz r0.x000\n" "sample_resource(4)_sampler(0) r217.xyzw,r214.x000\n" "endif\n" "mov r215.xyzw,r217.xyzw\n" "mov r218.x___,r215.x000\n" "mov r216.x___,r218.x000\n" "mov r219.x___,r215.y000\n" "mov r216._y__,r219.0x00\n" "mov r220.x___,r215.z000\n" "mov r216.__z_,r220.00x0\n" "mov r221.x___,r215.w000\n" "mov r216.___w,r221.000x\n" "mov r212.xyzw,r216.xyzw\n" "ret_dyn\n" "ret\n" "\n" "func 29\n" "ieq r0.x___,r224.x000,l0.x000\n" "if_logicalnz r0.x000\n" "sample_resource(0)_sampler(0) r228.xyzw,r225.xy00\n" "endif\n" "ieq r0.x___,r224.x000,l1.x000\n" "if_logicalnz r0.x000\n" "sample_resource(1)_sampler(0) r228.xyzw,r225.xy00\n" "endif\n" "ieq r0.x___,r224.x000,l11.x000\n" "if_logicalnz r0.x000\n" "sample_resource(2)_sampler(0) r228.xyzw,r225.xy00\n" "endif\n" "ieq r0.x___,r224.x000,l10.x000\n" "if_logicalnz r0.x000\n" "sample_resource(3)_sampler(0) r228.xyzw,r225.xy00\n" "endif\n" "ieq r0.x___,r224.x000,l30.x000\n" "if_logicalnz r0.x000\n" "sample_resource(4)_sampler(0) r228.xyzw,r225.xy00\n" "endif\n" "mov r226.xyzw,r228.xyzw\n" "mov r229.x___,r226.x000\n" "mov r227.x___,r229.x000\n" "mov r230.x___,r226.y000\n" "mov r227._y__,r230.0x00\n" "mov r231.x___,r226.z000\n" "mov r227.__z_,r231.00x0\n" "mov r232.x___,r226.w000\n" "mov r227.___w,r232.000x\n" "mov r223.xyzw,r227.xyzw\n" "ret_dyn\n" "ret\n" "\n" "func 30\n" "ieq r0.x___,r235.x000,l0.x000\n" "if_logicalnz r0.x000\n" "sample_resource(0)_sampler(0) r239.xyzw,r236.xyz0\n" "endif\n" "ieq r0.x___,r235.x000,l1.x000\n" "if_logicalnz r0.x000\n" "sample_resource(1)_sampler(0) r239.xyzw,r236.xyz0\n" "endif\n" "ieq r0.x___,r235.x000,l11.x000\n" "if_logicalnz r0.x000\n" "sample_resource(2)_sampler(0) r239.xyzw,r236.xyz0\n" "endif\n" "ieq r0.x___,r235.x000,l10.x000\n" "if_logicalnz r0.x000\n" "sample_resource(3)_sampler(0) r239.xyzw,r236.xyz0\n" "endif\n" "ieq r0.x___,r235.x000,l30.x000\n" "if_logicalnz r0.x000\n" "sample_resource(4)_sampler(0) r239.xyzw,r236.xyz0\n" "endif\n" "mov r237.xyzw,r239.xyzw\n" "mov r240.x___,r237.x000\n" "mov r238.x___,r240.x000\n" "mov r241.x___,r237.y000\n" "mov r238._y__,r241.0x00\n" "mov r242.x___,r237.z000\n" "mov r238.__z_,r242.00x0\n" "mov r243.x___,r237.w000\n" "mov r238.___w,r243.000x\n" "mov r234.xyzw,r238.xyzw\n" "ret_dyn\n" "ret\n" "\n" "func 37\n" "mov r277.x___,l12.x000\n" "mov r277._y__,l12.0x00\n" "mov r277.__z_,l12.00x0\n" "mov r277.___w,l12.000x\n" "mov r273.xyzw,r277.xyzw\n" "ftoi r1018.xy__,r270.xy00\n" "mov r278.xy__,r1018.xy00\n" "mov r274.xy__,r278.xy00\n" "mov r1019.x___,r274.y000\n" "imul r279.x___,r1019.x000,r272.x000\n" "iadd r280.x___,r279.x000,r274.x000\n" "mov r275.x___,r280.x000\n" "mov r1022.x___,r275.x000\n" "imax r1020.x___,r275.x000,r1022_neg(xyzw).x000\n" "mov r1023.x___,r271.x000\n" "imax r1021.x___,r271.x000,r1023_neg(xyzw).x000\n" "udiv r1024.x___,r1020.x000,r1021.x000\n" "inegate r1025.x___,r1024.x000\n" "ixor r1026.x___,r275.x000,r271.x000\n" "and r1026.x___,r1026.x000,l5.x000\n" "cmov_logical r281.x___,r1026.x000,r1025.x000,r1024.x000\n" "mov r276.x___,r281.x000\n" "imul r282.x___,r276.x000,r271.x000\n" "iadd r283.x___,r275.x000,r282_neg(xyzw).x000\n" "mov r273.x___,r283.x000\n" "mov r1027.x___,r271.y000\n" "mov r1030.x___,r276.x000\n" "imax r1028.x___,r276.x000,r1030_neg(xyzw).x000\n" "mov r1031.x___,r1027.x000\n" "imax r1029.x___,r1027.x000,r1031_neg(xyzw).x000\n" "udiv r1032.x___,r1028.x000,r1029.x000\n" "inegate r1033.x___,r1032.x000\n" "ixor r1034.x___,r276.x000,r1027.x000\n" "and r1034.x___,r1034.x000,l5.x000\n" "cmov_logical r284.x___,r1034.x000,r1033.x000,r1032.x000\n" "mov r273.__z_,r284.00x0\n" "mov r1035.x___,r273.z000\n" "mov r1036.x___,r271.y000\n" "imul r285.x___,r1035.x000,r1036.x000\n" "iadd r286.x___,r276.x000,r285_neg(xyzw).x000\n" "mov r273._y__,r286.0x00\n" "mov r269.xyzw,r273.xyzw\n" "ret_dyn\n" "ret\n" "\n" "func 39\n" "mov r312.x___,l12.x000\n" "mov r312._y__,l12.0x00\n" "mov r309.xy__,r312.xy00\n" "mov r310.x___,l12.x000\n" "mov r311.x___,l12.x000\n" "mov r311.x___,r306.x000\n" "mov r1039.x___,r311.x000\n" "imax r1037.x___,r311.x000,r1039_neg(xyzw).x000\n" "mov r1040.x___,r308.x000\n" "imax r1038.x___,r308.x000,r1040_neg(xyzw).x000\n" "udiv r1041.x___,r1037.x000,r1038.x000\n" "inegate r1042.x___,r1041.x000\n" "ixor r1043.x___,r311.x000,r308.x000\n" "and r1043.x___,r1043.x000,l5.x000\n" "cmov_logical r313.x___,r1043.x000,r1042.x000,r1041.x000\n" "mov r310.x___,r313.x000\n" "imul r314.x___,r310.x000,r308.x000\n" "iadd r315.x___,r311.x000,r314_neg(xyzw).x000\n" "itof r1044.x___,r315.x000\n" "mov r316.x___,r1044.x000\n" "add r317.x___,r316.x000,l14.x000\n" "mov r309.x___,r317.x000\n" "itof r1045.x___,r310.x000\n" "mov r318.x___,r1045.x000\n" "add r319.x___,r318.x000,l14.x000\n" "mov r309._y__,r319.0x00\n" "mov r305.xy__,r309.xy00\n" "ret_dyn\n" "ret\n" "\n" "func 48\n" "mov r1046.x___,r459.y000\n" "mov r470.x___,r1046.x000\n" "mov r471.x___,r459.x000\n" "itof r1047.x___,r471.x000\n" "mov r481.x___,r1047.x000\n" "itof r1048.x___,l12.x000\n" "mov r481._y__,r1048.0x00\n" "mov r144.x___,r457.x000\n" "mov r145.xy__,r481.xy00\n" "call 20 \n" "mov r1049.x___,r143.x000\n" "itof r1050.x___,r1049.x000\n" "mov r482.x___,r1050.x000\n" "mov r472.x___,r482.x000\n" "mov r473.x___,l12.x000\n" "mov r474.x___,l12.x000\n" "mov r483.x___,l12.x000\n" "mov r483._y__,l12.0x00\n" "mov r483.__z_,l23.00x0\n" "mov r483.___w,l12.000x\n" "mov r475.xyzw,r483.xyzw\n" "mov r1051.xyzw,r471.xxxx\n" "mov r306.xyzw,r1051.xyzw\n" "mov r307.xyzw,r466.xyzw\n" "mov r308.xyzw,r467.xyzw\n" "call 39 \n" "mov r1052.xy__,r305.xy00\n" "mov r17.x___,r456.x000\n" "mov r18.xy__,r1052.xy00\n" "call 2 \n" "mov r1053.x___,r16.x000\n" "mov r476.x___,r1053.x000\n" "mov r477.x___,l12.x000\n" "mov r478.x___,l12.x000\n" "mov r479.x___,l12.x000\n" "ftoi r1054.x___,r476.x000\n" "mov r484.x___,r1054.x000\n" "mov r480.x___,r484.x000\n" "mov r473.x___,l12.x000\n" "whileloop\n" "ilt r485.x___,r473.x000,r480.x000\n" "break_logicalz r485.x000\n" "itof r1055.x___,r471.x000\n" "mov r486.x___,r1055.x000\n" "itof r1056.x___,r473.x000\n" "mov r486._y__,r1056.0x00\n" "mov r144.x___,r455.x000\n" "mov r145.xy__,r486.xy00\n" "call 20 \n" "mov r1057.x___,r143.x000\n" "mov r474.x___,r1057.x000\n" "imul r487.x___,l20.x000,r470.x000\n" "iadd r488.x___,r474.x000,r487.x000\n" "mov r474.x___,r488.x000\n" "mov r1058.xyzw,r474.xxxx\n" "mov r306.xyzw,r1058.xyzw\n" "mov r307.xyzw,r462.xyzw\n" "mov r308.xyzw,r463.xyzw\n" "call 39 \n" "mov r1059.xy__,r305.xy00\n" "mov r17.x___,r454.x000\n" "mov r18.xy__,r1059.xy00\n" "call 2 \n" "mov r1060.x___,r16.x000\n" "add r489.x___,r475.x000,r1060.x000\n" "mov r475.x___,r489.x000\n" "iadd r490.x___,r474.x000,l13.x000\n" "mov r1061.xyzw,r490.xxxx\n" "mov r306.xyzw,r1061.xyzw\n" "mov r307.xyzw,r462.xyzw\n" "mov r308.xyzw,r463.xyzw\n" "call 39 \n" "mov r1062.xy__,r305.xy00\n" "mov r17.x___,r454.x000\n" "mov r18.xy__,r1062.xy00\n" "call 2 \n" "mov r1063.x___,r16.x000\n" "mov r1064.x___,r475.y000\n" "add r491.x___,r1064.x000,r1063.x000\n" "mov r475._y__,r491.0x00\n" "iadd r492.x___,r474.x000,l21.x000\n" "mov r1065.xyzw,r492.xxxx\n" "mov r306.xyzw,r1065.xyzw\n" "mov r307.xyzw,r462.xyzw\n" "mov r308.xyzw,r463.xyzw\n" "call 39 \n" "mov r1066.xy__,r305.xy00\n" "mov r17.x___,r454.x000\n" "mov r18.xy__,r1066.xy00\n" "call 2 \n" "mov r1067.x___,r16.x000\n" "mov r1068.x___,r475.z000\n" "add r493.x___,r1068.x000,r1067.x000\n" "mov r475.__z_,r493.00x0\n" "iadd r494.x___,r474.x000,l22.x000\n" "mov r1069.xyzw,r494.xxxx\n" "mov r306.xyzw,r1069.xyzw\n" "mov r307.xyzw,r462.xyzw\n" "mov r308.xyzw,r463.xyzw\n" "call 39 \n" "mov r1070.xy__,r305.xy00\n" "mov r17.x___,r454.x000\n" "mov r18.xy__,r1070.xy00\n" "call 2 \n" "mov r1071.x___,r16.x000\n" "mov r1072.x___,r475.w000\n" "add r495.x___,r1072.x000,r1071.x000\n" "mov r475.___w,r495.000x\n" "iadd r496.x___,r473.x000,l13.x000\n" "mov r497.x___,r473.x000\n" "mov r473.x___,r496.x000\n" "endloop\n" "ilt r498.x___,r470.x000,l13.x000\n" "inegate r499.x___,l24.x000\n" "itof r1073.x___,r499.x000\n" "lt r500.x___,r475.x000,r1073.x000\n" "and r501.x___,r498.x000,r500.x000\n" "if_logicalnz r501.x000\n" "mov r502.x___,l12.x000\n" "umul r503.x___,l25.x000,r502.x000\n" "iadd r503.x___,r503.x000,l0.x000\n" "ftoi r1074.x___,r475.x000\n" "mov r504.x___,r1074.x000\n" "mov g[r503.x + 0].x___,r504.x000\n" "endif\n" "mov r458.xyzw,r475.xyzw\n" "ret\n" "\n" "func 59\n" "mov r270.xy__,r1011.xy00\n" "mov r271.xyzw,r418.xyzw\n" "mov r272.xyzw,r419.xyzw\n" "call 37 \n" "mov r1075.xyzw,r269.xyzw\n" "mov r1016.xyzw,r1075.xyzw\n" "mov r1014.xyzw,r1016.xyzw\n" "mov r1015.xyzw,r1016.xyzw\n" "mov r453.x___,l0.x000\n" "mov r454.x___,l1.x000\n" "mov r455.x___,l11.x000\n" "mov r456.x___,l10.x000\n" "mov r457.x___,l30.x000\n" "mov r459.xyzw,r1014.xyzw\n" "mov r460.xyzw,r408.xyzw\n" "mov r461.xyzw,r409.xyzw\n" "mov r462.xyzw,r410.xyzw\n" "mov r463.xyzw,r411.xyzw\n" "mov r464.xyzw,r412.xyzw\n" "mov r465.xyzw,r413.xyzw\n" "mov r466.xyzw,r414.xyzw\n" "mov r467.xyzw,r415.xyzw\n" "mov r468.xyzw,r416.xyzw\n" "mov r469.xyzw,r417.xyzw\n" "call 48 \n" "mov r1013.xyzw,r458.xyzw\n" "mov r1012.xyzw,r1013.xyzw\n" "mov r1010.xyzw,r1012.xyzw\n" "ret_dyn\n" "ret\n" "\n" "end\n" "";

0 Likes

Any new ideas?
Should I report this as bug or I'm missing something?
From now it seems to work if the same variable appears in both comparisons but fails to work if there are 2 different variables in comparisons.
As one can see assigned value just can't give "true" comparison in if operator. Looks like a bug...
0 Likes