I found a bug in OpenCL compiler in the latest drivers. At least it is persistent in Adrenalin 19.5.2 and 19.8.1. Minimal reproducing example is included in the file. It just multiplies several complex numbers in a loop. If I write product to results array in the loop at the last iteration by commented out part, I got the right answer, while if I write result immediately after the loop, I got some strange numbers like 1E53.
I use OpenCL 1.2 mode on my Tahiti card in Win10 x64.
The bug was not present in Adrenalin 19.4.3. As I can see from binary files the problem arises from instruction (in CLRX notation)
v_mov_b32 v4, v5
added immediately before store instruction
tbuffer_store_format_xy v[4:5], v0, s[8:11], 0 offen format:[32_32,float].
In 19.4.3 binary this instruction is absent.