)]}'
{
  "commit": "82018abee6cb2c4cb8b26cd83eff569e766f1722",
  "tree": "71e4a9b27da841d4b27995e40aa234c415cfbeee",
  "parents": [
    "0f29594f0951faceb87258dbe3c903e941aaa3bb"
  ],
  "author": {
    "name": "George Steed",
    "email": "george.steed@arm.com",
    "time": "Mon Sep 11 18:53:05 2023 +0100"
  },
  "committer": {
    "name": "James Zern",
    "email": "jzern@google.com",
    "time": "Fri Sep 22 19:53:37 2023 +0000"
  },
  "message": "Re-order av1_cospi_arr_q13_data for av1_fwd_txfm2d_neon.c\n\nThe txfm2d fdct and adst kernels only access particular parts of the\ncospi arrays depending on the subdivision they are working with: for\nexample the fdct8x4_neon kernel only accesses elements originally at\nindices 16 and 32 (storing cos(pi*16/64) and cos(pi*32/64)\nrespectively).\n\nSince the smaller kernels only ever use a small number of these\nconstants it is beneficial to store the constants formed from smaller\nsubdivisions of 64 closer together. This allows us to make use of wider\nvector load instructions: loading a pair of (64 bits each) 4-tuple\nconstants as a single 128-bit vector.\n\nWorking through increasing subdivisions of 64, we end up with the\nfollowing indices:\n\n    32,\n    16, 48,\n    8, 24, 40, 56,\n    4, 12, 20, 28, 36, 44, 52, 60,\n    ...\n\nRunning the txfm2d speed tests with Clang 16 and GCC 12, this change\nbrings a geomean ~1% reduction in the times reported, primarily weighted\ntowards the smaller problem sizes where we can effectively exploit this\nnew data layout.\n\nChange-Id: I919e4ddd123cf3ae5bfe5894c68c0f84db7a6293\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5facd336656cd6e45475db5aa9b78b67fcc49a7a",
      "old_mode": 33188,
      "old_path": "av1/common/av1_txfm.c",
      "new_id": "5add3ab9c227e4867545bab111c366e39b84f9b8",
      "new_mode": 33188,
      "new_path": "av1/common/av1_txfm.c"
    },
    {
      "type": "modify",
      "old_id": "5c02896764c7f1f8cb5e5801dc910beed8b25e6a",
      "old_mode": 33188,
      "old_path": "av1/common/av1_txfm.h",
      "new_id": "8b7e1740e2d84793e6797eb635a4997107c99329",
      "new_mode": 33188,
      "new_path": "av1/common/av1_txfm.h"
    },
    {
      "type": "modify",
      "old_id": "500d9578977d7820e255318072612458a245f396",
      "old_mode": 33188,
      "old_path": "av1/encoder/arm/neon/av1_fwd_txfm2d_neon.c",
      "new_id": "72f88c7a4401b541aca855cd2e254c5e1fe37442",
      "new_mode": 33188,
      "new_path": "av1/encoder/arm/neon/av1_fwd_txfm2d_neon.c"
    }
  ]
}
