)]}'
{
  "commit": "d5044b85d3bd3ed0b8ddae3ea186eef747b1ef2d",
  "tree": "b17e22b6a5d512b4dd478db09aaf67f266341b67",
  "parents": [
    "ea8c74c074925b93f013519a63e3518e0c448b85"
  ],
  "author": {
    "name": "Philipp Tomsich",
    "email": "philipp.tomsich@vrull.eu",
    "time": "Fri May 08 19:22:04 2026 +0200"
  },
  "committer": {
    "name": "Philipp Tomsich",
    "email": "philipp.tomsich@vrull.eu",
    "time": "Fri Jul 03 23:04:38 2026 +0200"
  },
  "message": "match.pd: factor MSB OR-cascade out of clz_table_index\n\nFactor the 5- and 6-stage MSB OR-cascade -- which sets every bit from 0\nto the input\u0027s MSB -- into two helper match patterns msb_or_cascade_32\nand msb_or_cascade_64, and rewrite the 32-bit and 64-bit clz_table_index\npatterns as one-liners over them.  The helpers retain the\nintegral/unsigned/precision and shift-constant checks, so this is a\nno-functional-change refactor.\n\nIt prepares a follow-up that recognises a CLZ idiom isolating the MSB\nbefore the DeBruijn multiply, which reuses msb_or_cascade_64 directly.\n\ngcc/ChangeLog:\n\n\t* match.pd (msb_or_cascade_32, msb_or_cascade_64): New match\n\thelpers.\n\t(clz_table_index): Rewrite the 32-bit and 64-bit forms to use\n\tthe cascade helpers.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a4a1ac94860ac7cde1d494548ac67b92f1dc2495",
      "old_mode": 33188,
      "old_path": "gcc/match.pd",
      "new_id": "7983211a793094b8db7910b62af19f5f5110898d",
      "new_mode": 33188,
      "new_path": "gcc/match.pd"
    }
  ]
}
