Commit 722d589
authored
[RISCV] Lower e64 vector_deinterleave via ri.vunzip2{a,b} if available (#136321)
If XRivosVizip is available, the ri.vunzip2a and ri.vunzip2b can be used
to the concatenation and register deinterleave shuffle. This patch only
effects the intrinsic lowering (and thus scalable vectors because the
fixed vectors go through shuffle lowering).
Note that this patch is restricted to e64 for staging purposes only. e64
is obviously profitable (i.e. we remove a vcompress). At e32 and below,
our alternative is a vnsrl instead, and we need a bit more complexity
around lowering with fractional LMUL before the ri.vunzip2a/b versions
becomes always profitable. I'll post the followup change once this
lands.1 parent fdcee2d commit 722d589
File tree
4 files changed
+209
-135
lines changed- llvm
- lib/Target/RISCV
- test/CodeGen/RISCV/rvv
4 files changed
+209
-135
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5018 | 5018 | | |
5019 | 5019 | | |
5020 | 5020 | | |
5021 | | - | |
| 5021 | + | |
| 5022 | + | |
5022 | 5023 | | |
5023 | 5024 | | |
5024 | 5025 | | |
| |||
6934 | 6935 | | |
6935 | 6936 | | |
6936 | 6937 | | |
6937 | | - | |
| 6938 | + | |
6938 | 6939 | | |
6939 | 6940 | | |
6940 | 6941 | | |
| |||
6958 | 6959 | | |
6959 | 6960 | | |
6960 | 6961 | | |
6961 | | - | |
| 6962 | + | |
6962 | 6963 | | |
6963 | 6964 | | |
6964 | 6965 | | |
| |||
11509 | 11510 | | |
11510 | 11511 | | |
11511 | 11512 | | |
| 11513 | + | |
| 11514 | + | |
| 11515 | + | |
| 11516 | + | |
| 11517 | + | |
| 11518 | + | |
| 11519 | + | |
| 11520 | + | |
| 11521 | + | |
| 11522 | + | |
| 11523 | + | |
| 11524 | + | |
| 11525 | + | |
11512 | 11526 | | |
11513 | 11527 | | |
11514 | 11528 | | |
| |||
22242 | 22256 | | |
22243 | 22257 | | |
22244 | 22258 | | |
| 22259 | + | |
| 22260 | + | |
22245 | 22261 | | |
22246 | 22262 | | |
22247 | 22263 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
408 | 408 | | |
409 | 409 | | |
410 | 410 | | |
| 411 | + | |
| 412 | + | |
411 | 413 | | |
412 | | - | |
| 414 | + | |
413 | 415 | | |
414 | 416 | | |
415 | 417 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
71 | 71 | | |
72 | 72 | | |
73 | 73 | | |
| 74 | + | |
| 75 | + | |
74 | 76 | | |
75 | 77 | | |
76 | 78 | | |
| |||
82 | 84 | | |
83 | 85 | | |
84 | 86 | | |
| 87 | + | |
| 88 | + | |
85 | 89 | | |
86 | 90 | | |
87 | 91 | | |
| |||
98 | 102 | | |
99 | 103 | | |
100 | 104 | | |
| 105 | + | |
| 106 | + | |
101 | 107 | | |
102 | 108 | | |
103 | 109 | | |
| |||
0 commit comments