These test cases exposes a bug in constant propagation in the compiler backend for the Intel Mesa drivers. The
multiply32x16 instructions used here will initially create a sequence like
mov(8) g8<1>D 0x7fffffffD mul(8) g16<1>D g8<8,8,1>D g15<16,8,2>W
The constant propagation in the compiler backend will transform that to
mul(8) g16<1>D g15<16,8,2>W 0x7fffffffD
On some Intel GPUs that will lead to a violation of hardware restrictions:
When multiplying a DW and any lower precision integer, the DW operand must on src0.
On other Intel GPUs a correct result is produced, but an inefficient instruction sequence (i.e., the exact sequence the
multiply32x16 function is trying to avoid) is used.