)]}'
{
  "commit": "f9a0b5dc9856d7b2c186d5fc5657333b403ae512",
  "tree": "98f6751872872695d3bad1e2087b4519a096091c",
  "parents": [
    "5c127fba0b4c6fa96f78326c9126c4aca1d51a79"
  ],
  "author": {
    "name": "lrzlin",
    "email": "linrunze@loongson.cn",
    "time": "Fri May 08 10:38:32 2026 +0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri May 08 10:38:32 2026 +0800"
  },
  "message": "[LoongArch] Custom lowering for LSX vector sign extensions (#194325)\n\nCustom LSX sign-extensions to combinations of `SLTI` + `VILVL` + `VILVH`\nif possible.\n\nFor example,  we could lower vector sext to following instructions:\n```\n%B \u003d sext \u003c4 x i16\u003e %A to \u003c4 x i32\u003e\nvslti.h v2, v1, 0\nvilvl.h v1, v2, v1 \n\n%B \u003d sext \u003c4 x i32\u003e %A to \u003c4 x i64\u003e\nvslti.w v3, v1, 0\nvilvh.w v2, v3, v1\nvilvl.w v1, v3, v1\n```\nWhen these combinations is worse than convert sext to shuffle, we simply\nuse the latter one instead.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "789229eae1b92b447a3ecc0b02f181655b522492",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp",
      "new_id": "e3bdf2b993036870c81a9e3d70ac4ca5d85e5ba4",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp"
    },
    {
      "type": "modify",
      "old_id": "c945b8226e07d713a564cf56b18ed8f2b0ced297",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/LoongArch/LoongArchISelLowering.h",
      "new_id": "4cc1aa2261ecc9a29dd7c6404725e390195d76e1",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/LoongArch/LoongArchISelLowering.h"
    },
    {
      "type": "modify",
      "old_id": "9fa0b3838967b0e0285d36e9c69961e99eac5c06",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/LoongArch/lsx/vec-sext.ll",
      "new_id": "22e87d812eafa16d1a90cefcc183ad53decaede0",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/LoongArch/lsx/vec-sext.ll"
    },
    {
      "type": "modify",
      "old_id": "b72df478e73a1a947d162b1bccf795bbe44afeca",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/LoongArch/lsx/vmskcond.ll",
      "new_id": "2963c40e8d1b49b1cbb85f2b7e9eb81af1d58657",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/LoongArch/lsx/vmskcond.ll"
    }
  ]
}
