)]}'
{
  "commit": "6641de405995e65a5e2c21ca8d3d7ef5c2fdde17",
  "tree": "654ec633d662cc43f09724145d718e2917d4a62d",
  "parents": [
    "28f2250ad1d37f49edb0efd1d88e3877257ab4a1"
  ],
  "author": {
    "name": "Sivan Shani",
    "email": "sivan.shani@arm.com",
    "time": "Wed Aug 05 10:35:35 2026 +0000"
  },
  "committer": {
    "name": "Artemiy Volkov",
    "email": "artemiy.volkov@arm.com",
    "time": "Wed Aug 05 14:11:02 2026 +0000"
  },
  "message": "aarch64: Add SVE AES2 ACLE builtins\n\nAdd ACLE support for the SVE AES2 multi-vector AES indexed\ninstructions and the 128-bit PMULL/PMLAL pair forms.\n\nThis adds builtin shapes and expanders for svaese_lane, svaesd_lane,\nsvaesemc_lane, svaesdimc_lane, svpmull_pair and svpmlal_pair, together\nwith the corresponding RTL patterns and tests.  Also add preprocessor\nfeature macros for SVE AES2 and SSVE AES.\n\ngcc/\n\t* config/aarch64/aarch64.h (TARGET_SVE_AES2): Define.\n\t* config/aarch64/aarch64.md (UNSPEC_SSVE_LANE_SELECT): New unspec.\n\t* config/aarch64/aarch64-acle-builtins.cc\n\t(function_resolver::finish_opt_n_resolution): Add overload taking an\n\tsve_type argument.  Make the existing overload delegate to it.\n\t* config/aarch64/aarch64-acle-builtins.h\n\t(function_resolver::finish_opt_n_resolution): Declare the new overload.\n\t* config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Define\n\t__ARM_FEATURE_SVE_AES2 and __ARM_FEATURE_SSVE_AES.\n\t* config/aarch64/aarch64-sve-builtins-functions.h\n\t(unspec_based_aes_lane_function): New typedef.\n\t(unspec_based_aes_lane_mc_function): Likewise.\n\t* config/aarch64/aarch64-sve-builtins-shapes.cc\n\t(binary_to_pair_opt_n_def): New shape.\n\t(ternary_to_pair_opt_n_def): Likewise.\n\t(binary_aes_lane_def): Likewise.\n\t* config/aarch64/aarch64-sve-builtins-shapes.h: Declare new shapes.\n\t* config/aarch64/aarch64-sve-builtins-sve2.cc: Add new function\n\tentries.\n\t* config/aarch64/aarch64-sve-builtins-sve2.def: Add new ACLE\n\tbuiltin definitions.\n\t* config/aarch64/aarch64-sve-builtins-sve2.h: Declare new functions.\n\t* config/aarch64/aarch64-sve2.md: Add PMULL/PMLAL pair and AES\n\tindexed multi-vector patterns.\n\t* config/aarch64/iterators.md: Add iterators and attrs for new\n\tpatterns.\n\t* config/aarch64/predicates.md (const_0_to_3_operand): New predicate.\n\ngcc/testsuite/\n\t* gcc.target/aarch64/pragma_cpp_predefs_5.c: Test new feature macros.\n\t* gcc.target/aarch64/sve/acle/asm/test_sve_acle.h\n\t(TEST_XN_INDEXED): New macro.\n\t* gcc.target/aarch64/sve2/acle/asm/aesd_lane_u8.c: New test.\n\t* gcc.target/aarch64/sve2/acle/asm/aesdimc_lane_u8.c: New test.\n\t* gcc.target/aarch64/sve2/acle/asm/aese_lane_u8.c: New test.\n\t* gcc.target/aarch64/sve2/acle/asm/aesemc_lane_u8.c: New test.\n\t* gcc.target/aarch64/sve2/acle/asm/pmlal_pair_u64.c: New test.\n\t* gcc.target/aarch64/sve2/acle/asm/pmull_pair_u64.c: New test.\n\t* lib/target-supports.exp: Add sve-aes2 assembler probe.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e1187859ec5378f90d092aba11c4fa7bbe5dfe1f",
      "old_mode": 33188,
      "old_path": "gcc/config/aarch64/aarch64-acle-builtins.cc",
      "new_id": "98ba6c8d34722becb2d56b9dbec4df42b8862e0e",
      "new_mode": 33188,
      "new_path": "gcc/config/aarch64/aarch64-acle-builtins.cc"
    },
    {
      "type": "modify",
      "old_id": "6314ec5d312a2c1e1ab03ceabf079917306ded46",
      "old_mode": 33188,
      "old_path": "gcc/config/aarch64/aarch64-acle-builtins.h",
      "new_id": "42150a2632bb82381e6baf80373c98a1a2ac5d08",
      "new_mode": 33188,
      "new_path": "gcc/config/aarch64/aarch64-acle-builtins.h"
    },
    {
      "type": "modify",
      "old_id": "eb47a57ede44ffd2d7754df5bf905a1d438f378a",
      "old_mode": 33188,
      "old_path": "gcc/config/aarch64/aarch64-c.cc",
      "new_id": "454c318d0d826d03ad7fb9093d99af483ba8c6b0",
      "new_mode": 33188,
      "new_path": "gcc/config/aarch64/aarch64-c.cc"
    },
    {
      "type": "modify",
      "old_id": "072c0bf2c89d1b468f2cc598917352fd97bd5457",
      "old_mode": 33188,
      "old_path": "gcc/config/aarch64/aarch64-sve-builtins-functions.h",
      "new_id": "ebbefaf739e5ecba191ede6acb0ed5f0fbdd34ea",
      "new_mode": 33188,
      "new_path": "gcc/config/aarch64/aarch64-sve-builtins-functions.h"
    },
    {
      "type": "modify",
      "old_id": "90bc80d819527de21b922c207a56a5a27de2d6a6",
      "old_mode": 33188,
      "old_path": "gcc/config/aarch64/aarch64-sve-builtins-shapes.cc",
      "new_id": "cf128bc94646891fde539526e36be56eb159c849",
      "new_mode": 33188,
      "new_path": "gcc/config/aarch64/aarch64-sve-builtins-shapes.cc"
    },
    {
      "type": "modify",
      "old_id": "ce02b5a45ecced140abb1acab426264503301474",
      "old_mode": 33188,
      "old_path": "gcc/config/aarch64/aarch64-sve-builtins-shapes.h",
      "new_id": "0fca00b36d1da6aba2c788e35a5fc7a1eeba9f11",
      "new_mode": 33188,
      "new_path": "gcc/config/aarch64/aarch64-sve-builtins-shapes.h"
    },
    {
      "type": "modify",
      "old_id": "738ef201324f5133bbbc73b996e3c491457397f1",
      "old_mode": 33188,
      "old_path": "gcc/config/aarch64/aarch64-sve-builtins-sve2.cc",
      "new_id": "c22b5b176be27170081baa5646b6bb115f7b8a04",
      "new_mode": 33188,
      "new_path": "gcc/config/aarch64/aarch64-sve-builtins-sve2.cc"
    },
    {
      "type": "modify",
      "old_id": "a977b2c1c1a5fd2c08e1210100c7b2f15bb46b23",
      "old_mode": 33188,
      "old_path": "gcc/config/aarch64/aarch64-sve-builtins-sve2.def",
      "new_id": "87f7b472dd9994ac1dd0dd8c76d9e76c8a60d8a6",
      "new_mode": 33188,
      "new_path": "gcc/config/aarch64/aarch64-sve-builtins-sve2.def"
    },
    {
      "type": "modify",
      "old_id": "4bf8f21776a0652ee5eb32ac91348bfe0fbeb44a",
      "old_mode": 33188,
      "old_path": "gcc/config/aarch64/aarch64-sve-builtins-sve2.h",
      "new_id": "0cde240403cb94d826c5cac74fc741a9ab349c70",
      "new_mode": 33188,
      "new_path": "gcc/config/aarch64/aarch64-sve-builtins-sve2.h"
    },
    {
      "type": "modify",
      "old_id": "a8bee6b6dc7c1a43afbec7790c7c3f686c90fd75",
      "old_mode": 33188,
      "old_path": "gcc/config/aarch64/aarch64-sve2.md",
      "new_id": "33b39412e366fe4f525be2942821e7d3a42970d0",
      "new_mode": 33188,
      "new_path": "gcc/config/aarch64/aarch64-sve2.md"
    },
    {
      "type": "modify",
      "old_id": "50577b136aca04356ec33c3d4b9af61275585d93",
      "old_mode": 33188,
      "old_path": "gcc/config/aarch64/aarch64.h",
      "new_id": "11fb7a9481ea058a9035e4e149e0782495251d02",
      "new_mode": 33188,
      "new_path": "gcc/config/aarch64/aarch64.h"
    },
    {
      "type": "modify",
      "old_id": "168a8a471fedc2c13eb4e60b4ccbf3aad86f5be6",
      "old_mode": 33188,
      "old_path": "gcc/config/aarch64/aarch64.md",
      "new_id": "9cb55602c3656bfab59d7c5a1d49af8e9681a873",
      "new_mode": 33188,
      "new_path": "gcc/config/aarch64/aarch64.md"
    },
    {
      "type": "modify",
      "old_id": "0d319751430d51a77ad383adfd979177fe7fb695",
      "old_mode": 33188,
      "old_path": "gcc/config/aarch64/iterators.md",
      "new_id": "e7ae93d18963fbbfcf9c182e568bc9cd6569b423",
      "new_mode": 33188,
      "new_path": "gcc/config/aarch64/iterators.md"
    },
    {
      "type": "modify",
      "old_id": "f02486c2d9a3f4a99f5df65574228f35fcea5d56",
      "old_mode": 33188,
      "old_path": "gcc/config/aarch64/predicates.md",
      "new_id": "e2911a0bccdb8b526c02f0461bcf57d9fa8e3594",
      "new_mode": 33188,
      "new_path": "gcc/config/aarch64/predicates.md"
    },
    {
      "type": "modify",
      "old_id": "bb83ab434b5b923d23434bd54715355e281cb179",
      "old_mode": 33188,
      "old_path": "gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_5.c",
      "new_id": "0bec72d70a271b6ed3edcf67f01adac8a02899ff",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_5.c"
    },
    {
      "type": "modify",
      "old_id": "aeb58ead0dd040217e682ffaf9ed973ae1ca4996",
      "old_mode": 33188,
      "old_path": "gcc/testsuite/gcc.target/aarch64/sve/acle/asm/test_sve_acle.h",
      "new_id": "7932a554d1e4f6611f111f43ca54b8bfe7d47d07",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/gcc.target/aarch64/sve/acle/asm/test_sve_acle.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9d3591a5f3964bf10374b4f22e0d1a280bd13698",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/aesd_lane_u8.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "582cb3f742dfccbeafd7fdd350c91e049cfcae1e",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/aesdimc_lane_u8.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a494e072cdb3b8e5d1a1e5a638bc3741ecedcc78",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/aese_lane_u8.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e3cb5c29755d08cc82b04710344d4df6017e3230",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/aesemc_lane_u8.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "222832adff3374e2634fcaf80d37221839d15be4",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pmlal_pair_u64.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "93420ac16c1d5d988431bea0ef58323948d5b8e7",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/pmull_pair_u64.c"
    },
    {
      "type": "modify",
      "old_id": "dafbebe84ca7b941c9b23ff2ca2610ad9f727e22",
      "old_mode": 33188,
      "old_path": "gcc/testsuite/lib/target-supports.exp",
      "new_id": "e57e98b76e8991822ba329330a4d86d452dd9b76",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/lib/target-supports.exp"
    }
  ]
}
