)]}'
{
  "commit": "f49cb8938ef3ab032fe01c6a39b4baf8e4e8fa49",
  "tree": "b26bde81dd4f7ffc35358376d6e2681a1f452393",
  "parents": [
    "75f572322c011229794476502f52a9ae530107f8"
  ],
  "author": {
    "name": "Abhishek Kaushik",
    "email": "abhishek.kaushik@arm.com",
    "time": "Mon Aug 10 12:29:45 2026 +0000"
  },
  "committer": {
    "name": "Abhishek Kaushik",
    "email": "abhishek.kaushik@arm.com",
    "time": "Wed Aug 12 11:46:52 2026 +0000"
  },
  "message": "aarch64: Add SME2p3/SVE2p3 x2 narrowing right shift intrinsics\n\nThis patch adds support for the following SME2p3/SVE2p3 x2 narrowing\nright shift intrinsics:\n\n  - svqrshrn_s8_s16\n  - svqrshrn_u8_u16\n  - svqrshrun_u8_s16\n  - svqshrn_s8_s16\n  - svqshrn_s16_s32\n  - svqshrn_u8_u16\n  - svqshrn_u16_u32\n  - svqshrun_u8_s16\n  - svqshrun_u16_s32\n\nBootstrapped and regression tested on aarch64-linux-gnu.\n\ngcc/ChangeLog:\n\n\t* config/aarch64/aarch64-acle-builtins.h\n\t(TYPES_qshr_x2): New macro.\n\t(TYPES_qrshr_x2_8): Likewise.\n\t(TYPES_qshru_x2): Likewise.\n\t(TYPES_qrshrun_x2): Likewise.\n\t(DEF_SVE_TYPES_ARRAY): Add qshr_x2, qrshr_x2_8,\tqrshrun_x2\n\tand qshru_x2.\n\t* config/aarch64/aarch64-sve-builtins-sve2.cc (svqshrn): New\n\tfunction.\n\t(svqshrun): Likewise.\n\t* config/aarch64/aarch64-sve-builtins-sve2.def (svqrshrn): Add\n\tSVE2p3/SME2p3 x2 form.\n\t(svqrshrun): Likewise.\n\t(svqshrn): Add SVE2p3/SME2p3 x2 form.\n\t(svqshrun): Likewise.\n\t* config/aarch64/aarch64-sve-builtins-sve2.h (svqshrn): Declare.\n\t(svqshrun): Likewise.\n\t* config/aarch64/aarch64-sve2.md\n\t(@aarch64_sve_\u003csve_int_op\u003e\u003cmode\u003e): New define_insn.\n\t* config/aarch64/iterators.md (SVE_FULL_HIx2): New mode iterator.\n\t(UNSPEC_SQSHRN, UNSPEC_SQSHRUN, UNSPEC_UQSHRN): New unspecs.\n\t(VNARROW): Add VNx16HI mapping.\n\t(Ventype): Likewise.\n\t(SVE2_INT_SHIFT_IMM_NARROWxN): Add UNSPEC_SQSHRN,\n\tUNSPEC_SQSHRUN and UNSPEC_UQSHRN.\n\t(sve_int_op): Add sqshrn, sqshrun and uqshrn.\n\ngcc/testsuite/ChangeLog:\n\n\t* gcc.target/aarch64/sme2/acle-asm/qrshrn_s8_x2.c: New test.\n\t* gcc.target/aarch64/sme2/acle-asm/qrshrn_u8_x2.c: New test.\n\t* gcc.target/aarch64/sme2/acle-asm/qrshrun_u8_x2.c: New test.\n\t* gcc.target/aarch64/sme2/acle-asm/qshrn_s16_x2.c: New test.\n\t* gcc.target/aarch64/sme2/acle-asm/qshrn_s8_x2.c: New test.\n\t* gcc.target/aarch64/sme2/acle-asm/qshrn_u16_x2.c: New test.\n\t* gcc.target/aarch64/sme2/acle-asm/qshrn_u8_x2.c: New test.\n\t* gcc.target/aarch64/sme2/acle-asm/qshrun_u16_x2.c: New test.\n\t* gcc.target/aarch64/sme2/acle-asm/qshrun_u8_x2.c: New test.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "42150a2632bb82381e6baf80373c98a1a2ac5d08",
      "old_mode": 33188,
      "old_path": "gcc/config/aarch64/aarch64-acle-builtins.h",
      "new_id": "8dd5e1387195f4cea83d311e05187c838c9f9be1",
      "new_mode": 33188,
      "new_path": "gcc/config/aarch64/aarch64-acle-builtins.h"
    },
    {
      "type": "modify",
      "old_id": "c22b5b176be27170081baa5646b6bb115f7b8a04",
      "old_mode": 33188,
      "old_path": "gcc/config/aarch64/aarch64-sve-builtins-sve2.cc",
      "new_id": "520a96cecd0589b547ec8fb118a1c10d67d2541d",
      "new_mode": 33188,
      "new_path": "gcc/config/aarch64/aarch64-sve-builtins-sve2.cc"
    },
    {
      "type": "modify",
      "old_id": "87f7b472dd9994ac1dd0dd8c76d9e76c8a60d8a6",
      "old_mode": 33188,
      "old_path": "gcc/config/aarch64/aarch64-sve-builtins-sve2.def",
      "new_id": "7cd6d2d48ea60fe570afc4c69c7cb76705ba35e4",
      "new_mode": 33188,
      "new_path": "gcc/config/aarch64/aarch64-sve-builtins-sve2.def"
    },
    {
      "type": "modify",
      "old_id": "0cde240403cb94d826c5cac74fc741a9ab349c70",
      "old_mode": 33188,
      "old_path": "gcc/config/aarch64/aarch64-sve-builtins-sve2.h",
      "new_id": "2b363b4f4d53d3e34e4b047487d7452ea61848a1",
      "new_mode": 33188,
      "new_path": "gcc/config/aarch64/aarch64-sve-builtins-sve2.h"
    },
    {
      "type": "modify",
      "old_id": "4eeb96edcd5e317f105055c73c5eb34894969768",
      "old_mode": 33188,
      "old_path": "gcc/config/aarch64/aarch64-sve2.md",
      "new_id": "3a1285a6a008d934a79eb91ac31c5598e4604898",
      "new_mode": 33188,
      "new_path": "gcc/config/aarch64/aarch64-sve2.md"
    },
    {
      "type": "modify",
      "old_id": "e7ae93d18963fbbfcf9c182e568bc9cd6569b423",
      "old_mode": 33188,
      "old_path": "gcc/config/aarch64/iterators.md",
      "new_id": "dc7bb22b89b4c5701b5943527d48af7732c6e391",
      "new_mode": 33188,
      "new_path": "gcc/config/aarch64/iterators.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "049db7d8690c2ec7a37c504259fdbdd7e6169d08",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qrshrn_s8_x2.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "974deec9fe399dbeb43fd252b33e2b74de60b7a3",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qrshrn_u8_x2.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8834c38a160d88bd89a86b8c424213133957a1b7",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qrshrun_u8_x2.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fcfc7d3c55c5b71cd98dc53a41e0773c3b3390e8",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qshrn_s16_x2.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c006bbcff56e5b1517aa9e7139bcaace261fdf67",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qshrn_s8_x2.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a0e6df45ca67ca78aacecd205fd9ab1d08cea4ae",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qshrn_u16_x2.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f74e76c9f9d89fecb9a7c821318c926023a5f691",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qshrn_u8_x2.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "72e0ff3419c3a65f28fa167543f81869d9e8374a",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qshrun_u16_x2.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "74255dcb13716a7e049f4638b14686f6ebe91629",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/qshrun_u8_x2.c"
    }
  ]
}
