)]}'
{
  "commit": "ddacdb8b37ce268cac26e594e8f84b530b4f85b4",
  "tree": "5bc1548e462c8b64380bdeac8d22f2ea55f75064",
  "parents": [
    "6dd8d07444baa41f62426990c8768f746c79fb79"
  ],
  "author": {
    "name": "Richard Sandiford",
    "email": "rdsandiford@googlemail.com",
    "time": "Mon Jun 08 08:31:18 2026 +0100"
  },
  "committer": {
    "name": "Richard Sandiford",
    "email": "rdsandiford@googlemail.com",
    "time": "Mon Jun 08 08:31:18 2026 +0100"
  },
  "message": "Simplify vec_duplicates of vec_duplicates\n\nr17-899-g52d5a8870d2108 added a pattern with a nested vec_duplicate,\nbut I think those should be folded down to a single vec_duplicate.\n\nThe later:\n\n  if (VECTOR_MODE_P (mode)\n      \u0026\u0026 vec_duplicate_p (op, \u0026elt)\n      \u0026\u0026 code !\u003d VEC_DUPLICATE)\n\nhandles only scalar elements, but this rule applies to vec_duplicates\nof vectors as well.\n\nA bit of scripting suggests that this was the only use of nested\nvec_duplicates in the md files.\n\nThis is tested by gcc.target/aarch64/sve/vec_init_5.c.\n\ngcc/\n\t* simplify-rtx.cc (simplify_context::simplify_unary_operation_1):\n\tSimplify vec_duplicates of vec_duplicates.\n\t* config/aarch64/aarch64-sve.md\n\t(*aarch64_vec_duplicate_subvector\u003cvconsv\u003e\u003cvconq\u003e\u003cmode\u003e): Remove\n\tnested vec_duplicate.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "585a587d8cf46ecb9186d97a743813089bf5cbca",
      "old_mode": 33188,
      "old_path": "gcc/config/aarch64/aarch64-sve.md",
      "new_id": "723b8d6e6ecfc43236cbb94695b8e224255aedf2",
      "new_mode": 33188,
      "new_path": "gcc/config/aarch64/aarch64-sve.md"
    },
    {
      "type": "modify",
      "old_id": "c2d89641dfc6db2a7fe45d59451fa3477c6d00a2",
      "old_mode": 33188,
      "old_path": "gcc/simplify-rtx.cc",
      "new_id": "872ae032869100d7c4ac06afa56e42ad1b9d0c4d",
      "new_mode": 33188,
      "new_path": "gcc/simplify-rtx.cc"
    }
  ]
}
