Commit 3c714e3
authored
riscv64: Fix
* riscv64: Fix `replicated_imm5` lowering rule
This commit fixes the `replicated_imm5` lowering rule in the riscv64
backend when applied to `vconst` inputs. This is reachable in
WebAssembly via `v128.const`, for example, or via Cranelift
optimizations. The previous iteration of the rule did not take lane
width into account and always reduced the immediate as much as possible
where the reduction needed to halt once the lane size had been reached.
The fix here is to refactor the definition to have a rule-per-lane-width
which handles the input constant. This is accompanied with some minor
refactorings around available ISLE rules and such to handle more bit
widths in more locations, have more faithful signatures, etc.
* Fix winch testing
* Fix test exemption
prtest:fullreplicated_imm5 lowering rule (#12956)1 parent a4fef42 commit 3c714e3
7 files changed
Lines changed: 383 additions & 19 deletions
File tree
- cranelift
- codegen/src
- isa
- aarch64
- riscv64
- filetests/filetests/isa/riscv64
- crates/test-util/src
- tests/misc_testsuite/simd
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4112 | 4112 | | |
4113 | 4113 | | |
4114 | 4114 | | |
4115 | | - | |
| 4115 | + | |
4116 | 4116 | | |
4117 | | - | |
| 4117 | + | |
4118 | 4118 | | |
4119 | | - | |
| 4119 | + | |
4120 | 4120 | | |
4121 | | - | |
| 4121 | + | |
4122 | 4122 | | |
4123 | 4123 | | |
4124 | 4124 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2020 | 2020 | | |
2021 | 2021 | | |
2022 | 2022 | | |
2023 | | - | |
| 2023 | + | |
2024 | 2024 | | |
2025 | 2025 | | |
| 2026 | + | |
| 2027 | + | |
| 2028 | + | |
| 2029 | + | |
| 2030 | + | |
| 2031 | + | |
2026 | 2032 | | |
2027 | 2033 | | |
2028 | 2034 | | |
| |||
2037 | 2043 | | |
2038 | 2044 | | |
2039 | 2045 | | |
2040 | | - | |
| 2046 | + | |
2041 | 2047 | | |
2042 | | - | |
2043 | | - | |
2044 | | - | |
| 2048 | + | |
| 2049 | + | |
| 2050 | + | |
| 2051 | + | |
| 2052 | + | |
| 2053 | + | |
| 2054 | + | |
| 2055 | + | |
| 2056 | + | |
| 2057 | + | |
| 2058 | + | |
| 2059 | + | |
2045 | 2060 | | |
2046 | 2061 | | |
2047 | 2062 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
792 | 792 | | |
793 | 793 | | |
794 | 794 | | |
795 | | - | |
| 795 | + | |
796 | 796 | | |
797 | 797 | | |
798 | | - | |
| 798 | + | |
799 | 799 | | |
800 | 800 | | |
801 | 801 | | |
802 | 802 | | |
803 | 803 | | |
804 | | - | |
805 | | - | |
| 804 | + | |
806 | 805 | | |
807 | 806 | | |
808 | | - | |
| 807 | + | |
809 | 808 | | |
810 | 809 | | |
811 | 810 | | |
812 | 811 | | |
813 | 812 | | |
814 | | - | |
815 | | - | |
| 813 | + | |
816 | 814 | | |
817 | 815 | | |
818 | 816 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
115 | 115 | | |
116 | 116 | | |
117 | 117 | | |
118 | | - | |
| 118 | + | |
119 | 119 | | |
120 | | - | |
| 120 | + | |
121 | 121 | | |
122 | | - | |
| 122 | + | |
123 | 123 | | |
124 | 124 | | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
125 | 133 | | |
126 | 134 | | |
127 | 135 | | |
| |||
0 commit comments