)]}'
{
  "commit": "df3630c19476f379afcc103ff39258022bac1342",
  "tree": "8d744e8a2a0b88f3b16a51dcbdadb65214d29d55",
  "parents": [
    "f8672d8c359ff23b1c22000274e55a6d937c9dc1"
  ],
  "author": {
    "name": "Ben Clayton",
    "email": "bclayton@google.com",
    "time": "Wed Feb 23 14:32:14 2022 +0000"
  },
  "committer": {
    "name": "Tint LUCI CQ",
    "email": "tint-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Wed Feb 23 14:32:14 2022 +0000"
  },
  "message": "builtins: Add firstTrailingBit\n\nCurrently polyfilled for all backends.\nHLSL should be able to map this to \u0027firstbitlow\u0027, but there might need\nto be some special case handling for 0 (undocumented behavior). For now\njust polyfill.\n\nCTS tests: https://github.com/gpuweb/cts/pull/1003\n\nBug: tint:1367\nBug: tint:1449\nChange-Id: I8125b32687196678906e5a9d056b4f2efd885073\nReviewed-on: https://dawn-review.googlesource.com/c/tint/+/81502\nKokoro: Kokoro \u003cnoreply+kokoro@google.com\u003e\nReviewed-by: David Neto \u003cdneto@google.com\u003e\nCommit-Queue: Ben Clayton \u003cbclayton@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "dd7120d7931dbd5b19d54eac2df8cb3c46ed1f3e",
      "old_mode": 33188,
      "old_path": "src/tint/builtin_table.inl",
      "new_id": "595866c9abe274404977eb362af6fcb7d23bc426",
      "new_mode": 33188,
      "new_path": "src/tint/builtin_table.inl"
    },
    {
      "type": "modify",
      "old_id": "6ba6e6429314593b66f43c3ea008473f6690295d",
      "old_mode": 33188,
      "old_path": "src/tint/builtins.def",
      "new_id": "9b2dd712714f6d2a9ea7a57eabfa17f141ea3ef7",
      "new_mode": 33188,
      "new_path": "src/tint/builtins.def"
    },
    {
      "type": "modify",
      "old_id": "69c39aceb8349cd7552f55e5a93ee658dc80e761",
      "old_mode": 33188,
      "old_path": "src/tint/sem/builtin_type.cc",
      "new_id": "c19434d4b2f89ae1ce87ac32fa879845b2cdcdc5",
      "new_mode": 33188,
      "new_path": "src/tint/sem/builtin_type.cc"
    },
    {
      "type": "modify",
      "old_id": "22809bbc425ddffda36878d1796862af77b5d417",
      "old_mode": 33188,
      "old_path": "src/tint/sem/builtin_type.h",
      "new_id": "1a5d7e7d0aacbeb92a64024d866d7d6d05406383",
      "new_mode": 33188,
      "new_path": "src/tint/sem/builtin_type.h"
    },
    {
      "type": "modify",
      "old_id": "6a00e65c352fd6cd949091389e2d9307b9cff638",
      "old_mode": 33188,
      "old_path": "src/tint/transform/builtin_polyfill.cc",
      "new_id": "45e8995d84a4723ffd779ad85bb3437360b80be6",
      "new_mode": 33188,
      "new_path": "src/tint/transform/builtin_polyfill.cc"
    },
    {
      "type": "modify",
      "old_id": "9897a1d75df1f6864ed218a5cb9da2d45fa7fd5c",
      "old_mode": 33188,
      "old_path": "src/tint/transform/builtin_polyfill.h",
      "new_id": "b86e0e623eede3591a9baea41782a4aa774bfffb",
      "new_mode": 33188,
      "new_path": "src/tint/transform/builtin_polyfill.h"
    },
    {
      "type": "modify",
      "old_id": "ec66839e65af41bf627a0ebc770c187bc860abd4",
      "old_mode": 33188,
      "old_path": "src/tint/transform/builtin_polyfill_test.cc",
      "new_id": "155e6d693effd04470628766c8f73871e86dce98",
      "new_mode": 33188,
      "new_path": "src/tint/transform/builtin_polyfill_test.cc"
    },
    {
      "type": "modify",
      "old_id": "1970af20ca045eeb305a58396f8d3713e19a6c16",
      "old_mode": 33188,
      "old_path": "src/tint/transform/glsl.cc",
      "new_id": "fb4d230f9e3346c595b462c0b341c3b27f43853f",
      "new_mode": 33188,
      "new_path": "src/tint/transform/glsl.cc"
    },
    {
      "type": "modify",
      "old_id": "5e6de6af69748af447d6000ce08e0c59876e9877",
      "old_mode": 33188,
      "old_path": "src/tint/writer/hlsl/generator_impl.cc",
      "new_id": "d84082d6c43f86b10bcf796bc747c274a2252179",
      "new_mode": 33188,
      "new_path": "src/tint/writer/hlsl/generator_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "ffe00f5405c713f5cf96b83409c13ff2a927ed10",
      "old_mode": 33188,
      "old_path": "src/tint/writer/msl/generator_impl.cc",
      "new_id": "2f79eb5165ac42d69fb7b69393c1397ea83bfd3a",
      "new_mode": 33188,
      "new_path": "src/tint/writer/msl/generator_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "7c69b1c19cfef94dee0a19db735c4ce6cbea0eb7",
      "old_mode": 33188,
      "old_path": "src/tint/writer/spirv/builder.cc",
      "new_id": "e8dbe8ed761a68ef7c16fc23d597b9a8b26eb32c",
      "new_mode": 33188,
      "new_path": "src/tint/writer/spirv/builder.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5353983afe5e45eb73a61fbacc0e2f3394d000ff",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/110f2c.wgsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d4abd396c4ff247074d8ded63518689c5ed86ee8",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/110f2c.wgsl.expected.glsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "34c1b662d7cfe2c4e2bec18f153ab607921edb08",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/110f2c.wgsl.expected.hlsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "076113fd33185a8d6d8e505d12ceb563b75f4eff",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/110f2c.wgsl.expected.msl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7d9b5999930a607fd2c4555777e28c3bb7456204",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/110f2c.wgsl.expected.spvasm"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d1387793d66633ff8724bfe3f393ff22ff40c755",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/110f2c.wgsl.expected.wgsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "888fc91755ca778e10009cd16290b2a3a695b278",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/3a2acc.wgsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6b4eff0cdb3343daa5d94df8f166238a7b38db4c",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/3a2acc.wgsl.expected.glsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4301d3cb5e92da95f16bf2f5b5763409f92c6808",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/3a2acc.wgsl.expected.hlsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "99f5439cc440cb3c6cf139c2842562171a6a78f5",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/3a2acc.wgsl.expected.msl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "491f4a430d02532959f94efc8e8ad6a35818d870",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/3a2acc.wgsl.expected.spvasm"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7d59d682466e4e8d277df58e7b19117b2fdb5472",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/3a2acc.wgsl.expected.wgsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5e5cdb0d3b2bfffd9c1975f984f4f5e646094f0a",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/45eb10.wgsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f487e3f271bd5f6ea1be664740890089be41b440",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/45eb10.wgsl.expected.glsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3a4e74d7002203f22d7549c92b45f24eda03a5d2",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/45eb10.wgsl.expected.hlsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "309b5f713ef04121618ee265b6cc892d88657c04",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/45eb10.wgsl.expected.msl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ca8428cfc2a81dc80b002138eea9d09b54898fb1",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/45eb10.wgsl.expected.spvasm"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fc7dd14cfb2d4a523afe8943252c2a9a60c73031",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/45eb10.wgsl.expected.wgsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b74f882125a140a7ed08c7b927a2516eda63ec16",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/47d475.wgsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f3b2f3cbed4bc48a910d657b788eed1d5ae06abb",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/47d475.wgsl.expected.glsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "95376f63541cae7c4a6da09c8c5289ee0cf96212",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/47d475.wgsl.expected.hlsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9000618bd8c2bf98a668bdae892362f25f27fc68",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/47d475.wgsl.expected.msl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2c9f7a3b586a9a382521a8905a771f12409ad89f",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/47d475.wgsl.expected.spvasm"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8373e036fdba0d83223f0a429e37303cb4ccfcc2",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/47d475.wgsl.expected.wgsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c30a1b05fdd355862bf2a2fc493e97cb3a32a726",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/50c072.wgsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c87b482ecf4c7b18e468b44fe3387bbaf2af816a",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/50c072.wgsl.expected.glsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b0268d558b056e9c6e5fcee924039fd2aed8c902",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/50c072.wgsl.expected.hlsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f681cbf2f44d1324c84467323ad51b42dfd79c8e",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/50c072.wgsl.expected.msl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8b5d1d84e20b349c7551b7fd142b5d4e63a64292",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/50c072.wgsl.expected.spvasm"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "550bd94501d027d8d96cf740838c7a11a46c0be1",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/50c072.wgsl.expected.wgsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3986a0e975ff9a0337bf21e46d92450d43d27c60",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/7496d6.wgsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "aa818f6d60fb70b2a344c3b837d5ffd12d959751",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/7496d6.wgsl.expected.glsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "137b82a858c1c196f046a553dceca4f69321a09d",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/7496d6.wgsl.expected.hlsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "846a9e91a7ca63186a129d94e09ac027895f2ec1",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/7496d6.wgsl.expected.msl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "edbc24ca60ed5348cb4ff7fb1be48da8abbc1467",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/7496d6.wgsl.expected.spvasm"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "85120e38758ce236f0bac4d3fa534baedd2d41da",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/7496d6.wgsl.expected.wgsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "91233163a3a3a2297f1f456ab568accec323480b",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/86551b.wgsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8922522a8cffb6bfeeef01130f002cf019c62b28",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/86551b.wgsl.expected.glsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "16fc6166438562972f4178c6853af3a709fa8ddb",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/86551b.wgsl.expected.hlsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1f3c4e8fd49a4a81087df5d567ebfe8f39aa23ad",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/86551b.wgsl.expected.msl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7e4e8210582524a691c2a4f4c1db5978518bcfac",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/86551b.wgsl.expected.spvasm"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "efa728bc974917f1aa76f334efa662cf69c12b4e",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/86551b.wgsl.expected.wgsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "62ee22a845b5cf2f3153bef5da7a9b00c7efd7f3",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/cb51ce.wgsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1e5ddaeb53065157537005f571094d1e09c9cd6f",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/cb51ce.wgsl.expected.glsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a5ad7f53e633655e78dc87e043549cadd3e7bcbc",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/cb51ce.wgsl.expected.hlsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "43d50057d2b59ffe577b712a9d108b47ed704928",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/cb51ce.wgsl.expected.msl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4bcc0c73bcb64d56e7b20fe27a69e3c23b9fb880",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/cb51ce.wgsl.expected.spvasm"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cee5c391b7be4b7a41d2b0729a96446f1d242d76",
      "new_mode": 33188,
      "new_path": "test/tint/builtins/gen/firstTrailingBit/cb51ce.wgsl.expected.wgsl"
    }
  ]
}
