Support extended multiplication on non-32bit integers
Support extended multiplication on non-32bit integers

The current implementation of OpUMulExtended/OpSMulExtended only works
on 32-bit integers. This change is to support 8/16/64-bit integers. For
64-bit integers, we should zero-extended or sign-extended to 128-bit.
Then, truncate the upper bits based on the source operand type.

Fixes: mul_extended related cts test.

GPUOpen-Drivers/llpc,GPUOpen-Drivers/llpc,GPUOpen-Drivers/llpc,GPUOpen-Drivers/llpc,GPUOpen-Drivers/llpc