)]}'
{
  "commit": "b645bcd98a11c7857cdee51202c64d15b9a4f90d",
  "tree": "a2a67a8455faa2d75cf37335afbf5e959a4d123c",
  "parents": [
    "3523876873b25bbb8225fed45e4db79e7d250a4f"
  ],
  "author": {
    "name": "Craig Topper",
    "email": "craig.topper@sifive.com",
    "time": "Sun Jan 09 23:23:45 2022 -0800"
  },
  "committer": {
    "name": "Craig Topper",
    "email": "craig.topper@sifive.com",
    "time": "Sun Jan 09 23:37:10 2022 -0800"
  },
  "message": "[RISCV] Generalize (srl (and X, 0xffff), C) -\u003e (srli (slli X, (XLen-16), (XLen-16) + C) optimization.\n\nThis can be generalized to (srl (and X, C2), C) -\u003e\n(srli (slli X, (XLen-C3), (XLen-C3) + C). Where C2 is a mask with\nC3 trailing ones.\n\nThis can avoid constant materialization for C2. This is beneficial\neven when C2 can be selected to ANDI because the SLLI can become\nC.SLLI, but C.ANDI cannot cover all the immediates of ANDI.\n\nThis also enables CSE in some cases of i8 sdiv by constant codegen.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5afae3265f6c0916c0c743761a505100926daaa1",
      "old_mode": 33188,
      "old_path": "llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp",
      "new_id": "a49f685f8fa46701dfb6f77f5dfcfea6f21a1f72",
      "new_mode": 33188,
      "new_path": "llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp"
    },
    {
      "type": "modify",
      "old_id": "8611e752028d4f504d02cef3a56d0ee976f91466",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/RISCV/alu8.ll",
      "new_id": "dafa328450d9d9cd9821df4a166229edbd4077f7",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/RISCV/alu8.ll"
    },
    {
      "type": "modify",
      "old_id": "e7be4070fe023cb53e73c887fba0e5ec541abfad",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/RISCV/bswap-ctlz-cttz-ctpop.ll",
      "new_id": "74c2357fe70049f51bf0dd3a21d4f0cc9031d63a",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/RISCV/bswap-ctlz-cttz-ctpop.ll"
    },
    {
      "type": "modify",
      "old_id": "2f13b18d0ac3cab91879bd141cd6c083286d946b",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/RISCV/div-by-constant.ll",
      "new_id": "f20ff9b6d4f944077039df192dac6ae37143c295",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/RISCV/div-by-constant.ll"
    },
    {
      "type": "modify",
      "old_id": "af6855e94ff6c2b5a3101c6ff4f8ca9c7a246e19",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/RISCV/div.ll",
      "new_id": "3d4db5bbeb699c139bf6f4ee48b1d0ea0a8ed3de",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/RISCV/div.ll"
    },
    {
      "type": "modify",
      "old_id": "a4fda68ba0219d6ed3e33850e0a5d00c1a064de4",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/RISCV/rv32zbb-zbp.ll",
      "new_id": "f9cd53bdf965a05632c50c6c2673b8e14edddb5a",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/RISCV/rv32zbb-zbp.ll"
    },
    {
      "type": "modify",
      "old_id": "79a91979f2bd80680b5156f856b3cf7c2e1d5a02",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/RISCV/rv64zbb-zbp.ll",
      "new_id": "97093ea0a05290c93a6e1ab69b4a455c07373799",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/RISCV/rv64zbb-zbp.ll"
    },
    {
      "type": "modify",
      "old_id": "0d892e65081472bc194f732b14c7ccc96ad47b4b",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/RISCV/rv64zbb.ll",
      "new_id": "952d4c794275f649938a9296db2d1a7aef1584be",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/RISCV/rv64zbb.ll"
    },
    {
      "type": "modify",
      "old_id": "24a7c78d26667553e7c14dade478e60c1d364212",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/RISCV/srem-seteq-illegal-types.ll",
      "new_id": "810fee3464a46d239846711fe1d1c90ef4170de6",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/RISCV/srem-seteq-illegal-types.ll"
    },
    {
      "type": "modify",
      "old_id": "8c3870ee4070f384968b09bacf29b445022b8e99",
      "old_mode": 33188,
      "old_path": "llvm/test/CodeGen/RISCV/urem-seteq-illegal-types.ll",
      "new_id": "a7c2cdf122484221035da62e14e5c2a800aef602",
      "new_mode": 33188,
      "new_path": "llvm/test/CodeGen/RISCV/urem-seteq-illegal-types.ll"
    }
  ]
}
