I've simple Fragment shader running on Immortalis-G715. The shader has no other computations except an equal number of int (cvt) and fp (fma) computations and that too they are independent. The shader core cycles almost equals to cvt + fma instructions but as per documentations cycles should be max(cvt, fma) instructions since they can run paralley in this case. so my query is does shader core cycles just reports cvt+fma instructions but in reality it should be max(cvt, fma)?
The pipes are not totally independent in G715. I don't believe the exact behaviour is publicly documented.
I'd be curious what this looks like if you change the integer shift for an add (although the compiler might just pre-multiply because it's integer code - I need to check the disassembly to be sure).