Summary: | GCC doesn't vectorize loop due to evolution of base is not affine. | ||
---|---|---|---|
Product: | gcc | Reporter: | Hongtao.liu <crazylht> |
Component: | tree-optimization | Assignee: | Not yet assigned to anyone <unassigned> |
Status: | NEW --- | ||
Severity: | normal | ||
Priority: | P3 | ||
Version: | 12.0 | ||
Target Milestone: | --- | ||
Host: | x86_64-pc-linux-gnu | Target: | |
Build: | Known to work: | ||
Known to fail: | Last reconfirmed: | 2021-07-14 00:00:00 | |
Bug Depends on: | |||
Bug Blocks: | 53947 |
Description
Hongtao.liu
2021-07-14 12:08:25 UTC
Yes, as I said in some other PRs the SCEV framework would need to be extended to track 'assumptions' under which its result would be valid, much like niter analysis does. Currently it simply gives up here. Of course 'assumptions' would need support from quite some mid-stream infrastructure and some way to carry it since currently a SCEV is a tree expression. Thus it's quite some work to do this. The mid-stream users is mostly data dependence analysis. There's effective duplicates of this bug. |