This is part of an effort to remove ConstantExpr based
representations of vscale so that its LangRef definiton can
be relaxed to accommodate a less strict definition of constant.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
This patch follows on from a conversation on D144624. I've tried to keep things conservative (i.e. no llvm.vscale() detection or use of vscale_range attributes) so as not to change existing behaviour, hence no test changes.
Comment Actions
Seems reasonable to me.
llvm/lib/Analysis/ScalarEvolution.cpp | ||
---|---|---|
730 | The "return 0" shouldn't be reachable; if two vscales have the same type, "LHS == RHS" should be true. You can probably just skip checking "if (LTy != RTy)". |
Comment Actions
Hi, I am seeing some inefficient codegen after this patch for AArch64 SVE, created a github issue: https://github.com/llvm/llvm-project/issues/61742
The "return 0" shouldn't be reachable; if two vscales have the same type, "LHS == RHS" should be true.
You can probably just skip checking "if (LTy != RTy)".