Commit 6c84709
authored
[AArch64] Materialize constants via fneg. (#80641)
This is something that is already done as a special case for copysign,
this patch extends it to be more generally applied. If we are trying to
matrialize a negative constant (notably -0.0, 0x80000000), then there
may be no movi encoding that creates the immediate, but a fneg(movi)
might.
Some of the existing patterns for RADDHN needed to be adjusted to keep
them in line with the new immediates.1 parent f723260 commit 6c84709
File tree
9 files changed
+156
-106
lines changed- llvm
- lib/Target/AArch64
- test/CodeGen/AArch64
9 files changed
+156
-106
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12935 | 12935 | | |
12936 | 12936 | | |
12937 | 12937 | | |
12938 | | - | |
| 12938 | + | |
| 12939 | + | |
12939 | 12940 | | |
| 12941 | + | |
| 12942 | + | |
12940 | 12943 | | |
12941 | 12944 | | |
12942 | 12945 | | |
12943 | 12946 | | |
12944 | 12947 | | |
12945 | | - | |
12946 | | - | |
12947 | | - | |
12948 | | - | |
12949 | | - | |
12950 | | - | |
12951 | | - | |
12952 | | - | |
12953 | | - | |
12954 | | - | |
12955 | | - | |
12956 | | - | |
12957 | | - | |
12958 | | - | |
12959 | | - | |
12960 | | - | |
12961 | | - | |
12962 | | - | |
12963 | | - | |
12964 | | - | |
12965 | | - | |
12966 | | - | |
12967 | | - | |
| 12948 | + | |
| 12949 | + | |
| 12950 | + | |
| 12951 | + | |
| 12952 | + | |
| 12953 | + | |
| 12954 | + | |
| 12955 | + | |
| 12956 | + | |
| 12957 | + | |
| 12958 | + | |
| 12959 | + | |
| 12960 | + | |
| 12961 | + | |
| 12962 | + | |
| 12963 | + | |
| 12964 | + | |
| 12965 | + | |
| 12966 | + | |
| 12967 | + | |
| 12968 | + | |
| 12969 | + | |
| 12970 | + | |
| 12971 | + | |
| 12972 | + | |
| 12973 | + | |
| 12974 | + | |
| 12975 | + | |
12968 | 12976 | | |
12969 | | - | |
12970 | | - | |
12971 | | - | |
12972 | | - | |
12973 | | - | |
| 12977 | + | |
| 12978 | + | |
| 12979 | + | |
| 12980 | + | |
| 12981 | + | |
| 12982 | + | |
| 12983 | + | |
| 12984 | + | |
| 12985 | + | |
| 12986 | + | |
| 12987 | + | |
| 12988 | + | |
| 12989 | + | |
| 12990 | + | |
| 12991 | + | |
| 12992 | + | |
| 12993 | + | |
| 12994 | + | |
| 12995 | + | |
| 12996 | + | |
| 12997 | + | |
| 12998 | + | |
| 12999 | + | |
| 13000 | + | |
| 13001 | + | |
| 13002 | + | |
| 13003 | + | |
| 13004 | + | |
| 13005 | + | |
12974 | 13006 | | |
12975 | 13007 | | |
12976 | 13008 | | |
| |||
13019 | 13051 | | |
13020 | 13052 | | |
13021 | 13053 | | |
13022 | | - | |
| 13054 | + | |
13023 | 13055 | | |
13024 | 13056 | | |
13025 | 13057 | | |
| |||
13244 | 13276 | | |
13245 | 13277 | | |
13246 | 13278 | | |
13247 | | - | |
| 13279 | + | |
13248 | 13280 | | |
13249 | 13281 | | |
13250 | 13282 | | |
| |||
23145 | 23177 | | |
23146 | 23178 | | |
23147 | 23179 | | |
23148 | | - | |
| 23180 | + | |
23149 | 23181 | | |
23150 | 23182 | | |
| 23183 | + | |
| 23184 | + | |
| 23185 | + | |
23151 | 23186 | | |
23152 | 23187 | | |
23153 | 23188 | | |
| |||
24141 | 24176 | | |
24142 | 24177 | | |
24143 | 24178 | | |
24144 | | - | |
| 24179 | + | |
24145 | 24180 | | |
24146 | 24181 | | |
24147 | 24182 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7595 | 7595 | | |
7596 | 7596 | | |
7597 | 7597 | | |
| 7598 | + | |
| 7599 | + | |
| 7600 | + | |
| 7601 | + | |
7598 | 7602 | | |
7599 | | - | |
| 7603 | + | |
7600 | 7604 | | |
7601 | | - | |
| 7605 | + | |
7602 | 7606 | | |
7603 | 7607 | | |
7604 | | - | |
| 7608 | + | |
7605 | 7609 | | |
7606 | 7610 | | |
7607 | 7611 | | |
| |||
7613 | 7617 | | |
7614 | 7618 | | |
7615 | 7619 | | |
7616 | | - | |
| 7620 | + | |
7617 | 7621 | | |
7618 | 7622 | | |
7619 | 7623 | | |
7620 | 7624 | | |
7621 | 7625 | | |
7622 | | - | |
| 7626 | + | |
7623 | 7627 | | |
7624 | 7628 | | |
7625 | 7629 | | |
7626 | 7630 | | |
7627 | 7631 | | |
7628 | 7632 | | |
7629 | | - | |
| 7633 | + | |
7630 | 7634 | | |
7631 | 7635 | | |
7632 | 7636 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
120 | 120 | | |
121 | 121 | | |
122 | 122 | | |
123 | | - | |
124 | | - | |
| 123 | + | |
| 124 | + | |
125 | 125 | | |
126 | 126 | | |
127 | 127 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
71 | 71 | | |
72 | 72 | | |
73 | 73 | | |
74 | | - | |
75 | | - | |
| 74 | + | |
| 75 | + | |
76 | 76 | | |
77 | 77 | | |
78 | 78 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
110 | 110 | | |
111 | 111 | | |
112 | 112 | | |
113 | | - | |
114 | | - | |
| 113 | + | |
| 114 | + | |
115 | 115 | | |
116 | 116 | | |
117 | 117 | | |
| |||
426 | 426 | | |
427 | 427 | | |
428 | 428 | | |
429 | | - | |
430 | | - | |
| 429 | + | |
| 430 | + | |
431 | 431 | | |
432 | 432 | | |
433 | 433 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
111 | 111 | | |
112 | 112 | | |
113 | 113 | | |
114 | | - | |
115 | | - | |
116 | | - | |
| 114 | + | |
| 115 | + | |
117 | 116 | | |
118 | 117 | | |
119 | 118 | | |
120 | 119 | | |
121 | | - | |
122 | | - | |
123 | | - | |
| 120 | + | |
| 121 | + | |
124 | 122 | | |
125 | 123 | | |
126 | 124 | | |
| |||
178 | 176 | | |
179 | 177 | | |
180 | 178 | | |
181 | | - | |
182 | | - | |
183 | | - | |
184 | | - | |
185 | | - | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
186 | 202 | | |
187 | 203 | | |
188 | 204 | | |
| |||
294 | 310 | | |
295 | 311 | | |
296 | 312 | | |
297 | | - | |
298 | | - | |
| 313 | + | |
| 314 | + | |
299 | 315 | | |
300 | 316 | | |
301 | 317 | | |
| |||
480 | 496 | | |
481 | 497 | | |
482 | 498 | | |
483 | | - | |
484 | | - | |
| 499 | + | |
| 500 | + | |
485 | 501 | | |
486 | 502 | | |
487 | 503 | | |
488 | 504 | | |
489 | | - | |
490 | | - | |
| 505 | + | |
| 506 | + | |
491 | 507 | | |
492 | 508 | | |
493 | 509 | | |
| |||
0 commit comments