Tries to combine scalarised truncates into vector truncate operations EXAMPLE: `%a(i32), %b(i32) = G_UNMERGE %src(<2 x i32>)` `%T_a(i16) = G_TRUNC %a(i32)` `%T_b(i16) = G_TRUNC %b(i32)` `%Imp(i16) = G_IMPLICIT_DEF(i16)` `%dst(v8i16) = G_MERGE_VALUES %T_a(i16), %T_b(i16), %Imp(i16), %Imp(i16)` ===> `%Imp(<2 x i32>) = G_IMPLICIT_DEF(<2 x i32>)` `%Mid(<4 x s16>) = G_CONCAT_VECTORS %src(<2 x i32>), %Imp(<2 x i32>)` `%dst(<4 x s16>) = G_TRUNC %Mid(<4 x s16>)`
5.7 KiB
5.7 KiB