Fix dot product with saturation tests
This commit fixes an issue that prevented some valid results from being
verified in a variety of cases, and fixes the in-software dot-product
calculation so it will not rely on undefined truncation of signed
integers.
Also, it adjusts the pseudorandom numeric range in some tests to more
easily test cases of saturating and non-saturating operations.
Finally, the unsigned dot product operations have been separated in
saturating and non-saturating cases to more easily check both
conditions.
Affected and new tests:
dEQP-VK.spirv_assembly.instruction.compute.opudot*
dEQP-VK.spirv_assembly.instruction.compute.opsdot*
dEQP-VK.spirv_assembly.instruction.compute.opsudot*
Components: Vulkan
VK-GL-CTS issue: 3366
Change-Id: If058fd13705290472eef369167506a35cf7bba91