Commit f81160c
authored
aarch64: Fix
This commit fixes a lowering rule in the aarch64 Cranelift backend.
Specifically a combined `splat(ireduce(_))` combo would pass an
immediate to the `splat_const` helper which had higher bits set since
the `ireduce` wasn't const-propagated. The fix applied here is to delete
the `ireduce`-related rule and rely on mid-end optimizations to trigger
to fold the `ireduce(iconst(...))` appropriately. This ensures that the
`u64` values passed into the `splat_const` rule is indeed the exact
value that's being splatted.splat(ireduce(iconst(...))) (#12902)1 parent 2f7dbd6 commit f81160c
File tree
3 files changed
+14
-7
lines changed- cranelift
- codegen/src/isa/aarch64
- filetests/filetests
- isa/aarch64
- runtests
3 files changed
+14
-7
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2313 | 2313 | | |
2314 | 2314 | | |
2315 | 2315 | | |
2316 | | - | |
2317 | | - | |
2318 | | - | |
2319 | 2316 | | |
2320 | 2317 | | |
2321 | 2318 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
36 | | - | |
37 | | - | |
| 36 | + | |
| 37 | + | |
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
42 | | - | |
43 | | - | |
| 42 | + | |
| 43 | + | |
44 | 44 | | |
45 | 45 | | |
46 | 46 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
212 | 212 | | |
213 | 213 | | |
214 | 214 | | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
0 commit comments