)]}'
{
  "commit": "7e88b4e76418b131268802ccba5f74cf1835fc66",
  "tree": "7cdd99e240cfbd8ac44dc754246562d74a483418",
  "parents": [
    "787c7e0c01f091291edeb2471367119ca6f438e7"
  ],
  "author": {
    "name": "Jin Ma",
    "email": "jinma@linux.alibaba.com",
    "time": "Sat Sep 05 10:07:33 2026 -0600"
  },
  "committer": {
    "name": "Jeff Law",
    "email": "jeffreyalaw@gmail.com",
    "time": "Sat Sep 05 10:07:33 2026 -0600"
  },
  "message": "[PATCH v2] RISC-V: Fix overlapping vd/vs2 allocation for vector crypto [PR126196]\n\nThe RISC-V Vector Crypto specification reserves encodings where the\nvd register group overlaps vs2 for vsm3me.vv, vsm3c.vi, vaes*.vs and\nvsm4r.vs.  It also reserves encodings where vd overlaps either vs1 or\nvs2 for vsha2ms.vv, vsha2ch.vv and vsha2cl.vv.\n\nUse early-clobber destination constraints for the affected patterns.\nSelect those constraints by UNSPEC where patterns are shared, keeping\nlegal overlap for vghsh.vv, vaeskf2.vi, vgmul.vv and the .vv forms of\nAES and SM4.\n\n\tPR target/126196\n\ngcc/ChangeLog:\n\n\t* config/riscv/vector-crypto.md (vv_ins_con): New int attribute.\n\t(vv_ins1_con): Likewise.\n\t(vi_ins1_con): Likewise.\n\t(@pred_v\u003cvv_ins1_name\u003e\u003cmode\u003e): Use vv_ins1_con.\n\t(@pred_crypto_vv\u003cvv_ins_name\u003e\u003cins_type\u003e\u003cmode\u003e): Use vv_ins_con.\n\t(@pred_vi\u003cvi_ins1_name\u003e\u003cmode\u003e_nomaskedoff_scalar): Use vi_ins1_con.\n\t(@pred_vsm3me\u003cmode\u003e): Mark the destination as early-clobber.\n\ngcc/testsuite/ChangeLog:\n\n\t* gcc.target/riscv/pr126196-1.c: New test.\n\t* gcc.target/riscv/pr126196-2.c: New test.\n\t* gcc.target/riscv/pr126196-3.c: New test.\n\t* gcc.target/riscv/pr126196-4.c: New test.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b12a8453eb1b27ded7cae766a9a90946b7674c7d",
      "old_mode": 33188,
      "old_path": "gcc/config/riscv/vector-crypto.md",
      "new_id": "d419b243006e842388ea547c16da08c3937b2ece",
      "new_mode": 33188,
      "new_path": "gcc/config/riscv/vector-crypto.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f94a3f3b38dffe4e40470b9ca363ea67d9d81e5f",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/gcc.target/riscv/pr126196-1.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e85b7e362a4d52a3aa4da5d54035c14632886ff4",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/gcc.target/riscv/pr126196-2.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ffa1553d48b62d25ab1e803fbba16337fb095f8d",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/gcc.target/riscv/pr126196-3.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "197b78ead04307561d6468d608a4da74e5595db0",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/gcc.target/riscv/pr126196-4.c"
    }
  ]
}
