diff options
author | Usman Nadeem <mnadeem@quicinc.com> | 2024-03-13 09:05:55 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-13 09:05:55 -0700 |
commit | 57b991ab39348d91d8552787958ba7db1e7ceb8a (patch) | |
tree | 381e2796bd283a58903d06e25c05ac233d1e00e2 /flang/lib/Frontend/CompilerInvocation.cpp | |
parent | f15a790fd383665ec4defa0711e975476fd8b18b (diff) | |
download | llvm-57b991ab39348d91d8552787958ba7db1e7ceb8a.zip llvm-57b991ab39348d91d8552787958ba7db1e7ceb8a.tar.gz llvm-57b991ab39348d91d8552787958ba7db1e7ceb8a.tar.bz2 |
[AArch64] Improve lowering of truncating uzp1 (#82457)
There were two existing patterns:
`concat_vectors(trunc(x), trunc(y)) -> uzp1(x, y)`
`concat_vectors(assertzext(trunc(x)), assertzext(trunc(y))) -> uzp1(x,
y)`
Move them into a class and add the following `assertsext` pattern to it:
`concat_vectors(assertsext(trunc(x)), assertsext(trunc(y))) -> uzp1(x,
y)`
Add the following transform for v8i8 and v4i16 result types to help with
pattern matching:
`truncating uzp1(x, y) -> trunc(concat(x, y))`
And a pattern to go with it:
`trunc(concat_vectors(x, y)) -> uzp1 (x, y)`
Add another isel pattern for v8i8 and v4i16 result vector types, similar
to
the existing concat pattern, but with a trunc node in the begining:
`trunc(concat_vectors(assertext_trunc(x), assertext_trunc(y))) ->
xtn(uzp1(x, y))`
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions