[clang] f7068c8 - [Sema][SVE2] Move/simplify Sema testing for SVE2 ACLE builtins
Rosie Sumpter via cfe-commits
cfe-commits at lists.llvm.org
Thu Apr 28 05:46:02 PDT 2022
Author: Rosie Sumpter
Date: 2022-04-28T13:41:09+01:00
New Revision: f7068c82a2560d97bf9826db1e917f931e887017
URL: https://github.com/llvm/llvm-project/commit/f7068c82a2560d97bf9826db1e917f931e887017
DIFF: https://github.com/llvm/llvm-project/commit/f7068c82a2560d97bf9826db1e917f931e887017.diff
LOG: [Sema][SVE2] Move/simplify Sema testing for SVE2 ACLE builtins
Currently for SVE2 ACLE builtins, single tests are used to verify both
clang code generation (when the feature is available) and semantic
error/warning messages (when the feature is unavailable). This WIP
patch moves the semantic testing for the values of immediate arguments
into dedicated Sema tests.
Added:
clang/test/Sema/aarch64-sve2-intrinsics/acle_sve2_imm_lane.cpp
clang/test/Sema/aarch64-sve2-intrinsics/acle_sve2_imm_n.cpp
clang/test/Sema/aarch64-sve2-intrinsics/acle_sve2_imm_rotation.cpp
Modified:
Removed:
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_cadd.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_cdot.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_cmla.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_mla.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_mlalb.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_mlalt.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_mls.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_mlslb.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_mlslt.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_mul.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_mullb.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_mullt.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qcadd.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qdmlalb.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qdmlalt.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qdmlslb.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qdmlslt.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qdmulh.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qdmullb.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qdmullt.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qrdcmlah.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qrdmlah.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qrdmlsh.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qrdmulh.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qrshrnb.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qrshrnt.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qrshrunb.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qrshrunt.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qshlu.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qshrnb.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qshrnt.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qshrunb.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qshrunt.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_rshr.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_rshrnb.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_rshrnt.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_rsra.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_shllb.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_shllt.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_shrnb.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_shrnt.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_sli.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_sra.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_sri.c
clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_xar.c
################################################################################
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_cadd.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_cadd.c
deleted file mode 100644
index dad4c7053aec6..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_cadd.c
+++ /dev/null
@@ -1,85 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint8_t test_svcadd_s8(svint8_t op1, svint8_t op2)
-{
- // expected-error at +1 {{argument should be the value 90 or 270}}
- return SVE_ACLE_FUNC(svcadd,_s8,,)(op1, op2, 0);
-}
-
-svint8_t test_svcadd_s8_1(svint8_t op1, svint8_t op2)
-{
- // expected-error at +1 {{argument should be the value 90 or 270}}
- return SVE_ACLE_FUNC(svcadd,_s8,,)(op1, op2, 272);
-}
-
-svint8_t test_svcadd_s8_2(svint8_t op1, svint8_t op2)
-{
- // expected-error at +1 {{argument should be the value 90 or 270}}
- return SVE_ACLE_FUNC(svcadd,_s8,,)(op1, op2, 91);
-}
-
-svint8_t test_svcadd_s8_3(svint8_t op1, svint8_t op2)
-{
- // expected-error at +1 {{argument should be the value 90 or 270}}
- return SVE_ACLE_FUNC(svcadd,_s8,,)(op1, op2, 180);
-}
-
-svint8_t test_svcadd_s8_4(svint8_t op1, svint8_t op2)
-{
- // expected-error at +1 {{argument should be the value 90 or 270}}
- return SVE_ACLE_FUNC(svcadd,_s8,,)(op1, op2, 271);
-}
-
-svint16_t test_svcadd_s16(svint16_t op1, svint16_t op2)
-{
- // expected-error at +1 {{argument should be the value 90 or 270}}
- return SVE_ACLE_FUNC(svcadd,_s16,,)(op1, op2, 0);
-}
-
-svint32_t test_svcadd_s32(svint32_t op1, svint32_t op2)
-{
- // expected-error at +1 {{argument should be the value 90 or 270}}
- return SVE_ACLE_FUNC(svcadd,_s32,,)(op1, op2, 0);
-}
-
-svint64_t test_svcadd_s64(svint64_t op1, svint64_t op2)
-{
- // expected-error at +1 {{argument should be the value 90 or 270}}
- return SVE_ACLE_FUNC(svcadd,_s64,,)(op1, op2, 0);
-}
-
-svuint8_t test_svcadd_u8(svuint8_t op1, svuint8_t op2)
-{
- // expected-error at +1 {{argument should be the value 90 or 270}}
- return SVE_ACLE_FUNC(svcadd,_u8,,)(op1, op2, 0);
-}
-
-svuint16_t test_svcadd_u16(svuint16_t op1, svuint16_t op2)
-{
- // expected-error at +1 {{argument should be the value 90 or 270}}
- return SVE_ACLE_FUNC(svcadd,_u16,,)(op1, op2, 0);
-}
-
-svuint32_t test_svcadd_u32(svuint32_t op1, svuint32_t op2)
-{
- // expected-error at +1 {{argument should be the value 90 or 270}}
- return SVE_ACLE_FUNC(svcadd,_u32,,)(op1, op2, 0);
-}
-
-svuint64_t test_svcadd_u64(svuint64_t op1, svuint64_t op2)
-{
- // expected-error at +1 {{argument should be the value 90 or 270}}
- return SVE_ACLE_FUNC(svcadd,_u64,,)(op1, op2, 0);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_cdot.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_cdot.c
deleted file mode 100644
index fb18abe301b95..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_cdot.c
+++ /dev/null
@@ -1,49 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify -verify-ignore-unexpected=warning %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify -verify-ignore-unexpected=warning %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint32_t test_svcdot_s32(svint32_t op1, svint8_t op2, svint8_t op3)
-{
- // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
- return SVE_ACLE_FUNC(svcdot,_s32,,)(op1, op2, op3, 19);
-}
-
-svint64_t test_svcdot_s64(svint64_t op1, svint16_t op2, svint16_t op3)
-{
- // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
- return SVE_ACLE_FUNC(svcdot,_s64,,)(op1, op2, op3, 19);
-}
-
-svint32_t test_svcdot_lane_s32(svint32_t op1, svint8_t op2, svint8_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svcdot_lane,_s32,,)(op1, op2, op3, -1, 0);
-}
-
-svint32_t test_svcdot_lane_s32_1(svint32_t op1, svint8_t op2, svint8_t op3)
-{
- // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
- return SVE_ACLE_FUNC(svcdot_lane,_s32,,)(op1, op2, op3, 0, 19);
-}
-
-svint64_t test_svcdot_lane_s64(svint64_t op1, svint16_t op2, svint16_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
- return SVE_ACLE_FUNC(svcdot_lane,_s64,,)(op1, op2, op3, -1, 0);
-}
-
-svint64_t test_svcdot_lane_s64_1(svint64_t op1, svint16_t op2, svint16_t op3)
-{
- // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
- return SVE_ACLE_FUNC(svcdot_lane,_s64,,)(op1, op2, op3, 0, 19);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_cmla.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_cmla.c
deleted file mode 100644
index 8b2bdb67f560b..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_cmla.c
+++ /dev/null
@@ -1,188 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint8_t test_svcmla_s8(svint8_t op1, svint8_t op2, svint8_t op3)
-{
- // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
- return SVE_ACLE_FUNC(svcmla,_s8,,)(op1, op2, op3, 19);
-}
-
-svint8_t test_svcmla_s8_1(svint8_t op1, svint8_t op2, svint8_t op3)
-{
- // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
- return SVE_ACLE_FUNC(svcmla,_s8,,)(op1, op2, op3, 1);
-}
-
-svint8_t test_svcmla_s8_2(svint8_t op1, svint8_t op2, svint8_t op3)
-{
- // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
- return SVE_ACLE_FUNC(svcmla,_s8,,)(op1, op2, op3, 18);
-}
-
-svint8_t test_svcmla_s8_3(svint8_t op1, svint8_t op2, svint8_t op3)
-{
- // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
- return SVE_ACLE_FUNC(svcmla,_s8,,)(op1, op2, op3, 91);
-}
-
-svint8_t test_svcmla_s8_4(svint8_t op1, svint8_t op2, svint8_t op3)
-{
- // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
- return SVE_ACLE_FUNC(svcmla,_s8,,)(op1, op2, op3, 181);
-}
-
-svint16_t test_svcmla_s16(svint16_t op1, svint16_t op2, svint16_t op3)
-{
- // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
- return SVE_ACLE_FUNC(svcmla,_s16,,)(op1, op2, op3, 19);
-}
-
-svint32_t test_svcmla_s32(svint32_t op1, svint32_t op2, svint32_t op3)
-{
- // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
- return SVE_ACLE_FUNC(svcmla,_s32,,)(op1, op2, op3, 19);
-}
-
-svint64_t test_svcmla_s64(svint64_t op1, svint64_t op2, svint64_t op3)
-{
- // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
- return SVE_ACLE_FUNC(svcmla,_s64,,)(op1, op2, op3, 19);
-}
-
-svuint8_t test_svcmla_u8(svuint8_t op1, svuint8_t op2, svuint8_t op3)
-{
- // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
- return SVE_ACLE_FUNC(svcmla,_u8,,)(op1, op2, op3, 19);
-}
-
-svuint16_t test_svcmla_u16(svuint16_t op1, svuint16_t op2, svuint16_t op3)
-{
- // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
- return SVE_ACLE_FUNC(svcmla,_u16,,)(op1, op2, op3, 19);
-}
-
-svuint32_t test_svcmla_u32(svuint32_t op1, svuint32_t op2, svuint32_t op3)
-{
- // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
- return SVE_ACLE_FUNC(svcmla,_u32,,)(op1, op2, op3, 19);
-}
-
-svuint64_t test_svcmla_u64(svuint64_t op1, svuint64_t op2, svuint64_t op3)
-{
- // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
- return SVE_ACLE_FUNC(svcmla,_u64,,)(op1, op2, op3, 19);
-}
-
-svint16_t test_svcmla_lane_s16(svint16_t op1, svint16_t op2, svint16_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svcmla_lane,_s16,,)(op1, op2, op3, -1, 0);
-}
-
-svint16_t test_svcmla_lane_s16_1(svint16_t op1, svint16_t op2, svint16_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svcmla_lane,_s16,,)(op1, op2, op3, 4, 0);
-}
-
-svint16_t test_svcmla_lane_s16_2(svint16_t op1, svint16_t op2, svint16_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svcmla_lane,_s16,,)(op1, op2, op3, -1, 90);
-}
-
-svint16_t test_svcmla_lane_s16_3(svint16_t op1, svint16_t op2, svint16_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svcmla_lane,_s16,,)(op1, op2, op3, -1, 180);
-}
-
-svint16_t test_svcmla_lane_s16_4(svint16_t op1, svint16_t op2, svint16_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svcmla_lane,_s16,,)(op1, op2, op3, -1, 270);
-}
-
-svint16_t test_svcmla_lane_s16_5(svint16_t op1, svint16_t op2, svint16_t op3)
-{
- // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
- return SVE_ACLE_FUNC(svcmla_lane,_s16,,)(op1, op2, op3, 0, 19);
-}
-
-svint16_t test_svcmla_lane_s16_6(svint16_t op1, svint16_t op2, svint16_t op3)
-{
- // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
- return SVE_ACLE_FUNC(svcmla_lane,_s16,,)(op1, op2, op3, 1, 19);
-}
-
-svint16_t test_svcmla_lane_s16_7(svint16_t op1, svint16_t op2, svint16_t op3)
-{
- // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
- return SVE_ACLE_FUNC(svcmla_lane,_s16,,)(op1, op2, op3, 2, 19);
-}
-
-svint16_t test_svcmla_lane_s16_8(svint16_t op1, svint16_t op2, svint16_t op3)
-{
- // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
- return SVE_ACLE_FUNC(svcmla_lane,_s16,,)(op1, op2, op3, 3, 19);
-}
-
-svint16_t test_svcmla_lane_s16_9(svint16_t op1, svint16_t op2, svint16_t op3)
-{
- // expected-error-re at +2 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
- return SVE_ACLE_FUNC(svcmla_lane,_s16,,)(op1, op2, op3, 4, 19);
-}
-
-svint32_t test_svcmla_lane_s32(svint32_t op1, svint32_t op2, svint32_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
- return SVE_ACLE_FUNC(svcmla_lane,_s32,,)(op1, op2, op3, -1, 0);
-}
-
-svint32_t test_svcmla_lane_s32_1(svint32_t op1, svint32_t op2, svint32_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
- return SVE_ACLE_FUNC(svcmla_lane,_s32,,)(op1, op2, op3, 2, 0);
-}
-
-svint32_t test_svcmla_lane_s32_2(svint32_t op1, svint32_t op2, svint32_t op3)
-{
- // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
- return SVE_ACLE_FUNC(svcmla_lane,_s32,,)(op1, op2, op3, 1, 19);
-}
-
-svuint16_t test_svcmla_lane_u16(svuint16_t op1, svuint16_t op2, svuint16_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svcmla_lane,_u16,,)(op1, op2, op3, -1, 0);
-}
-
-svuint16_t test_svcmla_lane_u16_1(svuint16_t op1, svuint16_t op2, svuint16_t op3)
-{
- // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
- return SVE_ACLE_FUNC(svcmla_lane,_u16,,)(op1, op2, op3, 0, 19);
-}
-
-svuint32_t test_svcmla_lane_u32(svuint32_t op1, svuint32_t op2, svuint32_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
- return SVE_ACLE_FUNC(svcmla_lane,_u32,,)(op1, op2, op3, -1, 0);
-}
-
-svuint32_t test_svcmla_lane_u32_1(svuint32_t op1, svuint32_t op2, svuint32_t op3)
-{
- // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
- return SVE_ACLE_FUNC(svcmla_lane,_u32,,)(op1, op2, op3, 0, 19);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_mla.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_mla.c
deleted file mode 100644
index 7eab67062bec2..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_mla.c
+++ /dev/null
@@ -1,49 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint16_t test_svmla_lane_s16(svint16_t op1, svint16_t op2, svint16_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svmla_lane,_s16,,)(op1, op2, op3, 8);
-}
-
-svint32_t test_svmla_lane_s32(svint32_t op1, svint32_t op2, svint32_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svmla_lane,_s32,,)(op1, op2, op3, -1);
-}
-
-svint64_t test_svmla_lane_s64(svint64_t op1, svint64_t op2, svint64_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
- return SVE_ACLE_FUNC(svmla_lane,_s64,,)(op1, op2, op3, 2);
-}
-
-svuint16_t test_svmla_lane_u16(svuint16_t op1, svuint16_t op2, svuint16_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svmla_lane,_u16,,)(op1, op2, op3, -1);
-}
-
-svuint32_t test_svmla_lane_u32(svuint32_t op1, svuint32_t op2, svuint32_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svmla_lane,_u32,,)(op1, op2, op3, 4);
-}
-
-svuint64_t test_svmla_lane_u64(svuint64_t op1, svuint64_t op2, svuint64_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
- return SVE_ACLE_FUNC(svmla_lane,_u64,,)(op1, op2, op3, -1);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_mlalb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_mlalb.c
deleted file mode 100644
index 05e4cd43a312c..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_mlalb.c
+++ /dev/null
@@ -1,49 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint32_t test_svmlalb_lane_s32(svint32_t op1, svint16_t op2, svint16_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svmlalb_lane,_s32,,)(op1, op2, op3, -1);
-}
-
-svint64_t test_svmlalb_lane_s64(svint64_t op1, svint32_t op2, svint32_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svmlalb_lane,_s64,,)(op1, op2, op3, -1);
-}
-
-svuint32_t test_svmlalb_lane_u32(svuint32_t op1, svuint16_t op2, svuint16_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svmlalb_lane,_u32,,)(op1, op2, op3, 8);
-}
-
-svuint64_t test_svmlalb_lane_u64(svuint64_t op1, svuint32_t op2, svuint32_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svmlalb_lane,_u64,,)(op1, op2, op3, 4);
-}
-
-svfloat32_t test_svmlalb_lane_f32(svfloat32_t op1, svfloat16_t op2, svfloat16_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svmlalb_lane,_f32,,)(op1, op2, op3, -1);
-}
-
-svfloat32_t test_svmlalb_lane_f32_1(svfloat32_t op1, svfloat16_t op2, svfloat16_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svmlalb_lane,_f32,,)(op1, op2, op3, 8);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_mlalt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_mlalt.c
deleted file mode 100644
index d5cd7c5802d1d..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_mlalt.c
+++ /dev/null
@@ -1,49 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint32_t test_svmlalt_lane_s32(svint32_t op1, svint16_t op2, svint16_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svmlalt_lane,_s32,,)(op1, op2, op3, -1);
-}
-
-svint64_t test_svmlalt_lane_s64(svint64_t op1, svint32_t op2, svint32_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svmlalt_lane,_s64,,)(op1, op2, op3, -1);
-}
-
-svuint32_t test_svmlalt_lane_u32(svuint32_t op1, svuint16_t op2, svuint16_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svmlalt_lane,_u32,,)(op1, op2, op3, 8);
-}
-
-svuint64_t test_svmlalt_lane_u64(svuint64_t op1, svuint32_t op2, svuint32_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svmlalt_lane,_u64,,)(op1, op2, op3, 4);
-}
-
-svfloat32_t test_svmlalt_lane_f32(svfloat32_t op1, svfloat16_t op2, svfloat16_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svmlalt_lane,_f32,,)(op1, op2, op3, -1);
-}
-
-svfloat32_t test_svmlalt_lane_f32_1(svfloat32_t op1, svfloat16_t op2, svfloat16_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svmlalt_lane,_f32,,)(op1, op2, op3, 8);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_mls.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_mls.c
deleted file mode 100644
index 2df794c767438..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_mls.c
+++ /dev/null
@@ -1,49 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint16_t test_svmls_lane_s16(svint16_t op1, svint16_t op2, svint16_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svmls_lane,_s16,,)(op1, op2, op3, -1);
-}
-
-svint32_t test_svmls_lane_s32(svint32_t op1, svint32_t op2, svint32_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svmls_lane,_s32,,)(op1, op2, op3, 4);
-}
-
-svint64_t test_svmls_lane_s64(svint64_t op1, svint64_t op2, svint64_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
- return SVE_ACLE_FUNC(svmls_lane,_s64,,)(op1, op2, op3, -1);
-}
-
-svuint16_t test_svmls_lane_u16(svuint16_t op1, svuint16_t op2, svuint16_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svmls_lane,_u16,,)(op1, op2, op3, 8);
-}
-
-svuint32_t test_svmls_lane_u32(svuint32_t op1, svuint32_t op2, svuint32_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svmls_lane,_u32,,)(op1, op2, op3, -1);
-}
-
-svuint64_t test_svmls_lane_u64(svuint64_t op1, svuint64_t op2, svuint64_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
- return SVE_ACLE_FUNC(svmls_lane,_u64,,)(op1, op2, op3, 2);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_mlslb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_mlslb.c
deleted file mode 100644
index 4b948374dd109..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_mlslb.c
+++ /dev/null
@@ -1,49 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint32_t test_svmlslb_lane_s32(svint32_t op1, svint16_t op2, svint16_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svmlslb_lane,_s32,,)(op1, op2, op3, -1);
-}
-
-svint64_t test_svmlslb_lane_s64(svint64_t op1, svint32_t op2, svint32_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svmlslb_lane,_s64,,)(op1, op2, op3, -1);
-}
-
-svuint32_t test_svmlslb_lane_u32(svuint32_t op1, svuint16_t op2, svuint16_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svmlslb_lane,_u32,,)(op1, op2, op3, 8);
-}
-
-svuint64_t test_svmlslb_lane_u64(svuint64_t op1, svuint32_t op2, svuint32_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svmlslb_lane,_u64,,)(op1, op2, op3, 4);
-}
-
-svfloat32_t test_svmlslb_lane_f32(svfloat32_t op1, svfloat16_t op2, svfloat16_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svmlslb_lane,_f32,,)(op1, op2, op3, -1);
-}
-
-svfloat32_t test_svmlslb_lane_f32_1(svfloat32_t op1, svfloat16_t op2, svfloat16_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svmlslb_lane,_f32,,)(op1, op2, op3, 8);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_mlslt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_mlslt.c
deleted file mode 100644
index 6defaec1e9d26..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_mlslt.c
+++ /dev/null
@@ -1,49 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint32_t test_svmlslt_lane_s32(svint32_t op1, svint16_t op2, svint16_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svmlslt_lane,_s32,,)(op1, op2, op3, -1);
-}
-
-svint64_t test_svmlslt_lane_s64(svint64_t op1, svint32_t op2, svint32_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svmlslt_lane,_s64,,)(op1, op2, op3, -1);
-}
-
-svuint32_t test_svmlslt_lane_u32(svuint32_t op1, svuint16_t op2, svuint16_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svmlslt_lane,_u32,,)(op1, op2, op3, 8);
-}
-
-svuint64_t test_svmlslt_lane_u64(svuint64_t op1, svuint32_t op2, svuint32_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svmlslt_lane,_u64,,)(op1, op2, op3, 4);
-}
-
-svfloat32_t test_svmlslt_lane_f32(svfloat32_t op1, svfloat16_t op2, svfloat16_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svmlslt_lane,_f32,,)(op1, op2, op3, -1);
-}
-
-svfloat32_t test_svmlslt_lane_f32_1(svfloat32_t op1, svfloat16_t op2, svfloat16_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svmlslt_lane,_f32,,)(op1, op2, op3, 8);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_mul.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_mul.c
deleted file mode 100644
index b495933337533..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_mul.c
+++ /dev/null
@@ -1,49 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint16_t test_svmul_lane_s16(svint16_t op1, svint16_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svmul_lane,_s16,,)(op1, op2, 8);
-}
-
-svint32_t test_svmul_lane_s32(svint32_t op1, svint32_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svmul_lane,_s32,,)(op1, op2, -1);
-}
-
-svint64_t test_svmul_lane_s64(svint64_t op1, svint64_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
- return SVE_ACLE_FUNC(svmul_lane,_s64,,)(op1, op2, 2);
-}
-
-svuint16_t test_svmul_lane_u16(svuint16_t op1, svuint16_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svmul_lane,_u16,,)(op1, op2, -1);
-}
-
-svuint32_t test_svmul_lane_u32(svuint32_t op1, svuint32_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svmul_lane,_u32,,)(op1, op2, 4);
-}
-
-svuint64_t test_svmul_lane_u64(svuint64_t op1, svuint64_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
- return SVE_ACLE_FUNC(svmul_lane,_u64,,)(op1, op2, -1);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_mullb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_mullb.c
deleted file mode 100644
index 144932ac83340..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_mullb.c
+++ /dev/null
@@ -1,37 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint32_t test_svmullb_lane_s32(svint16_t op1, svint16_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svmullb_lane,_s32,,)(op1, op2, -1);
-}
-
-svint64_t test_svmullb_lane_s64(svint32_t op1, svint32_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svmullb_lane,_s64,,)(op1, op2, 4);
-}
-
-svuint32_t test_svmullb_lane_u32(svuint16_t op1, svuint16_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svmullb_lane,_u32,,)(op1, op2, 8);
-}
-
-svuint64_t test_svmullb_lane_u64(svuint32_t op1, svuint32_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svmullb_lane,_u64,,)(op1, op2, -1);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_mullt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_mullt.c
deleted file mode 100644
index ea0cb1d3ff3c4..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_mullt.c
+++ /dev/null
@@ -1,37 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint32_t test_svmullt_lane_s32(svint16_t op1, svint16_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svmullt_lane,_s32,,)(op1, op2, 8);
-}
-
-svint64_t test_svmullt_lane_s64(svint32_t op1, svint32_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svmullt_lane,_s64,,)(op1, op2, -1);
-}
-
-svuint32_t test_svmullt_lane_u32(svuint16_t op1, svuint16_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svmullt_lane,_u32,,)(op1, op2, -1);
-}
-
-svuint64_t test_svmullt_lane_u64(svuint32_t op1, svuint32_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svmullt_lane,_u64,,)(op1, op2, 4);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qcadd.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qcadd.c
deleted file mode 100644
index 41ea94be3c5ff..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qcadd.c
+++ /dev/null
@@ -1,37 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint8_t test_svqcadd_s8(svint8_t op1, svint8_t op2)
-{
- // expected-error at +1 {{argument should be the value 90 or 270}}
- return SVE_ACLE_FUNC(svqcadd,_s8,,)(op1, op2, 0);
-}
-
-svint16_t test_svqcadd_s16(svint16_t op1, svint16_t op2)
-{
- // expected-error at +1 {{argument should be the value 90 or 270}}
- return SVE_ACLE_FUNC(svqcadd,_s16,,)(op1, op2, 91);
-}
-
-svint32_t test_svqcadd_s32(svint32_t op1, svint32_t op2)
-{
- // expected-error at +1 {{argument should be the value 90 or 270}}
- return SVE_ACLE_FUNC(svqcadd,_s32,,)(op1, op2, 269);
-}
-
-svint64_t test_svqcadd_s64(svint64_t op1, svint64_t op2)
-{
- // expected-error at +1 {{argument should be the value 90 or 270}}
- return SVE_ACLE_FUNC(svqcadd,_s64,,)(op1, op2, 30);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qdmlalb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qdmlalb.c
deleted file mode 100644
index 7c825f13794ff..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qdmlalb.c
+++ /dev/null
@@ -1,25 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint32_t test_svqdmlalb_lane_s32(svint32_t op1, svint16_t op2, svint16_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svqdmlalb_lane,_s32,,)(op1, op2, op3, -1);
-}
-
-svint64_t test_svqdmlalb_lane_s64(svint64_t op1, svint32_t op2, svint32_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svqdmlalb_lane,_s64,,)(op1, op2, op3, 4);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qdmlalt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qdmlalt.c
deleted file mode 100644
index e95c7563b765d..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qdmlalt.c
+++ /dev/null
@@ -1,25 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint32_t test_svqdmlalt_lane_s32(svint32_t op1, svint16_t op2, svint16_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svqdmlalt_lane,_s32,,)(op1, op2, op3, -1);
-}
-
-svint64_t test_svqdmlalt_lane_s64(svint64_t op1, svint32_t op2, svint32_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svqdmlalt_lane,_s64,,)(op1, op2, op3, 4);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qdmlslb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qdmlslb.c
deleted file mode 100644
index f37661810020c..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qdmlslb.c
+++ /dev/null
@@ -1,25 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint32_t test_svqdmlslb_lane_s32(svint32_t op1, svint16_t op2, svint16_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svqdmlslb_lane,_s32,,)(op1, op2, op3, -1);
-}
-
-svint64_t test_svqdmlslb_lane_s64(svint64_t op1, svint32_t op2, svint32_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svqdmlslb_lane,_s64,,)(op1, op2, op3, 4);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qdmlslt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qdmlslt.c
deleted file mode 100644
index be64fe805fab4..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qdmlslt.c
+++ /dev/null
@@ -1,25 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint32_t test_svqdmlslt_lane_s32(svint32_t op1, svint16_t op2, svint16_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svqdmlslt_lane,_s32,,)(op1, op2, op3, -1);
-}
-
-svint64_t test_svqdmlslt_lane_s64(svint64_t op1, svint32_t op2, svint32_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svqdmlslt_lane,_s64,,)(op1, op2, op3, 4);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qdmulh.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qdmulh.c
deleted file mode 100644
index 03c6032bb6b8a..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qdmulh.c
+++ /dev/null
@@ -1,31 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint16_t test_svqdmulh_lane_s16(svint16_t op1, svint16_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svqdmulh_lane,_s16,,)(op1, op2, -1);
-}
-
-svint32_t test_svqdmulh_lane_s32(svint32_t op1, svint32_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svqdmulh_lane,_s32,,)(op1, op2, 4);
-}
-
-svint64_t test_svqdmulh_lane_s64(svint64_t op1, svint64_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
- return SVE_ACLE_FUNC(svqdmulh_lane,_s64,,)(op1, op2, 2);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qdmullb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qdmullb.c
deleted file mode 100644
index 2f7c708e7625b..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qdmullb.c
+++ /dev/null
@@ -1,25 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint32_t test_svqdmullb_lane_s32(svint16_t op1, svint16_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svqdmullb_lane,_s32,,)(op1, op2, -1);
-}
-
-svint64_t test_svqdmullb_lane_s64(svint32_t op1, svint32_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svqdmullb_lane,_s64,,)(op1, op2, 4);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qdmullt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qdmullt.c
deleted file mode 100644
index d03f7111e668c..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qdmullt.c
+++ /dev/null
@@ -1,25 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint32_t test_svqdmullt_lane_s32(svint16_t op1, svint16_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svqdmullt_lane,_s32,,)(op1, op2, -1);
-}
-
-svint64_t test_svqdmullt_lane_s64(svint32_t op1, svint32_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svqdmullt_lane,_s64,,)(op1, op2, -1);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qrdcmlah.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qrdcmlah.c
deleted file mode 100644
index 994acd8a5ae1d..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qrdcmlah.c
+++ /dev/null
@@ -1,115 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint8_t test_svqrdcmlah_s8(svint8_t op1, svint8_t op2, svint8_t op3)
-{
- // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
- return SVE_ACLE_FUNC(svqrdcmlah,_s8,,)(op1, op2, op3, 19);
-}
-
-svint8_t test_svqrdcmlah_s8_1(svint8_t op1, svint8_t op2, svint8_t op3)
-{
- // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
- return SVE_ACLE_FUNC(svqrdcmlah,_s8,,)(op1, op2, op3, 1);
-}
-
-svint8_t test_svqrdcmlah_s8_2(svint8_t op1, svint8_t op2, svint8_t op3)
-{
- // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
- return SVE_ACLE_FUNC(svqrdcmlah,_s8,,)(op1, op2, op3, 18);
-}
-
-svint8_t test_svqrdcmlah_s8_3(svint8_t op1, svint8_t op2, svint8_t op3)
-{
- // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
- return SVE_ACLE_FUNC(svqrdcmlah,_s8,,)(op1, op2, op3, 91);
-}
-
-svint8_t test_svqrdcmlah_s8_4(svint8_t op1, svint8_t op2, svint8_t op3)
-{
- // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
- return SVE_ACLE_FUNC(svqrdcmlah,_s8,,)(op1, op2, op3, 181);
-}
-
-svint16_t test_svqrdcmlah_s16(svint16_t op1, svint16_t op2, svint16_t op3)
-{
- // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
- return SVE_ACLE_FUNC(svqrdcmlah,_s16,,)(op1, op2, op3, 19);
-}
-
-svint32_t test_svqrdcmlah_s32(svint32_t op1, svint32_t op2, svint32_t op3)
-{
- // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
- return SVE_ACLE_FUNC(svqrdcmlah,_s32,,)(op1, op2, op3, 19);
-}
-
-svint64_t test_svqrdcmlah_s64(svint64_t op1, svint64_t op2, svint64_t op3)
-{
- // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
- return SVE_ACLE_FUNC(svqrdcmlah,_s64,,)(op1, op2, op3, 19);
-}
-
-svint16_t test_svqrdcmlah_lane_s16(svint16_t op1, svint16_t op2, svint16_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svqrdcmlah_lane,_s16,,)(op1, op2, op3, -1, 0);
-}
-
-svint16_t test_svqrdcmlah_lane_s16_1(svint16_t op1, svint16_t op2, svint16_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svqrdcmlah_lane,_s16,,)(op1, op2, op3, 4, 0);
-}
-
-svint16_t test_svqrdcmlah_lane_s16_2(svint16_t op1, svint16_t op2, svint16_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svqrdcmlah_lane,_s16,,)(op1, op2, op3, -1, 90);
-}
-
-svint16_t test_svqrdcmlah_lane_s16_3(svint16_t op1, svint16_t op2, svint16_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svqrdcmlah_lane,_s16,,)(op1, op2, op3, -1, 180);
-}
-
-svint16_t test_svqrdcmlah_lane_s16_4(svint16_t op1, svint16_t op2, svint16_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svqrdcmlah_lane,_s16,,)(op1, op2, op3, -1, 270);
-}
-
-svint16_t test_svqrdcmlah_lane_s16_5(svint16_t op1, svint16_t op2, svint16_t op3)
-{
- // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
- return SVE_ACLE_FUNC(svqrdcmlah_lane,_s16,,)(op1, op2, op3, 0, 19);
-}
-
-svint16_t test_svqrdcmlah_lane_s16_6(svint16_t op1, svint16_t op2, svint16_t op3)
-{
- // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
- return SVE_ACLE_FUNC(svqrdcmlah_lane,_s16,,)(op1, op2, op3, 1, 19);
-}
-
-svint32_t test_svqrdcmlah_lane_s32(svint32_t op1, svint32_t op2, svint32_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
- return SVE_ACLE_FUNC(svqrdcmlah_lane,_s32,,)(op1, op2, op3, 2, 0);
-}
-
-svint32_t test_svqrdcmlah_lane_s32_1(svint32_t op1, svint32_t op2, svint32_t op3)
-{
- // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
- return SVE_ACLE_FUNC(svqrdcmlah_lane,_s32,,)(op1, op2, op3, 0, 19);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qrdmlah.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qrdmlah.c
deleted file mode 100644
index e81a9dfd1a37f..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qrdmlah.c
+++ /dev/null
@@ -1,31 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint16_t test_svqrdmlah_lane_s16(svint16_t op1, svint16_t op2, svint16_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svqrdmlah_lane,_s16,,)(op1, op2, op3, -1);
-}
-
-svint32_t test_svqrdmlah_lane_s32(svint32_t op1, svint32_t op2, svint32_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svqrdmlah_lane,_s32,,)(op1, op2, op3, 4);
-}
-
-svint64_t test_svqrdmlah_lane_s64(svint64_t op1, svint64_t op2, svint64_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
- return SVE_ACLE_FUNC(svqrdmlah_lane,_s64,,)(op1, op2, op3, 2);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qrdmlsh.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qrdmlsh.c
deleted file mode 100644
index a3ee155b3517d..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qrdmlsh.c
+++ /dev/null
@@ -1,31 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint16_t test_svqrdmlsh_lane_s16(svint16_t op1, svint16_t op2, svint16_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svqrdmlsh_lane,_s16,,)(op1, op2, op3, -1);
-}
-
-svint32_t test_svqrdmlsh_lane_s32(svint32_t op1, svint32_t op2, svint32_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svqrdmlsh_lane,_s32,,)(op1, op2, op3, 4);
-}
-
-svint64_t test_svqrdmlsh_lane_s64(svint64_t op1, svint64_t op2, svint64_t op3)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
- return SVE_ACLE_FUNC(svqrdmlsh_lane,_s64,,)(op1, op2, op3, 2);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qrdmulh.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qrdmulh.c
deleted file mode 100644
index c72998d99bd77..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qrdmulh.c
+++ /dev/null
@@ -1,31 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint16_t test_svqrdmulh_lane_s16(svint16_t op1, svint16_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svqrdmulh_lane,_s16,,)(op1, op2, -1);
-}
-
-svint32_t test_svqrdmulh_lane_s32(svint32_t op1, svint32_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
- return SVE_ACLE_FUNC(svqrdmulh_lane,_s32,,)(op1, op2, 4);
-}
-
-svint64_t test_svqrdmulh_lane_s64(svint64_t op1, svint64_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
- return SVE_ACLE_FUNC(svqrdmulh_lane,_s64,,)(op1, op2, 2);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qrshrnb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qrshrnb.c
deleted file mode 100644
index f5060a950738f..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qrshrnb.c
+++ /dev/null
@@ -1,49 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint8_t test_svqrshrnb_n_s16(svint16_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
- return SVE_ACLE_FUNC(svqrshrnb,_n_s16,,)(op1, 0);
-}
-
-svint16_t test_svqrshrnb_n_s32(svint32_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
- return SVE_ACLE_FUNC(svqrshrnb,_n_s32,,)(op1, 0);
-}
-
-svint32_t test_svqrshrnb_n_s64(svint64_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
- return SVE_ACLE_FUNC(svqrshrnb,_n_s64,,)(op1, 0);
-}
-
-svuint8_t test_svqrshrnb_n_u16(svuint16_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
- return SVE_ACLE_FUNC(svqrshrnb,_n_u16,,)(op1, 0);
-}
-
-svuint16_t test_svqrshrnb_n_u32(svuint32_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
- return SVE_ACLE_FUNC(svqrshrnb,_n_u32,,)(op1, 0);
-}
-
-svuint32_t test_svqrshrnb_n_u64(svuint64_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
- return SVE_ACLE_FUNC(svqrshrnb,_n_u64,,)(op1, 0);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qrshrnt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qrshrnt.c
deleted file mode 100644
index 7e4339a18e0ef..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qrshrnt.c
+++ /dev/null
@@ -1,49 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint8_t test_svqrshrnt_n_s16(svint8_t op1, svint16_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
- return SVE_ACLE_FUNC(svqrshrnt,_n_s16,,)(op1, op2, 0);
-}
-
-svint16_t test_svqrshrnt_n_s32(svint16_t op1, svint32_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
- return SVE_ACLE_FUNC(svqrshrnt,_n_s32,,)(op1, op2, 0);
-}
-
-svint32_t test_svqrshrnt_n_s64(svint32_t op1, svint64_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
- return SVE_ACLE_FUNC(svqrshrnt,_n_s64,,)(op1, op2, 0);
-}
-
-svuint8_t test_svqrshrnt_n_u16(svuint8_t op1, svuint16_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
- return SVE_ACLE_FUNC(svqrshrnt,_n_u16,,)(op1, op2, 0);
-}
-
-svuint16_t test_svqrshrnt_n_u32(svuint16_t op1, svuint32_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
- return SVE_ACLE_FUNC(svqrshrnt,_n_u32,,)(op1, op2, 0);
-}
-
-svuint32_t test_svqrshrnt_n_u64(svuint32_t op1, svuint64_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
- return SVE_ACLE_FUNC(svqrshrnt,_n_u64,,)(op1, op2, 0);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qrshrunb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qrshrunb.c
deleted file mode 100644
index 0f700ac2d8a8d..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qrshrunb.c
+++ /dev/null
@@ -1,31 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svuint8_t test_svqrshrunb_n_s16(svint16_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
- return SVE_ACLE_FUNC(svqrshrunb,_n_s16,,)(op1, 0);
-}
-
-svuint16_t test_svqrshrunb_n_s32(svint32_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
- return SVE_ACLE_FUNC(svqrshrunb,_n_s32,,)(op1, 0);
-}
-
-svuint32_t test_svqrshrunb_n_s64(svint64_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
- return SVE_ACLE_FUNC(svqrshrunb,_n_s64,,)(op1, 0);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qrshrunt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qrshrunt.c
deleted file mode 100644
index c5c98c40b2536..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qrshrunt.c
+++ /dev/null
@@ -1,31 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svuint8_t test_svqrshrunt_n_s16(svuint8_t op1, svint16_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
- return SVE_ACLE_FUNC(svqrshrunt,_n_s16,,)(op1, op2, 0);
-}
-
-svuint16_t test_svqrshrunt_n_s32(svuint16_t op1, svint32_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
- return SVE_ACLE_FUNC(svqrshrunt,_n_s32,,)(op1, op2, 0);
-}
-
-svuint32_t test_svqrshrunt_n_s64(svuint32_t op1, svint64_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
- return SVE_ACLE_FUNC(svqrshrunt,_n_s64,,)(op1, op2, 0);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qshlu.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qshlu.c
deleted file mode 100644
index 4139bf2f5374e..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qshlu.c
+++ /dev/null
@@ -1,85 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svuint8_t test_svqshlu_n_s8_z(svbool_t pg, svint8_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svqshlu,_n_s8,_z,)(pg, op1, -1);
-}
-
-svuint16_t test_svqshlu_n_s16_z(svbool_t pg, svint16_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 15]}}
- return SVE_ACLE_FUNC(svqshlu,_n_s16,_z,)(pg, op1, -1);
-}
-
-svuint32_t test_svqshlu_n_s32_z(svbool_t pg, svint32_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 31]}}
- return SVE_ACLE_FUNC(svqshlu,_n_s32,_z,)(pg, op1, -1);
-}
-
-svuint64_t test_svqshlu_n_s64_z(svbool_t pg, svint64_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 63]}}
- return SVE_ACLE_FUNC(svqshlu,_n_s64,_z,)(pg, op1, -1);
-}
-
-svuint8_t test_svqshlu_n_s8_m(svbool_t pg, svint8_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svqshlu,_n_s8,_m,)(pg, op1, -1);
-}
-
-svuint16_t test_svqshlu_n_s16_m(svbool_t pg, svint16_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 15]}}
- return SVE_ACLE_FUNC(svqshlu,_n_s16,_m,)(pg, op1, -1);
-}
-
-svuint32_t test_svqshlu_n_s32_m(svbool_t pg, svint32_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 31]}}
- return SVE_ACLE_FUNC(svqshlu,_n_s32,_m,)(pg, op1, -1);
-}
-
-svuint64_t test_svqshlu_n_s64_m(svbool_t pg, svint64_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 63]}}
- return SVE_ACLE_FUNC(svqshlu,_n_s64,_m,)(pg, op1, -1);
-}
-
-svuint8_t test_svqshlu_n_s8_x(svbool_t pg, svint8_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svqshlu,_n_s8,_x,)(pg, op1, -1);
-}
-
-svuint16_t test_svqshlu_n_s16_x(svbool_t pg, svint16_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 15]}}
- return SVE_ACLE_FUNC(svqshlu,_n_s16,_x,)(pg, op1, -1);
-}
-
-svuint32_t test_svqshlu_n_s32_x(svbool_t pg, svint32_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 31]}}
- return SVE_ACLE_FUNC(svqshlu,_n_s32,_x,)(pg, op1, -1);
-}
-
-svuint64_t test_svqshlu_n_s64_x(svbool_t pg, svint64_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 63]}}
- return SVE_ACLE_FUNC(svqshlu,_n_s64,_x,)(pg, op1, -1);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qshrnb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qshrnb.c
deleted file mode 100644
index c51acf8c5c02c..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qshrnb.c
+++ /dev/null
@@ -1,49 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint8_t test_svqshrnb_n_s16(svint16_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
- return SVE_ACLE_FUNC(svqshrnb,_n_s16,,)(op1, 0);
-}
-
-svint16_t test_svqshrnb_n_s32(svint32_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
- return SVE_ACLE_FUNC(svqshrnb,_n_s32,,)(op1, 0);
-}
-
-svint32_t test_svqshrnb_n_s64(svint64_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
- return SVE_ACLE_FUNC(svqshrnb,_n_s64,,)(op1, 0);
-}
-
-svuint8_t test_svqshrnb_n_u16(svuint16_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
- return SVE_ACLE_FUNC(svqshrnb,_n_u16,,)(op1, 0);
-}
-
-svuint16_t test_svqshrnb_n_u32(svuint32_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
- return SVE_ACLE_FUNC(svqshrnb,_n_u32,,)(op1, 0);
-}
-
-svuint32_t test_svqshrnb_n_u64(svuint64_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
- return SVE_ACLE_FUNC(svqshrnb,_n_u64,,)(op1, 0);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qshrnt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qshrnt.c
deleted file mode 100644
index 7e70139a138d7..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qshrnt.c
+++ /dev/null
@@ -1,49 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint8_t test_svqshrnt_n_s16(svint8_t op1, svint16_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
- return SVE_ACLE_FUNC(svqshrnt,_n_s16,,)(op1, op2, 0);
-}
-
-svint16_t test_svqshrnt_n_s32(svint16_t op1, svint32_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
- return SVE_ACLE_FUNC(svqshrnt,_n_s32,,)(op1, op2, 0);
-}
-
-svint32_t test_svqshrnt_n_s64(svint32_t op1, svint64_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
- return SVE_ACLE_FUNC(svqshrnt,_n_s64,,)(op1, op2, 0);
-}
-
-svuint8_t test_svqshrnt_n_u16(svuint8_t op1, svuint16_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
- return SVE_ACLE_FUNC(svqshrnt,_n_u16,,)(op1, op2, 0);
-}
-
-svuint16_t test_svqshrnt_n_u32(svuint16_t op1, svuint32_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
- return SVE_ACLE_FUNC(svqshrnt,_n_u32,,)(op1, op2, 0);
-}
-
-svuint32_t test_svqshrnt_n_u64(svuint32_t op1, svuint64_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
- return SVE_ACLE_FUNC(svqshrnt,_n_u64,,)(op1, op2, 0);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qshrunb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qshrunb.c
deleted file mode 100644
index 552cd424e0f5c..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qshrunb.c
+++ /dev/null
@@ -1,31 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svuint8_t test_svqshrunb_n_s16(svint16_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
- return SVE_ACLE_FUNC(svqshrunb,_n_s16,,)(op1, 0);
-}
-
-svuint16_t test_svqshrunb_n_s32(svint32_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
- return SVE_ACLE_FUNC(svqshrunb,_n_s32,,)(op1, 0);
-}
-
-svuint32_t test_svqshrunb_n_s64(svint64_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
- return SVE_ACLE_FUNC(svqshrunb,_n_s64,,)(op1, 0);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qshrunt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qshrunt.c
deleted file mode 100644
index 0b438651dcfec..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_qshrunt.c
+++ /dev/null
@@ -1,31 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svuint8_t test_svqshrunt_n_s16(svuint8_t op1, svint16_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
- return SVE_ACLE_FUNC(svqshrunt,_n_s16,,)(op1, op2, 0);
-}
-
-svuint16_t test_svqshrunt_n_s32(svuint16_t op1, svint32_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
- return SVE_ACLE_FUNC(svqshrunt,_n_s32,,)(op1, op2, 0);
-}
-
-svuint32_t test_svqshrunt_n_s64(svuint32_t op1, svint64_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
- return SVE_ACLE_FUNC(svqshrunt,_n_s64,,)(op1, op2, 0);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_rshr.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_rshr.c
deleted file mode 100644
index 2b025612c741d..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_rshr.c
+++ /dev/null
@@ -1,181 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint8_t test_svrshr_n_s8_z(svbool_t pg, svint8_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
- return SVE_ACLE_FUNC(svrshr,_n_s8,_z,)(pg, op1, 0);
-}
-
-svint8_t test_svrshr_n_s8_z_1(svbool_t pg, svint8_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
- return SVE_ACLE_FUNC(svrshr,_n_s8,_z,)(pg, op1, 9);
-}
-
-svint16_t test_svrshr_n_s16_z(svbool_t pg, svint16_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
- return SVE_ACLE_FUNC(svrshr,_n_s16,_z,)(pg, op1, 0);
-}
-
-svint16_t test_svrshr_n_s16_z_1(svbool_t pg, svint16_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
- return SVE_ACLE_FUNC(svrshr,_n_s16,_z,)(pg, op1, 17);
-}
-
-svint32_t test_svrshr_n_s32_z(svbool_t pg, svint32_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
- return SVE_ACLE_FUNC(svrshr,_n_s32,_z,)(pg, op1, 0);
-}
-
-svint32_t test_svrshr_n_s32_z_1(svbool_t pg, svint32_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
- return SVE_ACLE_FUNC(svrshr,_n_s32,_z,)(pg, op1, 33);
-}
-
-svint64_t test_svrshr_n_s64_z(svbool_t pg, svint64_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
- return SVE_ACLE_FUNC(svrshr,_n_s64,_z,)(pg, op1, 0);
-}
-
-svint64_t test_svrshr_n_s64_z_1(svbool_t pg, svint64_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
- return SVE_ACLE_FUNC(svrshr,_n_s64,_z,)(pg, op1, 65);
-}
-
-svuint8_t test_svrshr_n_u8_z(svbool_t pg, svuint8_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
- return SVE_ACLE_FUNC(svrshr,_n_u8,_z,)(pg, op1, 0);
-}
-
-svuint16_t test_svrshr_n_u16_z(svbool_t pg, svuint16_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
- return SVE_ACLE_FUNC(svrshr,_n_u16,_z,)(pg, op1, 0);
-}
-
-svuint32_t test_svrshr_n_u32_z(svbool_t pg, svuint32_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
- return SVE_ACLE_FUNC(svrshr,_n_u32,_z,)(pg, op1, 0);
-}
-
-svuint64_t test_svrshr_n_u64_z(svbool_t pg, svuint64_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
- return SVE_ACLE_FUNC(svrshr,_n_u64,_z,)(pg, op1, 0);
-}
-
-svint8_t test_svrshr_n_s8_m(svbool_t pg, svint8_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
- return SVE_ACLE_FUNC(svrshr,_n_s8,_m,)(pg, op1, 0);
-}
-
-svint16_t test_svrshr_n_s16_m(svbool_t pg, svint16_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
- return SVE_ACLE_FUNC(svrshr,_n_s16,_m,)(pg, op1, 0);
-}
-
-svint32_t test_svrshr_n_s32_m(svbool_t pg, svint32_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
- return SVE_ACLE_FUNC(svrshr,_n_s32,_m,)(pg, op1, 0);
-}
-
-svint64_t test_svrshr_n_s64_m(svbool_t pg, svint64_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
- return SVE_ACLE_FUNC(svrshr,_n_s64,_m,)(pg, op1, 0);
-}
-
-svuint8_t test_svrshr_n_u8_m(svbool_t pg, svuint8_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
- return SVE_ACLE_FUNC(svrshr,_n_u8,_m,)(pg, op1, 0);
-}
-
-svuint16_t test_svrshr_n_u16_m(svbool_t pg, svuint16_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
- return SVE_ACLE_FUNC(svrshr,_n_u16,_m,)(pg, op1, 0);
-}
-
-svuint32_t test_svrshr_n_u32_m(svbool_t pg, svuint32_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
- return SVE_ACLE_FUNC(svrshr,_n_u32,_m,)(pg, op1, 0);
-}
-
-svuint64_t test_svrshr_n_u64_m(svbool_t pg, svuint64_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
- return SVE_ACLE_FUNC(svrshr,_n_u64,_m,)(pg, op1, 0);
-}
-
-svint8_t test_svrshr_n_s8_x(svbool_t pg, svint8_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
- return SVE_ACLE_FUNC(svrshr,_n_s8,_x,)(pg, op1, 0);
-}
-
-svint16_t test_svrshr_n_s16_x(svbool_t pg, svint16_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
- return SVE_ACLE_FUNC(svrshr,_n_s16,_x,)(pg, op1, 0);
-}
-
-svint32_t test_svrshr_n_s32_x(svbool_t pg, svint32_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
- return SVE_ACLE_FUNC(svrshr,_n_s32,_x,)(pg, op1, 0);
-}
-
-svint64_t test_svrshr_n_s64_x(svbool_t pg, svint64_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
- return SVE_ACLE_FUNC(svrshr,_n_s64,_x,)(pg, op1, 0);
-}
-
-svuint8_t test_svrshr_n_u8_x(svbool_t pg, svuint8_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
- return SVE_ACLE_FUNC(svrshr,_n_u8,_x,)(pg, op1, 0);
-}
-
-svuint16_t test_svrshr_n_u16_x(svbool_t pg, svuint16_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
- return SVE_ACLE_FUNC(svrshr,_n_u16,_x,)(pg, op1, 0);
-}
-
-svuint32_t test_svrshr_n_u32_x(svbool_t pg, svuint32_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
- return SVE_ACLE_FUNC(svrshr,_n_u32,_x,)(pg, op1, 0);
-}
-
-svuint64_t test_svrshr_n_u64_x(svbool_t pg, svuint64_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
- return SVE_ACLE_FUNC(svrshr,_n_u64,_x,)(pg, op1, 0);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_rshrnb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_rshrnb.c
deleted file mode 100644
index 4479c1c4c44ef..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_rshrnb.c
+++ /dev/null
@@ -1,49 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint8_t test_svrshrnb_n_s16(svint16_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
- return SVE_ACLE_FUNC(svrshrnb,_n_s16,,)(op1, 0);
-}
-
-svint16_t test_svrshrnb_n_s32(svint32_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
- return SVE_ACLE_FUNC(svrshrnb,_n_s32,,)(op1, 0);
-}
-
-svint32_t test_svrshrnb_n_s64(svint64_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
- return SVE_ACLE_FUNC(svrshrnb,_n_s64,,)(op1, 0);
-}
-
-svuint8_t test_svrshrnb_n_u16(svuint16_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
- return SVE_ACLE_FUNC(svrshrnb,_n_u16,,)(op1, 0);
-}
-
-svuint16_t test_svrshrnb_n_u32(svuint32_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
- return SVE_ACLE_FUNC(svrshrnb,_n_u32,,)(op1, 0);
-}
-
-svuint32_t test_svrshrnb_n_u64(svuint64_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
- return SVE_ACLE_FUNC(svrshrnb,_n_u64,,)(op1, 0);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_rshrnt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_rshrnt.c
deleted file mode 100644
index 02d446007f2f4..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_rshrnt.c
+++ /dev/null
@@ -1,49 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint8_t test_svrshrnt_n_s16(svint8_t op1, svint16_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
- return SVE_ACLE_FUNC(svrshrnt,_n_s16,,)(op1, op2, 0);
-}
-
-svint16_t test_svrshrnt_n_s32(svint16_t op1, svint32_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
- return SVE_ACLE_FUNC(svrshrnt,_n_s32,,)(op1, op2, 0);
-}
-
-svint32_t test_svrshrnt_n_s64(svint32_t op1, svint64_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
- return SVE_ACLE_FUNC(svrshrnt,_n_s64,,)(op1, op2, 0);
-}
-
-svuint8_t test_svrshrnt_n_u16(svuint8_t op1, svuint16_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
- return SVE_ACLE_FUNC(svrshrnt,_n_u16,,)(op1, op2, 0);
-}
-
-svuint16_t test_svrshrnt_n_u32(svuint16_t op1, svuint32_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
- return SVE_ACLE_FUNC(svrshrnt,_n_u32,,)(op1, op2, 0);
-}
-
-svuint32_t test_svrshrnt_n_u64(svuint32_t op1, svuint64_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
- return SVE_ACLE_FUNC(svrshrnt,_n_u64,,)(op1, op2, 0);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_rsra.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_rsra.c
deleted file mode 100644
index 93adcfd3eede6..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_rsra.c
+++ /dev/null
@@ -1,61 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint8_t test_svrsra_n_s8(svint8_t op1, svint8_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
- return SVE_ACLE_FUNC(svrsra,_n_s8,,)(op1, op2, 0);
-}
-
-svint16_t test_svrsra_n_s16(svint16_t op1, svint16_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
- return SVE_ACLE_FUNC(svrsra,_n_s16,,)(op1, op2, 0);
-}
-
-svint32_t test_svrsra_n_s32(svint32_t op1, svint32_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
- return SVE_ACLE_FUNC(svrsra,_n_s32,,)(op1, op2, 0);
-}
-
-svint64_t test_svrsra_n_s64(svint64_t op1, svint64_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
- return SVE_ACLE_FUNC(svrsra,_n_s64,,)(op1, op2, 0);
-}
-
-svuint8_t test_svrsra_n_u8(svuint8_t op1, svuint8_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
- return SVE_ACLE_FUNC(svrsra,_n_u8,,)(op1, op2, 0);
-}
-
-svuint16_t test_svrsra_n_u16(svuint16_t op1, svuint16_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
- return SVE_ACLE_FUNC(svrsra,_n_u16,,)(op1, op2, 0);
-}
-
-svuint32_t test_svrsra_n_u32(svuint32_t op1, svuint32_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
- return SVE_ACLE_FUNC(svrsra,_n_u32,,)(op1, op2, 0);
-}
-
-svuint64_t test_svrsra_n_u64(svuint64_t op1, svuint64_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
- return SVE_ACLE_FUNC(svrsra,_n_u64,,)(op1, op2, 0);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_shllb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_shllb.c
deleted file mode 100644
index c90fafa6a0bf0..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_shllb.c
+++ /dev/null
@@ -1,49 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint16_t test_svshllb_n_s16(svint8_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svshllb,_n_s16,,)(op1, -1);
-}
-
-svint32_t test_svshllb_n_s32(svint16_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 15]}}
- return SVE_ACLE_FUNC(svshllb,_n_s32,,)(op1, -1);
-}
-
-svint64_t test_svshllb_n_s64(svint32_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 31]}}
- return SVE_ACLE_FUNC(svshllb,_n_s64,,)(op1, -1);
-}
-
-svuint16_t test_svshllb_n_u16(svuint8_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svshllb,_n_u16,,)(op1, -1);
-}
-
-svuint32_t test_svshllb_n_u32(svuint16_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 15]}}
- return SVE_ACLE_FUNC(svshllb,_n_u32,,)(op1, -1);
-}
-
-svuint64_t test_svshllb_n_u64(svuint32_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 31]}}
- return SVE_ACLE_FUNC(svshllb,_n_u64,,)(op1, -1);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_shllt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_shllt.c
deleted file mode 100644
index 44721cc78cb01..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_shllt.c
+++ /dev/null
@@ -1,49 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint16_t test_svshllt_n_s16(svint8_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svshllt,_n_s16,,)(op1, -1);
-}
-
-svint32_t test_svshllt_n_s32(svint16_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 15]}}
- return SVE_ACLE_FUNC(svshllt,_n_s32,,)(op1, -1);
-}
-
-svint64_t test_svshllt_n_s64(svint32_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 31]}}
- return SVE_ACLE_FUNC(svshllt,_n_s64,,)(op1, -1);
-}
-
-svuint16_t test_svshllt_n_u16(svuint8_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svshllt,_n_u16,,)(op1, -1);
-}
-
-svuint32_t test_svshllt_n_u32(svuint16_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 15]}}
- return SVE_ACLE_FUNC(svshllt,_n_u32,,)(op1, -1);
-}
-
-svuint64_t test_svshllt_n_u64(svuint32_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 31]}}
- return SVE_ACLE_FUNC(svshllt,_n_u64,,)(op1, -1);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_shrnb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_shrnb.c
deleted file mode 100644
index 060c4490a84b2..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_shrnb.c
+++ /dev/null
@@ -1,49 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint8_t test_svshrnb_n_s16(svint16_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
- return SVE_ACLE_FUNC(svshrnb,_n_s16,,)(op1, 0);
-}
-
-svint16_t test_svshrnb_n_s32(svint32_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
- return SVE_ACLE_FUNC(svshrnb,_n_s32,,)(op1, 0);
-}
-
-svint32_t test_svshrnb_n_s64(svint64_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
- return SVE_ACLE_FUNC(svshrnb,_n_s64,,)(op1, 0);
-}
-
-svuint8_t test_svshrnb_n_u16(svuint16_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
- return SVE_ACLE_FUNC(svshrnb,_n_u16,,)(op1, 0);
-}
-
-svuint16_t test_svshrnb_n_u32(svuint32_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
- return SVE_ACLE_FUNC(svshrnb,_n_u32,,)(op1, 0);
-}
-
-svuint32_t test_svshrnb_n_u64(svuint64_t op1)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
- return SVE_ACLE_FUNC(svshrnb,_n_u64,,)(op1, 0);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_shrnt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_shrnt.c
deleted file mode 100644
index 37bce37460a2b..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_shrnt.c
+++ /dev/null
@@ -1,49 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint8_t test_svshrnt_n_s16(svint8_t op1, svint16_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
- return SVE_ACLE_FUNC(svshrnt,_n_s16,,)(op1, op2, 0);
-}
-
-svint16_t test_svshrnt_n_s32(svint16_t op1, svint32_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
- return SVE_ACLE_FUNC(svshrnt,_n_s32,,)(op1, op2, 0);
-}
-
-svint32_t test_svshrnt_n_s64(svint32_t op1, svint64_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
- return SVE_ACLE_FUNC(svshrnt,_n_s64,,)(op1, op2, 0);
-}
-
-svuint8_t test_svshrnt_n_u16(svuint8_t op1, svuint16_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
- return SVE_ACLE_FUNC(svshrnt,_n_u16,,)(op1, op2, 0);
-}
-
-svuint16_t test_svshrnt_n_u32(svuint16_t op1, svuint32_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
- return SVE_ACLE_FUNC(svshrnt,_n_u32,,)(op1, op2, 0);
-}
-
-svuint32_t test_svshrnt_n_u64(svuint32_t op1, svuint64_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
- return SVE_ACLE_FUNC(svshrnt,_n_u64,,)(op1, op2, 0);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_sli.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_sli.c
deleted file mode 100644
index e85db17ab1b4f..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_sli.c
+++ /dev/null
@@ -1,61 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint8_t test_svsli_n_s8(svint8_t op1, svint8_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svsli,_n_s8,,)(op1, op2, -1);
-}
-
-svint16_t test_svsli_n_s16(svint16_t op1, svint16_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 15]}}
- return SVE_ACLE_FUNC(svsli,_n_s16,,)(op1, op2, -1);
-}
-
-svint32_t test_svsli_n_s32(svint32_t op1, svint32_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 31]}}
- return SVE_ACLE_FUNC(svsli,_n_s32,,)(op1, op2, -1);
-}
-
-svint64_t test_svsli_n_s64(svint64_t op1, svint64_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 63]}}
- return SVE_ACLE_FUNC(svsli,_n_s64,,)(op1, op2, -1);
-}
-
-svuint8_t test_svsli_n_u8(svuint8_t op1, svuint8_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
- return SVE_ACLE_FUNC(svsli,_n_u8,,)(op1, op2, -1);
-}
-
-svuint16_t test_svsli_n_u16(svuint16_t op1, svuint16_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 15]}}
- return SVE_ACLE_FUNC(svsli,_n_u16,,)(op1, op2, -1);
-}
-
-svuint32_t test_svsli_n_u32(svuint32_t op1, svuint32_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 31]}}
- return SVE_ACLE_FUNC(svsli,_n_u32,,)(op1, op2, -1);
-}
-
-svuint64_t test_svsli_n_u64(svuint64_t op1, svuint64_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 63]}}
- return SVE_ACLE_FUNC(svsli,_n_u64,,)(op1, op2, -1);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_sra.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_sra.c
deleted file mode 100644
index 206cc66dec4ba..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_sra.c
+++ /dev/null
@@ -1,61 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint8_t test_svsra_n_s8(svint8_t op1, svint8_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
- return SVE_ACLE_FUNC(svsra,_n_s8,,)(op1, op2, 0);
-}
-
-svint16_t test_svsra_n_s16(svint16_t op1, svint16_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
- return SVE_ACLE_FUNC(svsra,_n_s16,,)(op1, op2, 0);
-}
-
-svint32_t test_svsra_n_s32(svint32_t op1, svint32_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
- return SVE_ACLE_FUNC(svsra,_n_s32,,)(op1, op2, 0);
-}
-
-svint64_t test_svsra_n_s64(svint64_t op1, svint64_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
- return SVE_ACLE_FUNC(svsra,_n_s64,,)(op1, op2, 0);
-}
-
-svuint8_t test_svsra_n_u8(svuint8_t op1, svuint8_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
- return SVE_ACLE_FUNC(svsra,_n_u8,,)(op1, op2, 0);
-}
-
-svuint16_t test_svsra_n_u16(svuint16_t op1, svuint16_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
- return SVE_ACLE_FUNC(svsra,_n_u16,,)(op1, op2, 0);
-}
-
-svuint32_t test_svsra_n_u32(svuint32_t op1, svuint32_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
- return SVE_ACLE_FUNC(svsra,_n_u32,,)(op1, op2, 0);
-}
-
-svuint64_t test_svsra_n_u64(svuint64_t op1, svuint64_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
- return SVE_ACLE_FUNC(svsra,_n_u64,,)(op1, op2, 0);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_sri.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_sri.c
deleted file mode 100644
index 45d287dad675b..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_sri.c
+++ /dev/null
@@ -1,109 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint8_t test_svsri_n_s8(svint8_t op1, svint8_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
- return SVE_ACLE_FUNC(svsri,_n_s8,,)(op1, op2, 0);
-}
-
-svint16_t test_svsri_n_s16(svint16_t op1, svint16_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
- return SVE_ACLE_FUNC(svsri,_n_s16,,)(op1, op2, 0);
-}
-
-svint32_t test_svsri_n_s32(svint32_t op1, svint32_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
- return SVE_ACLE_FUNC(svsri,_n_s32,,)(op1, op2, 0);
-}
-
-svint64_t test_svsri_n_s64(svint64_t op1, svint64_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
- return SVE_ACLE_FUNC(svsri,_n_s64,,)(op1, op2, 0);
-}
-
-svuint8_t test_svsri_n_u8(svuint8_t op1, svuint8_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
- return SVE_ACLE_FUNC(svsri,_n_u8,,)(op1, op2, 0);
-}
-
-svuint16_t test_svsri_n_u16(svuint16_t op1, svuint16_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
- return SVE_ACLE_FUNC(svsri,_n_u16,,)(op1, op2, 0);
-}
-
-svuint32_t test_svsri_n_u32(svuint32_t op1, svuint32_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
- return SVE_ACLE_FUNC(svsri,_n_u32,,)(op1, op2, 0);
-}
-
-svuint64_t test_svsri_n_u64(svuint64_t op1, svuint64_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
- return SVE_ACLE_FUNC(svsri,_n_u64,,)(op1, op2, 0);
-}
-
-svint8_t test_svsri_n_s8_1(svint8_t op1, svint8_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
- return SVE_ACLE_FUNC(svsri,_n_s8,,)(op1, op2, 9);
-}
-
-svint16_t test_svsri_n_s16_1(svint16_t op1, svint16_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
- return SVE_ACLE_FUNC(svsri,_n_s16,,)(op1, op2, 17);
-}
-
-svint32_t test_svsri_n_s32_1(svint32_t op1, svint32_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
- return SVE_ACLE_FUNC(svsri,_n_s32,,)(op1, op2, 33);
-}
-
-svint64_t test_svsri_n_s64_1(svint64_t op1, svint64_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
- return SVE_ACLE_FUNC(svsri,_n_s64,,)(op1, op2, 65);
-}
-
-svuint8_t test_svsri_n_u8_1(svuint8_t op1, svuint8_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
- return SVE_ACLE_FUNC(svsri,_n_u8,,)(op1, op2, 9);
-}
-
-svuint16_t test_svsri_n_u16_1(svuint16_t op1, svuint16_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
- return SVE_ACLE_FUNC(svsri,_n_u16,,)(op1, op2, 17);
-}
-
-svuint32_t test_svsri_n_u32_1(svuint32_t op1, svuint32_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
- return SVE_ACLE_FUNC(svsri,_n_u32,,)(op1, op2, 33);
-}
-
-svuint64_t test_svsri_n_u64_1(svuint64_t op1, svuint64_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
- return SVE_ACLE_FUNC(svsri,_n_u64,,)(op1, op2, 65);
-}
diff --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_xar.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_xar.c
deleted file mode 100644
index cbc62c5a59404..0000000000000
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/negative/acle_sve2_xar.c
+++ /dev/null
@@ -1,85 +0,0 @@
-// REQUIRES: aarch64-registered-target
-
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
-
-#ifdef SVE_OVERLOADED_FORMS
-// A simple used,unused... macro, long enough to represent any SVE builtin.
-#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
-#else
-#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
-#endif
-
-#include <arm_sve.h>
-
-svint8_t test_svxar_n_s8(svint8_t op1, svint8_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
- return SVE_ACLE_FUNC(svxar,_n_s8,,)(op1, op2, 0);
-}
-
-svint8_t test_svxar_n_s8_1(svint8_t op1, svint8_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
- return SVE_ACLE_FUNC(svxar,_n_s8,,)(op1, op2, 9);
-}
-
-svint16_t test_svxar_n_s16(svint16_t op1, svint16_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
- return SVE_ACLE_FUNC(svxar,_n_s16,,)(op1, op2, 0);
-}
-
-svint16_t test_svxar_n_s16_1(svint16_t op1, svint16_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
- return SVE_ACLE_FUNC(svxar,_n_s16,,)(op1, op2, 17);
-}
-
-svint32_t test_svxar_n_s32(svint32_t op1, svint32_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
- return SVE_ACLE_FUNC(svxar,_n_s32,,)(op1, op2, 0);
-}
-
-svint32_t test_svxar_n_s32_1(svint32_t op1, svint32_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
- return SVE_ACLE_FUNC(svxar,_n_s32,,)(op1, op2, 33);
-}
-
-svint64_t test_svxar_n_s64(svint64_t op1, svint64_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
- return SVE_ACLE_FUNC(svxar,_n_s64,,)(op1, op2, 0);
-}
-
-svint64_t test_svxar_n_s64_1(svint64_t op1, svint64_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
- return SVE_ACLE_FUNC(svxar,_n_s64,,)(op1, op2, 65);
-}
-
-svuint8_t test_svxar_n_u8(svuint8_t op1, svuint8_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
- return SVE_ACLE_FUNC(svxar,_n_u8,,)(op1, op2, 0);
-}
-
-svuint16_t test_svxar_n_u16(svuint16_t op1, svuint16_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
- return SVE_ACLE_FUNC(svxar,_n_u16,,)(op1, op2, 0);
-}
-
-svuint32_t test_svxar_n_u32(svuint32_t op1, svuint32_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
- return SVE_ACLE_FUNC(svxar,_n_u32,,)(op1, op2, 0);
-}
-
-svuint64_t test_svxar_n_u64(svuint64_t op1, svuint64_t op2)
-{
- // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
- return SVE_ACLE_FUNC(svxar,_n_u64,,)(op1, op2, 0);
-}
diff --git a/clang/test/Sema/aarch64-sve2-intrinsics/acle_sve2_imm_lane.cpp b/clang/test/Sema/aarch64-sve2-intrinsics/acle_sve2_imm_lane.cpp
new file mode 100644
index 0000000000000..04d22aede663e
--- /dev/null
+++ b/clang/test/Sema/aarch64-sve2-intrinsics/acle_sve2_imm_lane.cpp
@@ -0,0 +1,183 @@
+// REQUIRES: aarch64-registered-target
+
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
+
+#ifdef SVE_OVERLOADED_FORMS
+// A simple used,unused... macro, long enough to represent any SVE builtin.
+#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
+#else
+#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
+#endif
+
+#include <arm_sve.h>
+
+void test_range_0_7()
+{
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svmla_lane,_s16,,)(svundef_s16(), svundef_s16(), svundef_s16(), 8);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svmla_lane,_u16,,)(svundef_u16(), svundef_u16(), svundef_u16(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svmlalb_lane,_s32,,)(svundef_s32(), svundef_s16(), svundef_s16(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svmlalb_lane,_u32,,)(svundef_u32(), svundef_u16(), svundef_u16(), 8);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svmlalb_lane,_f32,,)(svundef_f32(), svundef_f16(), svundef_f16(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svmlalt_lane,_s32,,)(svundef_s32(), svundef_s16(), svundef_s16(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svmlalt_lane,_u32,,)(svundef_u32(), svundef_u16(), svundef_u16(), 8);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svmlalt_lane,_f32,,)(svundef_f32(), svundef_f16(), svundef_f16(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svmls_lane,_s16,,)(svundef_s16(), svundef_s16(), svundef_s16(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svmls_lane,_u16,,)(svundef_u16(), svundef_u16(), svundef_u16(), 8);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svmlslb_lane,_s32,,)(svundef_s32(), svundef_s16(), svundef_s16(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svmlslb_lane,_u32,,)(svundef_u32(), svundef_u16(), svundef_u16(), 8);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svmlslb_lane,_f32,,)(svundef_f32(), svundef_f16(), svundef_f16(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svmlslt_lane,_s32,,)(svundef_s32(), svundef_s16(), svundef_s16(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svmlslt_lane,_u32,,)(svundef_u32(), svundef_u16(), svundef_u16(), 8);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svmlslt_lane,_f32,,)(svundef_f32(), svundef_f16(), svundef_f16(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svmul_lane,_s16,,)(svundef_s16(), svundef_s16(), 8);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svmul_lane,_u16,,)(svundef_u16(), svundef_u16(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svmullb_lane,_s32,,)(svundef_s16(), svundef_s16(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svmullb_lane,_u32,,)(svundef_u16(), svundef_u16(), 8);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svmullt_lane,_s32,,)(svundef_s16(), svundef_s16(), 8);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svmullt_lane,_u32,,)(svundef_u16(), svundef_u16(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svqdmlalb_lane,_s32,,)(svundef_s32(), svundef_s16(), svundef_s16(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svqdmlalt_lane,_s32,,)(svundef_s32(), svundef_s16(), svundef_s16(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svqdmulh_lane,_s16,,)(svundef_s16(), svundef_s16(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svqdmlslb_lane,_s32,,)(svundef_s32(), svundef_s16(), svundef_s16(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svqdmlslt_lane,_s32,,)(svundef_s32(), svundef_s16(), svundef_s16(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svqdmullb_lane,_s32,,)(svundef_s16(), svundef_s16(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svqdmullt_lane,_s32,,)(svundef_s16(), svundef_s16(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svqrdmlah_lane,_s16,,)(svundef_s16(), svundef_s16(), svundef_s16(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svqrdmlsh_lane,_s16,,)(svundef_s16(), svundef_s16(), svundef_s16(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svqrdmulh_lane,_s16,,)(svundef_s16(), svundef_s16(), -1);
+}
+
+void test_range_0_3()
+{
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
+ SVE_ACLE_FUNC(svcdot_lane,_s32,,)(svundef_s32(), svundef_s8(), svundef_s8(), -1, 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
+ SVE_ACLE_FUNC(svcmla_lane,_s16,,)(svundef_s16(), svundef_s16(), svundef_s16(), -1, 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
+ SVE_ACLE_FUNC(svcmla_lane,_u16,,)(svundef_u16(), svundef_u16(), svundef_u16(), -1, 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
+ SVE_ACLE_FUNC(svmla_lane,_s32,,)(svundef_s32(), svundef_s32(), svundef_s32(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
+ SVE_ACLE_FUNC(svmla_lane,_u32,,)(svundef_u32(), svundef_u32(), svundef_u32(), 4);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
+ SVE_ACLE_FUNC(svmlalb_lane,_s64,,)(svundef_s64(), svundef_s32(), svundef_s32(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
+ SVE_ACLE_FUNC(svmlalb_lane,_u64,,)(svundef_u64(), svundef_u32(), svundef_u32(), 4);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
+ SVE_ACLE_FUNC(svmlalt_lane,_s64,,)(svundef_s64(), svundef_s32(), svundef_s32(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
+ SVE_ACLE_FUNC(svmlalt_lane,_u64,,)(svundef_u64(), svundef_u32(), svundef_u32(), 4);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
+ SVE_ACLE_FUNC(svmls_lane,_s32,,)(svundef_s32(), svundef_s32(), svundef_s32(), 4);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
+ SVE_ACLE_FUNC(svmls_lane,_u32,,)(svundef_u32(), svundef_u32(), svundef_u32(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
+ SVE_ACLE_FUNC(svmlslb_lane,_s64,,)(svundef_s64(), svundef_s32(), svundef_s32(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
+ SVE_ACLE_FUNC(svmlslb_lane,_u64,,)(svundef_u64(), svundef_u32(), svundef_u32(), 4);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
+ SVE_ACLE_FUNC(svmlslt_lane,_s64,,)(svundef_s64(), svundef_s32(), svundef_s32(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
+ SVE_ACLE_FUNC(svmlslt_lane,_u64,,)(svundef_u64(), svundef_u32(), svundef_u32(), 4);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
+ SVE_ACLE_FUNC(svmul_lane,_s32,,)(svundef_s32(), svundef_s32(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
+ SVE_ACLE_FUNC(svmul_lane,_u32,,)(svundef_u32(), svundef_u32(), 4);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
+ SVE_ACLE_FUNC(svmullb_lane,_s64,,)(svundef_s32(), svundef_s32(), 4);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
+ SVE_ACLE_FUNC(svmullb_lane,_u64,,)(svundef_u32(), svundef_u32(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
+ SVE_ACLE_FUNC(svmullt_lane,_s64,,)(svundef_s32(), svundef_s32(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
+ SVE_ACLE_FUNC(svmullt_lane,_u64,,)(svundef_u32(), svundef_u32(), 4);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
+ SVE_ACLE_FUNC(svqdmulh_lane,_s32,,)(svundef_s32(), svundef_s32(), 4);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
+ SVE_ACLE_FUNC(svqrdcmlah_lane,_s16,,)(svundef_s16(), svundef_s16(), svundef_s16(), -1, 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
+ SVE_ACLE_FUNC(svqrdmlah_lane,_s32,,)(svundef_s32(), svundef_s32(), svundef_s32(), 4);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
+ SVE_ACLE_FUNC(svqdmlalb_lane,_s64,,)(svundef_s64(), svundef_s32(), svundef_s32(), 4);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
+ SVE_ACLE_FUNC(svqdmlalt_lane,_s64,,)(svundef_s64(), svundef_s32(), svundef_s32(), 4);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
+ SVE_ACLE_FUNC(svqrdmlsh_lane,_s32,,)(svundef_s32(), svundef_s32(), svundef_s32(), 4);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
+ SVE_ACLE_FUNC(svqdmlslb_lane,_s64,,)(svundef_s64(), svundef_s32(), svundef_s32(), 4);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
+ SVE_ACLE_FUNC(svqdmlslt_lane,_s64,,)(svundef_s64(), svundef_s32(), svundef_s32(), 4);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
+ SVE_ACLE_FUNC(svqrdmulh_lane,_s32,,)(svundef_s32(), svundef_s32(), 4);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
+ SVE_ACLE_FUNC(svqdmullb_lane,_s64,,)(svundef_s32(), svundef_s32(), 4);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 3]}}
+ SVE_ACLE_FUNC(svqdmullt_lane,_s64,,)(svundef_s32(), svundef_s32(), -1);
+}
+
+void test_range_0_1()
+{
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
+ SVE_ACLE_FUNC(svcdot_lane,_s64,,)(svundef_s64(), svundef_s16(), svundef_s16(), -1, 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
+ SVE_ACLE_FUNC(svcmla_lane,_s32,,)(svundef_s32(), svundef_s32(), svundef_s32(), -1, 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
+ SVE_ACLE_FUNC(svcmla_lane,_s32,,)(svundef_s32(), svundef_s32(), svundef_s32(), 2, 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
+ SVE_ACLE_FUNC(svcmla_lane,_u32,,)(svundef_u32(), svundef_u32(), svundef_u32(), -1, 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
+ SVE_ACLE_FUNC(svmla_lane,_s64,,)(svundef_s64(), svundef_s64(), svundef_s64(), 2);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
+ SVE_ACLE_FUNC(svmla_lane,_u64,,)(svundef_u64(), svundef_u64(), svundef_u64(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
+ SVE_ACLE_FUNC(svmls_lane,_s64,,)(svundef_s64(), svundef_s64(), svundef_s64(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
+ SVE_ACLE_FUNC(svmls_lane,_u64,,)(svundef_u64(), svundef_u64(), svundef_u64(), 2);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
+ SVE_ACLE_FUNC(svmul_lane,_s64,,)(svundef_s64(), svundef_s64(), 2);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
+ SVE_ACLE_FUNC(svmul_lane,_u64,,)(svundef_u64(), svundef_u64(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
+ SVE_ACLE_FUNC(svqdmulh_lane,_s64,,)(svundef_s64(), svundef_s64(), 2);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
+ SVE_ACLE_FUNC(svqrdcmlah_lane,_s32,,)(svundef_s32(), svundef_s32(), svundef_s32(), 2, 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
+ SVE_ACLE_FUNC(svqrdmlah_lane,_s64,,)(svundef_s64(), svundef_s64(), svundef_s64(), 2);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
+ SVE_ACLE_FUNC(svqrdmlsh_lane,_s64,,)(svundef_s64(), svundef_s64(), svundef_s64(), 2);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 1]}}
+ SVE_ACLE_FUNC(svqrdmulh_lane,_s64,,)(svundef_s64(), svundef_s64(), 2);
+}
diff --git a/clang/test/Sema/aarch64-sve2-intrinsics/acle_sve2_imm_n.cpp b/clang/test/Sema/aarch64-sve2-intrinsics/acle_sve2_imm_n.cpp
new file mode 100644
index 0000000000000..bf3ad5e7a6d49
--- /dev/null
+++ b/clang/test/Sema/aarch64-sve2-intrinsics/acle_sve2_imm_n.cpp
@@ -0,0 +1,341 @@
+// REQUIRES: aarch64-registered-target
+
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
+
+#ifdef SVE_OVERLOADED_FORMS
+// A simple used,unused... macro, long enough to represent any SVE builtin.
+#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
+#else
+#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
+#endif
+
+#include <arm_sve.h>
+
+void test_range_0_7(svbool_t pg)
+{
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svqshlu,_n_s8,_x,)(pg, svundef_s8(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svqshlu,_n_s8,_z,)(pg, svundef_s8(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svqshlu,_n_s8,_m,)(pg, svundef_s8(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svshllb,_n_s16,,)(svundef_s8(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svshllb,_n_u16,,)(svundef_u8(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svshllt,_n_s16,,)(svundef_s8(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svshllt,_n_u16,,)(svundef_u8(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svsli,_n_s8,,)(svundef_s8(), svundef_s8(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 7]}}
+ SVE_ACLE_FUNC(svsli,_n_u8,,)(svundef_u8(), svundef_u8(), -1);
+}
+
+void test_range_1_8(svbool_t pg)
+{
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
+ SVE_ACLE_FUNC(svqrshrnb,_n_s16,,)(svundef_s16(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
+ SVE_ACLE_FUNC(svqrshrnb,_n_u16,,)(svundef_u16(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
+ SVE_ACLE_FUNC(svqrshrnt,_n_s16,,)(svundef_s8(), svundef_s16(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
+ SVE_ACLE_FUNC(svqrshrnt,_n_u16,,)(svundef_u8(), svundef_u16(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
+ SVE_ACLE_FUNC(svqrshrunb,_n_s16,,)(svundef_s16(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
+ SVE_ACLE_FUNC(svqrshrunt,_n_s16,,)(svundef_u8(), svundef_s16(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
+ SVE_ACLE_FUNC(svqshrnb,_n_s16,,)(svundef_s16(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
+ SVE_ACLE_FUNC(svqshrnb,_n_u16,,)(svundef_u16(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
+ SVE_ACLE_FUNC(svqshrnt,_n_s16,,)(svundef_s8(), svundef_s16(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
+ SVE_ACLE_FUNC(svqshrnt,_n_u16,,)(svundef_u8(), svundef_u16(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
+ SVE_ACLE_FUNC(svqshrunb,_n_s16,,)(svundef_s16(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
+ SVE_ACLE_FUNC(svqshrunt,_n_s16,,)(svundef_u8(), svundef_s16(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
+ SVE_ACLE_FUNC(svrshr,_n_s8,_x,)(pg, svundef_s8(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
+ SVE_ACLE_FUNC(svrshr,_n_s8,_z,)(pg, svundef_s8(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
+ SVE_ACLE_FUNC(svrshr,_n_s8,_m,)(pg, svundef_s8(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
+ SVE_ACLE_FUNC(svrshr,_n_u8,_x,)(pg, svundef_u8(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
+ SVE_ACLE_FUNC(svrshr,_n_u8,_z,)(pg, svundef_u8(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
+ SVE_ACLE_FUNC(svrshr,_n_u8,_m,)(pg, svundef_u8(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
+ SVE_ACLE_FUNC(svrshrnb,_n_s16,,)(svundef_s16(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
+ SVE_ACLE_FUNC(svrshrnb,_n_u16,,)(svundef_u16(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
+ SVE_ACLE_FUNC(svrshrnt,_n_s16,,)(svundef_s8(), svundef_s16(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
+ SVE_ACLE_FUNC(svrshrnt,_n_u16,,)(svundef_u8(), svundef_u16(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
+ SVE_ACLE_FUNC(svrsra,_n_s8,,)(svundef_s8(), svundef_s8(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
+ SVE_ACLE_FUNC(svrsra,_n_u8,,)(svundef_u8(), svundef_u8(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
+ SVE_ACLE_FUNC(svshrnb,_n_s16,,)(svundef_s16(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
+ SVE_ACLE_FUNC(svshrnb,_n_u16,,)(svundef_u16(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
+ SVE_ACLE_FUNC(svshrnt,_n_s16,,)(svundef_s8(), svundef_s16(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
+ SVE_ACLE_FUNC(svshrnt,_n_u16,,)(svundef_u8(), svundef_u16(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
+ SVE_ACLE_FUNC(svsra,_n_s8,,)(svundef_s8(), svundef_s8(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
+ SVE_ACLE_FUNC(svsra,_n_u8,,)(svundef_u8(), svundef_u8(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
+ SVE_ACLE_FUNC(svsri,_n_s8,,)(svundef_s8(), svundef_s8(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
+ SVE_ACLE_FUNC(svsri,_n_u8,,)(svundef_u8(), svundef_u8(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
+ SVE_ACLE_FUNC(svxar,_n_s8,,)(svundef_s8(), svundef_s8(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 8]}}
+ SVE_ACLE_FUNC(svxar,_n_u8,,)(svundef_u8(), svundef_u8(), 0);
+}
+
+void test_range_0_15(svbool_t pg)
+{
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 15]}}
+ SVE_ACLE_FUNC(svqshlu,_n_s16,_x,)(pg, svundef_s16(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 15]}}
+ SVE_ACLE_FUNC(svqshlu,_n_s16,_z,)(pg, svundef_s16(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 15]}}
+ SVE_ACLE_FUNC(svqshlu,_n_s16,_m,)(pg, svundef_s16(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 15]}}
+ SVE_ACLE_FUNC(svshllb,_n_s32,,)(svundef_s16(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 15]}}
+ SVE_ACLE_FUNC(svshllb,_n_u32,,)(svundef_u16(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 15]}}
+ SVE_ACLE_FUNC(svshllt,_n_s32,,)(svundef_s16(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 15]}}
+ SVE_ACLE_FUNC(svshllt,_n_u32,,)(svundef_u16(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 15]}}
+ SVE_ACLE_FUNC(svsli,_n_s16,,)(svundef_s16(), svundef_s16(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 15]}}
+ SVE_ACLE_FUNC(svsli,_n_u16,,)(svundef_u16(), svundef_u16(), -1);
+}
+
+void test_range_1_16(svbool_t pg)
+{
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
+ SVE_ACLE_FUNC(svqrshrnb,_n_s32,,)(svundef_s32(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
+ SVE_ACLE_FUNC(svqrshrnb,_n_u32,,)(svundef_u32(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
+ SVE_ACLE_FUNC(svqrshrnt,_n_s32,,)(svundef_s16(), svundef_s32(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
+ SVE_ACLE_FUNC(svqrshrnt,_n_u32,,)(svundef_u16(), svundef_u32(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
+ SVE_ACLE_FUNC(svqrshrunb,_n_s32,,)(svundef_s32(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
+ SVE_ACLE_FUNC(svqrshrunt,_n_s32,,)(svundef_u16(), svundef_s32(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
+ SVE_ACLE_FUNC(svqshrnb,_n_s32,,)(svundef_s32(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
+ SVE_ACLE_FUNC(svqshrnb,_n_u32,,)(svundef_u32(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
+ SVE_ACLE_FUNC(svqshrnt,_n_s32,,)(svundef_s16(), svundef_s32(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
+ SVE_ACLE_FUNC(svqshrnt,_n_u32,,)(svundef_u16(), svundef_u32(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
+ SVE_ACLE_FUNC(svqshrunb,_n_s32,,)(svundef_s32(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
+ SVE_ACLE_FUNC(svqshrunt,_n_s32,,)(svundef_u16(), svundef_s32(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
+ SVE_ACLE_FUNC(svrshr,_n_s16,_x,)(pg, svundef_s16(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
+ SVE_ACLE_FUNC(svrshr,_n_s16,_z,)(pg, svundef_s16(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
+ SVE_ACLE_FUNC(svrshr,_n_s16,_m,)(pg, svundef_s16(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
+ SVE_ACLE_FUNC(svrshr,_n_u16,_x,)(pg, svundef_u16(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
+ SVE_ACLE_FUNC(svrshr,_n_u16,_z,)(pg, svundef_u16(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
+ SVE_ACLE_FUNC(svrshr,_n_u16,_m,)(pg, svundef_u16(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
+ SVE_ACLE_FUNC(svrshrnb,_n_s32,,)(svundef_s32(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
+ SVE_ACLE_FUNC(svrshrnb,_n_u32,,)(svundef_u32(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
+ SVE_ACLE_FUNC(svrshrnt,_n_s32,,)(svundef_s16(), svundef_s32(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
+ SVE_ACLE_FUNC(svrshrnt,_n_u32,,)(svundef_u16(), svundef_u32(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
+ SVE_ACLE_FUNC(svrsra,_n_s16,,)(svundef_s16(), svundef_s16(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
+ SVE_ACLE_FUNC(svrsra,_n_u16,,)(svundef_u16(), svundef_u16(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
+ SVE_ACLE_FUNC(svshrnb,_n_s32,,)(svundef_s32(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
+ SVE_ACLE_FUNC(svshrnb,_n_u32,,)(svundef_u32(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
+ SVE_ACLE_FUNC(svshrnt,_n_s32,,)(svundef_s16(), svundef_s32(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
+ SVE_ACLE_FUNC(svshrnt,_n_u32,,)(svundef_u16(), svundef_u32(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
+ SVE_ACLE_FUNC(svsra,_n_s16,,)(svundef_s16(), svundef_s16(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
+ SVE_ACLE_FUNC(svsra,_n_u16,,)(svundef_u16(), svundef_u16(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
+ SVE_ACLE_FUNC(svsri,_n_s16,,)(svundef_s16(), svundef_s16(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
+ SVE_ACLE_FUNC(svsri,_n_u16,,)(svundef_u16(), svundef_u16(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
+ SVE_ACLE_FUNC(svxar,_n_s16,,)(svundef_s16(), svundef_s16(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 16]}}
+ SVE_ACLE_FUNC(svxar,_n_u16,,)(svundef_u16(), svundef_u16(), 0);
+}
+
+void test_range_0_31(svbool_t pg)
+{
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 31]}}
+ SVE_ACLE_FUNC(svqshlu,_n_s32,_x,)(pg, svundef_s32(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 31]}}
+ SVE_ACLE_FUNC(svqshlu,_n_s32,_z,)(pg, svundef_s32(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 31]}}
+ SVE_ACLE_FUNC(svqshlu,_n_s32,_m,)(pg, svundef_s32(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 31]}}
+ SVE_ACLE_FUNC(svshllb,_n_s64,,)(svundef_s32(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 31]}}
+ SVE_ACLE_FUNC(svshllb,_n_u64,,)(svundef_u32(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 31]}}
+ SVE_ACLE_FUNC(svshllt,_n_s64,,)(svundef_s32(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 31]}}
+ SVE_ACLE_FUNC(svshllt,_n_u64,,)(svundef_u32(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 31]}}
+ SVE_ACLE_FUNC(svsli,_n_s32,,)(svundef_s32(), svundef_s32(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 31]}}
+ SVE_ACLE_FUNC(svsli,_n_u32,,)(svundef_u32(), svundef_u32(), -1);
+}
+
+void test_range_1_32(svbool_t pg)
+{
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
+ SVE_ACLE_FUNC(svqrshrnb,_n_s64,,)(svundef_s64(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
+ SVE_ACLE_FUNC(svqrshrnb,_n_u64,,)(svundef_u64(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
+ SVE_ACLE_FUNC(svqrshrnt,_n_s64,,)(svundef_s32(), svundef_s64(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
+ SVE_ACLE_FUNC(svqrshrnt,_n_u64,,)(svundef_u32(), svundef_u64(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
+ SVE_ACLE_FUNC(svqrshrunb,_n_s64,,)(svundef_s64(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
+ SVE_ACLE_FUNC(svqrshrunt,_n_s64,,)(svundef_u32(), svundef_s64(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
+ SVE_ACLE_FUNC(svqshrnb,_n_s64,,)(svundef_s64(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
+ SVE_ACLE_FUNC(svqshrnb,_n_u64,,)(svundef_u64(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
+ SVE_ACLE_FUNC(svqshrnt,_n_s64,,)(svundef_s32(), svundef_s64(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
+ SVE_ACLE_FUNC(svqshrnt,_n_u64,,)(svundef_u32(), svundef_u64(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
+ SVE_ACLE_FUNC(svqshrunb,_n_s64,,)(svundef_s64(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
+ SVE_ACLE_FUNC(svqshrunt,_n_s64,,)(svundef_u32(), svundef_s64(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
+ SVE_ACLE_FUNC(svrshr,_n_s32,_x,)(pg, svundef_s32(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
+ SVE_ACLE_FUNC(svrshr,_n_s32,_z,)(pg, svundef_s32(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
+ SVE_ACLE_FUNC(svrshr,_n_s32,_m,)(pg, svundef_s32(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
+ SVE_ACLE_FUNC(svrshr,_n_u32,_x,)(pg, svundef_u32(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
+ SVE_ACLE_FUNC(svrshr,_n_u32,_z,)(pg, svundef_u32(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
+ SVE_ACLE_FUNC(svrshr,_n_u32,_m,)(pg, svundef_u32(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
+ SVE_ACLE_FUNC(svrshrnb,_n_s64,,)(svundef_s64(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
+ SVE_ACLE_FUNC(svrshrnb,_n_u64,,)(svundef_u64(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
+ SVE_ACLE_FUNC(svrshrnt,_n_s64,,)(svundef_s32(), svundef_s64(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
+ SVE_ACLE_FUNC(svrshrnt,_n_u64,,)(svundef_u32(), svundef_u64(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
+ SVE_ACLE_FUNC(svrsra,_n_s32,,)(svundef_s32(), svundef_s32(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
+ SVE_ACLE_FUNC(svrsra,_n_u32,,)(svundef_u32(), svundef_u32(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
+ SVE_ACLE_FUNC(svshrnb,_n_s64,,)(svundef_s64(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
+ SVE_ACLE_FUNC(svshrnb,_n_u64,,)(svundef_u64(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
+ SVE_ACLE_FUNC(svshrnt,_n_s64,,)(svundef_s32(), svundef_s64(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
+ SVE_ACLE_FUNC(svshrnt,_n_u64,,)(svundef_u32(), svundef_u64(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
+ SVE_ACLE_FUNC(svsra,_n_s32,,)(svundef_s32(), svundef_s32(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
+ SVE_ACLE_FUNC(svsra,_n_u32,,)(svundef_u32(), svundef_u32(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
+ SVE_ACLE_FUNC(svsri,_n_s32,,)(svundef_s32(), svundef_s32(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
+ SVE_ACLE_FUNC(svsri,_n_u32,,)(svundef_u32(), svundef_u32(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
+ SVE_ACLE_FUNC(svxar,_n_s32,,)(svundef_s32(), svundef_s32(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 32]}}
+ SVE_ACLE_FUNC(svxar,_n_u32,,)(svundef_u32(), svundef_u32(), 0);
+}
+
+void test_range_0_63(svbool_t pg)
+{
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 63]}}
+ SVE_ACLE_FUNC(svqshlu,_n_s64,_x,)(pg, svundef_s64(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 63]}}
+ SVE_ACLE_FUNC(svqshlu,_n_s64,_z,)(pg, svundef_s64(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 63]}}
+ SVE_ACLE_FUNC(svqshlu,_n_s64,_m,)(pg, svundef_s64(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 63]}}
+ SVE_ACLE_FUNC(svsli,_n_s64,,)(svundef_s64(), svundef_s64(), -1);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [0, 63]}}
+ SVE_ACLE_FUNC(svsli,_n_u64,,)(svundef_u64(), svundef_u64(), -1);
+}
+
+void test_range_1_64(svbool_t pg)
+{
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
+ SVE_ACLE_FUNC(svrshr,_n_s64,_x,)(pg, svundef_s64(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
+ SVE_ACLE_FUNC(svrshr,_n_s64,_z,)(pg, svundef_s64(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
+ SVE_ACLE_FUNC(svrshr,_n_s64,_m,)(pg, svundef_s64(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
+ SVE_ACLE_FUNC(svrshr,_n_u64,_x,)(pg, svundef_u64(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
+ SVE_ACLE_FUNC(svrshr,_n_u64,_z,)(pg, svundef_u64(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
+ SVE_ACLE_FUNC(svrshr,_n_u64,_m,)(pg, svundef_u64(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
+ SVE_ACLE_FUNC(svrsra,_n_s64,,)(svundef_s64(), svundef_s64(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
+ SVE_ACLE_FUNC(svrsra,_n_u64,,)(svundef_u64(), svundef_u64(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
+ SVE_ACLE_FUNC(svsra,_n_s64,,)(svundef_s64(), svundef_s64(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
+ SVE_ACLE_FUNC(svsra,_n_u64,,)(svundef_u64(), svundef_u64(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
+ SVE_ACLE_FUNC(svsri,_n_s64,,)(svundef_s64(), svundef_s64(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
+ SVE_ACLE_FUNC(svsri,_n_u64,,)(svundef_u64(), svundef_u64(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
+ SVE_ACLE_FUNC(svxar,_n_s64,,)(svundef_s64(), svundef_s64(), 0);
+ // expected-error-re at +1 {{argument value {{[0-9]+}} is outside the valid range [1, 64]}}
+ SVE_ACLE_FUNC(svxar,_n_u64,,)(svundef_u64(), svundef_u64(), 0);
+}
diff --git a/clang/test/Sema/aarch64-sve2-intrinsics/acle_sve2_imm_rotation.cpp b/clang/test/Sema/aarch64-sve2-intrinsics/acle_sve2_imm_rotation.cpp
new file mode 100644
index 0000000000000..e92c3c5de254f
--- /dev/null
+++ b/clang/test/Sema/aarch64-sve2-intrinsics/acle_sve2_imm_rotation.cpp
@@ -0,0 +1,89 @@
+// REQUIRES: aarch64-registered-target
+
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -verify %s
+
+#ifdef SVE_OVERLOADED_FORMS
+// A simple used,unused... macro, long enough to represent any SVE builtin.
+#define SVE_ACLE_FUNC(A1,A2_UNUSED,A3,A4_UNUSED) A1##A3
+#else
+#define SVE_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A4
+#endif
+
+#include <arm_sve.h>
+
+void test_90_270()
+{
+ // expected-error at +1 {{argument should be the value 90 or 270}}
+ SVE_ACLE_FUNC(svcadd,_s8,,)(svundef_s8(), svundef_s8(), 0);
+ // expected-error at +1 {{argument should be the value 90 or 270}}
+ SVE_ACLE_FUNC(svcadd,_u8,,)(svundef_u8(), svundef_u8(), 180);
+ // expected-error at +1 {{argument should be the value 90 or 270}}
+ SVE_ACLE_FUNC(svcadd,_s16,,)(svundef_s16(), svundef_s16(), 0);
+ // expected-error at +1 {{argument should be the value 90 or 270}}
+ SVE_ACLE_FUNC(svcadd,_u16,,)(svundef_u16(), svundef_u16(), 180);
+ // expected-error at +1 {{argument should be the value 90 or 270}}
+ SVE_ACLE_FUNC(svcadd,_s32,,)(svundef_s32(), svundef_s32(), 0);
+ // expected-error at +1 {{argument should be the value 90 or 270}}
+ SVE_ACLE_FUNC(svcadd,_u32,,)(svundef_u32(), svundef_u32(), 180);
+ // expected-error at +1 {{argument should be the value 90 or 270}}
+ SVE_ACLE_FUNC(svcadd,_s64,,)(svundef_s64(), svundef_s64(), 0);
+ // expected-error at +1 {{argument should be the value 90 or 270}}
+ SVE_ACLE_FUNC(svcadd,_u64,,)(svundef_u64(), svundef_u64(), 180);
+ // expected-error at +1 {{argument should be the value 90 or 270}}
+ SVE_ACLE_FUNC(svqcadd,_s8,,)(svundef_s8(), svundef_s8(), 0);
+ // expected-error at +1 {{argument should be the value 90 or 270}}
+ SVE_ACLE_FUNC(svqcadd,_s16,,)(svundef_s16(), svundef_s16(), 180);
+ // expected-error at +1 {{argument should be the value 90 or 270}}
+ SVE_ACLE_FUNC(svqcadd,_s32,,)(svundef_s32(), svundef_s32(), 0);
+ // expected-error at +1 {{argument should be the value 90 or 270}}
+ SVE_ACLE_FUNC(svqcadd,_s64,,)(svundef_s64(), svundef_s64(), 180);
+}
+
+void test_0_90_180_270()
+{
+ // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
+ SVE_ACLE_FUNC(svcdot,_s32,,)(svundef_s32(), svundef_s8(), svundef_s8(), 19);
+ // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
+ SVE_ACLE_FUNC(svcdot_lane,_s32,,)(svundef_s32(), svundef_s8(), svundef_s8(), 0, 19);
+ // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
+ SVE_ACLE_FUNC(svcdot,_s64,,)(svundef_s64(), svundef_s16(), svundef_s16(), 19);
+ // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
+ SVE_ACLE_FUNC(svcdot_lane,_s64,,)(svundef_s64(), svundef_s16(), svundef_s16(), 0, 19);
+ // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
+ SVE_ACLE_FUNC(svcmla,_s8,,)(svundef_s8(), svundef_s8(), svundef_s8(), 19);
+ // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
+ SVE_ACLE_FUNC(svcmla,_u8,,)(svundef_u8(), svundef_u8(), svundef_u8(), 19);
+ // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
+ SVE_ACLE_FUNC(svcmla,_s16,,)(svundef_s16(), svundef_s16(), svundef_s16(), 19);
+ // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
+ SVE_ACLE_FUNC(svcmla_lane,_s16,,)(svundef_s16(), svundef_s16(), svundef_s16(), 0, 19);
+ // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
+ SVE_ACLE_FUNC(svcmla,_u16,,)(svundef_u16(), svundef_u16(), svundef_u16(), 19);
+ // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
+ SVE_ACLE_FUNC(svcmla_lane,_u16,,)(svundef_u16(), svundef_u16(), svundef_u16(), 0, 19);
+ // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
+ SVE_ACLE_FUNC(svcmla,_s32,,)(svundef_s32(), svundef_s32(), svundef_s32(), 19);
+ // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
+ SVE_ACLE_FUNC(svcmla_lane,_s32,,)(svundef_s32(), svundef_s32(), svundef_s32(), 1, 19);
+ // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
+ SVE_ACLE_FUNC(svcmla,_u32,,)(svundef_u32(), svundef_u32(), svundef_u32(), 19);
+ // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
+ SVE_ACLE_FUNC(svcmla_lane,_u32,,)(svundef_u32(), svundef_u32(), svundef_u32(), 0, 19);
+ // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
+ SVE_ACLE_FUNC(svcmla,_s64,,)(svundef_s64(), svundef_s64(), svundef_s64(), 19);
+ // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
+ SVE_ACLE_FUNC(svcmla,_u64,,)(svundef_u64(), svundef_u64(), svundef_u64(), 19);
+ // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
+ SVE_ACLE_FUNC(svqrdcmlah,_s8,,)(svundef_s8(), svundef_s8(), svundef_s8(), 19);
+ // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
+ SVE_ACLE_FUNC(svqrdcmlah,_s16,,)(svundef_s16(), svundef_s16(), svundef_s16(), 19);
+ // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
+ SVE_ACLE_FUNC(svqrdcmlah_lane,_s16,,)(svundef_s16(), svundef_s16(), svundef_s16(), 0, 19);
+ // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
+ SVE_ACLE_FUNC(svqrdcmlah,_s32,,)(svundef_s32(), svundef_s32(), svundef_s32(), 19);
+ // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
+ SVE_ACLE_FUNC(svqrdcmlah_lane,_s32,,)(svundef_s32(), svundef_s32(), svundef_s32(), 0, 19);
+ // expected-error at +1 {{argument should be the value 0, 90, 180 or 270}}
+ SVE_ACLE_FUNC(svqrdcmlah,_s64,,)(svundef_s64(), svundef_s64(), svundef_s64(), 19);
+}
More information about the cfe-commits
mailing list