)]}'
{
  "commit": "cb8163144c5da38a6212745946ac4db0b7ea7fbb",
  "tree": "cc8d268121d614b5e3068daaa252e2c79466c7a4",
  "parents": [
    "837bb552736f1ff365b77517974e17a5bdab5124"
  ],
  "author": {
    "name": "Jonathan Wright",
    "email": "jonathan.wright@arm.com",
    "time": "Mon Sep 26 10:37:35 2022 +0100"
  },
  "committer": {
    "name": "James Zern",
    "email": "jzern@google.com",
    "time": "Tue Sep 27 02:25:03 2022 +0000"
  },
  "message": "Add mixed-sign dot-product 8-tap convolution optimizations\n\nAdd additional Neon paths for the following convolution functions:\n * av1_convolve_2d_sr_horiz_neon\n * dist_wtd_convolve_2d_horiz_neon\n * av1_convolve_x_sr_neon\n * av1_dist_wtd_convolve_x_neon\n\nThe new paths make use of the Armv8.6-A USDOT instruction which can\ntake an 8-bit unsigned operand vector and a signed 8-bit operand\nvector to produce a signed 32-bit result. This is helpful because\nconvolution filters often have both positive and negative values,\nwhile the 8-bit pixel channel data being filtered is all unsigned. As\na result, the USDOT convolution paths added here do not have to do\nthe \"transform the pixel channel data to [-128, 128) and correct for\nit later\" dance that we have to do with the SDOT paths.\n\nThe USDOT instruction is optional from Armv8.2 to Armv8.5 but\nmandatory from Armv8.6 onwards. The availability of the USDOT\ninstruction is indicated by the feature macro\n__ARM_FEATURE_MATMUL_INT8. The SDOT paths are retained for use on\ntarget CPUs that do not implement the USDOT instructions.\n\nChange-Id: I66a2dda6026ccd7efdcd323e739fe9751eb9973d\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e5287ab984a1bf02e1ceca888ab35e026dddafb3",
      "old_mode": 33188,
      "old_path": "av1/common/arm/convolve_neon.c",
      "new_id": "ab4bd311ec56094bf2255d117bf2c57f77a29870",
      "new_mode": 33188,
      "new_path": "av1/common/arm/convolve_neon.c"
    },
    {
      "type": "modify",
      "old_id": "e6b2c89d9d14685ccb5336e7c5bcbc2b7b5deee1",
      "old_mode": 33188,
      "old_path": "av1/common/arm/convolve_neon.h",
      "new_id": "bedfa89c31d4ae6ba5dc7cabdcd06805e996f828",
      "new_mode": 33188,
      "new_path": "av1/common/arm/convolve_neon.h"
    },
    {
      "type": "modify",
      "old_id": "a79e6627134f8e7a86a3a2a07fba6bb7e81e9620",
      "old_mode": 33188,
      "old_path": "av1/common/arm/jnt_convolve_neon.c",
      "new_id": "26f1a31397f6aa5cdcfb28dd01f4ddd90c7ee2c1",
      "new_mode": 33188,
      "new_path": "av1/common/arm/jnt_convolve_neon.c"
    }
  ]
}
