llongeri

Another CAL Compilation hanging

Discussion created by llongeri on Mar 11, 2011
Latest reply on Mar 14, 2011 by llongeri
This is another CAL source code that hangs both compiling from C or from the Stream Kernel Analizer 1.7

Hi,

This is another code example that hangs the compiler, with the SDK 2.3.

It also hangs if I try to compile it within the Stream Kernel Analizer 1.7.

In this case the last 2 ishl instructions hang the compiler. In this case I am shifting left 24 bits. Previously I posted another code that did the equivalente by multiplying by 0x1000000 and also hanged the compiler.

il_cs_2_0
dcl_num_thread_per_group 64
dcl_cb cb0[3]
dcl_literal l0, 5, 10, 0x100, 100
dcl_literal l1, 4, 3, 2, 1
dcl_literal l2, 0x10000, 1000, 24, 0
mov r0.x, vaTid.x
mov r0.y, vThreadGrpId.x
mov r0.z, vTidInGrp.x
umul r0.w, r0.x, l[0].x
iadd r1, r0.wwww, l[1]
iadd r2, cb0[0].xxxx, r1
iadd r3.x, cb0[0].x, r0.w
umod r4, r2, l[0].yyyy
umod r3.y, r3.x, l[0].y
udiv r5, r2, l[0].yyyy
udiv r3.z, r3.x, l[0].y
umod r6, r5, l[0].yyyy
umod r3.w, r3.z, l[0].y
umul r5, r6, l[0].zzzz
umul r3.z, r3.w, l[0].z
iadd r6, r4, r5
iadd r3.w, r3.y, r3.z
udiv r4, r2, l[0].wwww
udiv r3.y, r3.x, l[0].w
umod r5, r4, l[0].yyyy
umod r3.z, r3.y, l[0].y
umul r4, r5, l[2].xxxx
umul r3.y, r3.z, l[2].x
iadd r5, r6, r4
iadd r3.z, r3.w, r3.y
udiv r4, r2, l[2].yyyy
udiv r3.y, r3.x, l[2].y
umod r6, r4, l[0].yyyy
umod r3.w, r3.y, l[0].y
ishl r4, r6, l[2].zzzz
ishl r3.y, r3.w, l[2].z
iadd r6, r5, r4
iadd r3.w, r3.z, r3.y
mov g[r0.x], r6
end

Outcomes