)]}'
{
  "commit": "c998fcb0d1757309656ee0dfe4f2aa8dcf06aecc",
  "tree": "6ca4722bcd2103ffa384244fa20c7f4d85f7981e",
  "parents": [
    "131446ad2ad2697ab1e6fd76bf32e86092bdef29"
  ],
  "author": {
    "name": "Min-Yih Hsu",
    "email": "min.hsu@sifive.com",
    "time": "Fri May 15 08:37:03 2026 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri May 15 08:37:03 2026 -0700"
  },
  "message": "[IA][RISCV] Support gap mask for loads that are de-interleaved through intrinsics (#197062)\n\nIn the context of (de)interleaved loads and stores, a gap mask is a mask\nthat effectively skips the entire component / field. Starting from\n#151612 , the InterleavedAccessPass gained support to recognize masks of\nthis kind and pass it to the TLI hook. RISC-V originally only supported\ngap mask on fixed vectors, this patch adds support for recognizing gap\nmasks on loads that are de-interleaved through the\n`llvm.vector.deinterleaveN` intrinsics, with both scalable vectors and\nfixed vectors.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "318763113fb427a702eb5bc1057ee328f5774e4c",
      "old_mode": 33188,
      "old_path": "llvm/include/llvm/CodeGen/TargetLowering.h",
      "new_id": "82c47cce0f522638ad9b1ec0017096c368dce3cd",
      "new_mode": 33188,
      "new_path": "llvm/include/llvm/CodeGen/TargetLowering.h"
    },
    {
      "type": "modify",
      "old_id": "bdfbeeaa1d6a17b5f7379c480cdf54b2e6c2f728",
      "old_mode": 33188,
      "old_path": "llvm/lib/CodeGen/InterleavedAccessPass.cpp",
      "new_id": "5498ce1d8164757d7bbcce1f9cee1cf4d3b23781",
      "new_mode": 33188,
      "new_path": "llvm/lib/CodeGen/InterleavedAccessPass.cpp"
    },
    {
      "type": "modify",
      "old_id": "60ce6667944aef29ab8e4acb87bc565b3a9f4224",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/AArch64/AArch64ISelLowering.cpp",
      "new_id": "0034c039e69620183398ef85c190d7789b8d76e5",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/AArch64/AArch64ISelLowering.cpp"
    },
    {
      "type": "modify",
      "old_id": "2e66b5ad896efc5b7ebdaa564fa8b91b14720955",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/AArch64/AArch64ISelLowering.h",
      "new_id": "25cab4d3eed7e5633c0338c8de10419da7f9ed2f",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/AArch64/AArch64ISelLowering.h"
    },
    {
      "type": "modify",
      "old_id": "7ef15bc2c5a002c41e4292f1a78e33c9ef3b0589",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/RISCV/RISCVISelLowering.h",
      "new_id": "558df27ea8744e289d0bb5ec97aef7cc4db58aa1",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/RISCV/RISCVISelLowering.h"
    },
    {
      "type": "modify",
      "old_id": "6e2626d7130b9296b10b18418d1d1a9d131e3a41",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/RISCV/RISCVInterleavedAccess.cpp",
      "new_id": "7026541cbd53d70d1bd9b6c7dcdad466d21df4dd",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/RISCV/RISCVInterleavedAccess.cpp"
    },
    {
      "type": "modify",
      "old_id": "82419c23bc1246624600ebb71394ef83ad9a9260",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/RISCV/rvv/fixed-vectors-interleaved-access.ll",
      "new_id": "c2981c69ed1d682eb10fd3c1c493cfbfbd340e1e",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/RISCV/rvv/fixed-vectors-interleaved-access.ll"
    },
    {
      "type": "modify",
      "old_id": "36d1aee6930932d06bdbcf65daab84adbe581122",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/RISCV/rvv/vp-vector-interleaved-access.ll",
      "new_id": "97fc2e821069e3e71b5f999416f36371b797df9c",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/RISCV/rvv/vp-vector-interleaved-access.ll"
    }
  ]
}
