)]}'
{
  "commit": "6df026ea07b0cf261bd82a786e867e0bfe70d63c",
  "tree": "2e5f5e087afec217da8b2f7ce57c5afb70d63fec",
  "parents": [
    "ceff533bb4f3c9a49fe30e53caef015961b56d5a"
  ],
  "author": {
    "name": "Bohan Lei",
    "email": "garthlei@linux.alibaba.com",
    "time": "Thu Jul 23 09:36:30 2026 +0800"
  },
  "committer": {
    "name": "Bohan Lei",
    "email": "garthlei@linux.alibaba.com",
    "time": "Thu Jul 30 18:10:28 2026 +0800"
  },
  "message": "RISC-V: Add intrinsic support for Zvabd\n\nThis commit adds intrinsic support for Zvabd.  The original vwabad\nmachine description pattern would cause an ICE when emitting the\nintrinsic because operand 0 and operand 2 are different pseudos,\nand operand 2 has a constraint of \"0\", while operand 0 is marked as\nread-write \"+\".  The vwmacc-like pattern is now used to support correct\nintrinsic generation and to better reflect the semantics.  Pan Li\u0027s new\noverlap constraint is used according to Robin\u0027s review comments of v2.\n\ngcc/ChangeLog:\n\n\t* config/riscv/autovec-opt.md: Match the new vwmacc-like pattern.\n\t* config/riscv/genrvv-type-indexer.cc: Support\n\tDOUBLE_TRUNC_SIGNED type for v[u]int types.\n\t* config/riscv/riscv-vector-builtins-bases.cc (class vabd): New\n\tclass.\n\t(class vabs): Ditto.\n\t(class vabda): Ditto.\n\t(BASE): Define.\n\t* config/riscv/riscv-vector-builtins-bases.h: Ditto.\n\t* config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):\n\tDitto.\n\t(vabs): Ditto.\n\t(vabd): Ditto.\n\t(vabdu): Ditto.\n\t(vwabda): Ditto.\n\t(vwabdau): Ditto.\n\t* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_QU_HU_OPS):\n\tDefine.\n\t(DEF_RVV_HU_SU_OPS): Ditto.\n\t* config/riscv/riscv-vector-builtins.cc (qu_hu_ops): Ditto.\n\t(hu_su_ops): Ditto.\n\t(ss_args): Ditto.\n\t(wwss_args): Ditto.\n\t(qu_hu_vss_ops): Ditto\n\t(qu_hu_vvv_ops): Ditto\n\t(hu_su_wwss_ops): Ditto\n\t(hu_su_wwvv_ops): Ditto\n\t(u_s_ops): Ditto\n\t(get_builtin_partition): Add Zvabd case.\n\t* config/riscv/riscv-vector-builtins.h (enum required_ext):\n\tDitto.\n\t(enum rvv_builtin_partition): Ditto.\n\t(required_ext_to_isa_name): Ditto.\n\t(required_extensions_specified): Ditto.\n\t* config/riscv/riscv_vector.h (__riscv_intrinsic_zvabd): Define.\n\t* config/riscv/vector.md: Rewrite pred_widen_abd_plus as\n\tvwmacc-like form.\n\ngcc/testsuite/ChangeLog:\n\n\t* gcc.target/riscv/rvv/base/intrinsic-detection.c: Add Zvabd.\n\t* gcc.target/riscv/rvv/base/zvabd-intrinsic.c: New test.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d210b05a8a2a460f54d284a5432ee8a76bb2e3c8",
      "old_mode": 33188,
      "old_path": "gcc/config/riscv/autovec-opt.md",
      "new_id": "094ad6fd6c94a9b42ccced8b48f6cd8ea4a49135",
      "new_mode": 33188,
      "new_path": "gcc/config/riscv/autovec-opt.md"
    },
    {
      "type": "modify",
      "old_id": "ddc0d9863fca9a5be4afe04e7f3749bb631da347",
      "old_mode": 33188,
      "old_path": "gcc/config/riscv/genrvv-type-indexer.cc",
      "new_id": "413ca19a1719265e621a476dd43314137623647a",
      "new_mode": 33188,
      "new_path": "gcc/config/riscv/genrvv-type-indexer.cc"
    },
    {
      "type": "modify",
      "old_id": "6e3b3a01862e1ac27ceb7e33c6c220e6efc51f55",
      "old_mode": 33188,
      "old_path": "gcc/config/riscv/riscv-vector-builtins-bases.cc",
      "new_id": "3bbec005facfe088ad3d09e58f2244a2525c8455",
      "new_mode": 33188,
      "new_path": "gcc/config/riscv/riscv-vector-builtins-bases.cc"
    },
    {
      "type": "modify",
      "old_id": "9261d353e2207ba8d05f855c9a34eb48ea95563f",
      "old_mode": 33188,
      "old_path": "gcc/config/riscv/riscv-vector-builtins-bases.h",
      "new_id": "d7a727d6bc5b0c1323a2c82cca6452a1382339a1",
      "new_mode": 33188,
      "new_path": "gcc/config/riscv/riscv-vector-builtins-bases.h"
    },
    {
      "type": "modify",
      "old_id": "f64d42d182385674a137e9592344e3e1f47b5b0b",
      "old_mode": 33188,
      "old_path": "gcc/config/riscv/riscv-vector-builtins-functions.def",
      "new_id": "a31e1c4e194cfe79b98c4c5dd93a2f63c665c86e",
      "new_mode": 33188,
      "new_path": "gcc/config/riscv/riscv-vector-builtins-functions.def"
    },
    {
      "type": "modify",
      "old_id": "fd64771de9e0a4095a935671cf0698af1c0735b5",
      "old_mode": 33188,
      "old_path": "gcc/config/riscv/riscv-vector-builtins-types.def",
      "new_id": "2e952bedca16a48d646371e5fdedd119561003b9",
      "new_mode": 33188,
      "new_path": "gcc/config/riscv/riscv-vector-builtins-types.def"
    },
    {
      "type": "modify",
      "old_id": "47f80be5a392eecc7fde4fa574420f23904792b1",
      "old_mode": 33188,
      "old_path": "gcc/config/riscv/riscv-vector-builtins.cc",
      "new_id": "a7e5c24281fd016f8bdfa3657d414bebc339fd8f",
      "new_mode": 33188,
      "new_path": "gcc/config/riscv/riscv-vector-builtins.cc"
    },
    {
      "type": "modify",
      "old_id": "dfc3e8703b3d0afffd449045982b5fc04589cf4a",
      "old_mode": 33188,
      "old_path": "gcc/config/riscv/riscv-vector-builtins.h",
      "new_id": "8e5cba1e1b629af9b61c2b5b9cb3b2873a67b2da",
      "new_mode": 33188,
      "new_path": "gcc/config/riscv/riscv-vector-builtins.h"
    },
    {
      "type": "modify",
      "old_id": "bda75833ef2eb22feefcab0b225fb34f8d1adb04",
      "old_mode": 33188,
      "old_path": "gcc/config/riscv/riscv_vector.h",
      "new_id": "8dd0ac46d989b4604f5a23fec5d01fdb107c56ef",
      "new_mode": 33188,
      "new_path": "gcc/config/riscv/riscv_vector.h"
    },
    {
      "type": "modify",
      "old_id": "ae8672999ebb24dee954a8e4302a529ae5458c4e",
      "old_mode": 33188,
      "old_path": "gcc/config/riscv/vector.md",
      "new_id": "04684c458a735a34e59f0ffb31f6d2ede70d7fd5",
      "new_mode": 33188,
      "new_path": "gcc/config/riscv/vector.md"
    },
    {
      "type": "modify",
      "old_id": "d11cd26afa38915da9343606edadb79b2935888f",
      "old_mode": 33188,
      "old_path": "gcc/testsuite/gcc.target/riscv/rvv/base/intrinsic-detection.c",
      "new_id": "4ba99664ed1ebe3715563b022d6183948ebea2bc",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/gcc.target/riscv/rvv/base/intrinsic-detection.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "37f917498fc7489be8ae79ec90b82c57fcb477a5",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/gcc.target/riscv/rvv/base/zvabd-intrinsic.c"
    }
  ]
}
