)]}'
{
  "commit": "71a0b9fda2f07910efbcdb633932ab2d23bb609f",
  "tree": "eefcc68046a296346829a147a97afd5ab0af0a7a",
  "parents": [
    "6f66cdb0fcdc4f763d834a56a404afbf63fe8384"
  ],
  "author": {
    "name": "Andrei Elovikov",
    "email": "andrei.elovikov@sifive.com",
    "time": "Wed Mar 11 14:47:09 2026 -0700"
  },
  "committer": {
    "name": "Andrei Elovikov",
    "email": "andrei.elovikov@sifive.com",
    "time": "Mon Mar 23 15:19:09 2026 -0700"
  },
  "message": "[LAA] Allow vectorizing `A[NonZeroNonConstantStride*I] +\u003d 1`\n\nIn this patch only do that when we can statically prove that\nnon-constant stride is non-zero and the resulting index doesn\u0027t\noverflow. That can later be extended to introduce run-time check when\nnot provable in compile-time.\n\nMy main motivation for this is to move unit-strideness speculation to a\nVPlan-based transformation. However, it cannot be done right now because\nsometimes such speculation affects legality and we simply avoid\nvectorizing loop if it\u0027s not done. As such, we need to extend LAA to\nproperly support dependence analysis/RT checks for strided access\nwithout speculating for it being one. This PR is expected to be the\nfirst one on that journey.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "63a3878ce7f5317e95c96b9188207bb7c68e7a2f",
      "old_mode": 33188,
      "old_path": "llvm/lib/Analysis/LoopAccessAnalysis.cpp",
      "new_id": "ae1f0d94448dfda8bc863ac172b1c2b5bcbeba4d",
      "new_mode": 33188,
      "new_path": "llvm/lib/Analysis/LoopAccessAnalysis.cpp"
    },
    {
      "type": "modify",
      "old_id": "390e694c0b3407805add8d542e5e30da155eb739",
      "old_mode": 33188,
      "old_path": "llvm/test/Analysis/LoopAccessAnalysis/single_strided_readwrite.ll",
      "new_id": "43133aeb20531fd813867cbee3cda11c10133773",
      "new_mode": 33188,
      "new_path": "llvm/test/Analysis/LoopAccessAnalysis/single_strided_readwrite.ll"
    }
  ]
}
