diff options
| author | chuongg3 <chuong.goh@arm.com> | 2024-09-23 13:52:37 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-23 13:52:37 +0100 |
| commit | b0dc7b5b8617e188a926cbe06918fedab2fd5df9 (patch) | |
| tree | 597a66ceaced3fb77888fc704c8416ebefa692d5 /llvm/lib/Transforms/Utils/SimplifyCFG.cpp | |
| parent | f4eeae1244c83486e38e4b73715fa688d34bc244 (diff) | |
| download | llvm-b0dc7b5b8617e188a926cbe06918fedab2fd5df9.zip llvm-b0dc7b5b8617e188a926cbe06918fedab2fd5df9.tar.gz llvm-b0dc7b5b8617e188a926cbe06918fedab2fd5df9.tar.bz2 | |
[AArch64][GlobalISel] Prefer to use Vector Truncate (#105692)
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>)`
Diffstat (limited to 'llvm/lib/Transforms/Utils/SimplifyCFG.cpp')
0 files changed, 0 insertions, 0 deletions
