Commit e734202
committed
[DAG] Recognise AVGFLOOR (((A >> 1) + (B >> 1)) + (A & B & 1)) patterns
Recognise 'LSB' style AVGFLOOR patterns.
I've attempted to use the m_Reassociatable* pattern matchers, but encountered an issue in that we can't correctly match m_Value/m_Deferred pairs in the same reassociation as it appears that we have no guarantees on the order of matching. I'll raise a bug for this, and in the meantime we have the pattern in the test_lsb_i32 tests to show the missed matching opportunity.
Fixes llvm#536481 parent 04bddda commit e734202
File tree
3 files changed
+65
-105
lines changed- llvm
- lib/CodeGen/SelectionDAG
- test/CodeGen/X86
3 files changed
+65
-105
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3154 | 3154 | | |
3155 | 3155 | | |
3156 | 3156 | | |
| 3157 | + | |
3157 | 3158 | | |
3158 | 3159 | | |
3159 | 3160 | | |
3160 | 3161 | | |
3161 | 3162 | | |
| 3163 | + | |
3162 | 3164 | | |
3163 | | - | |
3164 | | - | |
| 3165 | + | |
| 3166 | + | |
| 3167 | + | |
| 3168 | + | |
| 3169 | + | |
| 3170 | + | |
| 3171 | + | |
3165 | 3172 | | |
3166 | 3173 | | |
3167 | 3174 | | |
3168 | | - | |
3169 | | - | |
| 3175 | + | |
| 3176 | + | |
| 3177 | + | |
| 3178 | + | |
| 3179 | + | |
| 3180 | + | |
| 3181 | + | |
3170 | 3182 | | |
3171 | 3183 | | |
3172 | 3184 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
41 | | - | |
42 | | - | |
43 | | - | |
44 | | - | |
45 | | - | |
46 | | - | |
47 | | - | |
48 | | - | |
49 | | - | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
50 | 46 | | |
51 | 47 | | |
52 | 48 | | |
53 | 49 | | |
54 | | - | |
55 | | - | |
56 | | - | |
57 | | - | |
58 | | - | |
59 | | - | |
60 | | - | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
61 | 55 | | |
62 | 56 | | |
63 | 57 | | |
| |||
124 | 118 | | |
125 | 119 | | |
126 | 120 | | |
127 | | - | |
128 | | - | |
129 | | - | |
130 | | - | |
131 | | - | |
132 | | - | |
133 | 121 | | |
| 122 | + | |
134 | 123 | | |
135 | 124 | | |
136 | 125 | | |
137 | 126 | | |
138 | 127 | | |
139 | | - | |
140 | | - | |
141 | | - | |
142 | | - | |
| 128 | + | |
| 129 | + | |
143 | 130 | | |
144 | | - | |
145 | | - | |
146 | | - | |
| 131 | + | |
147 | 132 | | |
148 | 133 | | |
149 | 134 | | |
| |||
316 | 301 | | |
317 | 302 | | |
318 | 303 | | |
319 | | - | |
320 | | - | |
321 | 304 | | |
322 | | - | |
323 | | - | |
324 | | - | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
325 | 309 | | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
326 | 313 | | |
327 | | - | |
328 | | - | |
329 | | - | |
330 | 314 | | |
331 | | - | |
332 | | - | |
333 | | - | |
| 315 | + | |
| 316 | + | |
334 | 317 | | |
335 | 318 | | |
336 | 319 | | |
337 | 320 | | |
338 | 321 | | |
339 | 322 | | |
340 | 323 | | |
341 | | - | |
342 | | - | |
343 | | - | |
344 | 324 | | |
345 | | - | |
346 | | - | |
347 | | - | |
348 | | - | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
349 | 329 | | |
350 | 330 | | |
351 | 331 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
43 | | - | |
44 | | - | |
45 | | - | |
46 | | - | |
47 | | - | |
48 | | - | |
49 | | - | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
50 | 46 | | |
51 | 47 | | |
52 | 48 | | |
53 | 49 | | |
54 | | - | |
55 | | - | |
56 | | - | |
57 | | - | |
58 | | - | |
59 | | - | |
60 | | - | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
61 | 55 | | |
62 | 56 | | |
63 | 57 | | |
| |||
124 | 118 | | |
125 | 119 | | |
126 | 120 | | |
127 | | - | |
128 | | - | |
129 | | - | |
130 | | - | |
131 | | - | |
132 | | - | |
133 | 121 | | |
| 122 | + | |
134 | 123 | | |
135 | 124 | | |
136 | 125 | | |
137 | 126 | | |
138 | 127 | | |
139 | | - | |
140 | | - | |
141 | | - | |
142 | | - | |
| 128 | + | |
| 129 | + | |
143 | 130 | | |
144 | | - | |
145 | | - | |
146 | | - | |
| 131 | + | |
147 | 132 | | |
148 | 133 | | |
149 | 134 | | |
| |||
300 | 285 | | |
301 | 286 | | |
302 | 287 | | |
303 | | - | |
304 | | - | |
305 | | - | |
306 | | - | |
307 | 288 | | |
308 | 289 | | |
309 | | - | |
310 | | - | |
311 | | - | |
312 | | - | |
313 | | - | |
314 | | - | |
315 | | - | |
316 | | - | |
317 | | - | |
318 | | - | |
319 | | - | |
320 | | - | |
321 | | - | |
322 | | - | |
323 | | - | |
324 | | - | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
325 | 296 | | |
326 | 297 | | |
327 | 298 | | |
328 | 299 | | |
329 | | - | |
330 | | - | |
331 | | - | |
332 | 300 | | |
333 | | - | |
334 | | - | |
335 | | - | |
336 | | - | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
337 | 305 | | |
338 | 306 | | |
339 | 307 | | |
| |||
0 commit comments