I dont understand what you mean by user-developed-kernels. The "cl_mem" object is all yours... You just need to enqueue a kernel to operate on it. THats all.
clAmdBlas does not restrict you from doing that. It is outside the purview of the BLAS library...
Two advices for your source-code:
1. use fopen("nr.cl", "rb") to read cl file.
2. Kernel name on host side is "nr" and inside kernel it is "qr".
I was able to run your code after fixing these on a VS12, HD 7870, SDK 2.8.1, Cat 13.6beta.