ir3: prohibit folding of half->full conversion into mul.s24/u24

mul.s24/u24 always return 32b result regardless of its sources size,
hence we cannot guarantee the high 16b of dst being zero or sign extended.

Fixes cts tests on a650:
 dEQP-VK.spirv_assembly.type.scalar.i16.mul_test_high_part_zero_*

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <!12471>
59 jobs for !12471 with ir3/fix/mul-24-prohibit-conversion-folding in 17 minutes and 55 seconds (queued for 12 seconds)
latest detached
Status Name Job ID Coverage
  Sanity
passed sanity #12970989

00:00:10

 
  Container
passed debian/arm_build #12970992
aarch64

00:00:16

passed debian/x86_build-base #12970990

00:00:12

passed debian/x86_test-base #12970991

00:00:16

passed fedora/x86_build #12970993

00:00:11

passed windows_build_vs2019 #12970994
windows shell 1809 mesa

00:00:09

 
  Container 2
passed debian/android_build #12970999

00:00:18

passed debian/i386_build #12970996

00:00:17

passed debian/ppc64el_build #12970997

00:00:18

passed debian/s390x_build #12970998

00:00:12

passed debian/x86_build #12970995

00:00:11

passed debian/x86_test-gl #12971000

00:00:17

passed debian/x86_test-vk #12971001

00:00:11

passed kernel+rootfs_amd64 #12971002

00:00:12

passed kernel+rootfs_arm64 #12971003
aarch64

00:01:08

passed kernel+rootfs_armhf #12971004
aarch64

00:00:10

 
  Build X86 64
passed debian-clang #12971011

00:04:58

passed debian-clover #12971012

00:01:01

passed debian-clover-testing #12971007

00:01:32

passed debian-gallium #12971008

00:05:03

passed debian-release #12971009

00:02:32

passed debian-testing #12971005

00:01:38

passed debian-testing-asan #12971006

00:02:29

passed debian-vulkan #12971013

00:01:06

passed fedora-release #12971010

00:02:15

 
  Build Misc
passed debian-android #12971015

00:01:25

passed debian-arm64 #12971017
aarch64

00:01:40

passed debian-arm64-asan #12971018
aarch64

00:03:06

passed debian-arm64-build-test #12971019
aarch64

00:01:35

passed debian-armhf #12971016
aarch64

00:01:34

passed debian/arm_test #12971014

00:00:36

passed debian-i386 #12971020

00:01:05

passed debian-mingw32-x86_64 #12971021

00:01:58

 
  Freedreno
passed a306_gl 1/5 #12971022
google-freedreno-db410c

00:07:17

passed a306_gl 2/5 #12971023
google-freedreno-db410c

00:07:18

passed a306_gl 3/5 #12971024
google-freedreno-db410c

00:07:32

passed a306_gl 4/5 #12971025
google-freedreno-db410c

00:07:04

passed a306_gl 5/5 #12971026
google-freedreno-db410c

00:07:08

passed a306-traces #12971027
google-freedreno-db410c

00:02:36

passed a530_gl 1/5 #12971028
google-freedreno-db820c

00:08:48

passed a530_gl 2/5 #12971029
google-freedreno-db820c

00:08:45

passed a530_gl 3/5 #12971030
google-freedreno-db820c

00:07:35

passed a530_gl 4/5 #12971031
google-freedreno-db820c

00:08:20

passed a530_gl 5/5 #12971032
google-freedreno-db820c

00:07:34

passed a530_piglit_shader 1/2 #12971033
google-freedreno-db820c

00:08:02

passed a530_piglit_shader 2/2 #12971034
google-freedreno-db820c

00:08:16

passed a530-traces #12971035
google-freedreno-db820c

00:07:54

passed a630_egl #12971040
google-freedreno-cheza

00:02:09

passed a630_gl 1/4 #12971036
google-freedreno-cheza

00:05:29

passed a630_gl 2/4 #12971037
google-freedreno-cheza

00:06:32

passed a630_gl 3/4 #12971038
google-freedreno-cheza

00:04:58

passed a630_gl 4/4 #12971039
google-freedreno-cheza

00:05:43

passed a630_piglit #12971044
google-freedreno-cheza

00:08:34

passed a630-traces #12971045
google-freedreno-cheza

00:04:02

passed a630-traces-performance #12971047
google-freedreno-cheza manual

00:07:22

passed a630-traces-restricted #12971046
google-freedreno-cheza

00:03:07

passed a630_vk 1/3 #12971041
google-freedreno-cheza

00:07:43

passed a630_vk 2/3 #12971042
google-freedreno-cheza

00:09:21

passed a630_vk 3/3 #12971043
google-freedreno-cheza

00:09:06