[Clang][Sema] Extend test coverage for SVE/SME builtin usage. (#156908)
Adds SEMA tests to verify correct SVE/SME builtin usage based on the calling function's type (i.e. normal, streaming or streaming compatible). For invalid uses the tests verify the expected diagnostic is emitted. This exposed an issue whereby some builtins are incorrectly callable by streaming compatible functions, which this PR fixes. The tests are autogenerated based on the builtin definitions (e.g. arm_sve.td). This is achieved by extending SVEEmitter, which can now emit a JSON file containing builtin usage information that can be fed to aarch64_builtins_test_generator.py that is also part of this PR. Everything currently in `clang/test/Sema/AArch64` is the result of: ``` clang/utils/aarch64_builtins_test_generator.py --gen-streaming-guard-tests <LLVM_BUILD_DIR>/tools/clang/include/clang/Basic/arm_sve_builtins.json --out-dir clang/test/Sema/AArch64/ clang/utils/aarch64_builtins_test_generator.py --gen-streaming-guard-tests <LLVM_BUILD_DIR>/tools/clang/include/clang/Basic/arm_sme_builtins.json --out-dir clang/test/Sema/AArch64/ ```
This commit is contained in:
parent
ad00610831
commit
ff9cdbdb1a
@ -159,6 +159,9 @@ clang_tablegen(arm_mve_builtin_aliases.inc -gen-arm-mve-builtin-aliases
|
||||
clang_tablegen(arm_sve_builtins.inc -gen-arm-sve-builtins
|
||||
SOURCE arm_sve.td
|
||||
TARGET ClangARMSveBuiltins)
|
||||
clang_tablegen(arm_sve_builtins.json -gen-arm-sve-builtins-json
|
||||
SOURCE arm_sve.td
|
||||
TARGET ClangARMSveBuiltinsJSON)
|
||||
clang_tablegen(arm_sve_builtin_cg.inc -gen-arm-sve-builtin-codegen
|
||||
SOURCE arm_sve.td
|
||||
TARGET ClangARMSveBuiltinCG)
|
||||
@ -174,6 +177,9 @@ clang_tablegen(arm_sve_streaming_attrs.inc -gen-arm-sve-streaming-attrs
|
||||
clang_tablegen(arm_sme_builtins.inc -gen-arm-sme-builtins
|
||||
SOURCE arm_sme.td
|
||||
TARGET ClangARMSmeBuiltins)
|
||||
clang_tablegen(arm_sme_builtins.json -gen-arm-sme-builtins-json
|
||||
SOURCE arm_sme.td
|
||||
TARGET ClangARMSmeBuiltinsJSON)
|
||||
clang_tablegen(arm_sme_builtin_cg.inc -gen-arm-sme-builtin-codegen
|
||||
SOURCE arm_sme.td
|
||||
TARGET ClangARMSmeBuiltinCG)
|
||||
|
||||
@ -603,8 +603,8 @@ static bool checkArmStreamingBuiltin(Sema &S, CallExpr *TheCall,
|
||||
bool SatisfiesSME = Builtin::evaluateRequiredTargetFeatures(
|
||||
StreamingBuiltinGuard, CallerFeatures);
|
||||
|
||||
if ((SatisfiesSVE && SatisfiesSME) ||
|
||||
(SatisfiesSVE && FnType == SemaARM::ArmStreamingCompatible))
|
||||
if (SatisfiesSVE && SatisfiesSME)
|
||||
// Function type is irrelevant for streaming-agnostic builtins.
|
||||
return false;
|
||||
else if (SatisfiesSVE)
|
||||
BuiltinType = SemaARM::ArmNonStreaming;
|
||||
|
||||
@ -1,10 +1,9 @@
|
||||
// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py
|
||||
// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-sha3 -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
|
||||
// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +sme -target-feature +sme2 -target-feature +sme2p1 -target-feature +sve-sha3 -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
|
||||
// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sme2p1 -target-feature +sve-sha3 -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
|
||||
// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-sha3 -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
|
||||
// RUN: %clang_cc1 -fclang-abi-compat=latest -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-sha3 -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
|
||||
// RUN: %clang_cc1 -fclang-abi-compat=latest -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-sha3 -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
|
||||
// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +sve -target-feature +sve-sha3 -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
|
||||
// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +sme -target-feature +sme2p1 -target-feature +sve-sha3 -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
|
||||
// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +sve -target-feature +sve-sha3 -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
|
||||
// RUN: %clang_cc1 -fclang-abi-compat=latest -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve-sha3 -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
|
||||
// RUN: %clang_cc1 -fclang-abi-compat=latest -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve-sha3 -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
|
||||
48
clang/test/Sema/AArch64/arm_sme_streaming_compatible_sme.c
Normal file
48
clang/test/Sema/AArch64/arm_sme_streaming_compatible_sme.c
Normal file
@ -0,0 +1,48 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -verify
|
||||
// expected-no-diagnostics
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sme.h>
|
||||
|
||||
// Properties: guard="" streaming_guard="sme" flags="streaming-compatible,requires-za"
|
||||
|
||||
void test(void) __arm_inout("za"){
|
||||
int64_t int64_t_val;
|
||||
uint32_t uint32_t_val;
|
||||
void * void_ptr_val;
|
||||
|
||||
svldr_vnum_za(uint32_t_val, void_ptr_val, int64_t_val);
|
||||
svldr_za(uint32_t_val, void_ptr_val);
|
||||
svstr_vnum_za(uint32_t_val, void_ptr_val, int64_t_val);
|
||||
svstr_za(uint32_t_val, void_ptr_val);
|
||||
svzero_mask_za(2);
|
||||
svzero_za();
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming __arm_inout("za"){
|
||||
int64_t int64_t_val;
|
||||
uint32_t uint32_t_val;
|
||||
void * void_ptr_val;
|
||||
|
||||
svldr_vnum_za(uint32_t_val, void_ptr_val, int64_t_val);
|
||||
svldr_za(uint32_t_val, void_ptr_val);
|
||||
svstr_vnum_za(uint32_t_val, void_ptr_val, int64_t_val);
|
||||
svstr_za(uint32_t_val, void_ptr_val);
|
||||
svzero_mask_za(2);
|
||||
svzero_za();
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible __arm_inout("za"){
|
||||
int64_t int64_t_val;
|
||||
uint32_t uint32_t_val;
|
||||
void * void_ptr_val;
|
||||
|
||||
svldr_vnum_za(uint32_t_val, void_ptr_val, int64_t_val);
|
||||
svldr_za(uint32_t_val, void_ptr_val);
|
||||
svstr_vnum_za(uint32_t_val, void_ptr_val, int64_t_val);
|
||||
svstr_za(uint32_t_val, void_ptr_val);
|
||||
svzero_mask_za(2);
|
||||
svzero_za();
|
||||
}
|
||||
@ -0,0 +1,33 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sme2 -verify
|
||||
// expected-no-diagnostics
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sme.h>
|
||||
|
||||
// Properties: guard="" streaming_guard="sme,sme2" flags="streaming-compatible,requires-zt"
|
||||
|
||||
void test(void) __arm_inout("zt0"){
|
||||
void * void_ptr_val;
|
||||
|
||||
svldr_zt(0, void_ptr_val);
|
||||
svstr_zt(0, void_ptr_val);
|
||||
svzero_zt(0);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming __arm_inout("zt0"){
|
||||
void * void_ptr_val;
|
||||
|
||||
svldr_zt(0, void_ptr_val);
|
||||
svstr_zt(0, void_ptr_val);
|
||||
svzero_zt(0);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible __arm_inout("zt0"){
|
||||
void * void_ptr_val;
|
||||
|
||||
svldr_zt(0, void_ptr_val);
|
||||
svstr_zt(0, void_ptr_val);
|
||||
svzero_zt(0);
|
||||
}
|
||||
1491
clang/test/Sema/AArch64/arm_sme_streaming_only_sme.c
Normal file
1491
clang/test/Sema/AArch64/arm_sme_streaming_only_sme.c
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,70 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sme-f16f16 -target-feature +sve -verify=streaming-guard
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sme-f8f16 -target-feature +sve -verify=streaming-guard
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sme.h>
|
||||
|
||||
// Properties: guard="" streaming_guard="sme,(sme-f16f16|sme-f8f16)" flags="streaming-only,requires-za"
|
||||
|
||||
void test(void) __arm_inout("za"){
|
||||
svfloat16x2_t svfloat16x2_t_val;
|
||||
svfloat16x4_t svfloat16x4_t_val;
|
||||
uint32_t uint32_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za16_f16_vg1x2(uint32_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za16_f16_vg1x4(uint32_t_val, svfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za16_vg1x2(uint32_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za16_vg1x4(uint32_t_val, svfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za16_f16_vg1x2(uint32_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za16_f16_vg1x4(uint32_t_val, svfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za16_vg1x2(uint32_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za16_vg1x4(uint32_t_val, svfloat16x4_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming __arm_inout("za"){
|
||||
svfloat16x2_t svfloat16x2_t_val;
|
||||
svfloat16x4_t svfloat16x4_t_val;
|
||||
uint32_t uint32_t_val;
|
||||
|
||||
svadd_za16_f16_vg1x2(uint32_t_val, svfloat16x2_t_val);
|
||||
svadd_za16_f16_vg1x4(uint32_t_val, svfloat16x4_t_val);
|
||||
svadd_za16_vg1x2(uint32_t_val, svfloat16x2_t_val);
|
||||
svadd_za16_vg1x4(uint32_t_val, svfloat16x4_t_val);
|
||||
svsub_za16_f16_vg1x2(uint32_t_val, svfloat16x2_t_val);
|
||||
svsub_za16_f16_vg1x4(uint32_t_val, svfloat16x4_t_val);
|
||||
svsub_za16_vg1x2(uint32_t_val, svfloat16x2_t_val);
|
||||
svsub_za16_vg1x4(uint32_t_val, svfloat16x4_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible __arm_inout("za"){
|
||||
svfloat16x2_t svfloat16x2_t_val;
|
||||
svfloat16x4_t svfloat16x4_t_val;
|
||||
uint32_t uint32_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za16_f16_vg1x2(uint32_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za16_f16_vg1x4(uint32_t_val, svfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za16_vg1x2(uint32_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za16_vg1x4(uint32_t_val, svfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za16_f16_vg1x2(uint32_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za16_f16_vg1x4(uint32_t_val, svfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za16_vg1x2(uint32_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za16_vg1x4(uint32_t_val, svfloat16x4_t_val);
|
||||
}
|
||||
@ -0,0 +1,215 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sme-b16b16 -target-feature +sve -verify=streaming-guard
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sme.h>
|
||||
|
||||
// Properties: guard="" streaming_guard="sme,sme-b16b16" flags="streaming-only,requires-za"
|
||||
|
||||
void test(void) __arm_inout("za"){
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svbfloat16x2_t svbfloat16x2_t_val;
|
||||
svbfloat16x4_t svbfloat16x4_t_val;
|
||||
svbool_t svbool_t_val;
|
||||
uint32_t uint32_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za16_bf16_vg1x2(uint32_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za16_bf16_vg1x4(uint32_t_val, svbfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za16_vg1x2(uint32_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za16_vg1x4(uint32_t_val, svbfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za16_bf16_vg1x2(uint32_t_val, svbfloat16x2_t_val, svbfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za16_bf16_vg1x4(uint32_t_val, svbfloat16x4_t_val, svbfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za16_vg1x2(uint32_t_val, svbfloat16x2_t_val, svbfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za16_vg1x4(uint32_t_val, svbfloat16x4_t_val, svbfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_single_za16_bf16_vg1x2(uint32_t_val, svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_single_za16_bf16_vg1x4(uint32_t_val, svbfloat16x4_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za16_bf16_vg1x2(uint32_t_val, svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za16_bf16_vg1x4(uint32_t_val, svbfloat16x4_t_val, svbfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za16_vg1x2(uint32_t_val, svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za16_vg1x2(uint32_t_val, svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za16_vg1x4(uint32_t_val, svbfloat16x4_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za16_vg1x4(uint32_t_val, svbfloat16x4_t_val, svbfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za16_bf16_vg1x2(uint32_t_val, svbfloat16x2_t_val, svbfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za16_bf16_vg1x4(uint32_t_val, svbfloat16x4_t_val, svbfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za16_vg1x2(uint32_t_val, svbfloat16x2_t_val, svbfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za16_vg1x4(uint32_t_val, svbfloat16x4_t_val, svbfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_single_za16_bf16_vg1x2(uint32_t_val, svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_single_za16_bf16_vg1x4(uint32_t_val, svbfloat16x4_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za16_bf16_vg1x2(uint32_t_val, svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za16_bf16_vg1x4(uint32_t_val, svbfloat16x4_t_val, svbfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za16_vg1x2(uint32_t_val, svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za16_vg1x2(uint32_t_val, svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za16_vg1x4(uint32_t_val, svbfloat16x4_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za16_vg1x4(uint32_t_val, svbfloat16x4_t_val, svbfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmopa_za16_bf16_m(1, svbool_t_val, svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmopa_za16_m(1, svbool_t_val, svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmops_za16_bf16_m(1, svbool_t_val, svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmops_za16_m(1, svbool_t_val, svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za16_bf16_vg1x2(uint32_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za16_bf16_vg1x4(uint32_t_val, svbfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za16_vg1x2(uint32_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za16_vg1x4(uint32_t_val, svbfloat16x4_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming __arm_inout("za"){
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svbfloat16x2_t svbfloat16x2_t_val;
|
||||
svbfloat16x4_t svbfloat16x4_t_val;
|
||||
svbool_t svbool_t_val;
|
||||
uint32_t uint32_t_val;
|
||||
|
||||
svadd_za16_bf16_vg1x2(uint32_t_val, svbfloat16x2_t_val);
|
||||
svadd_za16_bf16_vg1x4(uint32_t_val, svbfloat16x4_t_val);
|
||||
svadd_za16_vg1x2(uint32_t_val, svbfloat16x2_t_val);
|
||||
svadd_za16_vg1x4(uint32_t_val, svbfloat16x4_t_val);
|
||||
svmla_lane_za16_bf16_vg1x2(uint32_t_val, svbfloat16x2_t_val, svbfloat16_t_val, 2);
|
||||
svmla_lane_za16_bf16_vg1x4(uint32_t_val, svbfloat16x4_t_val, svbfloat16_t_val, 2);
|
||||
svmla_lane_za16_vg1x2(uint32_t_val, svbfloat16x2_t_val, svbfloat16_t_val, 2);
|
||||
svmla_lane_za16_vg1x4(uint32_t_val, svbfloat16x4_t_val, svbfloat16_t_val, 2);
|
||||
svmla_single_za16_bf16_vg1x2(uint32_t_val, svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
svmla_single_za16_bf16_vg1x4(uint32_t_val, svbfloat16x4_t_val, svbfloat16_t_val);
|
||||
svmla_za16_bf16_vg1x2(uint32_t_val, svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
svmla_za16_bf16_vg1x4(uint32_t_val, svbfloat16x4_t_val, svbfloat16x4_t_val);
|
||||
svmla_za16_vg1x2(uint32_t_val, svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
svmla_za16_vg1x2(uint32_t_val, svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
svmla_za16_vg1x4(uint32_t_val, svbfloat16x4_t_val, svbfloat16_t_val);
|
||||
svmla_za16_vg1x4(uint32_t_val, svbfloat16x4_t_val, svbfloat16x4_t_val);
|
||||
svmls_lane_za16_bf16_vg1x2(uint32_t_val, svbfloat16x2_t_val, svbfloat16_t_val, 2);
|
||||
svmls_lane_za16_bf16_vg1x4(uint32_t_val, svbfloat16x4_t_val, svbfloat16_t_val, 2);
|
||||
svmls_lane_za16_vg1x2(uint32_t_val, svbfloat16x2_t_val, svbfloat16_t_val, 2);
|
||||
svmls_lane_za16_vg1x4(uint32_t_val, svbfloat16x4_t_val, svbfloat16_t_val, 2);
|
||||
svmls_single_za16_bf16_vg1x2(uint32_t_val, svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
svmls_single_za16_bf16_vg1x4(uint32_t_val, svbfloat16x4_t_val, svbfloat16_t_val);
|
||||
svmls_za16_bf16_vg1x2(uint32_t_val, svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
svmls_za16_bf16_vg1x4(uint32_t_val, svbfloat16x4_t_val, svbfloat16x4_t_val);
|
||||
svmls_za16_vg1x2(uint32_t_val, svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
svmls_za16_vg1x2(uint32_t_val, svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
svmls_za16_vg1x4(uint32_t_val, svbfloat16x4_t_val, svbfloat16_t_val);
|
||||
svmls_za16_vg1x4(uint32_t_val, svbfloat16x4_t_val, svbfloat16x4_t_val);
|
||||
svmopa_za16_bf16_m(1, svbool_t_val, svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmopa_za16_m(1, svbool_t_val, svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmops_za16_bf16_m(1, svbool_t_val, svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmops_za16_m(1, svbool_t_val, svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svsub_za16_bf16_vg1x2(uint32_t_val, svbfloat16x2_t_val);
|
||||
svsub_za16_bf16_vg1x4(uint32_t_val, svbfloat16x4_t_val);
|
||||
svsub_za16_vg1x2(uint32_t_val, svbfloat16x2_t_val);
|
||||
svsub_za16_vg1x4(uint32_t_val, svbfloat16x4_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible __arm_inout("za"){
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svbfloat16x2_t svbfloat16x2_t_val;
|
||||
svbfloat16x4_t svbfloat16x4_t_val;
|
||||
svbool_t svbool_t_val;
|
||||
uint32_t uint32_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za16_bf16_vg1x2(uint32_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za16_bf16_vg1x4(uint32_t_val, svbfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za16_vg1x2(uint32_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za16_vg1x4(uint32_t_val, svbfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za16_bf16_vg1x2(uint32_t_val, svbfloat16x2_t_val, svbfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za16_bf16_vg1x4(uint32_t_val, svbfloat16x4_t_val, svbfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za16_vg1x2(uint32_t_val, svbfloat16x2_t_val, svbfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za16_vg1x4(uint32_t_val, svbfloat16x4_t_val, svbfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_single_za16_bf16_vg1x2(uint32_t_val, svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_single_za16_bf16_vg1x4(uint32_t_val, svbfloat16x4_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za16_bf16_vg1x2(uint32_t_val, svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za16_bf16_vg1x4(uint32_t_val, svbfloat16x4_t_val, svbfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za16_vg1x2(uint32_t_val, svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za16_vg1x2(uint32_t_val, svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za16_vg1x4(uint32_t_val, svbfloat16x4_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za16_vg1x4(uint32_t_val, svbfloat16x4_t_val, svbfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za16_bf16_vg1x2(uint32_t_val, svbfloat16x2_t_val, svbfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za16_bf16_vg1x4(uint32_t_val, svbfloat16x4_t_val, svbfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za16_vg1x2(uint32_t_val, svbfloat16x2_t_val, svbfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za16_vg1x4(uint32_t_val, svbfloat16x4_t_val, svbfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_single_za16_bf16_vg1x2(uint32_t_val, svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_single_za16_bf16_vg1x4(uint32_t_val, svbfloat16x4_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za16_bf16_vg1x2(uint32_t_val, svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za16_bf16_vg1x4(uint32_t_val, svbfloat16x4_t_val, svbfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za16_vg1x2(uint32_t_val, svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za16_vg1x2(uint32_t_val, svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za16_vg1x4(uint32_t_val, svbfloat16x4_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za16_vg1x4(uint32_t_val, svbfloat16x4_t_val, svbfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmopa_za16_bf16_m(1, svbool_t_val, svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmopa_za16_m(1, svbool_t_val, svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmops_za16_bf16_m(1, svbool_t_val, svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmops_za16_m(1, svbool_t_val, svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za16_bf16_vg1x2(uint32_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za16_bf16_vg1x4(uint32_t_val, svbfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za16_vg1x2(uint32_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za16_vg1x4(uint32_t_val, svbfloat16x4_t_val);
|
||||
}
|
||||
@ -0,0 +1,175 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sme-f16f16 -target-feature +sve -verify=streaming-guard
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sme.h>
|
||||
|
||||
// Properties: guard="" streaming_guard="sme,sme-f16f16" flags="streaming-only,requires-za"
|
||||
|
||||
void test(void) __arm_inout("za"){
|
||||
svbool_t svbool_t_val;
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svfloat16x2_t svfloat16x2_t_val;
|
||||
svfloat16x4_t svfloat16x4_t_val;
|
||||
uint32_t uint32_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za16_f16_vg1x2(uint32_t_val, svfloat16x2_t_val, svfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za16_f16_vg1x4(uint32_t_val, svfloat16x4_t_val, svfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za16_vg1x2(uint32_t_val, svfloat16x2_t_val, svfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za16_vg1x4(uint32_t_val, svfloat16x4_t_val, svfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_single_za16_f16_vg1x2(uint32_t_val, svfloat16x2_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_single_za16_f16_vg1x4(uint32_t_val, svfloat16x4_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za16_f16_vg1x2(uint32_t_val, svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za16_f16_vg1x4(uint32_t_val, svfloat16x4_t_val, svfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za16_vg1x2(uint32_t_val, svfloat16x2_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za16_vg1x2(uint32_t_val, svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za16_vg1x4(uint32_t_val, svfloat16x4_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za16_vg1x4(uint32_t_val, svfloat16x4_t_val, svfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za16_f16_vg1x2(uint32_t_val, svfloat16x2_t_val, svfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za16_f16_vg1x4(uint32_t_val, svfloat16x4_t_val, svfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za16_vg1x2(uint32_t_val, svfloat16x2_t_val, svfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za16_vg1x4(uint32_t_val, svfloat16x4_t_val, svfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_single_za16_f16_vg1x2(uint32_t_val, svfloat16x2_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_single_za16_f16_vg1x4(uint32_t_val, svfloat16x4_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za16_f16_vg1x2(uint32_t_val, svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za16_f16_vg1x4(uint32_t_val, svfloat16x4_t_val, svfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za16_vg1x2(uint32_t_val, svfloat16x2_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za16_vg1x2(uint32_t_val, svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za16_vg1x4(uint32_t_val, svfloat16x4_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za16_vg1x4(uint32_t_val, svfloat16x4_t_val, svfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmopa_za16_f16_m(1, svbool_t_val, svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmopa_za16_m(1, svbool_t_val, svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmops_za16_f16_m(1, svbool_t_val, svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmops_za16_m(1, svbool_t_val, svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming __arm_inout("za"){
|
||||
svbool_t svbool_t_val;
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svfloat16x2_t svfloat16x2_t_val;
|
||||
svfloat16x4_t svfloat16x4_t_val;
|
||||
uint32_t uint32_t_val;
|
||||
|
||||
svmla_lane_za16_f16_vg1x2(uint32_t_val, svfloat16x2_t_val, svfloat16_t_val, 2);
|
||||
svmla_lane_za16_f16_vg1x4(uint32_t_val, svfloat16x4_t_val, svfloat16_t_val, 2);
|
||||
svmla_lane_za16_vg1x2(uint32_t_val, svfloat16x2_t_val, svfloat16_t_val, 2);
|
||||
svmla_lane_za16_vg1x4(uint32_t_val, svfloat16x4_t_val, svfloat16_t_val, 2);
|
||||
svmla_single_za16_f16_vg1x2(uint32_t_val, svfloat16x2_t_val, svfloat16_t_val);
|
||||
svmla_single_za16_f16_vg1x4(uint32_t_val, svfloat16x4_t_val, svfloat16_t_val);
|
||||
svmla_za16_f16_vg1x2(uint32_t_val, svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
svmla_za16_f16_vg1x4(uint32_t_val, svfloat16x4_t_val, svfloat16x4_t_val);
|
||||
svmla_za16_vg1x2(uint32_t_val, svfloat16x2_t_val, svfloat16_t_val);
|
||||
svmla_za16_vg1x2(uint32_t_val, svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
svmla_za16_vg1x4(uint32_t_val, svfloat16x4_t_val, svfloat16_t_val);
|
||||
svmla_za16_vg1x4(uint32_t_val, svfloat16x4_t_val, svfloat16x4_t_val);
|
||||
svmls_lane_za16_f16_vg1x2(uint32_t_val, svfloat16x2_t_val, svfloat16_t_val, 2);
|
||||
svmls_lane_za16_f16_vg1x4(uint32_t_val, svfloat16x4_t_val, svfloat16_t_val, 2);
|
||||
svmls_lane_za16_vg1x2(uint32_t_val, svfloat16x2_t_val, svfloat16_t_val, 2);
|
||||
svmls_lane_za16_vg1x4(uint32_t_val, svfloat16x4_t_val, svfloat16_t_val, 2);
|
||||
svmls_single_za16_f16_vg1x2(uint32_t_val, svfloat16x2_t_val, svfloat16_t_val);
|
||||
svmls_single_za16_f16_vg1x4(uint32_t_val, svfloat16x4_t_val, svfloat16_t_val);
|
||||
svmls_za16_f16_vg1x2(uint32_t_val, svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
svmls_za16_f16_vg1x4(uint32_t_val, svfloat16x4_t_val, svfloat16x4_t_val);
|
||||
svmls_za16_vg1x2(uint32_t_val, svfloat16x2_t_val, svfloat16_t_val);
|
||||
svmls_za16_vg1x2(uint32_t_val, svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
svmls_za16_vg1x4(uint32_t_val, svfloat16x4_t_val, svfloat16_t_val);
|
||||
svmls_za16_vg1x4(uint32_t_val, svfloat16x4_t_val, svfloat16x4_t_val);
|
||||
svmopa_za16_f16_m(1, svbool_t_val, svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
svmopa_za16_m(1, svbool_t_val, svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
svmops_za16_f16_m(1, svbool_t_val, svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
svmops_za16_m(1, svbool_t_val, svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible __arm_inout("za"){
|
||||
svbool_t svbool_t_val;
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svfloat16x2_t svfloat16x2_t_val;
|
||||
svfloat16x4_t svfloat16x4_t_val;
|
||||
uint32_t uint32_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za16_f16_vg1x2(uint32_t_val, svfloat16x2_t_val, svfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za16_f16_vg1x4(uint32_t_val, svfloat16x4_t_val, svfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za16_vg1x2(uint32_t_val, svfloat16x2_t_val, svfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za16_vg1x4(uint32_t_val, svfloat16x4_t_val, svfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_single_za16_f16_vg1x2(uint32_t_val, svfloat16x2_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_single_za16_f16_vg1x4(uint32_t_val, svfloat16x4_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za16_f16_vg1x2(uint32_t_val, svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za16_f16_vg1x4(uint32_t_val, svfloat16x4_t_val, svfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za16_vg1x2(uint32_t_val, svfloat16x2_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za16_vg1x2(uint32_t_val, svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za16_vg1x4(uint32_t_val, svfloat16x4_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za16_vg1x4(uint32_t_val, svfloat16x4_t_val, svfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za16_f16_vg1x2(uint32_t_val, svfloat16x2_t_val, svfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za16_f16_vg1x4(uint32_t_val, svfloat16x4_t_val, svfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za16_vg1x2(uint32_t_val, svfloat16x2_t_val, svfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za16_vg1x4(uint32_t_val, svfloat16x4_t_val, svfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_single_za16_f16_vg1x2(uint32_t_val, svfloat16x2_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_single_za16_f16_vg1x4(uint32_t_val, svfloat16x4_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za16_f16_vg1x2(uint32_t_val, svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za16_f16_vg1x4(uint32_t_val, svfloat16x4_t_val, svfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za16_vg1x2(uint32_t_val, svfloat16x2_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za16_vg1x2(uint32_t_val, svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za16_vg1x4(uint32_t_val, svfloat16x4_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za16_vg1x4(uint32_t_val, svfloat16x4_t_val, svfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmopa_za16_f16_m(1, svbool_t_val, svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmopa_za16_m(1, svbool_t_val, svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmops_za16_f16_m(1, svbool_t_val, svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmops_za16_m(1, svbool_t_val, svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
}
|
||||
@ -0,0 +1,46 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sme-f64f64 -target-feature +sve -verify=streaming-guard
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sme.h>
|
||||
|
||||
// Properties: guard="" streaming_guard="sme,sme-f64f64" flags="streaming-only,requires-za"
|
||||
|
||||
void test(void) __arm_inout("za"){
|
||||
svbool_t svbool_t_val;
|
||||
svfloat64_t svfloat64_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmopa_za64_f64_m(2, svbool_t_val, svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmopa_za64_m(2, svbool_t_val, svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmops_za64_f64_m(2, svbool_t_val, svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmops_za64_m(2, svbool_t_val, svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming __arm_inout("za"){
|
||||
svbool_t svbool_t_val;
|
||||
svfloat64_t svfloat64_t_val;
|
||||
|
||||
svmopa_za64_f64_m(2, svbool_t_val, svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
svmopa_za64_m(2, svbool_t_val, svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
svmops_za64_f64_m(2, svbool_t_val, svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
svmops_za64_m(2, svbool_t_val, svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible __arm_inout("za"){
|
||||
svbool_t svbool_t_val;
|
||||
svfloat64_t svfloat64_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmopa_za64_f64_m(2, svbool_t_val, svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmopa_za64_m(2, svbool_t_val, svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmops_za64_f64_m(2, svbool_t_val, svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmops_za64_m(2, svbool_t_val, svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
}
|
||||
@ -0,0 +1,198 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sme-f8f16 -target-feature +sve -verify=streaming-guard
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sme.h>
|
||||
|
||||
// Properties: guard="" streaming_guard="sme,sme-f8f16" flags="streaming-only,requires-za"
|
||||
|
||||
void test(void) __arm_inout("za"){
|
||||
fpm_t fpm_t_val;
|
||||
svbool_t svbool_t_val;
|
||||
svmfloat8_t svmfloat8_t_val;
|
||||
svmfloat8x2_t svmfloat8x2_t_val;
|
||||
svmfloat8x4_t svmfloat8x4_t_val;
|
||||
uint32_t uint32_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_za16_mf8_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_za16_mf8_vg1x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_za16_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_za16_vg1x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_single_za16_mf8_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_single_za16_mf8_vg1x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za16_mf8_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za16_mf8_vg1x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8x4_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za16_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za16_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za16_vg1x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za16_vg1x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8x4_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za16_mf8_vg2x1_fpm(uint32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za16_mf8_vg2x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za16_mf8_vg2x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za16_vg2x1_fpm(uint32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za16_vg2x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za16_vg2x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_single_za16_mf8_vg2x1_fpm(uint32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_single_za16_mf8_vg2x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_single_za16_mf8_vg2x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za16_mf8_vg2x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za16_mf8_vg2x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8x4_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za16_vg2x1_fpm(uint32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za16_vg2x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za16_vg2x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za16_vg2x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za16_vg2x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8x4_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmopa_za16_m_fpm(1, svbool_t_val, svbool_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmopa_za16_mf8_m_fpm(1, svbool_t_val, svbool_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svvdot_lane_za16_mf8_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svvdot_lane_za16_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming __arm_inout("za"){
|
||||
fpm_t fpm_t_val;
|
||||
svbool_t svbool_t_val;
|
||||
svmfloat8_t svmfloat8_t_val;
|
||||
svmfloat8x2_t svmfloat8x2_t_val;
|
||||
svmfloat8x4_t svmfloat8x4_t_val;
|
||||
uint32_t uint32_t_val;
|
||||
|
||||
svdot_lane_za16_mf8_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
svdot_lane_za16_mf8_vg1x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
svdot_lane_za16_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
svdot_lane_za16_vg1x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
svdot_single_za16_mf8_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
svdot_single_za16_mf8_vg1x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
svdot_za16_mf8_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
svdot_za16_mf8_vg1x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8x4_t_val, fpm_t_val);
|
||||
svdot_za16_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
svdot_za16_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
svdot_za16_vg1x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
svdot_za16_vg1x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8x4_t_val, fpm_t_val);
|
||||
svmla_lane_za16_mf8_vg2x1_fpm(uint32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
svmla_lane_za16_mf8_vg2x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
svmla_lane_za16_mf8_vg2x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
svmla_lane_za16_vg2x1_fpm(uint32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
svmla_lane_za16_vg2x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
svmla_lane_za16_vg2x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
svmla_single_za16_mf8_vg2x1_fpm(uint32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
svmla_single_za16_mf8_vg2x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
svmla_single_za16_mf8_vg2x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
svmla_za16_mf8_vg2x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
svmla_za16_mf8_vg2x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8x4_t_val, fpm_t_val);
|
||||
svmla_za16_vg2x1_fpm(uint32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
svmla_za16_vg2x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
svmla_za16_vg2x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
svmla_za16_vg2x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
svmla_za16_vg2x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8x4_t_val, fpm_t_val);
|
||||
svmopa_za16_m_fpm(1, svbool_t_val, svbool_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
svmopa_za16_mf8_m_fpm(1, svbool_t_val, svbool_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
svvdot_lane_za16_mf8_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
svvdot_lane_za16_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible __arm_inout("za"){
|
||||
fpm_t fpm_t_val;
|
||||
svbool_t svbool_t_val;
|
||||
svmfloat8_t svmfloat8_t_val;
|
||||
svmfloat8x2_t svmfloat8x2_t_val;
|
||||
svmfloat8x4_t svmfloat8x4_t_val;
|
||||
uint32_t uint32_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_za16_mf8_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_za16_mf8_vg1x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_za16_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_za16_vg1x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_single_za16_mf8_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_single_za16_mf8_vg1x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za16_mf8_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za16_mf8_vg1x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8x4_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za16_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za16_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za16_vg1x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za16_vg1x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8x4_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za16_mf8_vg2x1_fpm(uint32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za16_mf8_vg2x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za16_mf8_vg2x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za16_vg2x1_fpm(uint32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za16_vg2x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za16_vg2x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_single_za16_mf8_vg2x1_fpm(uint32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_single_za16_mf8_vg2x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_single_za16_mf8_vg2x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za16_mf8_vg2x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za16_mf8_vg2x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8x4_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za16_vg2x1_fpm(uint32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za16_vg2x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za16_vg2x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za16_vg2x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za16_vg2x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8x4_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmopa_za16_m_fpm(1, svbool_t_val, svbool_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmopa_za16_mf8_m_fpm(1, svbool_t_val, svbool_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svvdot_lane_za16_mf8_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svvdot_lane_za16_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
}
|
||||
@ -0,0 +1,208 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sme-f8f32 -target-feature +sve -verify=streaming-guard
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sme.h>
|
||||
|
||||
// Properties: guard="" streaming_guard="sme,sme-f8f32" flags="streaming-only,requires-za"
|
||||
|
||||
void test(void) __arm_inout("za"){
|
||||
fpm_t fpm_t_val;
|
||||
svbool_t svbool_t_val;
|
||||
svmfloat8_t svmfloat8_t_val;
|
||||
svmfloat8x2_t svmfloat8x2_t_val;
|
||||
svmfloat8x4_t svmfloat8x4_t_val;
|
||||
uint32_t uint32_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_za32_mf8_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_za32_mf8_vg1x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_za32_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_za32_vg1x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_single_za32_mf8_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_single_za32_mf8_vg1x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za32_mf8_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za32_mf8_vg1x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8x4_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za32_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za32_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za32_vg1x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za32_vg1x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8x4_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za32_mf8_vg4x1_fpm(uint32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za32_mf8_vg4x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za32_mf8_vg4x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za32_vg4x1_fpm(uint32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za32_vg4x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za32_vg4x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_single_za32_mf8_vg4x1_fpm(uint32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_single_za32_mf8_vg4x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_single_za32_mf8_vg4x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za32_mf8_vg4x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za32_mf8_vg4x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8x4_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za32_vg4x1_fpm(uint32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za32_vg4x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za32_vg4x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za32_vg4x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za32_vg4x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8x4_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmopa_za32_m_fpm(2, svbool_t_val, svbool_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmopa_za32_mf8_m_fpm(2, svbool_t_val, svbool_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svvdotb_lane_za32_mf8_vg1x4_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svvdotb_lane_za32_vg1x4_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svvdott_lane_za32_mf8_vg1x4_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svvdott_lane_za32_vg1x4_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming __arm_inout("za"){
|
||||
fpm_t fpm_t_val;
|
||||
svbool_t svbool_t_val;
|
||||
svmfloat8_t svmfloat8_t_val;
|
||||
svmfloat8x2_t svmfloat8x2_t_val;
|
||||
svmfloat8x4_t svmfloat8x4_t_val;
|
||||
uint32_t uint32_t_val;
|
||||
|
||||
svdot_lane_za32_mf8_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
svdot_lane_za32_mf8_vg1x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
svdot_lane_za32_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
svdot_lane_za32_vg1x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
svdot_single_za32_mf8_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
svdot_single_za32_mf8_vg1x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
svdot_za32_mf8_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
svdot_za32_mf8_vg1x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8x4_t_val, fpm_t_val);
|
||||
svdot_za32_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
svdot_za32_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
svdot_za32_vg1x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
svdot_za32_vg1x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8x4_t_val, fpm_t_val);
|
||||
svmla_lane_za32_mf8_vg4x1_fpm(uint32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
svmla_lane_za32_mf8_vg4x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
svmla_lane_za32_mf8_vg4x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
svmla_lane_za32_vg4x1_fpm(uint32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
svmla_lane_za32_vg4x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
svmla_lane_za32_vg4x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
svmla_single_za32_mf8_vg4x1_fpm(uint32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
svmla_single_za32_mf8_vg4x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
svmla_single_za32_mf8_vg4x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
svmla_za32_mf8_vg4x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
svmla_za32_mf8_vg4x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8x4_t_val, fpm_t_val);
|
||||
svmla_za32_vg4x1_fpm(uint32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
svmla_za32_vg4x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
svmla_za32_vg4x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
svmla_za32_vg4x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
svmla_za32_vg4x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8x4_t_val, fpm_t_val);
|
||||
svmopa_za32_m_fpm(2, svbool_t_val, svbool_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
svmopa_za32_mf8_m_fpm(2, svbool_t_val, svbool_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
svvdotb_lane_za32_mf8_vg1x4_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
svvdotb_lane_za32_vg1x4_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
svvdott_lane_za32_mf8_vg1x4_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
svvdott_lane_za32_vg1x4_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible __arm_inout("za"){
|
||||
fpm_t fpm_t_val;
|
||||
svbool_t svbool_t_val;
|
||||
svmfloat8_t svmfloat8_t_val;
|
||||
svmfloat8x2_t svmfloat8x2_t_val;
|
||||
svmfloat8x4_t svmfloat8x4_t_val;
|
||||
uint32_t uint32_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_za32_mf8_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_za32_mf8_vg1x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_za32_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_za32_vg1x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_single_za32_mf8_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_single_za32_mf8_vg1x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za32_mf8_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za32_mf8_vg1x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8x4_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za32_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za32_vg1x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za32_vg1x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za32_vg1x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8x4_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za32_mf8_vg4x1_fpm(uint32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za32_mf8_vg4x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za32_mf8_vg4x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za32_vg4x1_fpm(uint32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za32_vg4x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za32_vg4x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_single_za32_mf8_vg4x1_fpm(uint32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_single_za32_mf8_vg4x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_single_za32_mf8_vg4x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za32_mf8_vg4x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za32_mf8_vg4x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8x4_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za32_vg4x1_fpm(uint32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za32_vg4x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za32_vg4x2_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za32_vg4x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za32_vg4x4_fpm(uint32_t_val, svmfloat8x4_t_val, svmfloat8x4_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmopa_za32_m_fpm(2, svbool_t_val, svbool_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmopa_za32_mf8_m_fpm(2, svbool_t_val, svbool_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svvdotb_lane_za32_mf8_vg1x4_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svvdotb_lane_za32_vg1x4_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svvdott_lane_za32_mf8_vg1x4_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svvdott_lane_za32_vg1x4_fpm(uint32_t_val, svmfloat8x2_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
}
|
||||
@ -0,0 +1,155 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sme-i16i64 -target-feature +sve -verify=streaming-guard
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sme.h>
|
||||
|
||||
// Properties: guard="" streaming_guard="sme,sme-i16i64" flags="streaming-only,requires-za"
|
||||
|
||||
void test(void) __arm_inout("za"){
|
||||
svbool_t svbool_t_val;
|
||||
svint16_t svint16_t_val;
|
||||
svint64_t svint64_t_val;
|
||||
svuint16_t svuint16_t_val;
|
||||
svuint64_t svuint64_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svaddha_za64_m(2, svbool_t_val, svbool_t_val, svint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svaddha_za64_m(2, svbool_t_val, svbool_t_val, svuint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svaddha_za64_s64_m(2, svbool_t_val, svbool_t_val, svint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svaddha_za64_u64_m(2, svbool_t_val, svbool_t_val, svuint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svaddva_za64_m(2, svbool_t_val, svbool_t_val, svint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svaddva_za64_m(2, svbool_t_val, svbool_t_val, svuint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svaddva_za64_s64_m(2, svbool_t_val, svbool_t_val, svint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svaddva_za64_u64_m(2, svbool_t_val, svbool_t_val, svuint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmopa_za64_m(2, svbool_t_val, svbool_t_val, svint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmopa_za64_m(2, svbool_t_val, svbool_t_val, svuint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmopa_za64_s16_m(2, svbool_t_val, svbool_t_val, svint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmopa_za64_u16_m(2, svbool_t_val, svbool_t_val, svuint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmops_za64_m(2, svbool_t_val, svbool_t_val, svint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmops_za64_m(2, svbool_t_val, svbool_t_val, svuint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmops_za64_s16_m(2, svbool_t_val, svbool_t_val, svint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmops_za64_u16_m(2, svbool_t_val, svbool_t_val, svuint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsumopa_za64_m(2, svbool_t_val, svbool_t_val, svint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsumopa_za64_s16_m(2, svbool_t_val, svbool_t_val, svint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsumops_za64_m(2, svbool_t_val, svbool_t_val, svint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsumops_za64_s16_m(2, svbool_t_val, svbool_t_val, svint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svusmopa_za64_m(2, svbool_t_val, svbool_t_val, svuint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svusmopa_za64_u16_m(2, svbool_t_val, svbool_t_val, svuint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svusmops_za64_m(2, svbool_t_val, svbool_t_val, svuint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svusmops_za64_u16_m(2, svbool_t_val, svbool_t_val, svuint16_t_val, svint16_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming __arm_inout("za"){
|
||||
svbool_t svbool_t_val;
|
||||
svint16_t svint16_t_val;
|
||||
svint64_t svint64_t_val;
|
||||
svuint16_t svuint16_t_val;
|
||||
svuint64_t svuint64_t_val;
|
||||
|
||||
svaddha_za64_m(2, svbool_t_val, svbool_t_val, svint64_t_val);
|
||||
svaddha_za64_m(2, svbool_t_val, svbool_t_val, svuint64_t_val);
|
||||
svaddha_za64_s64_m(2, svbool_t_val, svbool_t_val, svint64_t_val);
|
||||
svaddha_za64_u64_m(2, svbool_t_val, svbool_t_val, svuint64_t_val);
|
||||
svaddva_za64_m(2, svbool_t_val, svbool_t_val, svint64_t_val);
|
||||
svaddva_za64_m(2, svbool_t_val, svbool_t_val, svuint64_t_val);
|
||||
svaddva_za64_s64_m(2, svbool_t_val, svbool_t_val, svint64_t_val);
|
||||
svaddva_za64_u64_m(2, svbool_t_val, svbool_t_val, svuint64_t_val);
|
||||
svmopa_za64_m(2, svbool_t_val, svbool_t_val, svint16_t_val, svint16_t_val);
|
||||
svmopa_za64_m(2, svbool_t_val, svbool_t_val, svuint16_t_val, svuint16_t_val);
|
||||
svmopa_za64_s16_m(2, svbool_t_val, svbool_t_val, svint16_t_val, svint16_t_val);
|
||||
svmopa_za64_u16_m(2, svbool_t_val, svbool_t_val, svuint16_t_val, svuint16_t_val);
|
||||
svmops_za64_m(2, svbool_t_val, svbool_t_val, svint16_t_val, svint16_t_val);
|
||||
svmops_za64_m(2, svbool_t_val, svbool_t_val, svuint16_t_val, svuint16_t_val);
|
||||
svmops_za64_s16_m(2, svbool_t_val, svbool_t_val, svint16_t_val, svint16_t_val);
|
||||
svmops_za64_u16_m(2, svbool_t_val, svbool_t_val, svuint16_t_val, svuint16_t_val);
|
||||
svsumopa_za64_m(2, svbool_t_val, svbool_t_val, svint16_t_val, svuint16_t_val);
|
||||
svsumopa_za64_s16_m(2, svbool_t_val, svbool_t_val, svint16_t_val, svuint16_t_val);
|
||||
svsumops_za64_m(2, svbool_t_val, svbool_t_val, svint16_t_val, svuint16_t_val);
|
||||
svsumops_za64_s16_m(2, svbool_t_val, svbool_t_val, svint16_t_val, svuint16_t_val);
|
||||
svusmopa_za64_m(2, svbool_t_val, svbool_t_val, svuint16_t_val, svint16_t_val);
|
||||
svusmopa_za64_u16_m(2, svbool_t_val, svbool_t_val, svuint16_t_val, svint16_t_val);
|
||||
svusmops_za64_m(2, svbool_t_val, svbool_t_val, svuint16_t_val, svint16_t_val);
|
||||
svusmops_za64_u16_m(2, svbool_t_val, svbool_t_val, svuint16_t_val, svint16_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible __arm_inout("za"){
|
||||
svbool_t svbool_t_val;
|
||||
svint16_t svint16_t_val;
|
||||
svint64_t svint64_t_val;
|
||||
svuint16_t svuint16_t_val;
|
||||
svuint64_t svuint64_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svaddha_za64_m(2, svbool_t_val, svbool_t_val, svint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svaddha_za64_m(2, svbool_t_val, svbool_t_val, svuint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svaddha_za64_s64_m(2, svbool_t_val, svbool_t_val, svint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svaddha_za64_u64_m(2, svbool_t_val, svbool_t_val, svuint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svaddva_za64_m(2, svbool_t_val, svbool_t_val, svint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svaddva_za64_m(2, svbool_t_val, svbool_t_val, svuint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svaddva_za64_s64_m(2, svbool_t_val, svbool_t_val, svint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svaddva_za64_u64_m(2, svbool_t_val, svbool_t_val, svuint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmopa_za64_m(2, svbool_t_val, svbool_t_val, svint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmopa_za64_m(2, svbool_t_val, svbool_t_val, svuint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmopa_za64_s16_m(2, svbool_t_val, svbool_t_val, svint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmopa_za64_u16_m(2, svbool_t_val, svbool_t_val, svuint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmops_za64_m(2, svbool_t_val, svbool_t_val, svint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmops_za64_m(2, svbool_t_val, svbool_t_val, svuint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmops_za64_s16_m(2, svbool_t_val, svbool_t_val, svint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmops_za64_u16_m(2, svbool_t_val, svbool_t_val, svuint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsumopa_za64_m(2, svbool_t_val, svbool_t_val, svint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsumopa_za64_s16_m(2, svbool_t_val, svbool_t_val, svint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsumops_za64_m(2, svbool_t_val, svbool_t_val, svint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsumops_za64_s16_m(2, svbool_t_val, svbool_t_val, svint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svusmopa_za64_m(2, svbool_t_val, svbool_t_val, svuint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svusmopa_za64_u16_m(2, svbool_t_val, svbool_t_val, svuint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svusmops_za64_m(2, svbool_t_val, svbool_t_val, svuint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svusmops_za64_u16_m(2, svbool_t_val, svbool_t_val, svuint16_t_val, svint16_t_val);
|
||||
}
|
||||
@ -0,0 +1,309 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sme-lutv2 -target-feature +sme2 -target-feature +sve -verify=streaming-guard
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sme.h>
|
||||
|
||||
// Properties: guard="" streaming_guard="sme,sme-lutv2" flags="streaming-only,requires-zt"
|
||||
|
||||
void test(void) __arm_inout("zt0"){
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svfloat32_t svfloat32_t_val;
|
||||
svfloat64_t svfloat64_t_val;
|
||||
svint8_t svint8_t_val;
|
||||
svint16_t svint16_t_val;
|
||||
svint32_t svint32_t_val;
|
||||
svint64_t svint64_t_val;
|
||||
svuint8_t svuint8_t_val;
|
||||
svuint8x2_t svuint8x2_t_val;
|
||||
svuint16_t svuint16_t_val;
|
||||
svuint32_t svuint32_t_val;
|
||||
svuint64_t svuint64_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_zt_s8_x4(0, svuint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_zt_u8_x4(0, svuint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt(0, svbfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt(0, svfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt(0, svfloat32_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt(0, svfloat64_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt(0, svint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt(0, svint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt(0, svint32_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt(0, svint64_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt(0, svuint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt(0, svuint32_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt(0, svuint64_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt_bf16(0, svbfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt_f16(0, svfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt_f32(0, svfloat32_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt_f64(0, svfloat64_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt_s8(0, svint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt_s16(0, svint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt_s32(0, svint32_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt_s64(0, svint64_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt_u8(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt_u16(0, svuint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt_u32(0, svuint32_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt_u64(0, svuint64_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt(0, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt(0, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt(0, svfloat32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt(0, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt(0, svint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt(0, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt(0, svint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt(0, svint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt(0, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt(0, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt(0, svuint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt(0, svuint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt_bf16(0, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt_f16(0, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt_f32(0, svfloat32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt_f64(0, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt_s8(0, svint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt_s16(0, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt_s32(0, svint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt_s64(0, svint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt_u8(0, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt_u16(0, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt_u32(0, svuint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt_u64(0, svuint64_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming __arm_inout("zt0"){
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svfloat32_t svfloat32_t_val;
|
||||
svfloat64_t svfloat64_t_val;
|
||||
svint8_t svint8_t_val;
|
||||
svint16_t svint16_t_val;
|
||||
svint32_t svint32_t_val;
|
||||
svint64_t svint64_t_val;
|
||||
svuint8_t svuint8_t_val;
|
||||
svuint8x2_t svuint8x2_t_val;
|
||||
svuint16_t svuint16_t_val;
|
||||
svuint32_t svuint32_t_val;
|
||||
svuint64_t svuint64_t_val;
|
||||
|
||||
svluti4_zt_s8_x4(0, svuint8x2_t_val);
|
||||
svluti4_zt_u8_x4(0, svuint8x2_t_val);
|
||||
svwrite_lane_zt(0, svbfloat16_t_val, 2);
|
||||
svwrite_lane_zt(0, svfloat16_t_val, 2);
|
||||
svwrite_lane_zt(0, svfloat32_t_val, 2);
|
||||
svwrite_lane_zt(0, svfloat64_t_val, 2);
|
||||
svwrite_lane_zt(0, svint8_t_val, 2);
|
||||
svwrite_lane_zt(0, svint16_t_val, 2);
|
||||
svwrite_lane_zt(0, svint32_t_val, 2);
|
||||
svwrite_lane_zt(0, svint64_t_val, 2);
|
||||
svwrite_lane_zt(0, svuint8_t_val, 2);
|
||||
svwrite_lane_zt(0, svuint16_t_val, 2);
|
||||
svwrite_lane_zt(0, svuint32_t_val, 2);
|
||||
svwrite_lane_zt(0, svuint64_t_val, 2);
|
||||
svwrite_lane_zt_bf16(0, svbfloat16_t_val, 2);
|
||||
svwrite_lane_zt_f16(0, svfloat16_t_val, 2);
|
||||
svwrite_lane_zt_f32(0, svfloat32_t_val, 2);
|
||||
svwrite_lane_zt_f64(0, svfloat64_t_val, 2);
|
||||
svwrite_lane_zt_s8(0, svint8_t_val, 2);
|
||||
svwrite_lane_zt_s16(0, svint16_t_val, 2);
|
||||
svwrite_lane_zt_s32(0, svint32_t_val, 2);
|
||||
svwrite_lane_zt_s64(0, svint64_t_val, 2);
|
||||
svwrite_lane_zt_u8(0, svuint8_t_val, 2);
|
||||
svwrite_lane_zt_u16(0, svuint16_t_val, 2);
|
||||
svwrite_lane_zt_u32(0, svuint32_t_val, 2);
|
||||
svwrite_lane_zt_u64(0, svuint64_t_val, 2);
|
||||
svwrite_zt(0, svbfloat16_t_val);
|
||||
svwrite_zt(0, svfloat16_t_val);
|
||||
svwrite_zt(0, svfloat32_t_val);
|
||||
svwrite_zt(0, svfloat64_t_val);
|
||||
svwrite_zt(0, svint8_t_val);
|
||||
svwrite_zt(0, svint16_t_val);
|
||||
svwrite_zt(0, svint32_t_val);
|
||||
svwrite_zt(0, svint64_t_val);
|
||||
svwrite_zt(0, svuint8_t_val);
|
||||
svwrite_zt(0, svuint16_t_val);
|
||||
svwrite_zt(0, svuint32_t_val);
|
||||
svwrite_zt(0, svuint64_t_val);
|
||||
svwrite_zt_bf16(0, svbfloat16_t_val);
|
||||
svwrite_zt_f16(0, svfloat16_t_val);
|
||||
svwrite_zt_f32(0, svfloat32_t_val);
|
||||
svwrite_zt_f64(0, svfloat64_t_val);
|
||||
svwrite_zt_s8(0, svint8_t_val);
|
||||
svwrite_zt_s16(0, svint16_t_val);
|
||||
svwrite_zt_s32(0, svint32_t_val);
|
||||
svwrite_zt_s64(0, svint64_t_val);
|
||||
svwrite_zt_u8(0, svuint8_t_val);
|
||||
svwrite_zt_u16(0, svuint16_t_val);
|
||||
svwrite_zt_u32(0, svuint32_t_val);
|
||||
svwrite_zt_u64(0, svuint64_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible __arm_inout("zt0"){
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svfloat32_t svfloat32_t_val;
|
||||
svfloat64_t svfloat64_t_val;
|
||||
svint8_t svint8_t_val;
|
||||
svint16_t svint16_t_val;
|
||||
svint32_t svint32_t_val;
|
||||
svint64_t svint64_t_val;
|
||||
svuint8_t svuint8_t_val;
|
||||
svuint8x2_t svuint8x2_t_val;
|
||||
svuint16_t svuint16_t_val;
|
||||
svuint32_t svuint32_t_val;
|
||||
svuint64_t svuint64_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_zt_s8_x4(0, svuint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_zt_u8_x4(0, svuint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt(0, svbfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt(0, svfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt(0, svfloat32_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt(0, svfloat64_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt(0, svint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt(0, svint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt(0, svint32_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt(0, svint64_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt(0, svuint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt(0, svuint32_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt(0, svuint64_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt_bf16(0, svbfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt_f16(0, svfloat16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt_f32(0, svfloat32_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt_f64(0, svfloat64_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt_s8(0, svint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt_s16(0, svint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt_s32(0, svint32_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt_s64(0, svint64_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt_u8(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt_u16(0, svuint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt_u32(0, svuint32_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_lane_zt_u64(0, svuint64_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt(0, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt(0, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt(0, svfloat32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt(0, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt(0, svint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt(0, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt(0, svint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt(0, svint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt(0, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt(0, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt(0, svuint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt(0, svuint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt_bf16(0, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt_f16(0, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt_f32(0, svfloat32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt_f64(0, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt_s8(0, svint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt_s16(0, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt_s32(0, svint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt_s64(0, svint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt_u8(0, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt_u16(0, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt_u32(0, svuint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svwrite_zt_u64(0, svuint64_t_val);
|
||||
}
|
||||
308
clang/test/Sema/AArch64/arm_sme_streaming_only_sme_AND_sme2.c
Normal file
308
clang/test/Sema/AArch64/arm_sme_streaming_only_sme_AND_sme2.c
Normal file
@ -0,0 +1,308 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sme2 -target-feature +sve -verify=streaming-guard
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sme.h>
|
||||
|
||||
// Properties: guard="" streaming_guard="sme,sme2" flags="streaming-only,requires-zt"
|
||||
|
||||
void test(void) __arm_inout("zt0"){
|
||||
svuint8_t svuint8_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_bf16(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_bf16_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_bf16_x4(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_f16(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_f16_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_f16_x4(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_f32(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_f32_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_f32_x4(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_mf8(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_mf8_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_mf8_x4(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_s8(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_s8_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_s8_x4(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_s16(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_s16_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_s16_x4(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_s32(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_s32_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_s32_x4(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_u8(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_u8_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_u8_x4(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_u16(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_u16_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_u16_x4(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_u32(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_u32_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_u32_x4(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_bf16(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_bf16_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_bf16_x4(0, svuint8_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_f16(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_f16_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_f16_x4(0, svuint8_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_f32(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_f32_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_f32_x4(0, svuint8_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_mf8(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_mf8_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_s8(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_s8_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_s16(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_s16_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_s16_x4(0, svuint8_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_s32(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_s32_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_s32_x4(0, svuint8_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_u8(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_u8_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_u16(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_u16_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_u16_x4(0, svuint8_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_u32(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_u32_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_u32_x4(0, svuint8_t_val, 1);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming __arm_inout("zt0"){
|
||||
svuint8_t svuint8_t_val;
|
||||
|
||||
svluti2_lane_zt_bf16(0, svuint8_t_val, 2);
|
||||
svluti2_lane_zt_bf16_x2(0, svuint8_t_val, 2);
|
||||
svluti2_lane_zt_bf16_x4(0, svuint8_t_val, 2);
|
||||
svluti2_lane_zt_f16(0, svuint8_t_val, 2);
|
||||
svluti2_lane_zt_f16_x2(0, svuint8_t_val, 2);
|
||||
svluti2_lane_zt_f16_x4(0, svuint8_t_val, 2);
|
||||
svluti2_lane_zt_f32(0, svuint8_t_val, 2);
|
||||
svluti2_lane_zt_f32_x2(0, svuint8_t_val, 2);
|
||||
svluti2_lane_zt_f32_x4(0, svuint8_t_val, 2);
|
||||
svluti2_lane_zt_mf8(0, svuint8_t_val, 2);
|
||||
svluti2_lane_zt_mf8_x2(0, svuint8_t_val, 2);
|
||||
svluti2_lane_zt_mf8_x4(0, svuint8_t_val, 2);
|
||||
svluti2_lane_zt_s8(0, svuint8_t_val, 2);
|
||||
svluti2_lane_zt_s8_x2(0, svuint8_t_val, 2);
|
||||
svluti2_lane_zt_s8_x4(0, svuint8_t_val, 2);
|
||||
svluti2_lane_zt_s16(0, svuint8_t_val, 2);
|
||||
svluti2_lane_zt_s16_x2(0, svuint8_t_val, 2);
|
||||
svluti2_lane_zt_s16_x4(0, svuint8_t_val, 2);
|
||||
svluti2_lane_zt_s32(0, svuint8_t_val, 2);
|
||||
svluti2_lane_zt_s32_x2(0, svuint8_t_val, 2);
|
||||
svluti2_lane_zt_s32_x4(0, svuint8_t_val, 2);
|
||||
svluti2_lane_zt_u8(0, svuint8_t_val, 2);
|
||||
svluti2_lane_zt_u8_x2(0, svuint8_t_val, 2);
|
||||
svluti2_lane_zt_u8_x4(0, svuint8_t_val, 2);
|
||||
svluti2_lane_zt_u16(0, svuint8_t_val, 2);
|
||||
svluti2_lane_zt_u16_x2(0, svuint8_t_val, 2);
|
||||
svluti2_lane_zt_u16_x4(0, svuint8_t_val, 2);
|
||||
svluti2_lane_zt_u32(0, svuint8_t_val, 2);
|
||||
svluti2_lane_zt_u32_x2(0, svuint8_t_val, 2);
|
||||
svluti2_lane_zt_u32_x4(0, svuint8_t_val, 2);
|
||||
svluti4_lane_zt_bf16(0, svuint8_t_val, 2);
|
||||
svluti4_lane_zt_bf16_x2(0, svuint8_t_val, 2);
|
||||
svluti4_lane_zt_bf16_x4(0, svuint8_t_val, 1);
|
||||
svluti4_lane_zt_f16(0, svuint8_t_val, 2);
|
||||
svluti4_lane_zt_f16_x2(0, svuint8_t_val, 2);
|
||||
svluti4_lane_zt_f16_x4(0, svuint8_t_val, 1);
|
||||
svluti4_lane_zt_f32(0, svuint8_t_val, 2);
|
||||
svluti4_lane_zt_f32_x2(0, svuint8_t_val, 2);
|
||||
svluti4_lane_zt_f32_x4(0, svuint8_t_val, 1);
|
||||
svluti4_lane_zt_mf8(0, svuint8_t_val, 2);
|
||||
svluti4_lane_zt_mf8_x2(0, svuint8_t_val, 2);
|
||||
svluti4_lane_zt_s8(0, svuint8_t_val, 2);
|
||||
svluti4_lane_zt_s8_x2(0, svuint8_t_val, 2);
|
||||
svluti4_lane_zt_s16(0, svuint8_t_val, 2);
|
||||
svluti4_lane_zt_s16_x2(0, svuint8_t_val, 2);
|
||||
svluti4_lane_zt_s16_x4(0, svuint8_t_val, 1);
|
||||
svluti4_lane_zt_s32(0, svuint8_t_val, 2);
|
||||
svluti4_lane_zt_s32_x2(0, svuint8_t_val, 2);
|
||||
svluti4_lane_zt_s32_x4(0, svuint8_t_val, 1);
|
||||
svluti4_lane_zt_u8(0, svuint8_t_val, 2);
|
||||
svluti4_lane_zt_u8_x2(0, svuint8_t_val, 2);
|
||||
svluti4_lane_zt_u16(0, svuint8_t_val, 2);
|
||||
svluti4_lane_zt_u16_x2(0, svuint8_t_val, 2);
|
||||
svluti4_lane_zt_u16_x4(0, svuint8_t_val, 1);
|
||||
svluti4_lane_zt_u32(0, svuint8_t_val, 2);
|
||||
svluti4_lane_zt_u32_x2(0, svuint8_t_val, 2);
|
||||
svluti4_lane_zt_u32_x4(0, svuint8_t_val, 1);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible __arm_inout("zt0"){
|
||||
svuint8_t svuint8_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_bf16(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_bf16_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_bf16_x4(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_f16(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_f16_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_f16_x4(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_f32(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_f32_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_f32_x4(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_mf8(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_mf8_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_mf8_x4(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_s8(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_s8_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_s8_x4(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_s16(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_s16_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_s16_x4(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_s32(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_s32_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_s32_x4(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_u8(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_u8_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_u8_x4(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_u16(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_u16_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_u16_x4(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_u32(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_u32_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_zt_u32_x4(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_bf16(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_bf16_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_bf16_x4(0, svuint8_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_f16(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_f16_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_f16_x4(0, svuint8_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_f32(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_f32_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_f32_x4(0, svuint8_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_mf8(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_mf8_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_s8(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_s8_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_s16(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_s16_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_s16_x4(0, svuint8_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_s32(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_s32_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_s32_x4(0, svuint8_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_u8(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_u8_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_u16(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_u16_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_u16_x4(0, svuint8_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_u32(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_u32_x2(0, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_zt_u32_x4(0, svuint8_t_val, 1);
|
||||
}
|
||||
@ -0,0 +1,192 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sme-f64f64 -target-feature +sme2 -target-feature +sve -verify=streaming-guard
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sme.h>
|
||||
|
||||
// Properties: guard="" streaming_guard="sme,sme2,sme-f64f64" flags="streaming-only,requires-za"
|
||||
|
||||
void test(void) __arm_inout("za"){
|
||||
svfloat64_t svfloat64_t_val;
|
||||
svfloat64x2_t svfloat64x2_t_val;
|
||||
svfloat64x4_t svfloat64x4_t_val;
|
||||
uint32_t uint32_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za64_f64_vg1x2(uint32_t_val, svfloat64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za64_f64_vg1x4(uint32_t_val, svfloat64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za64_vg1x2(uint32_t_val, svfloat64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za64_vg1x4(uint32_t_val, svfloat64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za64_f64_vg1x2(uint32_t_val, svfloat64x2_t_val, svfloat64_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za64_f64_vg1x4(uint32_t_val, svfloat64x4_t_val, svfloat64_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za64_vg1x2(uint32_t_val, svfloat64x2_t_val, svfloat64_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za64_vg1x4(uint32_t_val, svfloat64x4_t_val, svfloat64_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_single_za64_f64_vg1x2(uint32_t_val, svfloat64x2_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_single_za64_f64_vg1x4(uint32_t_val, svfloat64x4_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_f64_vg1x2(uint32_t_val, svfloat64x2_t_val, svfloat64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_f64_vg1x4(uint32_t_val, svfloat64x4_t_val, svfloat64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_vg1x2(uint32_t_val, svfloat64x2_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_vg1x2(uint32_t_val, svfloat64x2_t_val, svfloat64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_vg1x4(uint32_t_val, svfloat64x4_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_vg1x4(uint32_t_val, svfloat64x4_t_val, svfloat64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za64_f64_vg1x2(uint32_t_val, svfloat64x2_t_val, svfloat64_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za64_f64_vg1x4(uint32_t_val, svfloat64x4_t_val, svfloat64_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za64_vg1x2(uint32_t_val, svfloat64x2_t_val, svfloat64_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za64_vg1x4(uint32_t_val, svfloat64x4_t_val, svfloat64_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_single_za64_f64_vg1x2(uint32_t_val, svfloat64x2_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_single_za64_f64_vg1x4(uint32_t_val, svfloat64x4_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_f64_vg1x2(uint32_t_val, svfloat64x2_t_val, svfloat64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_f64_vg1x4(uint32_t_val, svfloat64x4_t_val, svfloat64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_vg1x2(uint32_t_val, svfloat64x2_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_vg1x2(uint32_t_val, svfloat64x2_t_val, svfloat64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_vg1x4(uint32_t_val, svfloat64x4_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_vg1x4(uint32_t_val, svfloat64x4_t_val, svfloat64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za64_f64_vg1x2(uint32_t_val, svfloat64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za64_f64_vg1x4(uint32_t_val, svfloat64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za64_vg1x2(uint32_t_val, svfloat64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za64_vg1x4(uint32_t_val, svfloat64x4_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming __arm_inout("za"){
|
||||
svfloat64_t svfloat64_t_val;
|
||||
svfloat64x2_t svfloat64x2_t_val;
|
||||
svfloat64x4_t svfloat64x4_t_val;
|
||||
uint32_t uint32_t_val;
|
||||
|
||||
svadd_za64_f64_vg1x2(uint32_t_val, svfloat64x2_t_val);
|
||||
svadd_za64_f64_vg1x4(uint32_t_val, svfloat64x4_t_val);
|
||||
svadd_za64_vg1x2(uint32_t_val, svfloat64x2_t_val);
|
||||
svadd_za64_vg1x4(uint32_t_val, svfloat64x4_t_val);
|
||||
svmla_lane_za64_f64_vg1x2(uint32_t_val, svfloat64x2_t_val, svfloat64_t_val, 1);
|
||||
svmla_lane_za64_f64_vg1x4(uint32_t_val, svfloat64x4_t_val, svfloat64_t_val, 1);
|
||||
svmla_lane_za64_vg1x2(uint32_t_val, svfloat64x2_t_val, svfloat64_t_val, 1);
|
||||
svmla_lane_za64_vg1x4(uint32_t_val, svfloat64x4_t_val, svfloat64_t_val, 1);
|
||||
svmla_single_za64_f64_vg1x2(uint32_t_val, svfloat64x2_t_val, svfloat64_t_val);
|
||||
svmla_single_za64_f64_vg1x4(uint32_t_val, svfloat64x4_t_val, svfloat64_t_val);
|
||||
svmla_za64_f64_vg1x2(uint32_t_val, svfloat64x2_t_val, svfloat64x2_t_val);
|
||||
svmla_za64_f64_vg1x4(uint32_t_val, svfloat64x4_t_val, svfloat64x4_t_val);
|
||||
svmla_za64_vg1x2(uint32_t_val, svfloat64x2_t_val, svfloat64_t_val);
|
||||
svmla_za64_vg1x2(uint32_t_val, svfloat64x2_t_val, svfloat64x2_t_val);
|
||||
svmla_za64_vg1x4(uint32_t_val, svfloat64x4_t_val, svfloat64_t_val);
|
||||
svmla_za64_vg1x4(uint32_t_val, svfloat64x4_t_val, svfloat64x4_t_val);
|
||||
svmls_lane_za64_f64_vg1x2(uint32_t_val, svfloat64x2_t_val, svfloat64_t_val, 1);
|
||||
svmls_lane_za64_f64_vg1x4(uint32_t_val, svfloat64x4_t_val, svfloat64_t_val, 1);
|
||||
svmls_lane_za64_vg1x2(uint32_t_val, svfloat64x2_t_val, svfloat64_t_val, 1);
|
||||
svmls_lane_za64_vg1x4(uint32_t_val, svfloat64x4_t_val, svfloat64_t_val, 1);
|
||||
svmls_single_za64_f64_vg1x2(uint32_t_val, svfloat64x2_t_val, svfloat64_t_val);
|
||||
svmls_single_za64_f64_vg1x4(uint32_t_val, svfloat64x4_t_val, svfloat64_t_val);
|
||||
svmls_za64_f64_vg1x2(uint32_t_val, svfloat64x2_t_val, svfloat64x2_t_val);
|
||||
svmls_za64_f64_vg1x4(uint32_t_val, svfloat64x4_t_val, svfloat64x4_t_val);
|
||||
svmls_za64_vg1x2(uint32_t_val, svfloat64x2_t_val, svfloat64_t_val);
|
||||
svmls_za64_vg1x2(uint32_t_val, svfloat64x2_t_val, svfloat64x2_t_val);
|
||||
svmls_za64_vg1x4(uint32_t_val, svfloat64x4_t_val, svfloat64_t_val);
|
||||
svmls_za64_vg1x4(uint32_t_val, svfloat64x4_t_val, svfloat64x4_t_val);
|
||||
svsub_za64_f64_vg1x2(uint32_t_val, svfloat64x2_t_val);
|
||||
svsub_za64_f64_vg1x4(uint32_t_val, svfloat64x4_t_val);
|
||||
svsub_za64_vg1x2(uint32_t_val, svfloat64x2_t_val);
|
||||
svsub_za64_vg1x4(uint32_t_val, svfloat64x4_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible __arm_inout("za"){
|
||||
svfloat64_t svfloat64_t_val;
|
||||
svfloat64x2_t svfloat64x2_t_val;
|
||||
svfloat64x4_t svfloat64x4_t_val;
|
||||
uint32_t uint32_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za64_f64_vg1x2(uint32_t_val, svfloat64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za64_f64_vg1x4(uint32_t_val, svfloat64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za64_vg1x2(uint32_t_val, svfloat64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za64_vg1x4(uint32_t_val, svfloat64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za64_f64_vg1x2(uint32_t_val, svfloat64x2_t_val, svfloat64_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za64_f64_vg1x4(uint32_t_val, svfloat64x4_t_val, svfloat64_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za64_vg1x2(uint32_t_val, svfloat64x2_t_val, svfloat64_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za64_vg1x4(uint32_t_val, svfloat64x4_t_val, svfloat64_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_single_za64_f64_vg1x2(uint32_t_val, svfloat64x2_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_single_za64_f64_vg1x4(uint32_t_val, svfloat64x4_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_f64_vg1x2(uint32_t_val, svfloat64x2_t_val, svfloat64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_f64_vg1x4(uint32_t_val, svfloat64x4_t_val, svfloat64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_vg1x2(uint32_t_val, svfloat64x2_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_vg1x2(uint32_t_val, svfloat64x2_t_val, svfloat64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_vg1x4(uint32_t_val, svfloat64x4_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_vg1x4(uint32_t_val, svfloat64x4_t_val, svfloat64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za64_f64_vg1x2(uint32_t_val, svfloat64x2_t_val, svfloat64_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za64_f64_vg1x4(uint32_t_val, svfloat64x4_t_val, svfloat64_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za64_vg1x2(uint32_t_val, svfloat64x2_t_val, svfloat64_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za64_vg1x4(uint32_t_val, svfloat64x4_t_val, svfloat64_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_single_za64_f64_vg1x2(uint32_t_val, svfloat64x2_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_single_za64_f64_vg1x4(uint32_t_val, svfloat64x4_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_f64_vg1x2(uint32_t_val, svfloat64x2_t_val, svfloat64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_f64_vg1x4(uint32_t_val, svfloat64x4_t_val, svfloat64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_vg1x2(uint32_t_val, svfloat64x2_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_vg1x2(uint32_t_val, svfloat64x2_t_val, svfloat64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_vg1x4(uint32_t_val, svfloat64x4_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_vg1x4(uint32_t_val, svfloat64x4_t_val, svfloat64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za64_f64_vg1x2(uint32_t_val, svfloat64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za64_f64_vg1x4(uint32_t_val, svfloat64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za64_vg1x2(uint32_t_val, svfloat64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za64_vg1x4(uint32_t_val, svfloat64x4_t_val);
|
||||
}
|
||||
@ -0,0 +1,759 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sme-i16i64 -target-feature +sme2 -target-feature +sve -verify=streaming-guard
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sme.h>
|
||||
|
||||
// Properties: guard="" streaming_guard="sme,sme2,sme-i16i64" flags="streaming-only,requires-za"
|
||||
|
||||
void test(void) __arm_inout("za"){
|
||||
svint16_t svint16_t_val;
|
||||
svint16x2_t svint16x2_t_val;
|
||||
svint16x4_t svint16x4_t_val;
|
||||
svint64_t svint64_t_val;
|
||||
svint64x2_t svint64x2_t_val;
|
||||
svint64x4_t svint64x4_t_val;
|
||||
svuint16_t svuint16_t_val;
|
||||
svuint16x2_t svuint16x2_t_val;
|
||||
svuint16x4_t svuint16x4_t_val;
|
||||
svuint64_t svuint64_t_val;
|
||||
svuint64x2_t svuint64x2_t_val;
|
||||
svuint64x4_t svuint64x4_t_val;
|
||||
uint32_t uint32_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_write_single_za64_s64_vg1x2(uint32_t_val, svint64x2_t_val, svint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_write_single_za64_s64_vg1x4(uint32_t_val, svint64x4_t_val, svint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_write_single_za64_u64_vg1x2(uint32_t_val, svuint64x2_t_val, svuint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_write_single_za64_u64_vg1x4(uint32_t_val, svuint64x4_t_val, svuint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_write_za64_s64_vg1x2(uint32_t_val, svint64x2_t_val, svint64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_write_za64_s64_vg1x4(uint32_t_val, svint64x4_t_val, svint64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_write_za64_u64_vg1x2(uint32_t_val, svuint64x2_t_val, svuint64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_write_za64_u64_vg1x4(uint32_t_val, svuint64x4_t_val, svuint64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_write_za64_vg1x2(uint32_t_val, svint64x2_t_val, svint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_write_za64_vg1x2(uint32_t_val, svint64x2_t_val, svint64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_write_za64_vg1x2(uint32_t_val, svuint64x2_t_val, svuint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_write_za64_vg1x2(uint32_t_val, svuint64x2_t_val, svuint64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_write_za64_vg1x4(uint32_t_val, svint64x4_t_val, svint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_write_za64_vg1x4(uint32_t_val, svint64x4_t_val, svint64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_write_za64_vg1x4(uint32_t_val, svuint64x4_t_val, svuint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_write_za64_vg1x4(uint32_t_val, svuint64x4_t_val, svuint64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za64_s64_vg1x2(uint32_t_val, svint64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za64_s64_vg1x4(uint32_t_val, svint64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za64_u64_vg1x2(uint32_t_val, svuint64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za64_u64_vg1x4(uint32_t_val, svuint64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za64_vg1x2(uint32_t_val, svint64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za64_vg1x2(uint32_t_val, svuint64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za64_vg1x4(uint32_t_val, svint64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za64_vg1x4(uint32_t_val, svuint64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_za64_s16_vg1x2(uint32_t_val, svint16x2_t_val, svint16_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_za64_s16_vg1x4(uint32_t_val, svint16x4_t_val, svint16_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_za64_u16_vg1x2(uint32_t_val, svuint16x2_t_val, svuint16_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_za64_u16_vg1x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_za64_vg1x2(uint32_t_val, svint16x2_t_val, svint16_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_za64_vg1x2(uint32_t_val, svuint16x2_t_val, svuint16_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_za64_vg1x4(uint32_t_val, svint16x4_t_val, svint16_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_za64_vg1x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_single_za64_s16_vg1x2(uint32_t_val, svint16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_single_za64_s16_vg1x4(uint32_t_val, svint16x4_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_single_za64_u16_vg1x2(uint32_t_val, svuint16x2_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_single_za64_u16_vg1x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za64_s16_vg1x2(uint32_t_val, svint16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za64_s16_vg1x4(uint32_t_val, svint16x4_t_val, svint16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za64_u16_vg1x2(uint32_t_val, svuint16x2_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za64_u16_vg1x4(uint32_t_val, svuint16x4_t_val, svuint16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za64_vg1x2(uint32_t_val, svint16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za64_vg1x2(uint32_t_val, svint16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za64_vg1x2(uint32_t_val, svuint16x2_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za64_vg1x2(uint32_t_val, svuint16x2_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za64_vg1x4(uint32_t_val, svint16x4_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za64_vg1x4(uint32_t_val, svint16x4_t_val, svint16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za64_vg1x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za64_vg1x4(uint32_t_val, svuint16x4_t_val, svuint16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za64_s16_vg4x1(uint32_t_val, svint16_t_val, svint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za64_s16_vg4x2(uint32_t_val, svint16x2_t_val, svint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za64_s16_vg4x4(uint32_t_val, svint16x4_t_val, svint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za64_u16_vg4x1(uint32_t_val, svuint16_t_val, svuint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za64_u16_vg4x2(uint32_t_val, svuint16x2_t_val, svuint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za64_u16_vg4x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za64_vg4x1(uint32_t_val, svint16_t_val, svint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za64_vg4x1(uint32_t_val, svuint16_t_val, svuint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za64_vg4x2(uint32_t_val, svint16x2_t_val, svint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za64_vg4x2(uint32_t_val, svuint16x2_t_val, svuint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za64_vg4x4(uint32_t_val, svint16x4_t_val, svint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za64_vg4x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_single_za64_s16_vg4x2(uint32_t_val, svint16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_single_za64_s16_vg4x4(uint32_t_val, svint16x4_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_single_za64_u16_vg4x2(uint32_t_val, svuint16x2_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_single_za64_u16_vg4x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_s16_vg4x1(uint32_t_val, svint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_s16_vg4x2(uint32_t_val, svint16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_s16_vg4x4(uint32_t_val, svint16x4_t_val, svint16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_u16_vg4x1(uint32_t_val, svuint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_u16_vg4x2(uint32_t_val, svuint16x2_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_u16_vg4x4(uint32_t_val, svuint16x4_t_val, svuint16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_vg4x1(uint32_t_val, svint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_vg4x1(uint32_t_val, svuint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_vg4x2(uint32_t_val, svint16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_vg4x2(uint32_t_val, svint16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_vg4x2(uint32_t_val, svuint16x2_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_vg4x2(uint32_t_val, svuint16x2_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_vg4x4(uint32_t_val, svint16x4_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_vg4x4(uint32_t_val, svint16x4_t_val, svint16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_vg4x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_vg4x4(uint32_t_val, svuint16x4_t_val, svuint16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za64_s16_vg4x1(uint32_t_val, svint16_t_val, svint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za64_s16_vg4x2(uint32_t_val, svint16x2_t_val, svint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za64_s16_vg4x4(uint32_t_val, svint16x4_t_val, svint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za64_u16_vg4x1(uint32_t_val, svuint16_t_val, svuint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za64_u16_vg4x2(uint32_t_val, svuint16x2_t_val, svuint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za64_u16_vg4x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za64_vg4x1(uint32_t_val, svint16_t_val, svint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za64_vg4x1(uint32_t_val, svuint16_t_val, svuint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za64_vg4x2(uint32_t_val, svint16x2_t_val, svint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za64_vg4x2(uint32_t_val, svuint16x2_t_val, svuint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za64_vg4x4(uint32_t_val, svint16x4_t_val, svint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za64_vg4x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_single_za64_s16_vg4x2(uint32_t_val, svint16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_single_za64_s16_vg4x4(uint32_t_val, svint16x4_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_single_za64_u16_vg4x2(uint32_t_val, svuint16x2_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_single_za64_u16_vg4x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_s16_vg4x1(uint32_t_val, svint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_s16_vg4x2(uint32_t_val, svint16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_s16_vg4x4(uint32_t_val, svint16x4_t_val, svint16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_u16_vg4x1(uint32_t_val, svuint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_u16_vg4x2(uint32_t_val, svuint16x2_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_u16_vg4x4(uint32_t_val, svuint16x4_t_val, svuint16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_vg4x1(uint32_t_val, svint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_vg4x1(uint32_t_val, svuint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_vg4x2(uint32_t_val, svint16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_vg4x2(uint32_t_val, svint16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_vg4x2(uint32_t_val, svuint16x2_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_vg4x2(uint32_t_val, svuint16x2_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_vg4x4(uint32_t_val, svint16x4_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_vg4x4(uint32_t_val, svint16x4_t_val, svint16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_vg4x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_vg4x4(uint32_t_val, svuint16x4_t_val, svuint16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_write_single_za64_s64_vg1x2(uint32_t_val, svint64x2_t_val, svint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_write_single_za64_s64_vg1x4(uint32_t_val, svint64x4_t_val, svint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_write_single_za64_u64_vg1x2(uint32_t_val, svuint64x2_t_val, svuint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_write_single_za64_u64_vg1x4(uint32_t_val, svuint64x4_t_val, svuint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_write_za64_s64_vg1x2(uint32_t_val, svint64x2_t_val, svint64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_write_za64_s64_vg1x4(uint32_t_val, svint64x4_t_val, svint64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_write_za64_u64_vg1x2(uint32_t_val, svuint64x2_t_val, svuint64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_write_za64_u64_vg1x4(uint32_t_val, svuint64x4_t_val, svuint64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_write_za64_vg1x2(uint32_t_val, svint64x2_t_val, svint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_write_za64_vg1x2(uint32_t_val, svint64x2_t_val, svint64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_write_za64_vg1x2(uint32_t_val, svuint64x2_t_val, svuint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_write_za64_vg1x2(uint32_t_val, svuint64x2_t_val, svuint64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_write_za64_vg1x4(uint32_t_val, svint64x4_t_val, svint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_write_za64_vg1x4(uint32_t_val, svint64x4_t_val, svint64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_write_za64_vg1x4(uint32_t_val, svuint64x4_t_val, svuint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_write_za64_vg1x4(uint32_t_val, svuint64x4_t_val, svuint64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za64_s64_vg1x2(uint32_t_val, svint64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za64_s64_vg1x4(uint32_t_val, svint64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za64_u64_vg1x2(uint32_t_val, svuint64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za64_u64_vg1x4(uint32_t_val, svuint64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za64_vg1x2(uint32_t_val, svint64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za64_vg1x2(uint32_t_val, svuint64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za64_vg1x4(uint32_t_val, svint64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za64_vg1x4(uint32_t_val, svuint64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svvdot_lane_za64_s16_vg1x4(uint32_t_val, svint16x4_t_val, svint16_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svvdot_lane_za64_u16_vg1x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svvdot_lane_za64_vg1x4(uint32_t_val, svint16x4_t_val, svint16_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svvdot_lane_za64_vg1x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val, 1);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming __arm_inout("za"){
|
||||
svint16_t svint16_t_val;
|
||||
svint16x2_t svint16x2_t_val;
|
||||
svint16x4_t svint16x4_t_val;
|
||||
svint64_t svint64_t_val;
|
||||
svint64x2_t svint64x2_t_val;
|
||||
svint64x4_t svint64x4_t_val;
|
||||
svuint16_t svuint16_t_val;
|
||||
svuint16x2_t svuint16x2_t_val;
|
||||
svuint16x4_t svuint16x4_t_val;
|
||||
svuint64_t svuint64_t_val;
|
||||
svuint64x2_t svuint64x2_t_val;
|
||||
svuint64x4_t svuint64x4_t_val;
|
||||
uint32_t uint32_t_val;
|
||||
|
||||
svadd_write_single_za64_s64_vg1x2(uint32_t_val, svint64x2_t_val, svint64_t_val);
|
||||
svadd_write_single_za64_s64_vg1x4(uint32_t_val, svint64x4_t_val, svint64_t_val);
|
||||
svadd_write_single_za64_u64_vg1x2(uint32_t_val, svuint64x2_t_val, svuint64_t_val);
|
||||
svadd_write_single_za64_u64_vg1x4(uint32_t_val, svuint64x4_t_val, svuint64_t_val);
|
||||
svadd_write_za64_s64_vg1x2(uint32_t_val, svint64x2_t_val, svint64x2_t_val);
|
||||
svadd_write_za64_s64_vg1x4(uint32_t_val, svint64x4_t_val, svint64x4_t_val);
|
||||
svadd_write_za64_u64_vg1x2(uint32_t_val, svuint64x2_t_val, svuint64x2_t_val);
|
||||
svadd_write_za64_u64_vg1x4(uint32_t_val, svuint64x4_t_val, svuint64x4_t_val);
|
||||
svadd_write_za64_vg1x2(uint32_t_val, svint64x2_t_val, svint64_t_val);
|
||||
svadd_write_za64_vg1x2(uint32_t_val, svint64x2_t_val, svint64x2_t_val);
|
||||
svadd_write_za64_vg1x2(uint32_t_val, svuint64x2_t_val, svuint64_t_val);
|
||||
svadd_write_za64_vg1x2(uint32_t_val, svuint64x2_t_val, svuint64x2_t_val);
|
||||
svadd_write_za64_vg1x4(uint32_t_val, svint64x4_t_val, svint64_t_val);
|
||||
svadd_write_za64_vg1x4(uint32_t_val, svint64x4_t_val, svint64x4_t_val);
|
||||
svadd_write_za64_vg1x4(uint32_t_val, svuint64x4_t_val, svuint64_t_val);
|
||||
svadd_write_za64_vg1x4(uint32_t_val, svuint64x4_t_val, svuint64x4_t_val);
|
||||
svadd_za64_s64_vg1x2(uint32_t_val, svint64x2_t_val);
|
||||
svadd_za64_s64_vg1x4(uint32_t_val, svint64x4_t_val);
|
||||
svadd_za64_u64_vg1x2(uint32_t_val, svuint64x2_t_val);
|
||||
svadd_za64_u64_vg1x4(uint32_t_val, svuint64x4_t_val);
|
||||
svadd_za64_vg1x2(uint32_t_val, svint64x2_t_val);
|
||||
svadd_za64_vg1x2(uint32_t_val, svuint64x2_t_val);
|
||||
svadd_za64_vg1x4(uint32_t_val, svint64x4_t_val);
|
||||
svadd_za64_vg1x4(uint32_t_val, svuint64x4_t_val);
|
||||
svdot_lane_za64_s16_vg1x2(uint32_t_val, svint16x2_t_val, svint16_t_val, 1);
|
||||
svdot_lane_za64_s16_vg1x4(uint32_t_val, svint16x4_t_val, svint16_t_val, 1);
|
||||
svdot_lane_za64_u16_vg1x2(uint32_t_val, svuint16x2_t_val, svuint16_t_val, 1);
|
||||
svdot_lane_za64_u16_vg1x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val, 1);
|
||||
svdot_lane_za64_vg1x2(uint32_t_val, svint16x2_t_val, svint16_t_val, 1);
|
||||
svdot_lane_za64_vg1x2(uint32_t_val, svuint16x2_t_val, svuint16_t_val, 1);
|
||||
svdot_lane_za64_vg1x4(uint32_t_val, svint16x4_t_val, svint16_t_val, 1);
|
||||
svdot_lane_za64_vg1x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val, 1);
|
||||
svdot_single_za64_s16_vg1x2(uint32_t_val, svint16x2_t_val, svint16_t_val);
|
||||
svdot_single_za64_s16_vg1x4(uint32_t_val, svint16x4_t_val, svint16_t_val);
|
||||
svdot_single_za64_u16_vg1x2(uint32_t_val, svuint16x2_t_val, svuint16_t_val);
|
||||
svdot_single_za64_u16_vg1x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val);
|
||||
svdot_za64_s16_vg1x2(uint32_t_val, svint16x2_t_val, svint16x2_t_val);
|
||||
svdot_za64_s16_vg1x4(uint32_t_val, svint16x4_t_val, svint16x4_t_val);
|
||||
svdot_za64_u16_vg1x2(uint32_t_val, svuint16x2_t_val, svuint16x2_t_val);
|
||||
svdot_za64_u16_vg1x4(uint32_t_val, svuint16x4_t_val, svuint16x4_t_val);
|
||||
svdot_za64_vg1x2(uint32_t_val, svint16x2_t_val, svint16_t_val);
|
||||
svdot_za64_vg1x2(uint32_t_val, svint16x2_t_val, svint16x2_t_val);
|
||||
svdot_za64_vg1x2(uint32_t_val, svuint16x2_t_val, svuint16_t_val);
|
||||
svdot_za64_vg1x2(uint32_t_val, svuint16x2_t_val, svuint16x2_t_val);
|
||||
svdot_za64_vg1x4(uint32_t_val, svint16x4_t_val, svint16_t_val);
|
||||
svdot_za64_vg1x4(uint32_t_val, svint16x4_t_val, svint16x4_t_val);
|
||||
svdot_za64_vg1x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val);
|
||||
svdot_za64_vg1x4(uint32_t_val, svuint16x4_t_val, svuint16x4_t_val);
|
||||
svmla_lane_za64_s16_vg4x1(uint32_t_val, svint16_t_val, svint16_t_val, 2);
|
||||
svmla_lane_za64_s16_vg4x2(uint32_t_val, svint16x2_t_val, svint16_t_val, 2);
|
||||
svmla_lane_za64_s16_vg4x4(uint32_t_val, svint16x4_t_val, svint16_t_val, 2);
|
||||
svmla_lane_za64_u16_vg4x1(uint32_t_val, svuint16_t_val, svuint16_t_val, 2);
|
||||
svmla_lane_za64_u16_vg4x2(uint32_t_val, svuint16x2_t_val, svuint16_t_val, 2);
|
||||
svmla_lane_za64_u16_vg4x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val, 2);
|
||||
svmla_lane_za64_vg4x1(uint32_t_val, svint16_t_val, svint16_t_val, 2);
|
||||
svmla_lane_za64_vg4x1(uint32_t_val, svuint16_t_val, svuint16_t_val, 2);
|
||||
svmla_lane_za64_vg4x2(uint32_t_val, svint16x2_t_val, svint16_t_val, 2);
|
||||
svmla_lane_za64_vg4x2(uint32_t_val, svuint16x2_t_val, svuint16_t_val, 2);
|
||||
svmla_lane_za64_vg4x4(uint32_t_val, svint16x4_t_val, svint16_t_val, 2);
|
||||
svmla_lane_za64_vg4x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val, 2);
|
||||
svmla_single_za64_s16_vg4x2(uint32_t_val, svint16x2_t_val, svint16_t_val);
|
||||
svmla_single_za64_s16_vg4x4(uint32_t_val, svint16x4_t_val, svint16_t_val);
|
||||
svmla_single_za64_u16_vg4x2(uint32_t_val, svuint16x2_t_val, svuint16_t_val);
|
||||
svmla_single_za64_u16_vg4x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val);
|
||||
svmla_za64_s16_vg4x1(uint32_t_val, svint16_t_val, svint16_t_val);
|
||||
svmla_za64_s16_vg4x2(uint32_t_val, svint16x2_t_val, svint16x2_t_val);
|
||||
svmla_za64_s16_vg4x4(uint32_t_val, svint16x4_t_val, svint16x4_t_val);
|
||||
svmla_za64_u16_vg4x1(uint32_t_val, svuint16_t_val, svuint16_t_val);
|
||||
svmla_za64_u16_vg4x2(uint32_t_val, svuint16x2_t_val, svuint16x2_t_val);
|
||||
svmla_za64_u16_vg4x4(uint32_t_val, svuint16x4_t_val, svuint16x4_t_val);
|
||||
svmla_za64_vg4x1(uint32_t_val, svint16_t_val, svint16_t_val);
|
||||
svmla_za64_vg4x1(uint32_t_val, svuint16_t_val, svuint16_t_val);
|
||||
svmla_za64_vg4x2(uint32_t_val, svint16x2_t_val, svint16_t_val);
|
||||
svmla_za64_vg4x2(uint32_t_val, svint16x2_t_val, svint16x2_t_val);
|
||||
svmla_za64_vg4x2(uint32_t_val, svuint16x2_t_val, svuint16_t_val);
|
||||
svmla_za64_vg4x2(uint32_t_val, svuint16x2_t_val, svuint16x2_t_val);
|
||||
svmla_za64_vg4x4(uint32_t_val, svint16x4_t_val, svint16_t_val);
|
||||
svmla_za64_vg4x4(uint32_t_val, svint16x4_t_val, svint16x4_t_val);
|
||||
svmla_za64_vg4x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val);
|
||||
svmla_za64_vg4x4(uint32_t_val, svuint16x4_t_val, svuint16x4_t_val);
|
||||
svmls_lane_za64_s16_vg4x1(uint32_t_val, svint16_t_val, svint16_t_val, 2);
|
||||
svmls_lane_za64_s16_vg4x2(uint32_t_val, svint16x2_t_val, svint16_t_val, 2);
|
||||
svmls_lane_za64_s16_vg4x4(uint32_t_val, svint16x4_t_val, svint16_t_val, 2);
|
||||
svmls_lane_za64_u16_vg4x1(uint32_t_val, svuint16_t_val, svuint16_t_val, 2);
|
||||
svmls_lane_za64_u16_vg4x2(uint32_t_val, svuint16x2_t_val, svuint16_t_val, 2);
|
||||
svmls_lane_za64_u16_vg4x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val, 2);
|
||||
svmls_lane_za64_vg4x1(uint32_t_val, svint16_t_val, svint16_t_val, 2);
|
||||
svmls_lane_za64_vg4x1(uint32_t_val, svuint16_t_val, svuint16_t_val, 2);
|
||||
svmls_lane_za64_vg4x2(uint32_t_val, svint16x2_t_val, svint16_t_val, 2);
|
||||
svmls_lane_za64_vg4x2(uint32_t_val, svuint16x2_t_val, svuint16_t_val, 2);
|
||||
svmls_lane_za64_vg4x4(uint32_t_val, svint16x4_t_val, svint16_t_val, 2);
|
||||
svmls_lane_za64_vg4x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val, 2);
|
||||
svmls_single_za64_s16_vg4x2(uint32_t_val, svint16x2_t_val, svint16_t_val);
|
||||
svmls_single_za64_s16_vg4x4(uint32_t_val, svint16x4_t_val, svint16_t_val);
|
||||
svmls_single_za64_u16_vg4x2(uint32_t_val, svuint16x2_t_val, svuint16_t_val);
|
||||
svmls_single_za64_u16_vg4x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val);
|
||||
svmls_za64_s16_vg4x1(uint32_t_val, svint16_t_val, svint16_t_val);
|
||||
svmls_za64_s16_vg4x2(uint32_t_val, svint16x2_t_val, svint16x2_t_val);
|
||||
svmls_za64_s16_vg4x4(uint32_t_val, svint16x4_t_val, svint16x4_t_val);
|
||||
svmls_za64_u16_vg4x1(uint32_t_val, svuint16_t_val, svuint16_t_val);
|
||||
svmls_za64_u16_vg4x2(uint32_t_val, svuint16x2_t_val, svuint16x2_t_val);
|
||||
svmls_za64_u16_vg4x4(uint32_t_val, svuint16x4_t_val, svuint16x4_t_val);
|
||||
svmls_za64_vg4x1(uint32_t_val, svint16_t_val, svint16_t_val);
|
||||
svmls_za64_vg4x1(uint32_t_val, svuint16_t_val, svuint16_t_val);
|
||||
svmls_za64_vg4x2(uint32_t_val, svint16x2_t_val, svint16_t_val);
|
||||
svmls_za64_vg4x2(uint32_t_val, svint16x2_t_val, svint16x2_t_val);
|
||||
svmls_za64_vg4x2(uint32_t_val, svuint16x2_t_val, svuint16_t_val);
|
||||
svmls_za64_vg4x2(uint32_t_val, svuint16x2_t_val, svuint16x2_t_val);
|
||||
svmls_za64_vg4x4(uint32_t_val, svint16x4_t_val, svint16_t_val);
|
||||
svmls_za64_vg4x4(uint32_t_val, svint16x4_t_val, svint16x4_t_val);
|
||||
svmls_za64_vg4x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val);
|
||||
svmls_za64_vg4x4(uint32_t_val, svuint16x4_t_val, svuint16x4_t_val);
|
||||
svsub_write_single_za64_s64_vg1x2(uint32_t_val, svint64x2_t_val, svint64_t_val);
|
||||
svsub_write_single_za64_s64_vg1x4(uint32_t_val, svint64x4_t_val, svint64_t_val);
|
||||
svsub_write_single_za64_u64_vg1x2(uint32_t_val, svuint64x2_t_val, svuint64_t_val);
|
||||
svsub_write_single_za64_u64_vg1x4(uint32_t_val, svuint64x4_t_val, svuint64_t_val);
|
||||
svsub_write_za64_s64_vg1x2(uint32_t_val, svint64x2_t_val, svint64x2_t_val);
|
||||
svsub_write_za64_s64_vg1x4(uint32_t_val, svint64x4_t_val, svint64x4_t_val);
|
||||
svsub_write_za64_u64_vg1x2(uint32_t_val, svuint64x2_t_val, svuint64x2_t_val);
|
||||
svsub_write_za64_u64_vg1x4(uint32_t_val, svuint64x4_t_val, svuint64x4_t_val);
|
||||
svsub_write_za64_vg1x2(uint32_t_val, svint64x2_t_val, svint64_t_val);
|
||||
svsub_write_za64_vg1x2(uint32_t_val, svint64x2_t_val, svint64x2_t_val);
|
||||
svsub_write_za64_vg1x2(uint32_t_val, svuint64x2_t_val, svuint64_t_val);
|
||||
svsub_write_za64_vg1x2(uint32_t_val, svuint64x2_t_val, svuint64x2_t_val);
|
||||
svsub_write_za64_vg1x4(uint32_t_val, svint64x4_t_val, svint64_t_val);
|
||||
svsub_write_za64_vg1x4(uint32_t_val, svint64x4_t_val, svint64x4_t_val);
|
||||
svsub_write_za64_vg1x4(uint32_t_val, svuint64x4_t_val, svuint64_t_val);
|
||||
svsub_write_za64_vg1x4(uint32_t_val, svuint64x4_t_val, svuint64x4_t_val);
|
||||
svsub_za64_s64_vg1x2(uint32_t_val, svint64x2_t_val);
|
||||
svsub_za64_s64_vg1x4(uint32_t_val, svint64x4_t_val);
|
||||
svsub_za64_u64_vg1x2(uint32_t_val, svuint64x2_t_val);
|
||||
svsub_za64_u64_vg1x4(uint32_t_val, svuint64x4_t_val);
|
||||
svsub_za64_vg1x2(uint32_t_val, svint64x2_t_val);
|
||||
svsub_za64_vg1x2(uint32_t_val, svuint64x2_t_val);
|
||||
svsub_za64_vg1x4(uint32_t_val, svint64x4_t_val);
|
||||
svsub_za64_vg1x4(uint32_t_val, svuint64x4_t_val);
|
||||
svvdot_lane_za64_s16_vg1x4(uint32_t_val, svint16x4_t_val, svint16_t_val, 1);
|
||||
svvdot_lane_za64_u16_vg1x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val, 1);
|
||||
svvdot_lane_za64_vg1x4(uint32_t_val, svint16x4_t_val, svint16_t_val, 1);
|
||||
svvdot_lane_za64_vg1x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val, 1);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible __arm_inout("za"){
|
||||
svint16_t svint16_t_val;
|
||||
svint16x2_t svint16x2_t_val;
|
||||
svint16x4_t svint16x4_t_val;
|
||||
svint64_t svint64_t_val;
|
||||
svint64x2_t svint64x2_t_val;
|
||||
svint64x4_t svint64x4_t_val;
|
||||
svuint16_t svuint16_t_val;
|
||||
svuint16x2_t svuint16x2_t_val;
|
||||
svuint16x4_t svuint16x4_t_val;
|
||||
svuint64_t svuint64_t_val;
|
||||
svuint64x2_t svuint64x2_t_val;
|
||||
svuint64x4_t svuint64x4_t_val;
|
||||
uint32_t uint32_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_write_single_za64_s64_vg1x2(uint32_t_val, svint64x2_t_val, svint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_write_single_za64_s64_vg1x4(uint32_t_val, svint64x4_t_val, svint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_write_single_za64_u64_vg1x2(uint32_t_val, svuint64x2_t_val, svuint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_write_single_za64_u64_vg1x4(uint32_t_val, svuint64x4_t_val, svuint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_write_za64_s64_vg1x2(uint32_t_val, svint64x2_t_val, svint64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_write_za64_s64_vg1x4(uint32_t_val, svint64x4_t_val, svint64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_write_za64_u64_vg1x2(uint32_t_val, svuint64x2_t_val, svuint64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_write_za64_u64_vg1x4(uint32_t_val, svuint64x4_t_val, svuint64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_write_za64_vg1x2(uint32_t_val, svint64x2_t_val, svint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_write_za64_vg1x2(uint32_t_val, svint64x2_t_val, svint64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_write_za64_vg1x2(uint32_t_val, svuint64x2_t_val, svuint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_write_za64_vg1x2(uint32_t_val, svuint64x2_t_val, svuint64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_write_za64_vg1x4(uint32_t_val, svint64x4_t_val, svint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_write_za64_vg1x4(uint32_t_val, svint64x4_t_val, svint64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_write_za64_vg1x4(uint32_t_val, svuint64x4_t_val, svuint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_write_za64_vg1x4(uint32_t_val, svuint64x4_t_val, svuint64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za64_s64_vg1x2(uint32_t_val, svint64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za64_s64_vg1x4(uint32_t_val, svint64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za64_u64_vg1x2(uint32_t_val, svuint64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za64_u64_vg1x4(uint32_t_val, svuint64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za64_vg1x2(uint32_t_val, svint64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za64_vg1x2(uint32_t_val, svuint64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za64_vg1x4(uint32_t_val, svint64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svadd_za64_vg1x4(uint32_t_val, svuint64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_za64_s16_vg1x2(uint32_t_val, svint16x2_t_val, svint16_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_za64_s16_vg1x4(uint32_t_val, svint16x4_t_val, svint16_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_za64_u16_vg1x2(uint32_t_val, svuint16x2_t_val, svuint16_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_za64_u16_vg1x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_za64_vg1x2(uint32_t_val, svint16x2_t_val, svint16_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_za64_vg1x2(uint32_t_val, svuint16x2_t_val, svuint16_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_za64_vg1x4(uint32_t_val, svint16x4_t_val, svint16_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_za64_vg1x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_single_za64_s16_vg1x2(uint32_t_val, svint16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_single_za64_s16_vg1x4(uint32_t_val, svint16x4_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_single_za64_u16_vg1x2(uint32_t_val, svuint16x2_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_single_za64_u16_vg1x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za64_s16_vg1x2(uint32_t_val, svint16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za64_s16_vg1x4(uint32_t_val, svint16x4_t_val, svint16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za64_u16_vg1x2(uint32_t_val, svuint16x2_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za64_u16_vg1x4(uint32_t_val, svuint16x4_t_val, svuint16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za64_vg1x2(uint32_t_val, svint16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za64_vg1x2(uint32_t_val, svint16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za64_vg1x2(uint32_t_val, svuint16x2_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za64_vg1x2(uint32_t_val, svuint16x2_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za64_vg1x4(uint32_t_val, svint16x4_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za64_vg1x4(uint32_t_val, svint16x4_t_val, svint16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za64_vg1x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_za64_vg1x4(uint32_t_val, svuint16x4_t_val, svuint16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za64_s16_vg4x1(uint32_t_val, svint16_t_val, svint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za64_s16_vg4x2(uint32_t_val, svint16x2_t_val, svint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za64_s16_vg4x4(uint32_t_val, svint16x4_t_val, svint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za64_u16_vg4x1(uint32_t_val, svuint16_t_val, svuint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za64_u16_vg4x2(uint32_t_val, svuint16x2_t_val, svuint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za64_u16_vg4x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za64_vg4x1(uint32_t_val, svint16_t_val, svint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za64_vg4x1(uint32_t_val, svuint16_t_val, svuint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za64_vg4x2(uint32_t_val, svint16x2_t_val, svint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za64_vg4x2(uint32_t_val, svuint16x2_t_val, svuint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za64_vg4x4(uint32_t_val, svint16x4_t_val, svint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_lane_za64_vg4x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_single_za64_s16_vg4x2(uint32_t_val, svint16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_single_za64_s16_vg4x4(uint32_t_val, svint16x4_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_single_za64_u16_vg4x2(uint32_t_val, svuint16x2_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_single_za64_u16_vg4x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_s16_vg4x1(uint32_t_val, svint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_s16_vg4x2(uint32_t_val, svint16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_s16_vg4x4(uint32_t_val, svint16x4_t_val, svint16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_u16_vg4x1(uint32_t_val, svuint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_u16_vg4x2(uint32_t_val, svuint16x2_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_u16_vg4x4(uint32_t_val, svuint16x4_t_val, svuint16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_vg4x1(uint32_t_val, svint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_vg4x1(uint32_t_val, svuint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_vg4x2(uint32_t_val, svint16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_vg4x2(uint32_t_val, svint16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_vg4x2(uint32_t_val, svuint16x2_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_vg4x2(uint32_t_val, svuint16x2_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_vg4x4(uint32_t_val, svint16x4_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_vg4x4(uint32_t_val, svint16x4_t_val, svint16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_vg4x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmla_za64_vg4x4(uint32_t_val, svuint16x4_t_val, svuint16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za64_s16_vg4x1(uint32_t_val, svint16_t_val, svint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za64_s16_vg4x2(uint32_t_val, svint16x2_t_val, svint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za64_s16_vg4x4(uint32_t_val, svint16x4_t_val, svint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za64_u16_vg4x1(uint32_t_val, svuint16_t_val, svuint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za64_u16_vg4x2(uint32_t_val, svuint16x2_t_val, svuint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za64_u16_vg4x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za64_vg4x1(uint32_t_val, svint16_t_val, svint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za64_vg4x1(uint32_t_val, svuint16_t_val, svuint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za64_vg4x2(uint32_t_val, svint16x2_t_val, svint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za64_vg4x2(uint32_t_val, svuint16x2_t_val, svuint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za64_vg4x4(uint32_t_val, svint16x4_t_val, svint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_lane_za64_vg4x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_single_za64_s16_vg4x2(uint32_t_val, svint16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_single_za64_s16_vg4x4(uint32_t_val, svint16x4_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_single_za64_u16_vg4x2(uint32_t_val, svuint16x2_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_single_za64_u16_vg4x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_s16_vg4x1(uint32_t_val, svint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_s16_vg4x2(uint32_t_val, svint16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_s16_vg4x4(uint32_t_val, svint16x4_t_val, svint16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_u16_vg4x1(uint32_t_val, svuint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_u16_vg4x2(uint32_t_val, svuint16x2_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_u16_vg4x4(uint32_t_val, svuint16x4_t_val, svuint16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_vg4x1(uint32_t_val, svint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_vg4x1(uint32_t_val, svuint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_vg4x2(uint32_t_val, svint16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_vg4x2(uint32_t_val, svint16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_vg4x2(uint32_t_val, svuint16x2_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_vg4x2(uint32_t_val, svuint16x2_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_vg4x4(uint32_t_val, svint16x4_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_vg4x4(uint32_t_val, svint16x4_t_val, svint16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_vg4x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmls_za64_vg4x4(uint32_t_val, svuint16x4_t_val, svuint16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_write_single_za64_s64_vg1x2(uint32_t_val, svint64x2_t_val, svint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_write_single_za64_s64_vg1x4(uint32_t_val, svint64x4_t_val, svint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_write_single_za64_u64_vg1x2(uint32_t_val, svuint64x2_t_val, svuint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_write_single_za64_u64_vg1x4(uint32_t_val, svuint64x4_t_val, svuint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_write_za64_s64_vg1x2(uint32_t_val, svint64x2_t_val, svint64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_write_za64_s64_vg1x4(uint32_t_val, svint64x4_t_val, svint64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_write_za64_u64_vg1x2(uint32_t_val, svuint64x2_t_val, svuint64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_write_za64_u64_vg1x4(uint32_t_val, svuint64x4_t_val, svuint64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_write_za64_vg1x2(uint32_t_val, svint64x2_t_val, svint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_write_za64_vg1x2(uint32_t_val, svint64x2_t_val, svint64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_write_za64_vg1x2(uint32_t_val, svuint64x2_t_val, svuint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_write_za64_vg1x2(uint32_t_val, svuint64x2_t_val, svuint64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_write_za64_vg1x4(uint32_t_val, svint64x4_t_val, svint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_write_za64_vg1x4(uint32_t_val, svint64x4_t_val, svint64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_write_za64_vg1x4(uint32_t_val, svuint64x4_t_val, svuint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_write_za64_vg1x4(uint32_t_val, svuint64x4_t_val, svuint64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za64_s64_vg1x2(uint32_t_val, svint64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za64_s64_vg1x4(uint32_t_val, svint64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za64_u64_vg1x2(uint32_t_val, svuint64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za64_u64_vg1x4(uint32_t_val, svuint64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za64_vg1x2(uint32_t_val, svint64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za64_vg1x2(uint32_t_val, svuint64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za64_vg1x4(uint32_t_val, svint64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svsub_za64_vg1x4(uint32_t_val, svuint64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svvdot_lane_za64_s16_vg1x4(uint32_t_val, svint16x4_t_val, svint16_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svvdot_lane_za64_u16_vg1x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svvdot_lane_za64_vg1x4(uint32_t_val, svint16x4_t_val, svint16_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svvdot_lane_za64_vg1x4(uint32_t_val, svuint16x4_t_val, svuint16_t_val, 1);
|
||||
}
|
||||
@ -0,0 +1,782 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sme-mop4 -target-feature +sme2 -target-feature +sve -verify=streaming-guard
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sme.h>
|
||||
|
||||
// Properties: guard="" streaming_guard="sme,sme2,sme-mop4" flags="streaming-only,requires-za"
|
||||
|
||||
void test(void) __arm_inout("za"){
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svbfloat16x2_t svbfloat16x2_t_val;
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svfloat16x2_t svfloat16x2_t_val;
|
||||
svfloat32_t svfloat32_t_val;
|
||||
svfloat32x2_t svfloat32x2_t_val;
|
||||
svint8_t svint8_t_val;
|
||||
svint8x2_t svint8x2_t_val;
|
||||
svint16_t svint16_t_val;
|
||||
svint16x2_t svint16x2_t_val;
|
||||
svuint8_t svuint8_t_val;
|
||||
svuint8x2_t svuint8x2_t_val;
|
||||
svuint16_t svuint16_t_val;
|
||||
svuint16x2_t svuint16x2_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x1_za32_bf16_bf16(2, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x1_za32_f16_f16(2, svfloat16_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x1_za32_f32_f32(2, svfloat32_t_val, svfloat32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x1_za32_s8_s8(2, svint8_t_val, svint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x1_za32_s8_u8(2, svint8_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x1_za32_s16_s16(2, svint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x1_za32_u8_s8(2, svuint8_t_val, svint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x1_za32_u8_u8(2, svuint8_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x1_za32_u16_u16(2, svuint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x2_za32_bf16_bf16(2, svbfloat16_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x2_za32_f16_f16(2, svfloat16_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x2_za32_f32_f32(2, svfloat32_t_val, svfloat32x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x2_za32_s8_s8(2, svint8_t_val, svint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x2_za32_s8_u8(2, svint8_t_val, svuint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x2_za32_s16_s16(2, svint16_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x2_za32_u8_s8(2, svuint8_t_val, svint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x2_za32_u8_u8(2, svuint8_t_val, svuint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x2_za32_u16_u16(2, svuint16_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x1_za32_bf16_bf16(2, svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x1_za32_f16_f16(2, svfloat16x2_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x1_za32_f32_f32(2, svfloat32x2_t_val, svfloat32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x1_za32_s8_s8(2, svint8x2_t_val, svint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x1_za32_s8_u8(2, svint8x2_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x1_za32_s16_s16(2, svint16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x1_za32_u8_s8(2, svuint8x2_t_val, svint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x1_za32_u8_u8(2, svuint8x2_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x1_za32_u16_u16(2, svuint16x2_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x2_za32_bf16_bf16(2, svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x2_za32_f16_f16(2, svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x2_za32_f32_f32(2, svfloat32x2_t_val, svfloat32x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x2_za32_s8_s8(2, svint8x2_t_val, svint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x2_za32_s8_u8(2, svint8x2_t_val, svuint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x2_za32_s16_s16(2, svint16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x2_za32_u8_s8(2, svuint8x2_t_val, svint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x2_za32_u8_u8(2, svuint8x2_t_val, svuint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x2_za32_u16_u16(2, svuint16x2_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svbfloat16_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svfloat16_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svfloat16_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svfloat16x2_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svfloat32_t_val, svfloat32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svfloat32_t_val, svfloat32x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svfloat32x2_t_val, svfloat32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svfloat32x2_t_val, svfloat32x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svint8_t_val, svint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svint8_t_val, svint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svint8_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svint8_t_val, svuint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svint8x2_t_val, svint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svint8x2_t_val, svint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svint8x2_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svint8x2_t_val, svuint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svint16_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svint16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svint16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svuint8_t_val, svint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svuint8_t_val, svint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svuint8_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svuint8_t_val, svuint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svuint8x2_t_val, svint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svuint8x2_t_val, svint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svuint8x2_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svuint8x2_t_val, svuint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svuint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svuint16_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svuint16x2_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svuint16x2_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x1_za32_bf16_bf16(2, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x1_za32_f16_f16(2, svfloat16_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x1_za32_f32_f32(2, svfloat32_t_val, svfloat32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x1_za32_s8_s8(2, svint8_t_val, svint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x1_za32_s8_u8(2, svint8_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x1_za32_s16_s16(2, svint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x1_za32_u8_s8(2, svuint8_t_val, svint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x1_za32_u8_u8(2, svuint8_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x1_za32_u16_u16(2, svuint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x2_za32_bf16_bf16(2, svbfloat16_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x2_za32_f16_f16(2, svfloat16_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x2_za32_f32_f32(2, svfloat32_t_val, svfloat32x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x2_za32_s8_s8(2, svint8_t_val, svint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x2_za32_s8_u8(2, svint8_t_val, svuint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x2_za32_s16_s16(2, svint16_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x2_za32_u8_s8(2, svuint8_t_val, svint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x2_za32_u8_u8(2, svuint8_t_val, svuint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x2_za32_u16_u16(2, svuint16_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x1_za32_bf16_bf16(2, svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x1_za32_f16_f16(2, svfloat16x2_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x1_za32_f32_f32(2, svfloat32x2_t_val, svfloat32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x1_za32_s8_s8(2, svint8x2_t_val, svint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x1_za32_s8_u8(2, svint8x2_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x1_za32_s16_s16(2, svint16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x1_za32_u8_s8(2, svuint8x2_t_val, svint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x1_za32_u8_u8(2, svuint8x2_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x1_za32_u16_u16(2, svuint16x2_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x2_za32_bf16_bf16(2, svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x2_za32_f16_f16(2, svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x2_za32_f32_f32(2, svfloat32x2_t_val, svfloat32x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x2_za32_s8_s8(2, svint8x2_t_val, svint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x2_za32_s8_u8(2, svint8x2_t_val, svuint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x2_za32_s16_s16(2, svint16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x2_za32_u8_s8(2, svuint8x2_t_val, svint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x2_za32_u8_u8(2, svuint8x2_t_val, svuint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x2_za32_u16_u16(2, svuint16x2_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svbfloat16_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svfloat16_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svfloat16_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svfloat16x2_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svfloat32_t_val, svfloat32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svfloat32_t_val, svfloat32x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svfloat32x2_t_val, svfloat32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svfloat32x2_t_val, svfloat32x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svint8_t_val, svint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svint8_t_val, svint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svint8_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svint8_t_val, svuint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svint8x2_t_val, svint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svint8x2_t_val, svint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svint8x2_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svint8x2_t_val, svuint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svint16_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svint16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svint16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svuint8_t_val, svint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svuint8_t_val, svint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svuint8_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svuint8_t_val, svuint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svuint8x2_t_val, svint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svuint8x2_t_val, svint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svuint8x2_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svuint8x2_t_val, svuint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svuint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svuint16_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svuint16x2_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svuint16x2_t_val, svuint16x2_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming __arm_inout("za"){
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svbfloat16x2_t svbfloat16x2_t_val;
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svfloat16x2_t svfloat16x2_t_val;
|
||||
svfloat32_t svfloat32_t_val;
|
||||
svfloat32x2_t svfloat32x2_t_val;
|
||||
svint8_t svint8_t_val;
|
||||
svint8x2_t svint8x2_t_val;
|
||||
svint16_t svint16_t_val;
|
||||
svint16x2_t svint16x2_t_val;
|
||||
svuint8_t svuint8_t_val;
|
||||
svuint8x2_t svuint8x2_t_val;
|
||||
svuint16_t svuint16_t_val;
|
||||
svuint16x2_t svuint16x2_t_val;
|
||||
|
||||
svmop4a_1x1_za32_bf16_bf16(2, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmop4a_1x1_za32_f16_f16(2, svfloat16_t_val, svfloat16_t_val);
|
||||
svmop4a_1x1_za32_f32_f32(2, svfloat32_t_val, svfloat32_t_val);
|
||||
svmop4a_1x1_za32_s8_s8(2, svint8_t_val, svint8_t_val);
|
||||
svmop4a_1x1_za32_s8_u8(2, svint8_t_val, svuint8_t_val);
|
||||
svmop4a_1x1_za32_s16_s16(2, svint16_t_val, svint16_t_val);
|
||||
svmop4a_1x1_za32_u8_s8(2, svuint8_t_val, svint8_t_val);
|
||||
svmop4a_1x1_za32_u8_u8(2, svuint8_t_val, svuint8_t_val);
|
||||
svmop4a_1x1_za32_u16_u16(2, svuint16_t_val, svuint16_t_val);
|
||||
svmop4a_1x2_za32_bf16_bf16(2, svbfloat16_t_val, svbfloat16x2_t_val);
|
||||
svmop4a_1x2_za32_f16_f16(2, svfloat16_t_val, svfloat16x2_t_val);
|
||||
svmop4a_1x2_za32_f32_f32(2, svfloat32_t_val, svfloat32x2_t_val);
|
||||
svmop4a_1x2_za32_s8_s8(2, svint8_t_val, svint8x2_t_val);
|
||||
svmop4a_1x2_za32_s8_u8(2, svint8_t_val, svuint8x2_t_val);
|
||||
svmop4a_1x2_za32_s16_s16(2, svint16_t_val, svint16x2_t_val);
|
||||
svmop4a_1x2_za32_u8_s8(2, svuint8_t_val, svint8x2_t_val);
|
||||
svmop4a_1x2_za32_u8_u8(2, svuint8_t_val, svuint8x2_t_val);
|
||||
svmop4a_1x2_za32_u16_u16(2, svuint16_t_val, svuint16x2_t_val);
|
||||
svmop4a_2x1_za32_bf16_bf16(2, svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
svmop4a_2x1_za32_f16_f16(2, svfloat16x2_t_val, svfloat16_t_val);
|
||||
svmop4a_2x1_za32_f32_f32(2, svfloat32x2_t_val, svfloat32_t_val);
|
||||
svmop4a_2x1_za32_s8_s8(2, svint8x2_t_val, svint8_t_val);
|
||||
svmop4a_2x1_za32_s8_u8(2, svint8x2_t_val, svuint8_t_val);
|
||||
svmop4a_2x1_za32_s16_s16(2, svint16x2_t_val, svint16_t_val);
|
||||
svmop4a_2x1_za32_u8_s8(2, svuint8x2_t_val, svint8_t_val);
|
||||
svmop4a_2x1_za32_u8_u8(2, svuint8x2_t_val, svuint8_t_val);
|
||||
svmop4a_2x1_za32_u16_u16(2, svuint16x2_t_val, svuint16_t_val);
|
||||
svmop4a_2x2_za32_bf16_bf16(2, svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
svmop4a_2x2_za32_f16_f16(2, svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
svmop4a_2x2_za32_f32_f32(2, svfloat32x2_t_val, svfloat32x2_t_val);
|
||||
svmop4a_2x2_za32_s8_s8(2, svint8x2_t_val, svint8x2_t_val);
|
||||
svmop4a_2x2_za32_s8_u8(2, svint8x2_t_val, svuint8x2_t_val);
|
||||
svmop4a_2x2_za32_s16_s16(2, svint16x2_t_val, svint16x2_t_val);
|
||||
svmop4a_2x2_za32_u8_s8(2, svuint8x2_t_val, svint8x2_t_val);
|
||||
svmop4a_2x2_za32_u8_u8(2, svuint8x2_t_val, svuint8x2_t_val);
|
||||
svmop4a_2x2_za32_u16_u16(2, svuint16x2_t_val, svuint16x2_t_val);
|
||||
svmop4a_za32(2, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmop4a_za32(2, svbfloat16_t_val, svbfloat16x2_t_val);
|
||||
svmop4a_za32(2, svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
svmop4a_za32(2, svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
svmop4a_za32(2, svfloat16_t_val, svfloat16_t_val);
|
||||
svmop4a_za32(2, svfloat16_t_val, svfloat16x2_t_val);
|
||||
svmop4a_za32(2, svfloat16x2_t_val, svfloat16_t_val);
|
||||
svmop4a_za32(2, svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
svmop4a_za32(2, svfloat32_t_val, svfloat32_t_val);
|
||||
svmop4a_za32(2, svfloat32_t_val, svfloat32x2_t_val);
|
||||
svmop4a_za32(2, svfloat32x2_t_val, svfloat32_t_val);
|
||||
svmop4a_za32(2, svfloat32x2_t_val, svfloat32x2_t_val);
|
||||
svmop4a_za32(2, svint8_t_val, svint8_t_val);
|
||||
svmop4a_za32(2, svint8_t_val, svint8x2_t_val);
|
||||
svmop4a_za32(2, svint8_t_val, svuint8_t_val);
|
||||
svmop4a_za32(2, svint8_t_val, svuint8x2_t_val);
|
||||
svmop4a_za32(2, svint8x2_t_val, svint8_t_val);
|
||||
svmop4a_za32(2, svint8x2_t_val, svint8x2_t_val);
|
||||
svmop4a_za32(2, svint8x2_t_val, svuint8_t_val);
|
||||
svmop4a_za32(2, svint8x2_t_val, svuint8x2_t_val);
|
||||
svmop4a_za32(2, svint16_t_val, svint16_t_val);
|
||||
svmop4a_za32(2, svint16_t_val, svint16x2_t_val);
|
||||
svmop4a_za32(2, svint16x2_t_val, svint16_t_val);
|
||||
svmop4a_za32(2, svint16x2_t_val, svint16x2_t_val);
|
||||
svmop4a_za32(2, svuint8_t_val, svint8_t_val);
|
||||
svmop4a_za32(2, svuint8_t_val, svint8x2_t_val);
|
||||
svmop4a_za32(2, svuint8_t_val, svuint8_t_val);
|
||||
svmop4a_za32(2, svuint8_t_val, svuint8x2_t_val);
|
||||
svmop4a_za32(2, svuint8x2_t_val, svint8_t_val);
|
||||
svmop4a_za32(2, svuint8x2_t_val, svint8x2_t_val);
|
||||
svmop4a_za32(2, svuint8x2_t_val, svuint8_t_val);
|
||||
svmop4a_za32(2, svuint8x2_t_val, svuint8x2_t_val);
|
||||
svmop4a_za32(2, svuint16_t_val, svuint16_t_val);
|
||||
svmop4a_za32(2, svuint16_t_val, svuint16x2_t_val);
|
||||
svmop4a_za32(2, svuint16x2_t_val, svuint16_t_val);
|
||||
svmop4a_za32(2, svuint16x2_t_val, svuint16x2_t_val);
|
||||
svmop4s_1x1_za32_bf16_bf16(2, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmop4s_1x1_za32_f16_f16(2, svfloat16_t_val, svfloat16_t_val);
|
||||
svmop4s_1x1_za32_f32_f32(2, svfloat32_t_val, svfloat32_t_val);
|
||||
svmop4s_1x1_za32_s8_s8(2, svint8_t_val, svint8_t_val);
|
||||
svmop4s_1x1_za32_s8_u8(2, svint8_t_val, svuint8_t_val);
|
||||
svmop4s_1x1_za32_s16_s16(2, svint16_t_val, svint16_t_val);
|
||||
svmop4s_1x1_za32_u8_s8(2, svuint8_t_val, svint8_t_val);
|
||||
svmop4s_1x1_za32_u8_u8(2, svuint8_t_val, svuint8_t_val);
|
||||
svmop4s_1x1_za32_u16_u16(2, svuint16_t_val, svuint16_t_val);
|
||||
svmop4s_1x2_za32_bf16_bf16(2, svbfloat16_t_val, svbfloat16x2_t_val);
|
||||
svmop4s_1x2_za32_f16_f16(2, svfloat16_t_val, svfloat16x2_t_val);
|
||||
svmop4s_1x2_za32_f32_f32(2, svfloat32_t_val, svfloat32x2_t_val);
|
||||
svmop4s_1x2_za32_s8_s8(2, svint8_t_val, svint8x2_t_val);
|
||||
svmop4s_1x2_za32_s8_u8(2, svint8_t_val, svuint8x2_t_val);
|
||||
svmop4s_1x2_za32_s16_s16(2, svint16_t_val, svint16x2_t_val);
|
||||
svmop4s_1x2_za32_u8_s8(2, svuint8_t_val, svint8x2_t_val);
|
||||
svmop4s_1x2_za32_u8_u8(2, svuint8_t_val, svuint8x2_t_val);
|
||||
svmop4s_1x2_za32_u16_u16(2, svuint16_t_val, svuint16x2_t_val);
|
||||
svmop4s_2x1_za32_bf16_bf16(2, svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
svmop4s_2x1_za32_f16_f16(2, svfloat16x2_t_val, svfloat16_t_val);
|
||||
svmop4s_2x1_za32_f32_f32(2, svfloat32x2_t_val, svfloat32_t_val);
|
||||
svmop4s_2x1_za32_s8_s8(2, svint8x2_t_val, svint8_t_val);
|
||||
svmop4s_2x1_za32_s8_u8(2, svint8x2_t_val, svuint8_t_val);
|
||||
svmop4s_2x1_za32_s16_s16(2, svint16x2_t_val, svint16_t_val);
|
||||
svmop4s_2x1_za32_u8_s8(2, svuint8x2_t_val, svint8_t_val);
|
||||
svmop4s_2x1_za32_u8_u8(2, svuint8x2_t_val, svuint8_t_val);
|
||||
svmop4s_2x1_za32_u16_u16(2, svuint16x2_t_val, svuint16_t_val);
|
||||
svmop4s_2x2_za32_bf16_bf16(2, svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
svmop4s_2x2_za32_f16_f16(2, svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
svmop4s_2x2_za32_f32_f32(2, svfloat32x2_t_val, svfloat32x2_t_val);
|
||||
svmop4s_2x2_za32_s8_s8(2, svint8x2_t_val, svint8x2_t_val);
|
||||
svmop4s_2x2_za32_s8_u8(2, svint8x2_t_val, svuint8x2_t_val);
|
||||
svmop4s_2x2_za32_s16_s16(2, svint16x2_t_val, svint16x2_t_val);
|
||||
svmop4s_2x2_za32_u8_s8(2, svuint8x2_t_val, svint8x2_t_val);
|
||||
svmop4s_2x2_za32_u8_u8(2, svuint8x2_t_val, svuint8x2_t_val);
|
||||
svmop4s_2x2_za32_u16_u16(2, svuint16x2_t_val, svuint16x2_t_val);
|
||||
svmop4s_za32(2, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmop4s_za32(2, svbfloat16_t_val, svbfloat16x2_t_val);
|
||||
svmop4s_za32(2, svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
svmop4s_za32(2, svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
svmop4s_za32(2, svfloat16_t_val, svfloat16_t_val);
|
||||
svmop4s_za32(2, svfloat16_t_val, svfloat16x2_t_val);
|
||||
svmop4s_za32(2, svfloat16x2_t_val, svfloat16_t_val);
|
||||
svmop4s_za32(2, svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
svmop4s_za32(2, svfloat32_t_val, svfloat32_t_val);
|
||||
svmop4s_za32(2, svfloat32_t_val, svfloat32x2_t_val);
|
||||
svmop4s_za32(2, svfloat32x2_t_val, svfloat32_t_val);
|
||||
svmop4s_za32(2, svfloat32x2_t_val, svfloat32x2_t_val);
|
||||
svmop4s_za32(2, svint8_t_val, svint8_t_val);
|
||||
svmop4s_za32(2, svint8_t_val, svint8x2_t_val);
|
||||
svmop4s_za32(2, svint8_t_val, svuint8_t_val);
|
||||
svmop4s_za32(2, svint8_t_val, svuint8x2_t_val);
|
||||
svmop4s_za32(2, svint8x2_t_val, svint8_t_val);
|
||||
svmop4s_za32(2, svint8x2_t_val, svint8x2_t_val);
|
||||
svmop4s_za32(2, svint8x2_t_val, svuint8_t_val);
|
||||
svmop4s_za32(2, svint8x2_t_val, svuint8x2_t_val);
|
||||
svmop4s_za32(2, svint16_t_val, svint16_t_val);
|
||||
svmop4s_za32(2, svint16_t_val, svint16x2_t_val);
|
||||
svmop4s_za32(2, svint16x2_t_val, svint16_t_val);
|
||||
svmop4s_za32(2, svint16x2_t_val, svint16x2_t_val);
|
||||
svmop4s_za32(2, svuint8_t_val, svint8_t_val);
|
||||
svmop4s_za32(2, svuint8_t_val, svint8x2_t_val);
|
||||
svmop4s_za32(2, svuint8_t_val, svuint8_t_val);
|
||||
svmop4s_za32(2, svuint8_t_val, svuint8x2_t_val);
|
||||
svmop4s_za32(2, svuint8x2_t_val, svint8_t_val);
|
||||
svmop4s_za32(2, svuint8x2_t_val, svint8x2_t_val);
|
||||
svmop4s_za32(2, svuint8x2_t_val, svuint8_t_val);
|
||||
svmop4s_za32(2, svuint8x2_t_val, svuint8x2_t_val);
|
||||
svmop4s_za32(2, svuint16_t_val, svuint16_t_val);
|
||||
svmop4s_za32(2, svuint16_t_val, svuint16x2_t_val);
|
||||
svmop4s_za32(2, svuint16x2_t_val, svuint16_t_val);
|
||||
svmop4s_za32(2, svuint16x2_t_val, svuint16x2_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible __arm_inout("za"){
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svbfloat16x2_t svbfloat16x2_t_val;
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svfloat16x2_t svfloat16x2_t_val;
|
||||
svfloat32_t svfloat32_t_val;
|
||||
svfloat32x2_t svfloat32x2_t_val;
|
||||
svint8_t svint8_t_val;
|
||||
svint8x2_t svint8x2_t_val;
|
||||
svint16_t svint16_t_val;
|
||||
svint16x2_t svint16x2_t_val;
|
||||
svuint8_t svuint8_t_val;
|
||||
svuint8x2_t svuint8x2_t_val;
|
||||
svuint16_t svuint16_t_val;
|
||||
svuint16x2_t svuint16x2_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x1_za32_bf16_bf16(2, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x1_za32_f16_f16(2, svfloat16_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x1_za32_f32_f32(2, svfloat32_t_val, svfloat32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x1_za32_s8_s8(2, svint8_t_val, svint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x1_za32_s8_u8(2, svint8_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x1_za32_s16_s16(2, svint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x1_za32_u8_s8(2, svuint8_t_val, svint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x1_za32_u8_u8(2, svuint8_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x1_za32_u16_u16(2, svuint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x2_za32_bf16_bf16(2, svbfloat16_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x2_za32_f16_f16(2, svfloat16_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x2_za32_f32_f32(2, svfloat32_t_val, svfloat32x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x2_za32_s8_s8(2, svint8_t_val, svint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x2_za32_s8_u8(2, svint8_t_val, svuint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x2_za32_s16_s16(2, svint16_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x2_za32_u8_s8(2, svuint8_t_val, svint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x2_za32_u8_u8(2, svuint8_t_val, svuint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x2_za32_u16_u16(2, svuint16_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x1_za32_bf16_bf16(2, svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x1_za32_f16_f16(2, svfloat16x2_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x1_za32_f32_f32(2, svfloat32x2_t_val, svfloat32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x1_za32_s8_s8(2, svint8x2_t_val, svint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x1_za32_s8_u8(2, svint8x2_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x1_za32_s16_s16(2, svint16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x1_za32_u8_s8(2, svuint8x2_t_val, svint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x1_za32_u8_u8(2, svuint8x2_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x1_za32_u16_u16(2, svuint16x2_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x2_za32_bf16_bf16(2, svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x2_za32_f16_f16(2, svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x2_za32_f32_f32(2, svfloat32x2_t_val, svfloat32x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x2_za32_s8_s8(2, svint8x2_t_val, svint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x2_za32_s8_u8(2, svint8x2_t_val, svuint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x2_za32_s16_s16(2, svint16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x2_za32_u8_s8(2, svuint8x2_t_val, svint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x2_za32_u8_u8(2, svuint8x2_t_val, svuint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x2_za32_u16_u16(2, svuint16x2_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svbfloat16_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svfloat16_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svfloat16_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svfloat16x2_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svfloat32_t_val, svfloat32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svfloat32_t_val, svfloat32x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svfloat32x2_t_val, svfloat32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svfloat32x2_t_val, svfloat32x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svint8_t_val, svint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svint8_t_val, svint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svint8_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svint8_t_val, svuint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svint8x2_t_val, svint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svint8x2_t_val, svint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svint8x2_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svint8x2_t_val, svuint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svint16_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svint16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svint16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svuint8_t_val, svint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svuint8_t_val, svint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svuint8_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svuint8_t_val, svuint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svuint8x2_t_val, svint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svuint8x2_t_val, svint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svuint8x2_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svuint8x2_t_val, svuint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svuint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svuint16_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svuint16x2_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32(2, svuint16x2_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x1_za32_bf16_bf16(2, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x1_za32_f16_f16(2, svfloat16_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x1_za32_f32_f32(2, svfloat32_t_val, svfloat32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x1_za32_s8_s8(2, svint8_t_val, svint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x1_za32_s8_u8(2, svint8_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x1_za32_s16_s16(2, svint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x1_za32_u8_s8(2, svuint8_t_val, svint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x1_za32_u8_u8(2, svuint8_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x1_za32_u16_u16(2, svuint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x2_za32_bf16_bf16(2, svbfloat16_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x2_za32_f16_f16(2, svfloat16_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x2_za32_f32_f32(2, svfloat32_t_val, svfloat32x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x2_za32_s8_s8(2, svint8_t_val, svint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x2_za32_s8_u8(2, svint8_t_val, svuint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x2_za32_s16_s16(2, svint16_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x2_za32_u8_s8(2, svuint8_t_val, svint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x2_za32_u8_u8(2, svuint8_t_val, svuint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x2_za32_u16_u16(2, svuint16_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x1_za32_bf16_bf16(2, svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x1_za32_f16_f16(2, svfloat16x2_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x1_za32_f32_f32(2, svfloat32x2_t_val, svfloat32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x1_za32_s8_s8(2, svint8x2_t_val, svint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x1_za32_s8_u8(2, svint8x2_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x1_za32_s16_s16(2, svint16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x1_za32_u8_s8(2, svuint8x2_t_val, svint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x1_za32_u8_u8(2, svuint8x2_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x1_za32_u16_u16(2, svuint16x2_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x2_za32_bf16_bf16(2, svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x2_za32_f16_f16(2, svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x2_za32_f32_f32(2, svfloat32x2_t_val, svfloat32x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x2_za32_s8_s8(2, svint8x2_t_val, svint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x2_za32_s8_u8(2, svint8x2_t_val, svuint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x2_za32_s16_s16(2, svint16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x2_za32_u8_s8(2, svuint8x2_t_val, svint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x2_za32_u8_u8(2, svuint8x2_t_val, svuint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x2_za32_u16_u16(2, svuint16x2_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svbfloat16_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svfloat16_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svfloat16_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svfloat16x2_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svfloat32_t_val, svfloat32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svfloat32_t_val, svfloat32x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svfloat32x2_t_val, svfloat32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svfloat32x2_t_val, svfloat32x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svint8_t_val, svint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svint8_t_val, svint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svint8_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svint8_t_val, svuint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svint8x2_t_val, svint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svint8x2_t_val, svint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svint8x2_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svint8x2_t_val, svuint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svint16_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svint16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svint16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svuint8_t_val, svint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svuint8_t_val, svint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svuint8_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svuint8_t_val, svuint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svuint8x2_t_val, svint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svuint8x2_t_val, svint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svuint8x2_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svuint8x2_t_val, svuint8x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svuint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svuint16_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svuint16x2_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za32(2, svuint16x2_t_val, svuint16x2_t_val);
|
||||
}
|
||||
@ -0,0 +1,106 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sme-b16b16 -target-feature +sme-mop4 -target-feature +sme2 -target-feature +sve -verify=streaming-guard
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sme.h>
|
||||
|
||||
// Properties: guard="" streaming_guard="sme,sme2,sme-mop4,sme-b16b16" flags="streaming-only,requires-za"
|
||||
|
||||
void test(void) __arm_inout("za"){
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svbfloat16x2_t svbfloat16x2_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x1_za16_bf16_bf16(1, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x2_za16_bf16_bf16(1, svbfloat16_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x1_za16_bf16_bf16(1, svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x2_za16_bf16_bf16(1, svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za16(1, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za16(1, svbfloat16_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za16(1, svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za16(1, svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x1_za16_bf16_bf16(1, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x2_za16_bf16_bf16(1, svbfloat16_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x1_za16_bf16_bf16(1, svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x2_za16_bf16_bf16(1, svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za16(1, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za16(1, svbfloat16_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za16(1, svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za16(1, svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming __arm_inout("za"){
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svbfloat16x2_t svbfloat16x2_t_val;
|
||||
|
||||
svmop4a_1x1_za16_bf16_bf16(1, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmop4a_1x2_za16_bf16_bf16(1, svbfloat16_t_val, svbfloat16x2_t_val);
|
||||
svmop4a_2x1_za16_bf16_bf16(1, svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
svmop4a_2x2_za16_bf16_bf16(1, svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
svmop4a_za16(1, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmop4a_za16(1, svbfloat16_t_val, svbfloat16x2_t_val);
|
||||
svmop4a_za16(1, svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
svmop4a_za16(1, svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
svmop4s_1x1_za16_bf16_bf16(1, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmop4s_1x2_za16_bf16_bf16(1, svbfloat16_t_val, svbfloat16x2_t_val);
|
||||
svmop4s_2x1_za16_bf16_bf16(1, svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
svmop4s_2x2_za16_bf16_bf16(1, svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
svmop4s_za16(1, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmop4s_za16(1, svbfloat16_t_val, svbfloat16x2_t_val);
|
||||
svmop4s_za16(1, svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
svmop4s_za16(1, svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible __arm_inout("za"){
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svbfloat16x2_t svbfloat16x2_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x1_za16_bf16_bf16(1, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x2_za16_bf16_bf16(1, svbfloat16_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x1_za16_bf16_bf16(1, svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x2_za16_bf16_bf16(1, svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za16(1, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za16(1, svbfloat16_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za16(1, svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za16(1, svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x1_za16_bf16_bf16(1, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x2_za16_bf16_bf16(1, svbfloat16_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x1_za16_bf16_bf16(1, svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x2_za16_bf16_bf16(1, svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za16(1, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za16(1, svbfloat16_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za16(1, svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za16(1, svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
}
|
||||
@ -0,0 +1,106 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sme-f16f16 -target-feature +sme-mop4 -target-feature +sme2 -target-feature +sve -verify=streaming-guard
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sme.h>
|
||||
|
||||
// Properties: guard="" streaming_guard="sme,sme2,sme-mop4,sme-f16f16" flags="streaming-only,requires-za"
|
||||
|
||||
void test(void) __arm_inout("za"){
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svfloat16x2_t svfloat16x2_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x1_za16_f16_f16(1, svfloat16_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x2_za16_f16_f16(1, svfloat16_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x1_za16_f16_f16(1, svfloat16x2_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x2_za16_f16_f16(1, svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za16(1, svfloat16_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za16(1, svfloat16_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za16(1, svfloat16x2_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za16(1, svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x1_za16_f16_f16(1, svfloat16_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x2_za16_f16_f16(1, svfloat16_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x1_za16_f16_f16(1, svfloat16x2_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x2_za16_f16_f16(1, svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za16(1, svfloat16_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za16(1, svfloat16_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za16(1, svfloat16x2_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za16(1, svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming __arm_inout("za"){
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svfloat16x2_t svfloat16x2_t_val;
|
||||
|
||||
svmop4a_1x1_za16_f16_f16(1, svfloat16_t_val, svfloat16_t_val);
|
||||
svmop4a_1x2_za16_f16_f16(1, svfloat16_t_val, svfloat16x2_t_val);
|
||||
svmop4a_2x1_za16_f16_f16(1, svfloat16x2_t_val, svfloat16_t_val);
|
||||
svmop4a_2x2_za16_f16_f16(1, svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
svmop4a_za16(1, svfloat16_t_val, svfloat16_t_val);
|
||||
svmop4a_za16(1, svfloat16_t_val, svfloat16x2_t_val);
|
||||
svmop4a_za16(1, svfloat16x2_t_val, svfloat16_t_val);
|
||||
svmop4a_za16(1, svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
svmop4s_1x1_za16_f16_f16(1, svfloat16_t_val, svfloat16_t_val);
|
||||
svmop4s_1x2_za16_f16_f16(1, svfloat16_t_val, svfloat16x2_t_val);
|
||||
svmop4s_2x1_za16_f16_f16(1, svfloat16x2_t_val, svfloat16_t_val);
|
||||
svmop4s_2x2_za16_f16_f16(1, svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
svmop4s_za16(1, svfloat16_t_val, svfloat16_t_val);
|
||||
svmop4s_za16(1, svfloat16_t_val, svfloat16x2_t_val);
|
||||
svmop4s_za16(1, svfloat16x2_t_val, svfloat16_t_val);
|
||||
svmop4s_za16(1, svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible __arm_inout("za"){
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svfloat16x2_t svfloat16x2_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x1_za16_f16_f16(1, svfloat16_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x2_za16_f16_f16(1, svfloat16_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x1_za16_f16_f16(1, svfloat16x2_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x2_za16_f16_f16(1, svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za16(1, svfloat16_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za16(1, svfloat16_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za16(1, svfloat16x2_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za16(1, svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x1_za16_f16_f16(1, svfloat16_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x2_za16_f16_f16(1, svfloat16_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x1_za16_f16_f16(1, svfloat16x2_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x2_za16_f16_f16(1, svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za16(1, svfloat16_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za16(1, svfloat16_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za16(1, svfloat16x2_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za16(1, svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
}
|
||||
@ -0,0 +1,106 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sme-f64f64 -target-feature +sme-mop4 -target-feature +sme2 -target-feature +sve -verify=streaming-guard
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sme.h>
|
||||
|
||||
// Properties: guard="" streaming_guard="sme,sme2,sme-mop4,sme-f64f64" flags="streaming-only,requires-za"
|
||||
|
||||
void test(void) __arm_inout("za"){
|
||||
svfloat64_t svfloat64_t_val;
|
||||
svfloat64x2_t svfloat64x2_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x1_za64_f64_f64(2, svfloat64_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x2_za64_f64_f64(2, svfloat64_t_val, svfloat64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x1_za64_f64_f64(2, svfloat64x2_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x2_za64_f64_f64(2, svfloat64x2_t_val, svfloat64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svfloat64_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svfloat64_t_val, svfloat64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svfloat64x2_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svfloat64x2_t_val, svfloat64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x1_za64_f64_f64(2, svfloat64_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x2_za64_f64_f64(2, svfloat64_t_val, svfloat64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x1_za64_f64_f64(2, svfloat64x2_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x2_za64_f64_f64(2, svfloat64x2_t_val, svfloat64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svfloat64_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svfloat64_t_val, svfloat64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svfloat64x2_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svfloat64x2_t_val, svfloat64x2_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming __arm_inout("za"){
|
||||
svfloat64_t svfloat64_t_val;
|
||||
svfloat64x2_t svfloat64x2_t_val;
|
||||
|
||||
svmop4a_1x1_za64_f64_f64(2, svfloat64_t_val, svfloat64_t_val);
|
||||
svmop4a_1x2_za64_f64_f64(2, svfloat64_t_val, svfloat64x2_t_val);
|
||||
svmop4a_2x1_za64_f64_f64(2, svfloat64x2_t_val, svfloat64_t_val);
|
||||
svmop4a_2x2_za64_f64_f64(2, svfloat64x2_t_val, svfloat64x2_t_val);
|
||||
svmop4a_za64(2, svfloat64_t_val, svfloat64_t_val);
|
||||
svmop4a_za64(2, svfloat64_t_val, svfloat64x2_t_val);
|
||||
svmop4a_za64(2, svfloat64x2_t_val, svfloat64_t_val);
|
||||
svmop4a_za64(2, svfloat64x2_t_val, svfloat64x2_t_val);
|
||||
svmop4s_1x1_za64_f64_f64(2, svfloat64_t_val, svfloat64_t_val);
|
||||
svmop4s_1x2_za64_f64_f64(2, svfloat64_t_val, svfloat64x2_t_val);
|
||||
svmop4s_2x1_za64_f64_f64(2, svfloat64x2_t_val, svfloat64_t_val);
|
||||
svmop4s_2x2_za64_f64_f64(2, svfloat64x2_t_val, svfloat64x2_t_val);
|
||||
svmop4s_za64(2, svfloat64_t_val, svfloat64_t_val);
|
||||
svmop4s_za64(2, svfloat64_t_val, svfloat64x2_t_val);
|
||||
svmop4s_za64(2, svfloat64x2_t_val, svfloat64_t_val);
|
||||
svmop4s_za64(2, svfloat64x2_t_val, svfloat64x2_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible __arm_inout("za"){
|
||||
svfloat64_t svfloat64_t_val;
|
||||
svfloat64x2_t svfloat64x2_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x1_za64_f64_f64(2, svfloat64_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x2_za64_f64_f64(2, svfloat64_t_val, svfloat64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x1_za64_f64_f64(2, svfloat64x2_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x2_za64_f64_f64(2, svfloat64x2_t_val, svfloat64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svfloat64_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svfloat64_t_val, svfloat64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svfloat64x2_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svfloat64x2_t_val, svfloat64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x1_za64_f64_f64(2, svfloat64_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x2_za64_f64_f64(2, svfloat64_t_val, svfloat64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x1_za64_f64_f64(2, svfloat64x2_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x2_za64_f64_f64(2, svfloat64x2_t_val, svfloat64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svfloat64_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svfloat64_t_val, svfloat64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svfloat64x2_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svfloat64x2_t_val, svfloat64x2_t_val);
|
||||
}
|
||||
@ -0,0 +1,69 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sme-f8f16 -target-feature +sme-mop4 -target-feature +sme2 -target-feature +sve -verify=streaming-guard
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sme.h>
|
||||
|
||||
// Properties: guard="" streaming_guard="sme,sme2,sme-mop4,sme-f8f16" flags="streaming-only,requires-za"
|
||||
|
||||
void test(void) __arm_inout("za"){
|
||||
fpm_t fpm_t_val;
|
||||
svmfloat8_t svmfloat8_t_val;
|
||||
svmfloat8x2_t svmfloat8x2_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x1_za16_mf8_mf8_fpm(1, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x2_za16_mf8_mf8_fpm(1, svmfloat8_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x1_za16_mf8_mf8_fpm(1, svmfloat8x2_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x2_za16_mf8_mf8_fpm(1, svmfloat8x2_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za16_fpm(1, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za16_fpm(1, svmfloat8_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za16_fpm(1, svmfloat8x2_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za16_fpm(1, svmfloat8x2_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming __arm_inout("za"){
|
||||
fpm_t fpm_t_val;
|
||||
svmfloat8_t svmfloat8_t_val;
|
||||
svmfloat8x2_t svmfloat8x2_t_val;
|
||||
|
||||
svmop4a_1x1_za16_mf8_mf8_fpm(1, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
svmop4a_1x2_za16_mf8_mf8_fpm(1, svmfloat8_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
svmop4a_2x1_za16_mf8_mf8_fpm(1, svmfloat8x2_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
svmop4a_2x2_za16_mf8_mf8_fpm(1, svmfloat8x2_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
svmop4a_za16_fpm(1, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
svmop4a_za16_fpm(1, svmfloat8_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
svmop4a_za16_fpm(1, svmfloat8x2_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
svmop4a_za16_fpm(1, svmfloat8x2_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible __arm_inout("za"){
|
||||
fpm_t fpm_t_val;
|
||||
svmfloat8_t svmfloat8_t_val;
|
||||
svmfloat8x2_t svmfloat8x2_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x1_za16_mf8_mf8_fpm(1, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x2_za16_mf8_mf8_fpm(1, svmfloat8_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x1_za16_mf8_mf8_fpm(1, svmfloat8x2_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x2_za16_mf8_mf8_fpm(1, svmfloat8x2_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za16_fpm(1, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za16_fpm(1, svmfloat8_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za16_fpm(1, svmfloat8x2_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za16_fpm(1, svmfloat8x2_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
}
|
||||
@ -0,0 +1,69 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sme-f8f32 -target-feature +sme-mop4 -target-feature +sme2 -target-feature +sve -verify=streaming-guard
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sme.h>
|
||||
|
||||
// Properties: guard="" streaming_guard="sme,sme2,sme-mop4,sme-f8f32" flags="streaming-only,requires-za"
|
||||
|
||||
void test(void) __arm_inout("za"){
|
||||
fpm_t fpm_t_val;
|
||||
svmfloat8_t svmfloat8_t_val;
|
||||
svmfloat8x2_t svmfloat8x2_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x1_za32_mf8_mf8_fpm(2, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x2_za32_mf8_mf8_fpm(2, svmfloat8_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x1_za32_mf8_mf8_fpm(2, svmfloat8x2_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x2_za32_mf8_mf8_fpm(2, svmfloat8x2_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32_fpm(2, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32_fpm(2, svmfloat8_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32_fpm(2, svmfloat8x2_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32_fpm(2, svmfloat8x2_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming __arm_inout("za"){
|
||||
fpm_t fpm_t_val;
|
||||
svmfloat8_t svmfloat8_t_val;
|
||||
svmfloat8x2_t svmfloat8x2_t_val;
|
||||
|
||||
svmop4a_1x1_za32_mf8_mf8_fpm(2, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
svmop4a_1x2_za32_mf8_mf8_fpm(2, svmfloat8_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
svmop4a_2x1_za32_mf8_mf8_fpm(2, svmfloat8x2_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
svmop4a_2x2_za32_mf8_mf8_fpm(2, svmfloat8x2_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
svmop4a_za32_fpm(2, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
svmop4a_za32_fpm(2, svmfloat8_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
svmop4a_za32_fpm(2, svmfloat8x2_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
svmop4a_za32_fpm(2, svmfloat8x2_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible __arm_inout("za"){
|
||||
fpm_t fpm_t_val;
|
||||
svmfloat8_t svmfloat8_t_val;
|
||||
svmfloat8x2_t svmfloat8x2_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x1_za32_mf8_mf8_fpm(2, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x2_za32_mf8_mf8_fpm(2, svmfloat8_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x1_za32_mf8_mf8_fpm(2, svmfloat8x2_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x2_za32_mf8_mf8_fpm(2, svmfloat8x2_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32_fpm(2, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32_fpm(2, svmfloat8_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32_fpm(2, svmfloat8x2_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za32_fpm(2, svmfloat8x2_t_val, svmfloat8x2_t_val, fpm_t_val);
|
||||
}
|
||||
@ -0,0 +1,352 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sme-i16i64 -target-feature +sme-mop4 -target-feature +sme2 -target-feature +sve -verify=streaming-guard
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sme.h>
|
||||
|
||||
// Properties: guard="" streaming_guard="sme,sme2,sme-mop4,sme-i16i64" flags="streaming-only,requires-za"
|
||||
|
||||
void test(void) __arm_inout("za"){
|
||||
svint16_t svint16_t_val;
|
||||
svint16x2_t svint16x2_t_val;
|
||||
svuint16_t svuint16_t_val;
|
||||
svuint16x2_t svuint16x2_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x1_za64_s16_s16(2, svint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x1_za64_s16_u16(2, svint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x1_za64_u16_s16(2, svuint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x1_za64_u16_u16(2, svuint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x2_za64_s16_s16(2, svint16_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x2_za64_s16_u16(2, svint16_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x2_za64_u16_s16(2, svuint16_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x2_za64_u16_u16(2, svuint16_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x1_za64_s16_s16(2, svint16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x1_za64_s16_u16(2, svint16x2_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x1_za64_u16_s16(2, svuint16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x1_za64_u16_u16(2, svuint16x2_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x2_za64_s16_s16(2, svint16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x2_za64_s16_u16(2, svint16x2_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x2_za64_u16_s16(2, svuint16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x2_za64_u16_u16(2, svuint16x2_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svint16_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svint16_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svint16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svint16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svint16x2_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svint16x2_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svuint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svuint16_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svuint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svuint16_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svuint16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svuint16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svuint16x2_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svuint16x2_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x1_za64_s16_s16(2, svint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x1_za64_s16_u16(2, svint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x1_za64_u16_s16(2, svuint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x1_za64_u16_u16(2, svuint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x2_za64_s16_s16(2, svint16_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x2_za64_s16_u16(2, svint16_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x2_za64_u16_s16(2, svuint16_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x2_za64_u16_u16(2, svuint16_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x1_za64_s16_s16(2, svint16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x1_za64_s16_u16(2, svint16x2_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x1_za64_u16_s16(2, svuint16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x1_za64_u16_u16(2, svuint16x2_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x2_za64_s16_s16(2, svint16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x2_za64_s16_u16(2, svint16x2_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x2_za64_u16_s16(2, svuint16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x2_za64_u16_u16(2, svuint16x2_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svint16_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svint16_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svint16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svint16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svint16x2_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svint16x2_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svuint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svuint16_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svuint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svuint16_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svuint16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svuint16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svuint16x2_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svuint16x2_t_val, svuint16x2_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming __arm_inout("za"){
|
||||
svint16_t svint16_t_val;
|
||||
svint16x2_t svint16x2_t_val;
|
||||
svuint16_t svuint16_t_val;
|
||||
svuint16x2_t svuint16x2_t_val;
|
||||
|
||||
svmop4a_1x1_za64_s16_s16(2, svint16_t_val, svint16_t_val);
|
||||
svmop4a_1x1_za64_s16_u16(2, svint16_t_val, svuint16_t_val);
|
||||
svmop4a_1x1_za64_u16_s16(2, svuint16_t_val, svint16_t_val);
|
||||
svmop4a_1x1_za64_u16_u16(2, svuint16_t_val, svuint16_t_val);
|
||||
svmop4a_1x2_za64_s16_s16(2, svint16_t_val, svint16x2_t_val);
|
||||
svmop4a_1x2_za64_s16_u16(2, svint16_t_val, svuint16x2_t_val);
|
||||
svmop4a_1x2_za64_u16_s16(2, svuint16_t_val, svint16x2_t_val);
|
||||
svmop4a_1x2_za64_u16_u16(2, svuint16_t_val, svuint16x2_t_val);
|
||||
svmop4a_2x1_za64_s16_s16(2, svint16x2_t_val, svint16_t_val);
|
||||
svmop4a_2x1_za64_s16_u16(2, svint16x2_t_val, svuint16_t_val);
|
||||
svmop4a_2x1_za64_u16_s16(2, svuint16x2_t_val, svint16_t_val);
|
||||
svmop4a_2x1_za64_u16_u16(2, svuint16x2_t_val, svuint16_t_val);
|
||||
svmop4a_2x2_za64_s16_s16(2, svint16x2_t_val, svint16x2_t_val);
|
||||
svmop4a_2x2_za64_s16_u16(2, svint16x2_t_val, svuint16x2_t_val);
|
||||
svmop4a_2x2_za64_u16_s16(2, svuint16x2_t_val, svint16x2_t_val);
|
||||
svmop4a_2x2_za64_u16_u16(2, svuint16x2_t_val, svuint16x2_t_val);
|
||||
svmop4a_za64(2, svint16_t_val, svint16_t_val);
|
||||
svmop4a_za64(2, svint16_t_val, svint16x2_t_val);
|
||||
svmop4a_za64(2, svint16_t_val, svuint16_t_val);
|
||||
svmop4a_za64(2, svint16_t_val, svuint16x2_t_val);
|
||||
svmop4a_za64(2, svint16x2_t_val, svint16_t_val);
|
||||
svmop4a_za64(2, svint16x2_t_val, svint16x2_t_val);
|
||||
svmop4a_za64(2, svint16x2_t_val, svuint16_t_val);
|
||||
svmop4a_za64(2, svint16x2_t_val, svuint16x2_t_val);
|
||||
svmop4a_za64(2, svuint16_t_val, svint16_t_val);
|
||||
svmop4a_za64(2, svuint16_t_val, svint16x2_t_val);
|
||||
svmop4a_za64(2, svuint16_t_val, svuint16_t_val);
|
||||
svmop4a_za64(2, svuint16_t_val, svuint16x2_t_val);
|
||||
svmop4a_za64(2, svuint16x2_t_val, svint16_t_val);
|
||||
svmop4a_za64(2, svuint16x2_t_val, svint16x2_t_val);
|
||||
svmop4a_za64(2, svuint16x2_t_val, svuint16_t_val);
|
||||
svmop4a_za64(2, svuint16x2_t_val, svuint16x2_t_val);
|
||||
svmop4s_1x1_za64_s16_s16(2, svint16_t_val, svint16_t_val);
|
||||
svmop4s_1x1_za64_s16_u16(2, svint16_t_val, svuint16_t_val);
|
||||
svmop4s_1x1_za64_u16_s16(2, svuint16_t_val, svint16_t_val);
|
||||
svmop4s_1x1_za64_u16_u16(2, svuint16_t_val, svuint16_t_val);
|
||||
svmop4s_1x2_za64_s16_s16(2, svint16_t_val, svint16x2_t_val);
|
||||
svmop4s_1x2_za64_s16_u16(2, svint16_t_val, svuint16x2_t_val);
|
||||
svmop4s_1x2_za64_u16_s16(2, svuint16_t_val, svint16x2_t_val);
|
||||
svmop4s_1x2_za64_u16_u16(2, svuint16_t_val, svuint16x2_t_val);
|
||||
svmop4s_2x1_za64_s16_s16(2, svint16x2_t_val, svint16_t_val);
|
||||
svmop4s_2x1_za64_s16_u16(2, svint16x2_t_val, svuint16_t_val);
|
||||
svmop4s_2x1_za64_u16_s16(2, svuint16x2_t_val, svint16_t_val);
|
||||
svmop4s_2x1_za64_u16_u16(2, svuint16x2_t_val, svuint16_t_val);
|
||||
svmop4s_2x2_za64_s16_s16(2, svint16x2_t_val, svint16x2_t_val);
|
||||
svmop4s_2x2_za64_s16_u16(2, svint16x2_t_val, svuint16x2_t_val);
|
||||
svmop4s_2x2_za64_u16_s16(2, svuint16x2_t_val, svint16x2_t_val);
|
||||
svmop4s_2x2_za64_u16_u16(2, svuint16x2_t_val, svuint16x2_t_val);
|
||||
svmop4s_za64(2, svint16_t_val, svint16_t_val);
|
||||
svmop4s_za64(2, svint16_t_val, svint16x2_t_val);
|
||||
svmop4s_za64(2, svint16_t_val, svuint16_t_val);
|
||||
svmop4s_za64(2, svint16_t_val, svuint16x2_t_val);
|
||||
svmop4s_za64(2, svint16x2_t_val, svint16_t_val);
|
||||
svmop4s_za64(2, svint16x2_t_val, svint16x2_t_val);
|
||||
svmop4s_za64(2, svint16x2_t_val, svuint16_t_val);
|
||||
svmop4s_za64(2, svint16x2_t_val, svuint16x2_t_val);
|
||||
svmop4s_za64(2, svuint16_t_val, svint16_t_val);
|
||||
svmop4s_za64(2, svuint16_t_val, svint16x2_t_val);
|
||||
svmop4s_za64(2, svuint16_t_val, svuint16_t_val);
|
||||
svmop4s_za64(2, svuint16_t_val, svuint16x2_t_val);
|
||||
svmop4s_za64(2, svuint16x2_t_val, svint16_t_val);
|
||||
svmop4s_za64(2, svuint16x2_t_val, svint16x2_t_val);
|
||||
svmop4s_za64(2, svuint16x2_t_val, svuint16_t_val);
|
||||
svmop4s_za64(2, svuint16x2_t_val, svuint16x2_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible __arm_inout("za"){
|
||||
svint16_t svint16_t_val;
|
||||
svint16x2_t svint16x2_t_val;
|
||||
svuint16_t svuint16_t_val;
|
||||
svuint16x2_t svuint16x2_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x1_za64_s16_s16(2, svint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x1_za64_s16_u16(2, svint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x1_za64_u16_s16(2, svuint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x1_za64_u16_u16(2, svuint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x2_za64_s16_s16(2, svint16_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x2_za64_s16_u16(2, svint16_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x2_za64_u16_s16(2, svuint16_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_1x2_za64_u16_u16(2, svuint16_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x1_za64_s16_s16(2, svint16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x1_za64_s16_u16(2, svint16x2_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x1_za64_u16_s16(2, svuint16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x1_za64_u16_u16(2, svuint16x2_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x2_za64_s16_s16(2, svint16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x2_za64_s16_u16(2, svint16x2_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x2_za64_u16_s16(2, svuint16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_2x2_za64_u16_u16(2, svuint16x2_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svint16_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svint16_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svint16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svint16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svint16x2_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svint16x2_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svuint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svuint16_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svuint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svuint16_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svuint16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svuint16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svuint16x2_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4a_za64(2, svuint16x2_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x1_za64_s16_s16(2, svint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x1_za64_s16_u16(2, svint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x1_za64_u16_s16(2, svuint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x1_za64_u16_u16(2, svuint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x2_za64_s16_s16(2, svint16_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x2_za64_s16_u16(2, svint16_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x2_za64_u16_s16(2, svuint16_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_1x2_za64_u16_u16(2, svuint16_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x1_za64_s16_s16(2, svint16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x1_za64_s16_u16(2, svint16x2_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x1_za64_u16_s16(2, svuint16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x1_za64_u16_u16(2, svuint16x2_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x2_za64_s16_s16(2, svint16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x2_za64_s16_u16(2, svint16x2_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x2_za64_u16_s16(2, svuint16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_2x2_za64_u16_u16(2, svuint16x2_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svint16_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svint16_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svint16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svint16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svint16x2_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svint16x2_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svuint16_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svuint16_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svuint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svuint16_t_val, svuint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svuint16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svuint16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svuint16x2_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmop4s_za64(2, svuint16x2_t_val, svuint16x2_t_val);
|
||||
}
|
||||
@ -0,0 +1,152 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sme-tmop -target-feature +sme2 -target-feature +sve -verify=streaming-guard
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sme.h>
|
||||
|
||||
// Properties: guard="" streaming_guard="sme,sme2,sme-tmop" flags="streaming-only,requires-za"
|
||||
|
||||
void test(void) __arm_inout("za"){
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svbfloat16x2_t svbfloat16x2_t_val;
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svfloat16x2_t svfloat16x2_t_val;
|
||||
svfloat32_t svfloat32_t_val;
|
||||
svfloat32x2_t svfloat32x2_t_val;
|
||||
svint8_t svint8_t_val;
|
||||
svint8x2_t svint8x2_t_val;
|
||||
svint16_t svint16_t_val;
|
||||
svint16x2_t svint16x2_t_val;
|
||||
svuint8_t svuint8_t_val;
|
||||
svuint8x2_t svuint8x2_t_val;
|
||||
svuint16_t svuint16_t_val;
|
||||
svuint16x2_t svuint16x2_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32(2, svbfloat16x2_t_val, svbfloat16_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32(2, svfloat16x2_t_val, svfloat16_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32(2, svfloat32x2_t_val, svfloat32_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32(2, svint8x2_t_val, svint8_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32(2, svint8x2_t_val, svuint8_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32(2, svint16x2_t_val, svint16_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32(2, svuint8x2_t_val, svint8_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32(2, svuint8x2_t_val, svuint8_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32(2, svuint16x2_t_val, svuint16_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32_bf16_bf16(2, svbfloat16x2_t_val, svbfloat16_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32_f16_f16(2, svfloat16x2_t_val, svfloat16_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32_f32_f32(2, svfloat32x2_t_val, svfloat32_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32_s8_s8(2, svint8x2_t_val, svint8_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32_s8_u8(2, svint8x2_t_val, svuint8_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32_s16_s16(2, svint16x2_t_val, svint16_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32_u8_s8(2, svuint8x2_t_val, svint8_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32_u8_u8(2, svuint8x2_t_val, svuint8_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32_u16_u16(2, svuint16x2_t_val, svuint16_t_val, svuint8_t_val, 2);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming __arm_inout("za"){
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svbfloat16x2_t svbfloat16x2_t_val;
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svfloat16x2_t svfloat16x2_t_val;
|
||||
svfloat32_t svfloat32_t_val;
|
||||
svfloat32x2_t svfloat32x2_t_val;
|
||||
svint8_t svint8_t_val;
|
||||
svint8x2_t svint8x2_t_val;
|
||||
svint16_t svint16_t_val;
|
||||
svint16x2_t svint16x2_t_val;
|
||||
svuint8_t svuint8_t_val;
|
||||
svuint8x2_t svuint8x2_t_val;
|
||||
svuint16_t svuint16_t_val;
|
||||
svuint16x2_t svuint16x2_t_val;
|
||||
|
||||
svtmopa_lane_za32(2, svbfloat16x2_t_val, svbfloat16_t_val, svuint8_t_val, 2);
|
||||
svtmopa_lane_za32(2, svfloat16x2_t_val, svfloat16_t_val, svuint8_t_val, 2);
|
||||
svtmopa_lane_za32(2, svfloat32x2_t_val, svfloat32_t_val, svuint8_t_val, 2);
|
||||
svtmopa_lane_za32(2, svint8x2_t_val, svint8_t_val, svuint8_t_val, 2);
|
||||
svtmopa_lane_za32(2, svint8x2_t_val, svuint8_t_val, svuint8_t_val, 2);
|
||||
svtmopa_lane_za32(2, svint16x2_t_val, svint16_t_val, svuint8_t_val, 2);
|
||||
svtmopa_lane_za32(2, svuint8x2_t_val, svint8_t_val, svuint8_t_val, 2);
|
||||
svtmopa_lane_za32(2, svuint8x2_t_val, svuint8_t_val, svuint8_t_val, 2);
|
||||
svtmopa_lane_za32(2, svuint16x2_t_val, svuint16_t_val, svuint8_t_val, 2);
|
||||
svtmopa_lane_za32_bf16_bf16(2, svbfloat16x2_t_val, svbfloat16_t_val, svuint8_t_val, 2);
|
||||
svtmopa_lane_za32_f16_f16(2, svfloat16x2_t_val, svfloat16_t_val, svuint8_t_val, 2);
|
||||
svtmopa_lane_za32_f32_f32(2, svfloat32x2_t_val, svfloat32_t_val, svuint8_t_val, 2);
|
||||
svtmopa_lane_za32_s8_s8(2, svint8x2_t_val, svint8_t_val, svuint8_t_val, 2);
|
||||
svtmopa_lane_za32_s8_u8(2, svint8x2_t_val, svuint8_t_val, svuint8_t_val, 2);
|
||||
svtmopa_lane_za32_s16_s16(2, svint16x2_t_val, svint16_t_val, svuint8_t_val, 2);
|
||||
svtmopa_lane_za32_u8_s8(2, svuint8x2_t_val, svint8_t_val, svuint8_t_val, 2);
|
||||
svtmopa_lane_za32_u8_u8(2, svuint8x2_t_val, svuint8_t_val, svuint8_t_val, 2);
|
||||
svtmopa_lane_za32_u16_u16(2, svuint16x2_t_val, svuint16_t_val, svuint8_t_val, 2);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible __arm_inout("za"){
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svbfloat16x2_t svbfloat16x2_t_val;
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svfloat16x2_t svfloat16x2_t_val;
|
||||
svfloat32_t svfloat32_t_val;
|
||||
svfloat32x2_t svfloat32x2_t_val;
|
||||
svint8_t svint8_t_val;
|
||||
svint8x2_t svint8x2_t_val;
|
||||
svint16_t svint16_t_val;
|
||||
svint16x2_t svint16x2_t_val;
|
||||
svuint8_t svuint8_t_val;
|
||||
svuint8x2_t svuint8x2_t_val;
|
||||
svuint16_t svuint16_t_val;
|
||||
svuint16x2_t svuint16x2_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32(2, svbfloat16x2_t_val, svbfloat16_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32(2, svfloat16x2_t_val, svfloat16_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32(2, svfloat32x2_t_val, svfloat32_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32(2, svint8x2_t_val, svint8_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32(2, svint8x2_t_val, svuint8_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32(2, svint16x2_t_val, svint16_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32(2, svuint8x2_t_val, svint8_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32(2, svuint8x2_t_val, svuint8_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32(2, svuint16x2_t_val, svuint16_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32_bf16_bf16(2, svbfloat16x2_t_val, svbfloat16_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32_f16_f16(2, svfloat16x2_t_val, svfloat16_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32_f32_f32(2, svfloat32x2_t_val, svfloat32_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32_s8_s8(2, svint8x2_t_val, svint8_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32_s8_u8(2, svint8x2_t_val, svuint8_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32_s16_s16(2, svint16x2_t_val, svint16_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32_u8_s8(2, svuint8x2_t_val, svint8_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32_u8_u8(2, svuint8x2_t_val, svuint8_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32_u16_u16(2, svuint16x2_t_val, svuint16_t_val, svuint8_t_val, 2);
|
||||
}
|
||||
@ -0,0 +1,39 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sme-b16b16 -target-feature +sme-tmop -target-feature +sme2 -target-feature +sve -verify=streaming-guard
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sme.h>
|
||||
|
||||
// Properties: guard="" streaming_guard="sme,sme2,sme-tmop,sme-b16b16" flags="streaming-only,requires-za"
|
||||
|
||||
void test(void) __arm_inout("za"){
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svbfloat16x2_t svbfloat16x2_t_val;
|
||||
svuint8_t svuint8_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za16(1, svbfloat16x2_t_val, svbfloat16_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za16_bf16_bf16(1, svbfloat16x2_t_val, svbfloat16_t_val, svuint8_t_val, 2);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming __arm_inout("za"){
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svbfloat16x2_t svbfloat16x2_t_val;
|
||||
svuint8_t svuint8_t_val;
|
||||
|
||||
svtmopa_lane_za16(1, svbfloat16x2_t_val, svbfloat16_t_val, svuint8_t_val, 2);
|
||||
svtmopa_lane_za16_bf16_bf16(1, svbfloat16x2_t_val, svbfloat16_t_val, svuint8_t_val, 2);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible __arm_inout("za"){
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svbfloat16x2_t svbfloat16x2_t_val;
|
||||
svuint8_t svuint8_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za16(1, svbfloat16x2_t_val, svbfloat16_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za16_bf16_bf16(1, svbfloat16x2_t_val, svbfloat16_t_val, svuint8_t_val, 2);
|
||||
}
|
||||
@ -0,0 +1,39 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sme-f16f16 -target-feature +sme-tmop -target-feature +sme2 -target-feature +sve -verify=streaming-guard
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sme.h>
|
||||
|
||||
// Properties: guard="" streaming_guard="sme,sme2,sme-tmop,sme-f16f16" flags="streaming-only,requires-za"
|
||||
|
||||
void test(void) __arm_inout("za"){
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svfloat16x2_t svfloat16x2_t_val;
|
||||
svuint8_t svuint8_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za16(1, svfloat16x2_t_val, svfloat16_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za16_f16_f16(1, svfloat16x2_t_val, svfloat16_t_val, svuint8_t_val, 2);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming __arm_inout("za"){
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svfloat16x2_t svfloat16x2_t_val;
|
||||
svuint8_t svuint8_t_val;
|
||||
|
||||
svtmopa_lane_za16(1, svfloat16x2_t_val, svfloat16_t_val, svuint8_t_val, 2);
|
||||
svtmopa_lane_za16_f16_f16(1, svfloat16x2_t_val, svfloat16_t_val, svuint8_t_val, 2);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible __arm_inout("za"){
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svfloat16x2_t svfloat16x2_t_val;
|
||||
svuint8_t svuint8_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za16(1, svfloat16x2_t_val, svfloat16_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za16_f16_f16(1, svfloat16x2_t_val, svfloat16_t_val, svuint8_t_val, 2);
|
||||
}
|
||||
@ -0,0 +1,42 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sme-f8f16 -target-feature +sme-tmop -target-feature +sme2 -target-feature +sve -verify=streaming-guard
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sme.h>
|
||||
|
||||
// Properties: guard="" streaming_guard="sme,sme2,sme-tmop,sme-f8f16" flags="streaming-only,requires-za"
|
||||
|
||||
void test(void) __arm_inout("za"){
|
||||
fpm_t fpm_t_val;
|
||||
svmfloat8_t svmfloat8_t_val;
|
||||
svmfloat8x2_t svmfloat8x2_t_val;
|
||||
svuint8_t svuint8_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za16_fpm(1, svmfloat8x2_t_val, svmfloat8_t_val, svuint8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za16_mf8_mf8_fpm(1, svmfloat8x2_t_val, svmfloat8_t_val, svuint8_t_val, 2, fpm_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming __arm_inout("za"){
|
||||
fpm_t fpm_t_val;
|
||||
svmfloat8_t svmfloat8_t_val;
|
||||
svmfloat8x2_t svmfloat8x2_t_val;
|
||||
svuint8_t svuint8_t_val;
|
||||
|
||||
svtmopa_lane_za16_fpm(1, svmfloat8x2_t_val, svmfloat8_t_val, svuint8_t_val, 2, fpm_t_val);
|
||||
svtmopa_lane_za16_mf8_mf8_fpm(1, svmfloat8x2_t_val, svmfloat8_t_val, svuint8_t_val, 2, fpm_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible __arm_inout("za"){
|
||||
fpm_t fpm_t_val;
|
||||
svmfloat8_t svmfloat8_t_val;
|
||||
svmfloat8x2_t svmfloat8x2_t_val;
|
||||
svuint8_t svuint8_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za16_fpm(1, svmfloat8x2_t_val, svmfloat8_t_val, svuint8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za16_mf8_mf8_fpm(1, svmfloat8x2_t_val, svmfloat8_t_val, svuint8_t_val, 2, fpm_t_val);
|
||||
}
|
||||
@ -0,0 +1,42 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sme-f8f32 -target-feature +sme-tmop -target-feature +sme2 -target-feature +sve -verify=streaming-guard
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sme.h>
|
||||
|
||||
// Properties: guard="" streaming_guard="sme,sme2,sme-tmop,sme-f8f32" flags="streaming-only,requires-za"
|
||||
|
||||
void test(void) __arm_inout("za"){
|
||||
fpm_t fpm_t_val;
|
||||
svmfloat8_t svmfloat8_t_val;
|
||||
svmfloat8x2_t svmfloat8x2_t_val;
|
||||
svuint8_t svuint8_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32_fpm(2, svmfloat8x2_t_val, svmfloat8_t_val, svuint8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32_mf8_mf8_fpm(2, svmfloat8x2_t_val, svmfloat8_t_val, svuint8_t_val, 2, fpm_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming __arm_inout("za"){
|
||||
fpm_t fpm_t_val;
|
||||
svmfloat8_t svmfloat8_t_val;
|
||||
svmfloat8x2_t svmfloat8x2_t_val;
|
||||
svuint8_t svuint8_t_val;
|
||||
|
||||
svtmopa_lane_za32_fpm(2, svmfloat8x2_t_val, svmfloat8_t_val, svuint8_t_val, 2, fpm_t_val);
|
||||
svtmopa_lane_za32_mf8_mf8_fpm(2, svmfloat8x2_t_val, svmfloat8_t_val, svuint8_t_val, 2, fpm_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible __arm_inout("za"){
|
||||
fpm_t fpm_t_val;
|
||||
svmfloat8_t svmfloat8_t_val;
|
||||
svmfloat8x2_t svmfloat8x2_t_val;
|
||||
svuint8_t svuint8_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32_fpm(2, svmfloat8x2_t_val, svmfloat8_t_val, svuint8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svtmopa_lane_za32_mf8_mf8_fpm(2, svmfloat8x2_t_val, svmfloat8_t_val, svuint8_t_val, 2, fpm_t_val);
|
||||
}
|
||||
713
clang/test/Sema/AArch64/arm_sme_streaming_only_sme_AND_sme2p1.c
Normal file
713
clang/test/Sema/AArch64/arm_sme_streaming_only_sme_AND_sme2p1.c
Normal file
@ -0,0 +1,713 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sme2p1 -target-feature +sve -verify=streaming-guard
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sme.h>
|
||||
|
||||
// Properties: guard="" streaming_guard="sme,sme2p1" flags="streaming-only,requires-za"
|
||||
|
||||
void test(void) __arm_inout("za"){
|
||||
uint32_t uint32_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za8_mf8(0, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za8_mf8_vg2(0, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za8_mf8_vg4(0, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za8_s8(0, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za8_s8_vg2(0, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za8_s8_vg4(0, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za8_u8(0, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za8_u8_vg2(0, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za8_u8_vg4(0, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za16_bf16(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za16_bf16_vg2(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za16_bf16_vg4(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za16_f16(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za16_f16_vg2(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za16_f16_vg4(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za16_s16(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za16_s16_vg2(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za16_s16_vg4(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za16_u16(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za16_u16_vg2(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za16_u16_vg4(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za32_f32(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za32_f32_vg2(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za32_f32_vg4(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za32_s32(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za32_s32_vg2(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za32_s32_vg4(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za32_u32(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za32_u32_vg2(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za32_u32_vg4(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za64_f64(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za64_f64_vg2(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za64_f64_vg4(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za64_s64(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za64_s64_vg2(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za64_s64_vg4(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za64_u64(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za64_u64_vg2(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za64_u64_vg4(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za128_bf16(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za128_f16(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za128_f32(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za128_f64(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za128_mf8(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za128_s8(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za128_s16(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za128_s32(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za128_s64(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za128_u8(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za128_u16(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za128_u32(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za128_u64(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za8_mf8(0, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za8_mf8_vg2(0, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za8_mf8_vg4(0, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za8_s8(0, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za8_s8_vg2(0, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za8_s8_vg4(0, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za8_u8(0, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za8_u8_vg2(0, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za8_u8_vg4(0, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za16_bf16(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za16_bf16_vg2(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za16_bf16_vg4(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za16_f16(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za16_f16_vg2(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za16_f16_vg4(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za16_s16(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za16_s16_vg2(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za16_s16_vg4(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za16_u16(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za16_u16_vg2(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za16_u16_vg4(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za32_f32(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za32_f32_vg2(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za32_f32_vg4(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za32_s32(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za32_s32_vg2(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za32_s32_vg4(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za32_u32(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za32_u32_vg2(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za32_u32_vg4(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za64_f64(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za64_f64_vg2(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za64_f64_vg4(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za64_s64(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za64_s64_vg2(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za64_s64_vg4(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za64_u64(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za64_u64_vg2(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za64_u64_vg4(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za128_bf16(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za128_f16(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za128_f32(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za128_f64(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za128_mf8(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za128_s8(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za128_s16(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za128_s32(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za128_s64(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za128_u8(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za128_u16(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za128_u32(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za128_u64(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za8_mf8_vg1x2(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za8_mf8_vg1x4(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za8_s8_vg1x2(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za8_s8_vg1x4(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za8_u8_vg1x2(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za8_u8_vg1x4(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za16_bf16_vg1x2(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za16_bf16_vg1x4(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za16_f16_vg1x2(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za16_f16_vg1x4(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za16_s16_vg1x2(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za16_s16_vg1x4(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za16_u16_vg1x2(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za16_u16_vg1x4(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za32_f32_vg1x2(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za32_f32_vg1x4(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za32_s32_vg1x2(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za32_s32_vg1x4(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za32_u32_vg1x2(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za32_u32_vg1x4(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za64_f64_vg1x2(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za64_f64_vg1x4(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za64_s64_vg1x2(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za64_s64_vg1x4(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za64_u64_vg1x2(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za64_u64_vg1x4(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svzero_za64_vg1x2(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svzero_za64_vg1x4(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svzero_za64_vg2x1(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svzero_za64_vg2x2(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svzero_za64_vg2x4(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svzero_za64_vg4x1(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svzero_za64_vg4x2(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svzero_za64_vg4x4(uint32_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming __arm_inout("za"){
|
||||
uint32_t uint32_t_val;
|
||||
|
||||
svreadz_hor_za8_mf8(0, uint32_t_val);
|
||||
svreadz_hor_za8_mf8_vg2(0, uint32_t_val);
|
||||
svreadz_hor_za8_mf8_vg4(0, uint32_t_val);
|
||||
svreadz_hor_za8_s8(0, uint32_t_val);
|
||||
svreadz_hor_za8_s8_vg2(0, uint32_t_val);
|
||||
svreadz_hor_za8_s8_vg4(0, uint32_t_val);
|
||||
svreadz_hor_za8_u8(0, uint32_t_val);
|
||||
svreadz_hor_za8_u8_vg2(0, uint32_t_val);
|
||||
svreadz_hor_za8_u8_vg4(0, uint32_t_val);
|
||||
svreadz_hor_za16_bf16(1, uint32_t_val);
|
||||
svreadz_hor_za16_bf16_vg2(1, uint32_t_val);
|
||||
svreadz_hor_za16_bf16_vg4(1, uint32_t_val);
|
||||
svreadz_hor_za16_f16(1, uint32_t_val);
|
||||
svreadz_hor_za16_f16_vg2(1, uint32_t_val);
|
||||
svreadz_hor_za16_f16_vg4(1, uint32_t_val);
|
||||
svreadz_hor_za16_s16(1, uint32_t_val);
|
||||
svreadz_hor_za16_s16_vg2(1, uint32_t_val);
|
||||
svreadz_hor_za16_s16_vg4(1, uint32_t_val);
|
||||
svreadz_hor_za16_u16(1, uint32_t_val);
|
||||
svreadz_hor_za16_u16_vg2(1, uint32_t_val);
|
||||
svreadz_hor_za16_u16_vg4(1, uint32_t_val);
|
||||
svreadz_hor_za32_f32(2, uint32_t_val);
|
||||
svreadz_hor_za32_f32_vg2(2, uint32_t_val);
|
||||
svreadz_hor_za32_f32_vg4(2, uint32_t_val);
|
||||
svreadz_hor_za32_s32(2, uint32_t_val);
|
||||
svreadz_hor_za32_s32_vg2(2, uint32_t_val);
|
||||
svreadz_hor_za32_s32_vg4(2, uint32_t_val);
|
||||
svreadz_hor_za32_u32(2, uint32_t_val);
|
||||
svreadz_hor_za32_u32_vg2(2, uint32_t_val);
|
||||
svreadz_hor_za32_u32_vg4(2, uint32_t_val);
|
||||
svreadz_hor_za64_f64(2, uint32_t_val);
|
||||
svreadz_hor_za64_f64_vg2(2, uint32_t_val);
|
||||
svreadz_hor_za64_f64_vg4(2, uint32_t_val);
|
||||
svreadz_hor_za64_s64(2, uint32_t_val);
|
||||
svreadz_hor_za64_s64_vg2(2, uint32_t_val);
|
||||
svreadz_hor_za64_s64_vg4(2, uint32_t_val);
|
||||
svreadz_hor_za64_u64(2, uint32_t_val);
|
||||
svreadz_hor_za64_u64_vg2(2, uint32_t_val);
|
||||
svreadz_hor_za64_u64_vg4(2, uint32_t_val);
|
||||
svreadz_hor_za128_bf16(2, uint32_t_val);
|
||||
svreadz_hor_za128_f16(2, uint32_t_val);
|
||||
svreadz_hor_za128_f32(2, uint32_t_val);
|
||||
svreadz_hor_za128_f64(2, uint32_t_val);
|
||||
svreadz_hor_za128_mf8(2, uint32_t_val);
|
||||
svreadz_hor_za128_s8(2, uint32_t_val);
|
||||
svreadz_hor_za128_s16(2, uint32_t_val);
|
||||
svreadz_hor_za128_s32(2, uint32_t_val);
|
||||
svreadz_hor_za128_s64(2, uint32_t_val);
|
||||
svreadz_hor_za128_u8(2, uint32_t_val);
|
||||
svreadz_hor_za128_u16(2, uint32_t_val);
|
||||
svreadz_hor_za128_u32(2, uint32_t_val);
|
||||
svreadz_hor_za128_u64(2, uint32_t_val);
|
||||
svreadz_ver_za8_mf8(0, uint32_t_val);
|
||||
svreadz_ver_za8_mf8_vg2(0, uint32_t_val);
|
||||
svreadz_ver_za8_mf8_vg4(0, uint32_t_val);
|
||||
svreadz_ver_za8_s8(0, uint32_t_val);
|
||||
svreadz_ver_za8_s8_vg2(0, uint32_t_val);
|
||||
svreadz_ver_za8_s8_vg4(0, uint32_t_val);
|
||||
svreadz_ver_za8_u8(0, uint32_t_val);
|
||||
svreadz_ver_za8_u8_vg2(0, uint32_t_val);
|
||||
svreadz_ver_za8_u8_vg4(0, uint32_t_val);
|
||||
svreadz_ver_za16_bf16(1, uint32_t_val);
|
||||
svreadz_ver_za16_bf16_vg2(1, uint32_t_val);
|
||||
svreadz_ver_za16_bf16_vg4(1, uint32_t_val);
|
||||
svreadz_ver_za16_f16(1, uint32_t_val);
|
||||
svreadz_ver_za16_f16_vg2(1, uint32_t_val);
|
||||
svreadz_ver_za16_f16_vg4(1, uint32_t_val);
|
||||
svreadz_ver_za16_s16(1, uint32_t_val);
|
||||
svreadz_ver_za16_s16_vg2(1, uint32_t_val);
|
||||
svreadz_ver_za16_s16_vg4(1, uint32_t_val);
|
||||
svreadz_ver_za16_u16(1, uint32_t_val);
|
||||
svreadz_ver_za16_u16_vg2(1, uint32_t_val);
|
||||
svreadz_ver_za16_u16_vg4(1, uint32_t_val);
|
||||
svreadz_ver_za32_f32(2, uint32_t_val);
|
||||
svreadz_ver_za32_f32_vg2(2, uint32_t_val);
|
||||
svreadz_ver_za32_f32_vg4(2, uint32_t_val);
|
||||
svreadz_ver_za32_s32(2, uint32_t_val);
|
||||
svreadz_ver_za32_s32_vg2(2, uint32_t_val);
|
||||
svreadz_ver_za32_s32_vg4(2, uint32_t_val);
|
||||
svreadz_ver_za32_u32(2, uint32_t_val);
|
||||
svreadz_ver_za32_u32_vg2(2, uint32_t_val);
|
||||
svreadz_ver_za32_u32_vg4(2, uint32_t_val);
|
||||
svreadz_ver_za64_f64(2, uint32_t_val);
|
||||
svreadz_ver_za64_f64_vg2(2, uint32_t_val);
|
||||
svreadz_ver_za64_f64_vg4(2, uint32_t_val);
|
||||
svreadz_ver_za64_s64(2, uint32_t_val);
|
||||
svreadz_ver_za64_s64_vg2(2, uint32_t_val);
|
||||
svreadz_ver_za64_s64_vg4(2, uint32_t_val);
|
||||
svreadz_ver_za64_u64(2, uint32_t_val);
|
||||
svreadz_ver_za64_u64_vg2(2, uint32_t_val);
|
||||
svreadz_ver_za64_u64_vg4(2, uint32_t_val);
|
||||
svreadz_ver_za128_bf16(2, uint32_t_val);
|
||||
svreadz_ver_za128_f16(2, uint32_t_val);
|
||||
svreadz_ver_za128_f32(2, uint32_t_val);
|
||||
svreadz_ver_za128_f64(2, uint32_t_val);
|
||||
svreadz_ver_za128_mf8(2, uint32_t_val);
|
||||
svreadz_ver_za128_s8(2, uint32_t_val);
|
||||
svreadz_ver_za128_s16(2, uint32_t_val);
|
||||
svreadz_ver_za128_s32(2, uint32_t_val);
|
||||
svreadz_ver_za128_s64(2, uint32_t_val);
|
||||
svreadz_ver_za128_u8(2, uint32_t_val);
|
||||
svreadz_ver_za128_u16(2, uint32_t_val);
|
||||
svreadz_ver_za128_u32(2, uint32_t_val);
|
||||
svreadz_ver_za128_u64(2, uint32_t_val);
|
||||
svreadz_za8_mf8_vg1x2(uint32_t_val);
|
||||
svreadz_za8_mf8_vg1x4(uint32_t_val);
|
||||
svreadz_za8_s8_vg1x2(uint32_t_val);
|
||||
svreadz_za8_s8_vg1x4(uint32_t_val);
|
||||
svreadz_za8_u8_vg1x2(uint32_t_val);
|
||||
svreadz_za8_u8_vg1x4(uint32_t_val);
|
||||
svreadz_za16_bf16_vg1x2(uint32_t_val);
|
||||
svreadz_za16_bf16_vg1x4(uint32_t_val);
|
||||
svreadz_za16_f16_vg1x2(uint32_t_val);
|
||||
svreadz_za16_f16_vg1x4(uint32_t_val);
|
||||
svreadz_za16_s16_vg1x2(uint32_t_val);
|
||||
svreadz_za16_s16_vg1x4(uint32_t_val);
|
||||
svreadz_za16_u16_vg1x2(uint32_t_val);
|
||||
svreadz_za16_u16_vg1x4(uint32_t_val);
|
||||
svreadz_za32_f32_vg1x2(uint32_t_val);
|
||||
svreadz_za32_f32_vg1x4(uint32_t_val);
|
||||
svreadz_za32_s32_vg1x2(uint32_t_val);
|
||||
svreadz_za32_s32_vg1x4(uint32_t_val);
|
||||
svreadz_za32_u32_vg1x2(uint32_t_val);
|
||||
svreadz_za32_u32_vg1x4(uint32_t_val);
|
||||
svreadz_za64_f64_vg1x2(uint32_t_val);
|
||||
svreadz_za64_f64_vg1x4(uint32_t_val);
|
||||
svreadz_za64_s64_vg1x2(uint32_t_val);
|
||||
svreadz_za64_s64_vg1x4(uint32_t_val);
|
||||
svreadz_za64_u64_vg1x2(uint32_t_val);
|
||||
svreadz_za64_u64_vg1x4(uint32_t_val);
|
||||
svzero_za64_vg1x2(uint32_t_val);
|
||||
svzero_za64_vg1x4(uint32_t_val);
|
||||
svzero_za64_vg2x1(uint32_t_val);
|
||||
svzero_za64_vg2x2(uint32_t_val);
|
||||
svzero_za64_vg2x4(uint32_t_val);
|
||||
svzero_za64_vg4x1(uint32_t_val);
|
||||
svzero_za64_vg4x2(uint32_t_val);
|
||||
svzero_za64_vg4x4(uint32_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible __arm_inout("za"){
|
||||
uint32_t uint32_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za8_mf8(0, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za8_mf8_vg2(0, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za8_mf8_vg4(0, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za8_s8(0, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za8_s8_vg2(0, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za8_s8_vg4(0, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za8_u8(0, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za8_u8_vg2(0, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za8_u8_vg4(0, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za16_bf16(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za16_bf16_vg2(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za16_bf16_vg4(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za16_f16(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za16_f16_vg2(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za16_f16_vg4(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za16_s16(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za16_s16_vg2(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za16_s16_vg4(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za16_u16(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za16_u16_vg2(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za16_u16_vg4(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za32_f32(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za32_f32_vg2(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za32_f32_vg4(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za32_s32(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za32_s32_vg2(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za32_s32_vg4(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za32_u32(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za32_u32_vg2(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za32_u32_vg4(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za64_f64(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za64_f64_vg2(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za64_f64_vg4(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za64_s64(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za64_s64_vg2(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za64_s64_vg4(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za64_u64(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za64_u64_vg2(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za64_u64_vg4(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za128_bf16(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za128_f16(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za128_f32(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za128_f64(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za128_mf8(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za128_s8(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za128_s16(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za128_s32(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za128_s64(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za128_u8(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za128_u16(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za128_u32(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_hor_za128_u64(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za8_mf8(0, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za8_mf8_vg2(0, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za8_mf8_vg4(0, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za8_s8(0, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za8_s8_vg2(0, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za8_s8_vg4(0, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za8_u8(0, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za8_u8_vg2(0, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za8_u8_vg4(0, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za16_bf16(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za16_bf16_vg2(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za16_bf16_vg4(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za16_f16(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za16_f16_vg2(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za16_f16_vg4(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za16_s16(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za16_s16_vg2(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za16_s16_vg4(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za16_u16(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za16_u16_vg2(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za16_u16_vg4(1, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za32_f32(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za32_f32_vg2(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za32_f32_vg4(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za32_s32(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za32_s32_vg2(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za32_s32_vg4(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za32_u32(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za32_u32_vg2(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za32_u32_vg4(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za64_f64(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za64_f64_vg2(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za64_f64_vg4(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za64_s64(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za64_s64_vg2(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za64_s64_vg4(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za64_u64(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za64_u64_vg2(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za64_u64_vg4(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za128_bf16(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za128_f16(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za128_f32(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za128_f64(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za128_mf8(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za128_s8(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za128_s16(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za128_s32(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za128_s64(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za128_u8(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za128_u16(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za128_u32(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_ver_za128_u64(2, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za8_mf8_vg1x2(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za8_mf8_vg1x4(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za8_s8_vg1x2(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za8_s8_vg1x4(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za8_u8_vg1x2(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za8_u8_vg1x4(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za16_bf16_vg1x2(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za16_bf16_vg1x4(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za16_f16_vg1x2(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za16_f16_vg1x4(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za16_s16_vg1x2(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za16_s16_vg1x4(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za16_u16_vg1x2(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za16_u16_vg1x4(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za32_f32_vg1x2(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za32_f32_vg1x4(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za32_s32_vg1x2(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za32_s32_vg1x4(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za32_u32_vg1x2(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za32_u32_vg1x4(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za64_f64_vg1x2(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za64_f64_vg1x4(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za64_s64_vg1x2(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za64_s64_vg1x4(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za64_u64_vg1x2(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svreadz_za64_u64_vg1x4(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svzero_za64_vg1x2(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svzero_za64_vg1x4(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svzero_za64_vg2x1(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svzero_za64_vg2x2(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svzero_za64_vg2x4(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svzero_za64_vg4x1(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svzero_za64_vg4x2(uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svzero_za64_vg4x4(uint32_t_val);
|
||||
}
|
||||
@ -0,0 +1,415 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sve -target-feature +sve2p1 -verify
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sme2 -target-feature +sve -verify
|
||||
// expected-no-diagnostics
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sve.h>
|
||||
|
||||
// Properties: guard="sve,(sve2p1|sme2)" streaming_guard="sme,(sve2p1|sme2)" flags="feature-dependent"
|
||||
|
||||
void test(void) {
|
||||
int64_t int64_t_val;
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svbool_t svbool_t_val;
|
||||
svboolx2_t svboolx2_t_val;
|
||||
svboolx4_t svboolx4_t_val;
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svfloat32_t svfloat32_t_val;
|
||||
svfloat64_t svfloat64_t_val;
|
||||
svint16_t svint16_t_val;
|
||||
svint32_t svint32_t_val;
|
||||
svint32x2_t svint32x2_t_val;
|
||||
svuint16_t svuint16_t_val;
|
||||
svuint32_t svuint32_t_val;
|
||||
svuint32x2_t svuint32x2_t_val;
|
||||
uint64_t uint64_t_val;
|
||||
|
||||
svbfmlslb(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svbfmlslb_f32(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svbfmlslb_lane(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val, 2);
|
||||
svbfmlslb_lane_f32(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val, 2);
|
||||
svbfmlslt(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svbfmlslt_f32(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svbfmlslt_lane(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val, 2);
|
||||
svbfmlslt_lane_f32(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val, 2);
|
||||
svclamp(svfloat16_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
svclamp(svfloat32_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
svclamp(svfloat64_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
svclamp_f16(svfloat16_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
svclamp_f32(svfloat32_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
svclamp_f64(svfloat64_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
svcreate2(svbool_t_val, svbool_t_val);
|
||||
svcreate2_b(svbool_t_val, svbool_t_val);
|
||||
svcreate4(svbool_t_val, svbool_t_val, svbool_t_val, svbool_t_val);
|
||||
svcreate4_b(svbool_t_val, svbool_t_val, svbool_t_val, svbool_t_val);
|
||||
svdot(svfloat32_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
svdot(svint32_t_val, svint16_t_val, svint16_t_val);
|
||||
svdot(svuint32_t_val, svuint16_t_val, svuint16_t_val);
|
||||
svdot_f32_f16(svfloat32_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
svdot_lane(svfloat32_t_val, svfloat16_t_val, svfloat16_t_val, 2);
|
||||
svdot_lane(svint32_t_val, svint16_t_val, svint16_t_val, 2);
|
||||
svdot_lane(svuint32_t_val, svuint16_t_val, svuint16_t_val, 2);
|
||||
svdot_lane_f32_f16(svfloat32_t_val, svfloat16_t_val, svfloat16_t_val, 2);
|
||||
svdot_lane_s32_s16(svint32_t_val, svint16_t_val, svint16_t_val, 2);
|
||||
svdot_lane_u32_u16(svuint32_t_val, svuint16_t_val, svuint16_t_val, 2);
|
||||
svdot_s32_s16(svint32_t_val, svint16_t_val, svint16_t_val);
|
||||
svdot_u32_u16(svuint32_t_val, svuint16_t_val, svuint16_t_val);
|
||||
svget2(svboolx2_t_val, 1);
|
||||
svget2_b(svboolx2_t_val, 1);
|
||||
svget4(svboolx4_t_val, 2);
|
||||
svget4_b(svboolx4_t_val, 2);
|
||||
svqcvtn_s16(svint32x2_t_val);
|
||||
svqcvtn_s16_s32_x2(svint32x2_t_val);
|
||||
svqcvtn_u16(svint32x2_t_val);
|
||||
svqcvtn_u16(svuint32x2_t_val);
|
||||
svqcvtn_u16_s32_x2(svint32x2_t_val);
|
||||
svqcvtn_u16_u32_x2(svuint32x2_t_val);
|
||||
svqrshrn_n_s16_s32_x2(svint32x2_t_val, 2);
|
||||
svqrshrn_n_u16_u32_x2(svuint32x2_t_val, 2);
|
||||
svqrshrn_s16(svint32x2_t_val, 2);
|
||||
svqrshrn_u16(svuint32x2_t_val, 2);
|
||||
svqrshrun_n_u16_s32_x2(svint32x2_t_val, 2);
|
||||
svqrshrun_u16(svint32x2_t_val, 2);
|
||||
svset2(svboolx2_t_val, 1, svbool_t_val);
|
||||
svset2_b(svboolx2_t_val, 1, svbool_t_val);
|
||||
svset4(svboolx4_t_val, 2, svbool_t_val);
|
||||
svset4_b(svboolx4_t_val, 2, svbool_t_val);
|
||||
svundef2_b();
|
||||
svundef4_b();
|
||||
svwhilege_b8_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilege_b8_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilege_b8_x2(int64_t_val, int64_t_val);
|
||||
svwhilege_b8_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilege_b16_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilege_b16_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilege_b16_x2(int64_t_val, int64_t_val);
|
||||
svwhilege_b16_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilege_b32_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilege_b32_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilege_b32_x2(int64_t_val, int64_t_val);
|
||||
svwhilege_b32_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilege_b64_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilege_b64_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilege_b64_x2(int64_t_val, int64_t_val);
|
||||
svwhilege_b64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilegt_b8_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilegt_b8_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilegt_b8_x2(int64_t_val, int64_t_val);
|
||||
svwhilegt_b8_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilegt_b16_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilegt_b16_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilegt_b16_x2(int64_t_val, int64_t_val);
|
||||
svwhilegt_b16_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilegt_b32_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilegt_b32_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilegt_b32_x2(int64_t_val, int64_t_val);
|
||||
svwhilegt_b32_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilegt_b64_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilegt_b64_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilegt_b64_x2(int64_t_val, int64_t_val);
|
||||
svwhilegt_b64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilele_b8_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilele_b8_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilele_b8_x2(int64_t_val, int64_t_val);
|
||||
svwhilele_b8_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilele_b16_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilele_b16_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilele_b16_x2(int64_t_val, int64_t_val);
|
||||
svwhilele_b16_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilele_b32_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilele_b32_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilele_b32_x2(int64_t_val, int64_t_val);
|
||||
svwhilele_b32_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilele_b64_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilele_b64_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilele_b64_x2(int64_t_val, int64_t_val);
|
||||
svwhilele_b64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilelt_b8_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilelt_b8_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilelt_b8_x2(int64_t_val, int64_t_val);
|
||||
svwhilelt_b8_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilelt_b16_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilelt_b16_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilelt_b16_x2(int64_t_val, int64_t_val);
|
||||
svwhilelt_b16_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilelt_b32_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilelt_b32_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilelt_b32_x2(int64_t_val, int64_t_val);
|
||||
svwhilelt_b32_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilelt_b64_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilelt_b64_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilelt_b64_x2(int64_t_val, int64_t_val);
|
||||
svwhilelt_b64_x2(uint64_t_val, uint64_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming{
|
||||
int64_t int64_t_val;
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svbool_t svbool_t_val;
|
||||
svboolx2_t svboolx2_t_val;
|
||||
svboolx4_t svboolx4_t_val;
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svfloat32_t svfloat32_t_val;
|
||||
svfloat64_t svfloat64_t_val;
|
||||
svint16_t svint16_t_val;
|
||||
svint32_t svint32_t_val;
|
||||
svint32x2_t svint32x2_t_val;
|
||||
svuint16_t svuint16_t_val;
|
||||
svuint32_t svuint32_t_val;
|
||||
svuint32x2_t svuint32x2_t_val;
|
||||
uint64_t uint64_t_val;
|
||||
|
||||
svbfmlslb(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svbfmlslb_f32(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svbfmlslb_lane(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val, 2);
|
||||
svbfmlslb_lane_f32(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val, 2);
|
||||
svbfmlslt(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svbfmlslt_f32(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svbfmlslt_lane(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val, 2);
|
||||
svbfmlslt_lane_f32(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val, 2);
|
||||
svclamp(svfloat16_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
svclamp(svfloat32_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
svclamp(svfloat64_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
svclamp_f16(svfloat16_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
svclamp_f32(svfloat32_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
svclamp_f64(svfloat64_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
svcreate2(svbool_t_val, svbool_t_val);
|
||||
svcreate2_b(svbool_t_val, svbool_t_val);
|
||||
svcreate4(svbool_t_val, svbool_t_val, svbool_t_val, svbool_t_val);
|
||||
svcreate4_b(svbool_t_val, svbool_t_val, svbool_t_val, svbool_t_val);
|
||||
svdot(svfloat32_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
svdot(svint32_t_val, svint16_t_val, svint16_t_val);
|
||||
svdot(svuint32_t_val, svuint16_t_val, svuint16_t_val);
|
||||
svdot_f32_f16(svfloat32_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
svdot_lane(svfloat32_t_val, svfloat16_t_val, svfloat16_t_val, 2);
|
||||
svdot_lane(svint32_t_val, svint16_t_val, svint16_t_val, 2);
|
||||
svdot_lane(svuint32_t_val, svuint16_t_val, svuint16_t_val, 2);
|
||||
svdot_lane_f32_f16(svfloat32_t_val, svfloat16_t_val, svfloat16_t_val, 2);
|
||||
svdot_lane_s32_s16(svint32_t_val, svint16_t_val, svint16_t_val, 2);
|
||||
svdot_lane_u32_u16(svuint32_t_val, svuint16_t_val, svuint16_t_val, 2);
|
||||
svdot_s32_s16(svint32_t_val, svint16_t_val, svint16_t_val);
|
||||
svdot_u32_u16(svuint32_t_val, svuint16_t_val, svuint16_t_val);
|
||||
svget2(svboolx2_t_val, 1);
|
||||
svget2_b(svboolx2_t_val, 1);
|
||||
svget4(svboolx4_t_val, 2);
|
||||
svget4_b(svboolx4_t_val, 2);
|
||||
svqcvtn_s16(svint32x2_t_val);
|
||||
svqcvtn_s16_s32_x2(svint32x2_t_val);
|
||||
svqcvtn_u16(svint32x2_t_val);
|
||||
svqcvtn_u16(svuint32x2_t_val);
|
||||
svqcvtn_u16_s32_x2(svint32x2_t_val);
|
||||
svqcvtn_u16_u32_x2(svuint32x2_t_val);
|
||||
svqrshrn_n_s16_s32_x2(svint32x2_t_val, 2);
|
||||
svqrshrn_n_u16_u32_x2(svuint32x2_t_val, 2);
|
||||
svqrshrn_s16(svint32x2_t_val, 2);
|
||||
svqrshrn_u16(svuint32x2_t_val, 2);
|
||||
svqrshrun_n_u16_s32_x2(svint32x2_t_val, 2);
|
||||
svqrshrun_u16(svint32x2_t_val, 2);
|
||||
svset2(svboolx2_t_val, 1, svbool_t_val);
|
||||
svset2_b(svboolx2_t_val, 1, svbool_t_val);
|
||||
svset4(svboolx4_t_val, 2, svbool_t_val);
|
||||
svset4_b(svboolx4_t_val, 2, svbool_t_val);
|
||||
svundef2_b();
|
||||
svundef4_b();
|
||||
svwhilege_b8_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilege_b8_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilege_b8_x2(int64_t_val, int64_t_val);
|
||||
svwhilege_b8_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilege_b16_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilege_b16_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilege_b16_x2(int64_t_val, int64_t_val);
|
||||
svwhilege_b16_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilege_b32_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilege_b32_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilege_b32_x2(int64_t_val, int64_t_val);
|
||||
svwhilege_b32_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilege_b64_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilege_b64_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilege_b64_x2(int64_t_val, int64_t_val);
|
||||
svwhilege_b64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilegt_b8_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilegt_b8_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilegt_b8_x2(int64_t_val, int64_t_val);
|
||||
svwhilegt_b8_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilegt_b16_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilegt_b16_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilegt_b16_x2(int64_t_val, int64_t_val);
|
||||
svwhilegt_b16_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilegt_b32_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilegt_b32_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilegt_b32_x2(int64_t_val, int64_t_val);
|
||||
svwhilegt_b32_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilegt_b64_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilegt_b64_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilegt_b64_x2(int64_t_val, int64_t_val);
|
||||
svwhilegt_b64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilele_b8_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilele_b8_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilele_b8_x2(int64_t_val, int64_t_val);
|
||||
svwhilele_b8_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilele_b16_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilele_b16_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilele_b16_x2(int64_t_val, int64_t_val);
|
||||
svwhilele_b16_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilele_b32_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilele_b32_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilele_b32_x2(int64_t_val, int64_t_val);
|
||||
svwhilele_b32_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilele_b64_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilele_b64_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilele_b64_x2(int64_t_val, int64_t_val);
|
||||
svwhilele_b64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilelt_b8_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilelt_b8_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilelt_b8_x2(int64_t_val, int64_t_val);
|
||||
svwhilelt_b8_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilelt_b16_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilelt_b16_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilelt_b16_x2(int64_t_val, int64_t_val);
|
||||
svwhilelt_b16_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilelt_b32_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilelt_b32_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilelt_b32_x2(int64_t_val, int64_t_val);
|
||||
svwhilelt_b32_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilelt_b64_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilelt_b64_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilelt_b64_x2(int64_t_val, int64_t_val);
|
||||
svwhilelt_b64_x2(uint64_t_val, uint64_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible{
|
||||
int64_t int64_t_val;
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svbool_t svbool_t_val;
|
||||
svboolx2_t svboolx2_t_val;
|
||||
svboolx4_t svboolx4_t_val;
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svfloat32_t svfloat32_t_val;
|
||||
svfloat64_t svfloat64_t_val;
|
||||
svint16_t svint16_t_val;
|
||||
svint32_t svint32_t_val;
|
||||
svint32x2_t svint32x2_t_val;
|
||||
svuint16_t svuint16_t_val;
|
||||
svuint32_t svuint32_t_val;
|
||||
svuint32x2_t svuint32x2_t_val;
|
||||
uint64_t uint64_t_val;
|
||||
|
||||
svbfmlslb(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svbfmlslb_f32(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svbfmlslb_lane(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val, 2);
|
||||
svbfmlslb_lane_f32(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val, 2);
|
||||
svbfmlslt(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svbfmlslt_f32(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svbfmlslt_lane(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val, 2);
|
||||
svbfmlslt_lane_f32(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val, 2);
|
||||
svclamp(svfloat16_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
svclamp(svfloat32_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
svclamp(svfloat64_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
svclamp_f16(svfloat16_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
svclamp_f32(svfloat32_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
svclamp_f64(svfloat64_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
svcreate2(svbool_t_val, svbool_t_val);
|
||||
svcreate2_b(svbool_t_val, svbool_t_val);
|
||||
svcreate4(svbool_t_val, svbool_t_val, svbool_t_val, svbool_t_val);
|
||||
svcreate4_b(svbool_t_val, svbool_t_val, svbool_t_val, svbool_t_val);
|
||||
svdot(svfloat32_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
svdot(svint32_t_val, svint16_t_val, svint16_t_val);
|
||||
svdot(svuint32_t_val, svuint16_t_val, svuint16_t_val);
|
||||
svdot_f32_f16(svfloat32_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
svdot_lane(svfloat32_t_val, svfloat16_t_val, svfloat16_t_val, 2);
|
||||
svdot_lane(svint32_t_val, svint16_t_val, svint16_t_val, 2);
|
||||
svdot_lane(svuint32_t_val, svuint16_t_val, svuint16_t_val, 2);
|
||||
svdot_lane_f32_f16(svfloat32_t_val, svfloat16_t_val, svfloat16_t_val, 2);
|
||||
svdot_lane_s32_s16(svint32_t_val, svint16_t_val, svint16_t_val, 2);
|
||||
svdot_lane_u32_u16(svuint32_t_val, svuint16_t_val, svuint16_t_val, 2);
|
||||
svdot_s32_s16(svint32_t_val, svint16_t_val, svint16_t_val);
|
||||
svdot_u32_u16(svuint32_t_val, svuint16_t_val, svuint16_t_val);
|
||||
svget2(svboolx2_t_val, 1);
|
||||
svget2_b(svboolx2_t_val, 1);
|
||||
svget4(svboolx4_t_val, 2);
|
||||
svget4_b(svboolx4_t_val, 2);
|
||||
svqcvtn_s16(svint32x2_t_val);
|
||||
svqcvtn_s16_s32_x2(svint32x2_t_val);
|
||||
svqcvtn_u16(svint32x2_t_val);
|
||||
svqcvtn_u16(svuint32x2_t_val);
|
||||
svqcvtn_u16_s32_x2(svint32x2_t_val);
|
||||
svqcvtn_u16_u32_x2(svuint32x2_t_val);
|
||||
svqrshrn_n_s16_s32_x2(svint32x2_t_val, 2);
|
||||
svqrshrn_n_u16_u32_x2(svuint32x2_t_val, 2);
|
||||
svqrshrn_s16(svint32x2_t_val, 2);
|
||||
svqrshrn_u16(svuint32x2_t_val, 2);
|
||||
svqrshrun_n_u16_s32_x2(svint32x2_t_val, 2);
|
||||
svqrshrun_u16(svint32x2_t_val, 2);
|
||||
svset2(svboolx2_t_val, 1, svbool_t_val);
|
||||
svset2_b(svboolx2_t_val, 1, svbool_t_val);
|
||||
svset4(svboolx4_t_val, 2, svbool_t_val);
|
||||
svset4_b(svboolx4_t_val, 2, svbool_t_val);
|
||||
svundef2_b();
|
||||
svundef4_b();
|
||||
svwhilege_b8_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilege_b8_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilege_b8_x2(int64_t_val, int64_t_val);
|
||||
svwhilege_b8_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilege_b16_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilege_b16_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilege_b16_x2(int64_t_val, int64_t_val);
|
||||
svwhilege_b16_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilege_b32_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilege_b32_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilege_b32_x2(int64_t_val, int64_t_val);
|
||||
svwhilege_b32_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilege_b64_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilege_b64_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilege_b64_x2(int64_t_val, int64_t_val);
|
||||
svwhilege_b64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilegt_b8_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilegt_b8_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilegt_b8_x2(int64_t_val, int64_t_val);
|
||||
svwhilegt_b8_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilegt_b16_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilegt_b16_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilegt_b16_x2(int64_t_val, int64_t_val);
|
||||
svwhilegt_b16_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilegt_b32_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilegt_b32_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilegt_b32_x2(int64_t_val, int64_t_val);
|
||||
svwhilegt_b32_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilegt_b64_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilegt_b64_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilegt_b64_x2(int64_t_val, int64_t_val);
|
||||
svwhilegt_b64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilele_b8_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilele_b8_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilele_b8_x2(int64_t_val, int64_t_val);
|
||||
svwhilele_b8_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilele_b16_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilele_b16_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilele_b16_x2(int64_t_val, int64_t_val);
|
||||
svwhilele_b16_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilele_b32_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilele_b32_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilele_b32_x2(int64_t_val, int64_t_val);
|
||||
svwhilele_b32_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilele_b64_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilele_b64_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilele_b64_x2(int64_t_val, int64_t_val);
|
||||
svwhilele_b64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilelt_b8_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilelt_b8_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilelt_b8_x2(int64_t_val, int64_t_val);
|
||||
svwhilelt_b8_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilelt_b16_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilelt_b16_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilelt_b16_x2(int64_t_val, int64_t_val);
|
||||
svwhilelt_b16_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilelt_b32_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilelt_b32_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilelt_b32_x2(int64_t_val, int64_t_val);
|
||||
svwhilelt_b32_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilelt_b64_s64_x2(int64_t_val, int64_t_val);
|
||||
svwhilelt_b64_u64_x2(uint64_t_val, uint64_t_val);
|
||||
svwhilelt_b64_x2(int64_t_val, int64_t_val);
|
||||
svwhilelt_b64_x2(uint64_t_val, uint64_t_val);
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,360 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sve -verify
|
||||
// expected-no-diagnostics
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sve.h>
|
||||
|
||||
// Properties: guard="sve,(sve2p1|sme)" streaming_guard="sme" flags="feature-dependent"
|
||||
|
||||
void test(void) {
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svbool_t svbool_t_val;
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svfloat32_t svfloat32_t_val;
|
||||
svfloat64_t svfloat64_t_val;
|
||||
svint8_t svint8_t_val;
|
||||
svint16_t svint16_t_val;
|
||||
svint32_t svint32_t_val;
|
||||
svint64_t svint64_t_val;
|
||||
svmfloat8_t svmfloat8_t_val;
|
||||
svuint8_t svuint8_t_val;
|
||||
svuint16_t svuint16_t_val;
|
||||
svuint32_t svuint32_t_val;
|
||||
svuint64_t svuint64_t_val;
|
||||
uint32_t uint32_t_val;
|
||||
|
||||
svclamp(svint8_t_val, svint8_t_val, svint8_t_val);
|
||||
svclamp(svint16_t_val, svint16_t_val, svint16_t_val);
|
||||
svclamp(svint32_t_val, svint32_t_val, svint32_t_val);
|
||||
svclamp(svint64_t_val, svint64_t_val, svint64_t_val);
|
||||
svclamp(svuint8_t_val, svuint8_t_val, svuint8_t_val);
|
||||
svclamp(svuint16_t_val, svuint16_t_val, svuint16_t_val);
|
||||
svclamp(svuint32_t_val, svuint32_t_val, svuint32_t_val);
|
||||
svclamp(svuint64_t_val, svuint64_t_val, svuint64_t_val);
|
||||
svclamp_s8(svint8_t_val, svint8_t_val, svint8_t_val);
|
||||
svclamp_s16(svint16_t_val, svint16_t_val, svint16_t_val);
|
||||
svclamp_s32(svint32_t_val, svint32_t_val, svint32_t_val);
|
||||
svclamp_s64(svint64_t_val, svint64_t_val, svint64_t_val);
|
||||
svclamp_u8(svuint8_t_val, svuint8_t_val, svuint8_t_val);
|
||||
svclamp_u16(svuint16_t_val, svuint16_t_val, svuint16_t_val);
|
||||
svclamp_u32(svuint32_t_val, svuint32_t_val, svuint32_t_val);
|
||||
svclamp_u64(svuint64_t_val, svuint64_t_val, svuint64_t_val);
|
||||
svpsel_lane_b8(svbool_t_val, svbool_t_val, uint32_t_val);
|
||||
svpsel_lane_b16(svbool_t_val, svbool_t_val, uint32_t_val);
|
||||
svpsel_lane_b32(svbool_t_val, svbool_t_val, uint32_t_val);
|
||||
svpsel_lane_b64(svbool_t_val, svbool_t_val, uint32_t_val);
|
||||
svrevd_bf16_m(svbfloat16_t_val, svbool_t_val, svbfloat16_t_val);
|
||||
svrevd_bf16_x(svbool_t_val, svbfloat16_t_val);
|
||||
svrevd_bf16_z(svbool_t_val, svbfloat16_t_val);
|
||||
svrevd_f16_m(svfloat16_t_val, svbool_t_val, svfloat16_t_val);
|
||||
svrevd_f16_x(svbool_t_val, svfloat16_t_val);
|
||||
svrevd_f16_z(svbool_t_val, svfloat16_t_val);
|
||||
svrevd_f32_m(svfloat32_t_val, svbool_t_val, svfloat32_t_val);
|
||||
svrevd_f32_x(svbool_t_val, svfloat32_t_val);
|
||||
svrevd_f32_z(svbool_t_val, svfloat32_t_val);
|
||||
svrevd_f64_m(svfloat64_t_val, svbool_t_val, svfloat64_t_val);
|
||||
svrevd_f64_x(svbool_t_val, svfloat64_t_val);
|
||||
svrevd_f64_z(svbool_t_val, svfloat64_t_val);
|
||||
svrevd_m(svbfloat16_t_val, svbool_t_val, svbfloat16_t_val);
|
||||
svrevd_m(svfloat16_t_val, svbool_t_val, svfloat16_t_val);
|
||||
svrevd_m(svfloat32_t_val, svbool_t_val, svfloat32_t_val);
|
||||
svrevd_m(svfloat64_t_val, svbool_t_val, svfloat64_t_val);
|
||||
svrevd_m(svint8_t_val, svbool_t_val, svint8_t_val);
|
||||
svrevd_m(svint16_t_val, svbool_t_val, svint16_t_val);
|
||||
svrevd_m(svint32_t_val, svbool_t_val, svint32_t_val);
|
||||
svrevd_m(svint64_t_val, svbool_t_val, svint64_t_val);
|
||||
svrevd_m(svmfloat8_t_val, svbool_t_val, svmfloat8_t_val);
|
||||
svrevd_m(svuint8_t_val, svbool_t_val, svuint8_t_val);
|
||||
svrevd_m(svuint16_t_val, svbool_t_val, svuint16_t_val);
|
||||
svrevd_m(svuint32_t_val, svbool_t_val, svuint32_t_val);
|
||||
svrevd_m(svuint64_t_val, svbool_t_val, svuint64_t_val);
|
||||
svrevd_mf8_m(svmfloat8_t_val, svbool_t_val, svmfloat8_t_val);
|
||||
svrevd_mf8_x(svbool_t_val, svmfloat8_t_val);
|
||||
svrevd_mf8_z(svbool_t_val, svmfloat8_t_val);
|
||||
svrevd_s8_m(svint8_t_val, svbool_t_val, svint8_t_val);
|
||||
svrevd_s8_x(svbool_t_val, svint8_t_val);
|
||||
svrevd_s8_z(svbool_t_val, svint8_t_val);
|
||||
svrevd_s16_m(svint16_t_val, svbool_t_val, svint16_t_val);
|
||||
svrevd_s16_x(svbool_t_val, svint16_t_val);
|
||||
svrevd_s16_z(svbool_t_val, svint16_t_val);
|
||||
svrevd_s32_m(svint32_t_val, svbool_t_val, svint32_t_val);
|
||||
svrevd_s32_x(svbool_t_val, svint32_t_val);
|
||||
svrevd_s32_z(svbool_t_val, svint32_t_val);
|
||||
svrevd_s64_m(svint64_t_val, svbool_t_val, svint64_t_val);
|
||||
svrevd_s64_x(svbool_t_val, svint64_t_val);
|
||||
svrevd_s64_z(svbool_t_val, svint64_t_val);
|
||||
svrevd_u8_m(svuint8_t_val, svbool_t_val, svuint8_t_val);
|
||||
svrevd_u8_x(svbool_t_val, svuint8_t_val);
|
||||
svrevd_u8_z(svbool_t_val, svuint8_t_val);
|
||||
svrevd_u16_m(svuint16_t_val, svbool_t_val, svuint16_t_val);
|
||||
svrevd_u16_x(svbool_t_val, svuint16_t_val);
|
||||
svrevd_u16_z(svbool_t_val, svuint16_t_val);
|
||||
svrevd_u32_m(svuint32_t_val, svbool_t_val, svuint32_t_val);
|
||||
svrevd_u32_x(svbool_t_val, svuint32_t_val);
|
||||
svrevd_u32_z(svbool_t_val, svuint32_t_val);
|
||||
svrevd_u64_m(svuint64_t_val, svbool_t_val, svuint64_t_val);
|
||||
svrevd_u64_x(svbool_t_val, svuint64_t_val);
|
||||
svrevd_u64_z(svbool_t_val, svuint64_t_val);
|
||||
svrevd_x(svbool_t_val, svbfloat16_t_val);
|
||||
svrevd_x(svbool_t_val, svfloat16_t_val);
|
||||
svrevd_x(svbool_t_val, svfloat32_t_val);
|
||||
svrevd_x(svbool_t_val, svfloat64_t_val);
|
||||
svrevd_x(svbool_t_val, svint8_t_val);
|
||||
svrevd_x(svbool_t_val, svint16_t_val);
|
||||
svrevd_x(svbool_t_val, svint32_t_val);
|
||||
svrevd_x(svbool_t_val, svint64_t_val);
|
||||
svrevd_x(svbool_t_val, svmfloat8_t_val);
|
||||
svrevd_x(svbool_t_val, svuint8_t_val);
|
||||
svrevd_x(svbool_t_val, svuint16_t_val);
|
||||
svrevd_x(svbool_t_val, svuint32_t_val);
|
||||
svrevd_x(svbool_t_val, svuint64_t_val);
|
||||
svrevd_z(svbool_t_val, svbfloat16_t_val);
|
||||
svrevd_z(svbool_t_val, svfloat16_t_val);
|
||||
svrevd_z(svbool_t_val, svfloat32_t_val);
|
||||
svrevd_z(svbool_t_val, svfloat64_t_val);
|
||||
svrevd_z(svbool_t_val, svint8_t_val);
|
||||
svrevd_z(svbool_t_val, svint16_t_val);
|
||||
svrevd_z(svbool_t_val, svint32_t_val);
|
||||
svrevd_z(svbool_t_val, svint64_t_val);
|
||||
svrevd_z(svbool_t_val, svmfloat8_t_val);
|
||||
svrevd_z(svbool_t_val, svuint8_t_val);
|
||||
svrevd_z(svbool_t_val, svuint16_t_val);
|
||||
svrevd_z(svbool_t_val, svuint32_t_val);
|
||||
svrevd_z(svbool_t_val, svuint64_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming{
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svbool_t svbool_t_val;
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svfloat32_t svfloat32_t_val;
|
||||
svfloat64_t svfloat64_t_val;
|
||||
svint8_t svint8_t_val;
|
||||
svint16_t svint16_t_val;
|
||||
svint32_t svint32_t_val;
|
||||
svint64_t svint64_t_val;
|
||||
svmfloat8_t svmfloat8_t_val;
|
||||
svuint8_t svuint8_t_val;
|
||||
svuint16_t svuint16_t_val;
|
||||
svuint32_t svuint32_t_val;
|
||||
svuint64_t svuint64_t_val;
|
||||
uint32_t uint32_t_val;
|
||||
|
||||
svclamp(svint8_t_val, svint8_t_val, svint8_t_val);
|
||||
svclamp(svint16_t_val, svint16_t_val, svint16_t_val);
|
||||
svclamp(svint32_t_val, svint32_t_val, svint32_t_val);
|
||||
svclamp(svint64_t_val, svint64_t_val, svint64_t_val);
|
||||
svclamp(svuint8_t_val, svuint8_t_val, svuint8_t_val);
|
||||
svclamp(svuint16_t_val, svuint16_t_val, svuint16_t_val);
|
||||
svclamp(svuint32_t_val, svuint32_t_val, svuint32_t_val);
|
||||
svclamp(svuint64_t_val, svuint64_t_val, svuint64_t_val);
|
||||
svclamp_s8(svint8_t_val, svint8_t_val, svint8_t_val);
|
||||
svclamp_s16(svint16_t_val, svint16_t_val, svint16_t_val);
|
||||
svclamp_s32(svint32_t_val, svint32_t_val, svint32_t_val);
|
||||
svclamp_s64(svint64_t_val, svint64_t_val, svint64_t_val);
|
||||
svclamp_u8(svuint8_t_val, svuint8_t_val, svuint8_t_val);
|
||||
svclamp_u16(svuint16_t_val, svuint16_t_val, svuint16_t_val);
|
||||
svclamp_u32(svuint32_t_val, svuint32_t_val, svuint32_t_val);
|
||||
svclamp_u64(svuint64_t_val, svuint64_t_val, svuint64_t_val);
|
||||
svpsel_lane_b8(svbool_t_val, svbool_t_val, uint32_t_val);
|
||||
svpsel_lane_b16(svbool_t_val, svbool_t_val, uint32_t_val);
|
||||
svpsel_lane_b32(svbool_t_val, svbool_t_val, uint32_t_val);
|
||||
svpsel_lane_b64(svbool_t_val, svbool_t_val, uint32_t_val);
|
||||
svrevd_bf16_m(svbfloat16_t_val, svbool_t_val, svbfloat16_t_val);
|
||||
svrevd_bf16_x(svbool_t_val, svbfloat16_t_val);
|
||||
svrevd_bf16_z(svbool_t_val, svbfloat16_t_val);
|
||||
svrevd_f16_m(svfloat16_t_val, svbool_t_val, svfloat16_t_val);
|
||||
svrevd_f16_x(svbool_t_val, svfloat16_t_val);
|
||||
svrevd_f16_z(svbool_t_val, svfloat16_t_val);
|
||||
svrevd_f32_m(svfloat32_t_val, svbool_t_val, svfloat32_t_val);
|
||||
svrevd_f32_x(svbool_t_val, svfloat32_t_val);
|
||||
svrevd_f32_z(svbool_t_val, svfloat32_t_val);
|
||||
svrevd_f64_m(svfloat64_t_val, svbool_t_val, svfloat64_t_val);
|
||||
svrevd_f64_x(svbool_t_val, svfloat64_t_val);
|
||||
svrevd_f64_z(svbool_t_val, svfloat64_t_val);
|
||||
svrevd_m(svbfloat16_t_val, svbool_t_val, svbfloat16_t_val);
|
||||
svrevd_m(svfloat16_t_val, svbool_t_val, svfloat16_t_val);
|
||||
svrevd_m(svfloat32_t_val, svbool_t_val, svfloat32_t_val);
|
||||
svrevd_m(svfloat64_t_val, svbool_t_val, svfloat64_t_val);
|
||||
svrevd_m(svint8_t_val, svbool_t_val, svint8_t_val);
|
||||
svrevd_m(svint16_t_val, svbool_t_val, svint16_t_val);
|
||||
svrevd_m(svint32_t_val, svbool_t_val, svint32_t_val);
|
||||
svrevd_m(svint64_t_val, svbool_t_val, svint64_t_val);
|
||||
svrevd_m(svmfloat8_t_val, svbool_t_val, svmfloat8_t_val);
|
||||
svrevd_m(svuint8_t_val, svbool_t_val, svuint8_t_val);
|
||||
svrevd_m(svuint16_t_val, svbool_t_val, svuint16_t_val);
|
||||
svrevd_m(svuint32_t_val, svbool_t_val, svuint32_t_val);
|
||||
svrevd_m(svuint64_t_val, svbool_t_val, svuint64_t_val);
|
||||
svrevd_mf8_m(svmfloat8_t_val, svbool_t_val, svmfloat8_t_val);
|
||||
svrevd_mf8_x(svbool_t_val, svmfloat8_t_val);
|
||||
svrevd_mf8_z(svbool_t_val, svmfloat8_t_val);
|
||||
svrevd_s8_m(svint8_t_val, svbool_t_val, svint8_t_val);
|
||||
svrevd_s8_x(svbool_t_val, svint8_t_val);
|
||||
svrevd_s8_z(svbool_t_val, svint8_t_val);
|
||||
svrevd_s16_m(svint16_t_val, svbool_t_val, svint16_t_val);
|
||||
svrevd_s16_x(svbool_t_val, svint16_t_val);
|
||||
svrevd_s16_z(svbool_t_val, svint16_t_val);
|
||||
svrevd_s32_m(svint32_t_val, svbool_t_val, svint32_t_val);
|
||||
svrevd_s32_x(svbool_t_val, svint32_t_val);
|
||||
svrevd_s32_z(svbool_t_val, svint32_t_val);
|
||||
svrevd_s64_m(svint64_t_val, svbool_t_val, svint64_t_val);
|
||||
svrevd_s64_x(svbool_t_val, svint64_t_val);
|
||||
svrevd_s64_z(svbool_t_val, svint64_t_val);
|
||||
svrevd_u8_m(svuint8_t_val, svbool_t_val, svuint8_t_val);
|
||||
svrevd_u8_x(svbool_t_val, svuint8_t_val);
|
||||
svrevd_u8_z(svbool_t_val, svuint8_t_val);
|
||||
svrevd_u16_m(svuint16_t_val, svbool_t_val, svuint16_t_val);
|
||||
svrevd_u16_x(svbool_t_val, svuint16_t_val);
|
||||
svrevd_u16_z(svbool_t_val, svuint16_t_val);
|
||||
svrevd_u32_m(svuint32_t_val, svbool_t_val, svuint32_t_val);
|
||||
svrevd_u32_x(svbool_t_val, svuint32_t_val);
|
||||
svrevd_u32_z(svbool_t_val, svuint32_t_val);
|
||||
svrevd_u64_m(svuint64_t_val, svbool_t_val, svuint64_t_val);
|
||||
svrevd_u64_x(svbool_t_val, svuint64_t_val);
|
||||
svrevd_u64_z(svbool_t_val, svuint64_t_val);
|
||||
svrevd_x(svbool_t_val, svbfloat16_t_val);
|
||||
svrevd_x(svbool_t_val, svfloat16_t_val);
|
||||
svrevd_x(svbool_t_val, svfloat32_t_val);
|
||||
svrevd_x(svbool_t_val, svfloat64_t_val);
|
||||
svrevd_x(svbool_t_val, svint8_t_val);
|
||||
svrevd_x(svbool_t_val, svint16_t_val);
|
||||
svrevd_x(svbool_t_val, svint32_t_val);
|
||||
svrevd_x(svbool_t_val, svint64_t_val);
|
||||
svrevd_x(svbool_t_val, svmfloat8_t_val);
|
||||
svrevd_x(svbool_t_val, svuint8_t_val);
|
||||
svrevd_x(svbool_t_val, svuint16_t_val);
|
||||
svrevd_x(svbool_t_val, svuint32_t_val);
|
||||
svrevd_x(svbool_t_val, svuint64_t_val);
|
||||
svrevd_z(svbool_t_val, svbfloat16_t_val);
|
||||
svrevd_z(svbool_t_val, svfloat16_t_val);
|
||||
svrevd_z(svbool_t_val, svfloat32_t_val);
|
||||
svrevd_z(svbool_t_val, svfloat64_t_val);
|
||||
svrevd_z(svbool_t_val, svint8_t_val);
|
||||
svrevd_z(svbool_t_val, svint16_t_val);
|
||||
svrevd_z(svbool_t_val, svint32_t_val);
|
||||
svrevd_z(svbool_t_val, svint64_t_val);
|
||||
svrevd_z(svbool_t_val, svmfloat8_t_val);
|
||||
svrevd_z(svbool_t_val, svuint8_t_val);
|
||||
svrevd_z(svbool_t_val, svuint16_t_val);
|
||||
svrevd_z(svbool_t_val, svuint32_t_val);
|
||||
svrevd_z(svbool_t_val, svuint64_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible{
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svbool_t svbool_t_val;
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svfloat32_t svfloat32_t_val;
|
||||
svfloat64_t svfloat64_t_val;
|
||||
svint8_t svint8_t_val;
|
||||
svint16_t svint16_t_val;
|
||||
svint32_t svint32_t_val;
|
||||
svint64_t svint64_t_val;
|
||||
svmfloat8_t svmfloat8_t_val;
|
||||
svuint8_t svuint8_t_val;
|
||||
svuint16_t svuint16_t_val;
|
||||
svuint32_t svuint32_t_val;
|
||||
svuint64_t svuint64_t_val;
|
||||
uint32_t uint32_t_val;
|
||||
|
||||
svclamp(svint8_t_val, svint8_t_val, svint8_t_val);
|
||||
svclamp(svint16_t_val, svint16_t_val, svint16_t_val);
|
||||
svclamp(svint32_t_val, svint32_t_val, svint32_t_val);
|
||||
svclamp(svint64_t_val, svint64_t_val, svint64_t_val);
|
||||
svclamp(svuint8_t_val, svuint8_t_val, svuint8_t_val);
|
||||
svclamp(svuint16_t_val, svuint16_t_val, svuint16_t_val);
|
||||
svclamp(svuint32_t_val, svuint32_t_val, svuint32_t_val);
|
||||
svclamp(svuint64_t_val, svuint64_t_val, svuint64_t_val);
|
||||
svclamp_s8(svint8_t_val, svint8_t_val, svint8_t_val);
|
||||
svclamp_s16(svint16_t_val, svint16_t_val, svint16_t_val);
|
||||
svclamp_s32(svint32_t_val, svint32_t_val, svint32_t_val);
|
||||
svclamp_s64(svint64_t_val, svint64_t_val, svint64_t_val);
|
||||
svclamp_u8(svuint8_t_val, svuint8_t_val, svuint8_t_val);
|
||||
svclamp_u16(svuint16_t_val, svuint16_t_val, svuint16_t_val);
|
||||
svclamp_u32(svuint32_t_val, svuint32_t_val, svuint32_t_val);
|
||||
svclamp_u64(svuint64_t_val, svuint64_t_val, svuint64_t_val);
|
||||
svpsel_lane_b8(svbool_t_val, svbool_t_val, uint32_t_val);
|
||||
svpsel_lane_b16(svbool_t_val, svbool_t_val, uint32_t_val);
|
||||
svpsel_lane_b32(svbool_t_val, svbool_t_val, uint32_t_val);
|
||||
svpsel_lane_b64(svbool_t_val, svbool_t_val, uint32_t_val);
|
||||
svrevd_bf16_m(svbfloat16_t_val, svbool_t_val, svbfloat16_t_val);
|
||||
svrevd_bf16_x(svbool_t_val, svbfloat16_t_val);
|
||||
svrevd_bf16_z(svbool_t_val, svbfloat16_t_val);
|
||||
svrevd_f16_m(svfloat16_t_val, svbool_t_val, svfloat16_t_val);
|
||||
svrevd_f16_x(svbool_t_val, svfloat16_t_val);
|
||||
svrevd_f16_z(svbool_t_val, svfloat16_t_val);
|
||||
svrevd_f32_m(svfloat32_t_val, svbool_t_val, svfloat32_t_val);
|
||||
svrevd_f32_x(svbool_t_val, svfloat32_t_val);
|
||||
svrevd_f32_z(svbool_t_val, svfloat32_t_val);
|
||||
svrevd_f64_m(svfloat64_t_val, svbool_t_val, svfloat64_t_val);
|
||||
svrevd_f64_x(svbool_t_val, svfloat64_t_val);
|
||||
svrevd_f64_z(svbool_t_val, svfloat64_t_val);
|
||||
svrevd_m(svbfloat16_t_val, svbool_t_val, svbfloat16_t_val);
|
||||
svrevd_m(svfloat16_t_val, svbool_t_val, svfloat16_t_val);
|
||||
svrevd_m(svfloat32_t_val, svbool_t_val, svfloat32_t_val);
|
||||
svrevd_m(svfloat64_t_val, svbool_t_val, svfloat64_t_val);
|
||||
svrevd_m(svint8_t_val, svbool_t_val, svint8_t_val);
|
||||
svrevd_m(svint16_t_val, svbool_t_val, svint16_t_val);
|
||||
svrevd_m(svint32_t_val, svbool_t_val, svint32_t_val);
|
||||
svrevd_m(svint64_t_val, svbool_t_val, svint64_t_val);
|
||||
svrevd_m(svmfloat8_t_val, svbool_t_val, svmfloat8_t_val);
|
||||
svrevd_m(svuint8_t_val, svbool_t_val, svuint8_t_val);
|
||||
svrevd_m(svuint16_t_val, svbool_t_val, svuint16_t_val);
|
||||
svrevd_m(svuint32_t_val, svbool_t_val, svuint32_t_val);
|
||||
svrevd_m(svuint64_t_val, svbool_t_val, svuint64_t_val);
|
||||
svrevd_mf8_m(svmfloat8_t_val, svbool_t_val, svmfloat8_t_val);
|
||||
svrevd_mf8_x(svbool_t_val, svmfloat8_t_val);
|
||||
svrevd_mf8_z(svbool_t_val, svmfloat8_t_val);
|
||||
svrevd_s8_m(svint8_t_val, svbool_t_val, svint8_t_val);
|
||||
svrevd_s8_x(svbool_t_val, svint8_t_val);
|
||||
svrevd_s8_z(svbool_t_val, svint8_t_val);
|
||||
svrevd_s16_m(svint16_t_val, svbool_t_val, svint16_t_val);
|
||||
svrevd_s16_x(svbool_t_val, svint16_t_val);
|
||||
svrevd_s16_z(svbool_t_val, svint16_t_val);
|
||||
svrevd_s32_m(svint32_t_val, svbool_t_val, svint32_t_val);
|
||||
svrevd_s32_x(svbool_t_val, svint32_t_val);
|
||||
svrevd_s32_z(svbool_t_val, svint32_t_val);
|
||||
svrevd_s64_m(svint64_t_val, svbool_t_val, svint64_t_val);
|
||||
svrevd_s64_x(svbool_t_val, svint64_t_val);
|
||||
svrevd_s64_z(svbool_t_val, svint64_t_val);
|
||||
svrevd_u8_m(svuint8_t_val, svbool_t_val, svuint8_t_val);
|
||||
svrevd_u8_x(svbool_t_val, svuint8_t_val);
|
||||
svrevd_u8_z(svbool_t_val, svuint8_t_val);
|
||||
svrevd_u16_m(svuint16_t_val, svbool_t_val, svuint16_t_val);
|
||||
svrevd_u16_x(svbool_t_val, svuint16_t_val);
|
||||
svrevd_u16_z(svbool_t_val, svuint16_t_val);
|
||||
svrevd_u32_m(svuint32_t_val, svbool_t_val, svuint32_t_val);
|
||||
svrevd_u32_x(svbool_t_val, svuint32_t_val);
|
||||
svrevd_u32_z(svbool_t_val, svuint32_t_val);
|
||||
svrevd_u64_m(svuint64_t_val, svbool_t_val, svuint64_t_val);
|
||||
svrevd_u64_x(svbool_t_val, svuint64_t_val);
|
||||
svrevd_u64_z(svbool_t_val, svuint64_t_val);
|
||||
svrevd_x(svbool_t_val, svbfloat16_t_val);
|
||||
svrevd_x(svbool_t_val, svfloat16_t_val);
|
||||
svrevd_x(svbool_t_val, svfloat32_t_val);
|
||||
svrevd_x(svbool_t_val, svfloat64_t_val);
|
||||
svrevd_x(svbool_t_val, svint8_t_val);
|
||||
svrevd_x(svbool_t_val, svint16_t_val);
|
||||
svrevd_x(svbool_t_val, svint32_t_val);
|
||||
svrevd_x(svbool_t_val, svint64_t_val);
|
||||
svrevd_x(svbool_t_val, svmfloat8_t_val);
|
||||
svrevd_x(svbool_t_val, svuint8_t_val);
|
||||
svrevd_x(svbool_t_val, svuint16_t_val);
|
||||
svrevd_x(svbool_t_val, svuint32_t_val);
|
||||
svrevd_x(svbool_t_val, svuint64_t_val);
|
||||
svrevd_z(svbool_t_val, svbfloat16_t_val);
|
||||
svrevd_z(svbool_t_val, svfloat16_t_val);
|
||||
svrevd_z(svbool_t_val, svfloat32_t_val);
|
||||
svrevd_z(svbool_t_val, svfloat64_t_val);
|
||||
svrevd_z(svbool_t_val, svint8_t_val);
|
||||
svrevd_z(svbool_t_val, svint16_t_val);
|
||||
svrevd_z(svbool_t_val, svint32_t_val);
|
||||
svrevd_z(svbool_t_val, svint64_t_val);
|
||||
svrevd_z(svbool_t_val, svmfloat8_t_val);
|
||||
svrevd_z(svbool_t_val, svuint8_t_val);
|
||||
svrevd_z(svbool_t_val, svuint16_t_val);
|
||||
svrevd_z(svbool_t_val, svuint32_t_val);
|
||||
svrevd_z(svbool_t_val, svuint64_t_val);
|
||||
}
|
||||
@ -0,0 +1,111 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +bf16 -target-feature +sme -target-feature +sve -verify
|
||||
// expected-no-diagnostics
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sve.h>
|
||||
|
||||
// Properties: guard="sve,bf16" streaming_guard="sme,bf16" flags="feature-dependent"
|
||||
|
||||
void test(void) {
|
||||
bfloat16_t bfloat16_t_val;
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svbool_t svbool_t_val;
|
||||
svfloat32_t svfloat32_t_val;
|
||||
|
||||
svbfdot(svfloat32_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svbfdot(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svbfdot_f32(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svbfdot_lane(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val, 2);
|
||||
svbfdot_lane_f32(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val, 2);
|
||||
svbfdot_n_f32(svfloat32_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svbfmlalb(svfloat32_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svbfmlalb(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svbfmlalb_f32(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svbfmlalb_lane(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val, 2);
|
||||
svbfmlalb_lane_f32(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val, 2);
|
||||
svbfmlalb_n_f32(svfloat32_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svbfmlalt(svfloat32_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svbfmlalt(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svbfmlalt_f32(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svbfmlalt_lane(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val, 2);
|
||||
svbfmlalt_lane_f32(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val, 2);
|
||||
svbfmlalt_n_f32(svfloat32_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svcvt_bf16_f32_m(svbfloat16_t_val, svbool_t_val, svfloat32_t_val);
|
||||
svcvt_bf16_f32_x(svbool_t_val, svfloat32_t_val);
|
||||
svcvt_bf16_f32_z(svbool_t_val, svfloat32_t_val);
|
||||
svcvt_bf16_m(svbfloat16_t_val, svbool_t_val, svfloat32_t_val);
|
||||
svcvt_bf16_x(svbool_t_val, svfloat32_t_val);
|
||||
svcvt_bf16_z(svbool_t_val, svfloat32_t_val);
|
||||
svcvtnt_bf16_f32_m(svbfloat16_t_val, svbool_t_val, svfloat32_t_val);
|
||||
svcvtnt_bf16_m(svbfloat16_t_val, svbool_t_val, svfloat32_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming{
|
||||
bfloat16_t bfloat16_t_val;
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svbool_t svbool_t_val;
|
||||
svfloat32_t svfloat32_t_val;
|
||||
|
||||
svbfdot(svfloat32_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svbfdot(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svbfdot_f32(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svbfdot_lane(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val, 2);
|
||||
svbfdot_lane_f32(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val, 2);
|
||||
svbfdot_n_f32(svfloat32_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svbfmlalb(svfloat32_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svbfmlalb(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svbfmlalb_f32(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svbfmlalb_lane(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val, 2);
|
||||
svbfmlalb_lane_f32(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val, 2);
|
||||
svbfmlalb_n_f32(svfloat32_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svbfmlalt(svfloat32_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svbfmlalt(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svbfmlalt_f32(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svbfmlalt_lane(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val, 2);
|
||||
svbfmlalt_lane_f32(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val, 2);
|
||||
svbfmlalt_n_f32(svfloat32_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svcvt_bf16_f32_m(svbfloat16_t_val, svbool_t_val, svfloat32_t_val);
|
||||
svcvt_bf16_f32_x(svbool_t_val, svfloat32_t_val);
|
||||
svcvt_bf16_f32_z(svbool_t_val, svfloat32_t_val);
|
||||
svcvt_bf16_m(svbfloat16_t_val, svbool_t_val, svfloat32_t_val);
|
||||
svcvt_bf16_x(svbool_t_val, svfloat32_t_val);
|
||||
svcvt_bf16_z(svbool_t_val, svfloat32_t_val);
|
||||
svcvtnt_bf16_f32_m(svbfloat16_t_val, svbool_t_val, svfloat32_t_val);
|
||||
svcvtnt_bf16_m(svbfloat16_t_val, svbool_t_val, svfloat32_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible{
|
||||
bfloat16_t bfloat16_t_val;
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svbool_t svbool_t_val;
|
||||
svfloat32_t svfloat32_t_val;
|
||||
|
||||
svbfdot(svfloat32_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svbfdot(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svbfdot_f32(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svbfdot_lane(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val, 2);
|
||||
svbfdot_lane_f32(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val, 2);
|
||||
svbfdot_n_f32(svfloat32_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svbfmlalb(svfloat32_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svbfmlalb(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svbfmlalb_f32(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svbfmlalb_lane(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val, 2);
|
||||
svbfmlalb_lane_f32(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val, 2);
|
||||
svbfmlalb_n_f32(svfloat32_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svbfmlalt(svfloat32_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svbfmlalt(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svbfmlalt_f32(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svbfmlalt_lane(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val, 2);
|
||||
svbfmlalt_lane_f32(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val, 2);
|
||||
svbfmlalt_n_f32(svfloat32_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svcvt_bf16_f32_m(svbfloat16_t_val, svbool_t_val, svfloat32_t_val);
|
||||
svcvt_bf16_f32_x(svbool_t_val, svfloat32_t_val);
|
||||
svcvt_bf16_f32_z(svbool_t_val, svfloat32_t_val);
|
||||
svcvt_bf16_m(svbfloat16_t_val, svbool_t_val, svfloat32_t_val);
|
||||
svcvt_bf16_x(svbool_t_val, svfloat32_t_val);
|
||||
svcvt_bf16_z(svbool_t_val, svfloat32_t_val);
|
||||
svcvtnt_bf16_f32_m(svbfloat16_t_val, svbool_t_val, svfloat32_t_val);
|
||||
svcvtnt_bf16_m(svbfloat16_t_val, svbool_t_val, svfloat32_t_val);
|
||||
}
|
||||
@ -0,0 +1,72 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +i8mm -target-feature +sme -target-feature +sve -verify
|
||||
// expected-no-diagnostics
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sve.h>
|
||||
|
||||
// Properties: guard="sve,i8mm" streaming_guard="sme,i8mm" flags="feature-dependent"
|
||||
|
||||
void test(void) {
|
||||
int8_t int8_t_val;
|
||||
svint8_t svint8_t_val;
|
||||
svint32_t svint32_t_val;
|
||||
svuint8_t svuint8_t_val;
|
||||
uint8_t uint8_t_val;
|
||||
|
||||
svsudot(svint32_t_val, svint8_t_val, svuint8_t_val);
|
||||
svsudot(svint32_t_val, svint8_t_val, uint8_t_val);
|
||||
svsudot_lane(svint32_t_val, svint8_t_val, svuint8_t_val, 1);
|
||||
svsudot_lane_s32(svint32_t_val, svint8_t_val, svuint8_t_val, 1);
|
||||
svsudot_n_s32(svint32_t_val, svint8_t_val, uint8_t_val);
|
||||
svsudot_s32(svint32_t_val, svint8_t_val, svuint8_t_val);
|
||||
svusdot(svint32_t_val, svuint8_t_val, int8_t_val);
|
||||
svusdot(svint32_t_val, svuint8_t_val, svint8_t_val);
|
||||
svusdot_lane(svint32_t_val, svuint8_t_val, svint8_t_val, 1);
|
||||
svusdot_lane_s32(svint32_t_val, svuint8_t_val, svint8_t_val, 1);
|
||||
svusdot_n_s32(svint32_t_val, svuint8_t_val, int8_t_val);
|
||||
svusdot_s32(svint32_t_val, svuint8_t_val, svint8_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming{
|
||||
int8_t int8_t_val;
|
||||
svint8_t svint8_t_val;
|
||||
svint32_t svint32_t_val;
|
||||
svuint8_t svuint8_t_val;
|
||||
uint8_t uint8_t_val;
|
||||
|
||||
svsudot(svint32_t_val, svint8_t_val, svuint8_t_val);
|
||||
svsudot(svint32_t_val, svint8_t_val, uint8_t_val);
|
||||
svsudot_lane(svint32_t_val, svint8_t_val, svuint8_t_val, 1);
|
||||
svsudot_lane_s32(svint32_t_val, svint8_t_val, svuint8_t_val, 1);
|
||||
svsudot_n_s32(svint32_t_val, svint8_t_val, uint8_t_val);
|
||||
svsudot_s32(svint32_t_val, svint8_t_val, svuint8_t_val);
|
||||
svusdot(svint32_t_val, svuint8_t_val, int8_t_val);
|
||||
svusdot(svint32_t_val, svuint8_t_val, svint8_t_val);
|
||||
svusdot_lane(svint32_t_val, svuint8_t_val, svint8_t_val, 1);
|
||||
svusdot_lane_s32(svint32_t_val, svuint8_t_val, svint8_t_val, 1);
|
||||
svusdot_n_s32(svint32_t_val, svuint8_t_val, int8_t_val);
|
||||
svusdot_s32(svint32_t_val, svuint8_t_val, svint8_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible{
|
||||
int8_t int8_t_val;
|
||||
svint8_t svint8_t_val;
|
||||
svint32_t svint32_t_val;
|
||||
svuint8_t svuint8_t_val;
|
||||
uint8_t uint8_t_val;
|
||||
|
||||
svsudot(svint32_t_val, svint8_t_val, svuint8_t_val);
|
||||
svsudot(svint32_t_val, svint8_t_val, uint8_t_val);
|
||||
svsudot_lane(svint32_t_val, svint8_t_val, svuint8_t_val, 1);
|
||||
svsudot_lane_s32(svint32_t_val, svint8_t_val, svuint8_t_val, 1);
|
||||
svsudot_n_s32(svint32_t_val, svint8_t_val, uint8_t_val);
|
||||
svsudot_s32(svint32_t_val, svint8_t_val, svuint8_t_val);
|
||||
svusdot(svint32_t_val, svuint8_t_val, int8_t_val);
|
||||
svusdot(svint32_t_val, svuint8_t_val, svint8_t_val);
|
||||
svusdot_lane(svint32_t_val, svuint8_t_val, svint8_t_val, 1);
|
||||
svusdot_lane_s32(svint32_t_val, svuint8_t_val, svint8_t_val, 1);
|
||||
svusdot_n_s32(svint32_t_val, svuint8_t_val, int8_t_val);
|
||||
svusdot_s32(svint32_t_val, svuint8_t_val, svint8_t_val);
|
||||
}
|
||||
@ -0,0 +1,144 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sve -target-feature +sve-aes -verify=guard
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +ssve-aes -target-feature +sve -verify=streaming-guard
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +ssve-aes -target-feature +sve -target-feature +sve-aes -verify
|
||||
// expected-no-diagnostics
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sve.h>
|
||||
|
||||
// Properties: guard="sve,sve-aes" streaming_guard="sme,ssve-aes" flags="feature-dependent"
|
||||
|
||||
void test(void) {
|
||||
svuint8_t svuint8_t_val;
|
||||
svuint64_t svuint64_t_val;
|
||||
uint64_t uint64_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svaesd(svuint8_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svaesd_u8(svuint8_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svaese(svuint8_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svaese_u8(svuint8_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svaesimc(svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svaesimc_u8(svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svaesmc(svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svaesmc_u8(svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svpmullb_pair(svuint64_t_val, svuint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svpmullb_pair(svuint64_t_val, uint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svpmullb_pair_n_u64(svuint64_t_val, uint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svpmullb_pair_u64(svuint64_t_val, svuint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svpmullt_pair(svuint64_t_val, svuint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svpmullt_pair(svuint64_t_val, uint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svpmullt_pair_n_u64(svuint64_t_val, uint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svpmullt_pair_u64(svuint64_t_val, svuint64_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming{
|
||||
svuint8_t svuint8_t_val;
|
||||
svuint64_t svuint64_t_val;
|
||||
uint64_t uint64_t_val;
|
||||
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svaesd(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svaesd_u8(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svaese(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svaese_u8(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svaesimc(svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svaesimc_u8(svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svaesmc(svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svaesmc_u8(svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svpmullb_pair(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svpmullb_pair(svuint64_t_val, uint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svpmullb_pair_n_u64(svuint64_t_val, uint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svpmullb_pair_u64(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svpmullt_pair(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svpmullt_pair(svuint64_t_val, uint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svpmullt_pair_n_u64(svuint64_t_val, uint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svpmullt_pair_u64(svuint64_t_val, svuint64_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible{
|
||||
svuint8_t svuint8_t_val;
|
||||
svuint64_t svuint64_t_val;
|
||||
uint64_t uint64_t_val;
|
||||
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svaesd(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svaesd_u8(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svaese(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svaese_u8(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svaesimc(svuint8_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svaesimc_u8(svuint8_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svaesmc(svuint8_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svaesmc_u8(svuint8_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svpmullb_pair(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svpmullb_pair(svuint64_t_val, uint64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svpmullb_pair_n_u64(svuint64_t_val, uint64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svpmullb_pair_u64(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svpmullt_pair(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svpmullt_pair(svuint64_t_val, uint64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svpmullt_pair_n_u64(svuint64_t_val, uint64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svpmullt_pair_u64(svuint64_t_val, svuint64_t_val);
|
||||
}
|
||||
@ -0,0 +1,611 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sve -target-feature +sve-b16b16 -verify=guard
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sme2 -target-feature +sve -target-feature +sve-b16b16 -verify
|
||||
// expected-no-diagnostics
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sve.h>
|
||||
|
||||
// Properties: guard="sve,sve-b16b16" streaming_guard="sme,sme2,sve-b16b16" flags="feature-dependent"
|
||||
|
||||
void test(void) {
|
||||
bfloat16_t bfloat16_t_val;
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svbool_t svbool_t_val;
|
||||
|
||||
svadd_bf16_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svadd_bf16_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svadd_bf16_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svadd_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svadd_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svadd_n_bf16_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svadd_n_bf16_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svadd_n_bf16_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svadd_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svadd_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svadd_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svadd_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svclamp(svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svclamp_bf16(svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmax_bf16_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmax_bf16_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmax_bf16_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmax_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svmax_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmax_n_bf16_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svmax_n_bf16_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svmax_n_bf16_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svmax_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svmax_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmax_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svmax_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmaxnm_bf16_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmaxnm_bf16_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmaxnm_bf16_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmaxnm_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svmaxnm_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmaxnm_n_bf16_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svmaxnm_n_bf16_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svmaxnm_n_bf16_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svmaxnm_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svmaxnm_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmaxnm_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svmaxnm_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmin_bf16_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmin_bf16_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmin_bf16_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmin_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svmin_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmin_n_bf16_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svmin_n_bf16_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svmin_n_bf16_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svmin_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svmin_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmin_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svmin_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svminnm_bf16_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svminnm_bf16_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svminnm_bf16_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svminnm_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svminnm_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svminnm_n_bf16_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svminnm_n_bf16_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svminnm_n_bf16_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svminnm_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svminnm_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svminnm_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svminnm_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmla_bf16_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmla_bf16_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmla_bf16_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmla_lane(svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val, 1);
|
||||
svmla_lane_bf16(svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val, 1);
|
||||
svmla_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svmla_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmla_n_bf16_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svmla_n_bf16_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svmla_n_bf16_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svmla_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svmla_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmla_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svmla_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmls_bf16_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmls_bf16_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmls_bf16_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmls_lane(svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val, 1);
|
||||
svmls_lane_bf16(svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val, 1);
|
||||
svmls_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svmls_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmls_n_bf16_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svmls_n_bf16_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svmls_n_bf16_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svmls_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svmls_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmls_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svmls_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmul_bf16_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmul_bf16_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmul_bf16_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmul_lane(svbfloat16_t_val, svbfloat16_t_val, 1);
|
||||
svmul_lane_bf16(svbfloat16_t_val, svbfloat16_t_val, 1);
|
||||
svmul_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svmul_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmul_n_bf16_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svmul_n_bf16_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svmul_n_bf16_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svmul_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svmul_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmul_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svmul_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svsub_bf16_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svsub_bf16_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svsub_bf16_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svsub_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svsub_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svsub_n_bf16_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svsub_n_bf16_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svsub_n_bf16_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svsub_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svsub_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svsub_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
svsub_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming{
|
||||
bfloat16_t bfloat16_t_val;
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svbool_t svbool_t_val;
|
||||
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svadd_bf16_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svadd_bf16_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svadd_bf16_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svadd_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svadd_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svadd_n_bf16_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svadd_n_bf16_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svadd_n_bf16_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svadd_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svadd_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svadd_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svadd_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svclamp(svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svclamp_bf16(svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmax_bf16_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmax_bf16_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmax_bf16_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmax_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmax_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmax_n_bf16_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmax_n_bf16_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmax_n_bf16_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmax_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmax_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmax_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmax_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmaxnm_bf16_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmaxnm_bf16_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmaxnm_bf16_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmaxnm_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmaxnm_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmaxnm_n_bf16_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmaxnm_n_bf16_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmaxnm_n_bf16_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmaxnm_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmaxnm_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmaxnm_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmaxnm_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmin_bf16_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmin_bf16_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmin_bf16_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmin_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmin_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmin_n_bf16_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmin_n_bf16_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmin_n_bf16_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmin_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmin_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmin_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmin_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svminnm_bf16_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svminnm_bf16_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svminnm_bf16_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svminnm_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svminnm_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svminnm_n_bf16_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svminnm_n_bf16_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svminnm_n_bf16_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svminnm_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svminnm_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svminnm_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svminnm_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmla_bf16_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmla_bf16_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmla_bf16_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmla_lane(svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val, 1);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmla_lane_bf16(svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val, 1);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmla_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmla_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmla_n_bf16_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmla_n_bf16_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmla_n_bf16_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmla_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmla_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmla_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmla_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmls_bf16_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmls_bf16_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmls_bf16_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmls_lane(svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val, 1);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmls_lane_bf16(svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val, 1);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmls_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmls_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmls_n_bf16_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmls_n_bf16_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmls_n_bf16_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmls_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmls_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmls_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmls_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmul_bf16_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmul_bf16_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmul_bf16_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmul_lane(svbfloat16_t_val, svbfloat16_t_val, 1);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmul_lane_bf16(svbfloat16_t_val, svbfloat16_t_val, 1);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmul_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmul_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmul_n_bf16_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmul_n_bf16_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmul_n_bf16_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmul_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmul_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmul_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmul_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svsub_bf16_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svsub_bf16_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svsub_bf16_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svsub_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svsub_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svsub_n_bf16_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svsub_n_bf16_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svsub_n_bf16_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svsub_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svsub_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svsub_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svsub_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible{
|
||||
bfloat16_t bfloat16_t_val;
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svbool_t svbool_t_val;
|
||||
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svadd_bf16_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svadd_bf16_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svadd_bf16_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svadd_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svadd_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svadd_n_bf16_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svadd_n_bf16_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svadd_n_bf16_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svadd_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svadd_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svadd_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svadd_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svclamp(svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svclamp_bf16(svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmax_bf16_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmax_bf16_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmax_bf16_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmax_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmax_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmax_n_bf16_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmax_n_bf16_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmax_n_bf16_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmax_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmax_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmax_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmax_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmaxnm_bf16_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmaxnm_bf16_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmaxnm_bf16_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmaxnm_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmaxnm_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmaxnm_n_bf16_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmaxnm_n_bf16_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmaxnm_n_bf16_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmaxnm_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmaxnm_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmaxnm_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmaxnm_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmin_bf16_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmin_bf16_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmin_bf16_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmin_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmin_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmin_n_bf16_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmin_n_bf16_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmin_n_bf16_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmin_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmin_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmin_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmin_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svminnm_bf16_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svminnm_bf16_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svminnm_bf16_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svminnm_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svminnm_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svminnm_n_bf16_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svminnm_n_bf16_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svminnm_n_bf16_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svminnm_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svminnm_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svminnm_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svminnm_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmla_bf16_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmla_bf16_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmla_bf16_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmla_lane(svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val, 1);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmla_lane_bf16(svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val, 1);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmla_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmla_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmla_n_bf16_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmla_n_bf16_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmla_n_bf16_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmla_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmla_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmla_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmla_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmls_bf16_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmls_bf16_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmls_bf16_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmls_lane(svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val, 1);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmls_lane_bf16(svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val, 1);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmls_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmls_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmls_n_bf16_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmls_n_bf16_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmls_n_bf16_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmls_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmls_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmls_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmls_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmul_bf16_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmul_bf16_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmul_bf16_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmul_lane(svbfloat16_t_val, svbfloat16_t_val, 1);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmul_lane_bf16(svbfloat16_t_val, svbfloat16_t_val, 1);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmul_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmul_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmul_n_bf16_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmul_n_bf16_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmul_n_bf16_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmul_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmul_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmul_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmul_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svsub_bf16_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svsub_bf16_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svsub_bf16_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svsub_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svsub_m(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svsub_n_bf16_m(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svsub_n_bf16_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svsub_n_bf16_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svsub_x(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svsub_x(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svsub_z(svbool_t_val, svbfloat16_t_val, bfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svsub_z(svbool_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
}
|
||||
@ -0,0 +1,383 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sve -target-feature +sve-bitperm -verify=guard
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +ssve-bitperm -target-feature +sve -verify=streaming-guard
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +ssve-bitperm -target-feature +sve -target-feature +sve-bitperm -verify
|
||||
// expected-no-diagnostics
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sve.h>
|
||||
|
||||
// Properties: guard="sve,sve-bitperm" streaming_guard="sme,ssve-bitperm" flags="feature-dependent"
|
||||
|
||||
void test(void) {
|
||||
svuint8_t svuint8_t_val;
|
||||
svuint16_t svuint16_t_val;
|
||||
svuint32_t svuint32_t_val;
|
||||
svuint64_t svuint64_t_val;
|
||||
uint8_t uint8_t_val;
|
||||
uint16_t uint16_t_val;
|
||||
uint32_t uint32_t_val;
|
||||
uint64_t uint64_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbdep(svuint8_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbdep(svuint8_t_val, uint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbdep(svuint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbdep(svuint16_t_val, uint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbdep(svuint32_t_val, svuint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbdep(svuint32_t_val, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbdep(svuint64_t_val, svuint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbdep(svuint64_t_val, uint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbdep_n_u8(svuint8_t_val, uint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbdep_n_u16(svuint16_t_val, uint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbdep_n_u32(svuint32_t_val, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbdep_n_u64(svuint64_t_val, uint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbdep_u8(svuint8_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbdep_u16(svuint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbdep_u32(svuint32_t_val, svuint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbdep_u64(svuint64_t_val, svuint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbext(svuint8_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbext(svuint8_t_val, uint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbext(svuint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbext(svuint16_t_val, uint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbext(svuint32_t_val, svuint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbext(svuint32_t_val, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbext(svuint64_t_val, svuint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbext(svuint64_t_val, uint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbext_n_u8(svuint8_t_val, uint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbext_n_u16(svuint16_t_val, uint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbext_n_u32(svuint32_t_val, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbext_n_u64(svuint64_t_val, uint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbext_u8(svuint8_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbext_u16(svuint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbext_u32(svuint32_t_val, svuint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbext_u64(svuint64_t_val, svuint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbgrp(svuint8_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbgrp(svuint8_t_val, uint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbgrp(svuint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbgrp(svuint16_t_val, uint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbgrp(svuint32_t_val, svuint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbgrp(svuint32_t_val, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbgrp(svuint64_t_val, svuint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbgrp(svuint64_t_val, uint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbgrp_n_u8(svuint8_t_val, uint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbgrp_n_u16(svuint16_t_val, uint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbgrp_n_u32(svuint32_t_val, uint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbgrp_n_u64(svuint64_t_val, uint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbgrp_u8(svuint8_t_val, svuint8_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbgrp_u16(svuint16_t_val, svuint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbgrp_u32(svuint32_t_val, svuint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbgrp_u64(svuint64_t_val, svuint64_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming{
|
||||
svuint8_t svuint8_t_val;
|
||||
svuint16_t svuint16_t_val;
|
||||
svuint32_t svuint32_t_val;
|
||||
svuint64_t svuint64_t_val;
|
||||
uint8_t uint8_t_val;
|
||||
uint16_t uint16_t_val;
|
||||
uint32_t uint32_t_val;
|
||||
uint64_t uint64_t_val;
|
||||
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbdep(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbdep(svuint8_t_val, uint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbdep(svuint16_t_val, svuint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbdep(svuint16_t_val, uint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbdep(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbdep(svuint32_t_val, uint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbdep(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbdep(svuint64_t_val, uint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbdep_n_u8(svuint8_t_val, uint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbdep_n_u16(svuint16_t_val, uint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbdep_n_u32(svuint32_t_val, uint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbdep_n_u64(svuint64_t_val, uint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbdep_u8(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbdep_u16(svuint16_t_val, svuint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbdep_u32(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbdep_u64(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbext(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbext(svuint8_t_val, uint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbext(svuint16_t_val, svuint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbext(svuint16_t_val, uint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbext(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbext(svuint32_t_val, uint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbext(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbext(svuint64_t_val, uint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbext_n_u8(svuint8_t_val, uint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbext_n_u16(svuint16_t_val, uint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbext_n_u32(svuint32_t_val, uint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbext_n_u64(svuint64_t_val, uint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbext_u8(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbext_u16(svuint16_t_val, svuint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbext_u32(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbext_u64(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbgrp(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbgrp(svuint8_t_val, uint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbgrp(svuint16_t_val, svuint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbgrp(svuint16_t_val, uint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbgrp(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbgrp(svuint32_t_val, uint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbgrp(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbgrp(svuint64_t_val, uint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbgrp_n_u8(svuint8_t_val, uint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbgrp_n_u16(svuint16_t_val, uint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbgrp_n_u32(svuint32_t_val, uint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbgrp_n_u64(svuint64_t_val, uint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbgrp_u8(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbgrp_u16(svuint16_t_val, svuint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbgrp_u32(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbgrp_u64(svuint64_t_val, svuint64_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible{
|
||||
svuint8_t svuint8_t_val;
|
||||
svuint16_t svuint16_t_val;
|
||||
svuint32_t svuint32_t_val;
|
||||
svuint64_t svuint64_t_val;
|
||||
uint8_t uint8_t_val;
|
||||
uint16_t uint16_t_val;
|
||||
uint32_t uint32_t_val;
|
||||
uint64_t uint64_t_val;
|
||||
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbdep(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbdep(svuint8_t_val, uint8_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbdep(svuint16_t_val, svuint16_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbdep(svuint16_t_val, uint16_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbdep(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbdep(svuint32_t_val, uint32_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbdep(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbdep(svuint64_t_val, uint64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbdep_n_u8(svuint8_t_val, uint8_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbdep_n_u16(svuint16_t_val, uint16_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbdep_n_u32(svuint32_t_val, uint32_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbdep_n_u64(svuint64_t_val, uint64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbdep_u8(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbdep_u16(svuint16_t_val, svuint16_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbdep_u32(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbdep_u64(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbext(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbext(svuint8_t_val, uint8_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbext(svuint16_t_val, svuint16_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbext(svuint16_t_val, uint16_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbext(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbext(svuint32_t_val, uint32_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbext(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbext(svuint64_t_val, uint64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbext_n_u8(svuint8_t_val, uint8_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbext_n_u16(svuint16_t_val, uint16_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbext_n_u32(svuint32_t_val, uint32_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbext_n_u64(svuint64_t_val, uint64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbext_u8(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbext_u16(svuint16_t_val, svuint16_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbext_u32(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbext_u64(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbgrp(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbgrp(svuint8_t_val, uint8_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbgrp(svuint16_t_val, svuint16_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbgrp(svuint16_t_val, uint16_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbgrp(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbgrp(svuint32_t_val, uint32_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbgrp(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbgrp(svuint64_t_val, uint64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbgrp_n_u8(svuint8_t_val, uint8_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbgrp_n_u16(svuint16_t_val, uint16_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbgrp_n_u32(svuint32_t_val, uint32_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbgrp_n_u64(svuint64_t_val, uint64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbgrp_u8(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbgrp_u16(svuint16_t_val, svuint16_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbgrp_u32(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svbgrp_u64(svuint64_t_val, svuint64_t_val);
|
||||
}
|
||||
@ -0,0 +1,48 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sve -target-feature +sve-sha3 -verify=guard
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sme2p1 -target-feature +sve -target-feature +sve-sha3 -verify
|
||||
// expected-no-diagnostics
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sve.h>
|
||||
|
||||
// Properties: guard="sve,sve-sha3" streaming_guard="sme,sve-sha3,sme2p1" flags="feature-dependent"
|
||||
|
||||
void test(void) {
|
||||
svint64_t svint64_t_val;
|
||||
svuint64_t svuint64_t_val;
|
||||
|
||||
svrax1(svint64_t_val, svint64_t_val);
|
||||
svrax1(svuint64_t_val, svuint64_t_val);
|
||||
svrax1_s64(svint64_t_val, svint64_t_val);
|
||||
svrax1_u64(svuint64_t_val, svuint64_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming{
|
||||
svint64_t svint64_t_val;
|
||||
svuint64_t svuint64_t_val;
|
||||
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svrax1(svint64_t_val, svint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svrax1(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svrax1_s64(svint64_t_val, svint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svrax1_u64(svuint64_t_val, svuint64_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible{
|
||||
svint64_t svint64_t_val;
|
||||
svuint64_t svuint64_t_val;
|
||||
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svrax1(svint64_t_val, svint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svrax1(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svrax1_s64(svint64_t_val, svint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svrax1_u64(svuint64_t_val, svuint64_t_val);
|
||||
}
|
||||
@ -0,0 +1,548 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +faminmax -target-feature +sme -target-feature +sve -target-feature +sve2 -verify=guard
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +faminmax -target-feature +sme -target-feature +sme2 -target-feature +sve -verify=streaming-guard
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +faminmax -target-feature +sme -target-feature +sme2 -target-feature +sve -target-feature +sve2 -verify
|
||||
// expected-no-diagnostics
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sve.h>
|
||||
|
||||
// Properties: guard="sve,sve2,faminmax" streaming_guard="sme,sme2,faminmax" flags="feature-dependent"
|
||||
|
||||
void test(void) {
|
||||
float16_t float16_t_val;
|
||||
float32_t float32_t_val;
|
||||
float64_t float64_t_val;
|
||||
svbool_t svbool_t_val;
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svfloat32_t svfloat32_t_val;
|
||||
svfloat64_t svfloat64_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_f16_m(svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_f16_x(svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_f16_z(svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_f32_m(svbool_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_f32_x(svbool_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_f32_z(svbool_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_f64_m(svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_f64_x(svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_f64_z(svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_m(svbool_t_val, svfloat16_t_val, float16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_m(svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_m(svbool_t_val, svfloat32_t_val, float32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_m(svbool_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_m(svbool_t_val, svfloat64_t_val, float64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_m(svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_n_f16_m(svbool_t_val, svfloat16_t_val, float16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_n_f16_x(svbool_t_val, svfloat16_t_val, float16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_n_f16_z(svbool_t_val, svfloat16_t_val, float16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_n_f32_m(svbool_t_val, svfloat32_t_val, float32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_n_f32_x(svbool_t_val, svfloat32_t_val, float32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_n_f32_z(svbool_t_val, svfloat32_t_val, float32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_n_f64_m(svbool_t_val, svfloat64_t_val, float64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_n_f64_x(svbool_t_val, svfloat64_t_val, float64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_n_f64_z(svbool_t_val, svfloat64_t_val, float64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_x(svbool_t_val, svfloat16_t_val, float16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_x(svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_x(svbool_t_val, svfloat32_t_val, float32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_x(svbool_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_x(svbool_t_val, svfloat64_t_val, float64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_x(svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_z(svbool_t_val, svfloat16_t_val, float16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_z(svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_z(svbool_t_val, svfloat32_t_val, float32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_z(svbool_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_z(svbool_t_val, svfloat64_t_val, float64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_z(svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_f16_m(svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_f16_x(svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_f16_z(svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_f32_m(svbool_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_f32_x(svbool_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_f32_z(svbool_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_f64_m(svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_f64_x(svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_f64_z(svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_m(svbool_t_val, svfloat16_t_val, float16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_m(svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_m(svbool_t_val, svfloat32_t_val, float32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_m(svbool_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_m(svbool_t_val, svfloat64_t_val, float64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_m(svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_n_f16_m(svbool_t_val, svfloat16_t_val, float16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_n_f16_x(svbool_t_val, svfloat16_t_val, float16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_n_f16_z(svbool_t_val, svfloat16_t_val, float16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_n_f32_m(svbool_t_val, svfloat32_t_val, float32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_n_f32_x(svbool_t_val, svfloat32_t_val, float32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_n_f32_z(svbool_t_val, svfloat32_t_val, float32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_n_f64_m(svbool_t_val, svfloat64_t_val, float64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_n_f64_x(svbool_t_val, svfloat64_t_val, float64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_n_f64_z(svbool_t_val, svfloat64_t_val, float64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_x(svbool_t_val, svfloat16_t_val, float16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_x(svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_x(svbool_t_val, svfloat32_t_val, float32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_x(svbool_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_x(svbool_t_val, svfloat64_t_val, float64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_x(svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_z(svbool_t_val, svfloat16_t_val, float16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_z(svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_z(svbool_t_val, svfloat32_t_val, float32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_z(svbool_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_z(svbool_t_val, svfloat64_t_val, float64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_z(svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming{
|
||||
float16_t float16_t_val;
|
||||
float32_t float32_t_val;
|
||||
float64_t float64_t_val;
|
||||
svbool_t svbool_t_val;
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svfloat32_t svfloat32_t_val;
|
||||
svfloat64_t svfloat64_t_val;
|
||||
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamax_f16_m(svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamax_f16_x(svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamax_f16_z(svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamax_f32_m(svbool_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamax_f32_x(svbool_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamax_f32_z(svbool_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamax_f64_m(svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamax_f64_x(svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamax_f64_z(svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamax_m(svbool_t_val, svfloat16_t_val, float16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamax_m(svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamax_m(svbool_t_val, svfloat32_t_val, float32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamax_m(svbool_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamax_m(svbool_t_val, svfloat64_t_val, float64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamax_m(svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamax_n_f16_m(svbool_t_val, svfloat16_t_val, float16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamax_n_f16_x(svbool_t_val, svfloat16_t_val, float16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamax_n_f16_z(svbool_t_val, svfloat16_t_val, float16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamax_n_f32_m(svbool_t_val, svfloat32_t_val, float32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamax_n_f32_x(svbool_t_val, svfloat32_t_val, float32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamax_n_f32_z(svbool_t_val, svfloat32_t_val, float32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamax_n_f64_m(svbool_t_val, svfloat64_t_val, float64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamax_n_f64_x(svbool_t_val, svfloat64_t_val, float64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamax_n_f64_z(svbool_t_val, svfloat64_t_val, float64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamax_x(svbool_t_val, svfloat16_t_val, float16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamax_x(svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamax_x(svbool_t_val, svfloat32_t_val, float32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamax_x(svbool_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamax_x(svbool_t_val, svfloat64_t_val, float64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamax_x(svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamax_z(svbool_t_val, svfloat16_t_val, float16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamax_z(svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamax_z(svbool_t_val, svfloat32_t_val, float32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamax_z(svbool_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamax_z(svbool_t_val, svfloat64_t_val, float64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamax_z(svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamin_f16_m(svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamin_f16_x(svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamin_f16_z(svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamin_f32_m(svbool_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamin_f32_x(svbool_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamin_f32_z(svbool_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamin_f64_m(svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamin_f64_x(svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamin_f64_z(svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamin_m(svbool_t_val, svfloat16_t_val, float16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamin_m(svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamin_m(svbool_t_val, svfloat32_t_val, float32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamin_m(svbool_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamin_m(svbool_t_val, svfloat64_t_val, float64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamin_m(svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamin_n_f16_m(svbool_t_val, svfloat16_t_val, float16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamin_n_f16_x(svbool_t_val, svfloat16_t_val, float16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamin_n_f16_z(svbool_t_val, svfloat16_t_val, float16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamin_n_f32_m(svbool_t_val, svfloat32_t_val, float32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamin_n_f32_x(svbool_t_val, svfloat32_t_val, float32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamin_n_f32_z(svbool_t_val, svfloat32_t_val, float32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamin_n_f64_m(svbool_t_val, svfloat64_t_val, float64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamin_n_f64_x(svbool_t_val, svfloat64_t_val, float64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamin_n_f64_z(svbool_t_val, svfloat64_t_val, float64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamin_x(svbool_t_val, svfloat16_t_val, float16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamin_x(svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamin_x(svbool_t_val, svfloat32_t_val, float32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamin_x(svbool_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamin_x(svbool_t_val, svfloat64_t_val, float64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamin_x(svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamin_z(svbool_t_val, svfloat16_t_val, float16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamin_z(svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamin_z(svbool_t_val, svfloat32_t_val, float32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamin_z(svbool_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamin_z(svbool_t_val, svfloat64_t_val, float64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svamin_z(svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible{
|
||||
float16_t float16_t_val;
|
||||
float32_t float32_t_val;
|
||||
float64_t float64_t_val;
|
||||
svbool_t svbool_t_val;
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svfloat32_t svfloat32_t_val;
|
||||
svfloat64_t svfloat64_t_val;
|
||||
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_f16_m(svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_f16_x(svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_f16_z(svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_f32_m(svbool_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_f32_x(svbool_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_f32_z(svbool_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_f64_m(svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_f64_x(svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_f64_z(svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_m(svbool_t_val, svfloat16_t_val, float16_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_m(svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_m(svbool_t_val, svfloat32_t_val, float32_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_m(svbool_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_m(svbool_t_val, svfloat64_t_val, float64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_m(svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_n_f16_m(svbool_t_val, svfloat16_t_val, float16_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_n_f16_x(svbool_t_val, svfloat16_t_val, float16_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_n_f16_z(svbool_t_val, svfloat16_t_val, float16_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_n_f32_m(svbool_t_val, svfloat32_t_val, float32_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_n_f32_x(svbool_t_val, svfloat32_t_val, float32_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_n_f32_z(svbool_t_val, svfloat32_t_val, float32_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_n_f64_m(svbool_t_val, svfloat64_t_val, float64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_n_f64_x(svbool_t_val, svfloat64_t_val, float64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_n_f64_z(svbool_t_val, svfloat64_t_val, float64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_x(svbool_t_val, svfloat16_t_val, float16_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_x(svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_x(svbool_t_val, svfloat32_t_val, float32_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_x(svbool_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_x(svbool_t_val, svfloat64_t_val, float64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_x(svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_z(svbool_t_val, svfloat16_t_val, float16_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_z(svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_z(svbool_t_val, svfloat32_t_val, float32_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_z(svbool_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_z(svbool_t_val, svfloat64_t_val, float64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_z(svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_f16_m(svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_f16_x(svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_f16_z(svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_f32_m(svbool_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_f32_x(svbool_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_f32_z(svbool_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_f64_m(svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_f64_x(svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_f64_z(svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_m(svbool_t_val, svfloat16_t_val, float16_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_m(svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_m(svbool_t_val, svfloat32_t_val, float32_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_m(svbool_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_m(svbool_t_val, svfloat64_t_val, float64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_m(svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_n_f16_m(svbool_t_val, svfloat16_t_val, float16_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_n_f16_x(svbool_t_val, svfloat16_t_val, float16_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_n_f16_z(svbool_t_val, svfloat16_t_val, float16_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_n_f32_m(svbool_t_val, svfloat32_t_val, float32_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_n_f32_x(svbool_t_val, svfloat32_t_val, float32_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_n_f32_z(svbool_t_val, svfloat32_t_val, float32_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_n_f64_m(svbool_t_val, svfloat64_t_val, float64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_n_f64_x(svbool_t_val, svfloat64_t_val, float64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_n_f64_z(svbool_t_val, svfloat64_t_val, float64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_x(svbool_t_val, svfloat16_t_val, float16_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_x(svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_x(svbool_t_val, svfloat32_t_val, float32_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_x(svbool_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_x(svbool_t_val, svfloat64_t_val, float64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_x(svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_z(svbool_t_val, svfloat16_t_val, float16_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_z(svbool_t_val, svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_z(svbool_t_val, svfloat32_t_val, float32_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_z(svbool_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_z(svbool_t_val, svfloat64_t_val, float64_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_z(svbool_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
}
|
||||
@ -0,0 +1,206 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +fp8 -target-feature +sme -target-feature +sve -target-feature +sve2 -verify=guard
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +fp8 -target-feature +sme -target-feature +sme2 -target-feature +sve -verify=streaming-guard
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +fp8 -target-feature +sme -target-feature +sme2 -target-feature +sve -target-feature +sve2 -verify
|
||||
// expected-no-diagnostics
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sve.h>
|
||||
|
||||
// Properties: guard="sve,sve2,fp8" streaming_guard="sme,sme2,fp8" flags="feature-dependent"
|
||||
|
||||
void test(void) {
|
||||
fpm_t fpm_t_val;
|
||||
svbfloat16x2_t svbfloat16x2_t_val;
|
||||
svfloat16x2_t svfloat16x2_t_val;
|
||||
svfloat32x2_t svfloat32x2_t_val;
|
||||
svmfloat8_t svmfloat8_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt1_bf16_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt1_bf16_mf8_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt1_f16_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt1_f16_mf8_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt2_bf16_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt2_bf16_mf8_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt2_f16_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt2_f16_mf8_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtlt1_bf16_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtlt1_bf16_mf8_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtlt1_f16_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtlt1_f16_mf8_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtlt2_bf16_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtlt2_bf16_mf8_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtlt2_f16_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtlt2_f16_mf8_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtn_mf8_bf16_x2_fpm(svbfloat16x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtn_mf8_f16_x2_fpm(svfloat16x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtn_mf8_fpm(svbfloat16x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtn_mf8_fpm(svfloat16x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtnb_mf8_f32_x2_fpm(svfloat32x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtnb_mf8_fpm(svfloat32x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtnt_mf8_f32_x2_fpm(svmfloat8_t_val, svfloat32x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtnt_mf8_fpm(svmfloat8_t_val, svfloat32x2_t_val, fpm_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming{
|
||||
fpm_t fpm_t_val;
|
||||
svbfloat16x2_t svbfloat16x2_t_val;
|
||||
svfloat16x2_t svfloat16x2_t_val;
|
||||
svfloat32x2_t svfloat32x2_t_val;
|
||||
svmfloat8_t svmfloat8_t_val;
|
||||
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcvt1_bf16_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcvt1_bf16_mf8_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcvt1_f16_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcvt1_f16_mf8_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcvt2_bf16_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcvt2_bf16_mf8_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcvt2_f16_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcvt2_f16_mf8_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcvtlt1_bf16_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcvtlt1_bf16_mf8_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcvtlt1_f16_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcvtlt1_f16_mf8_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcvtlt2_bf16_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcvtlt2_bf16_mf8_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcvtlt2_f16_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcvtlt2_f16_mf8_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcvtn_mf8_bf16_x2_fpm(svbfloat16x2_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcvtn_mf8_f16_x2_fpm(svfloat16x2_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcvtn_mf8_fpm(svbfloat16x2_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcvtn_mf8_fpm(svfloat16x2_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcvtnb_mf8_f32_x2_fpm(svfloat32x2_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcvtnb_mf8_fpm(svfloat32x2_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcvtnt_mf8_f32_x2_fpm(svmfloat8_t_val, svfloat32x2_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcvtnt_mf8_fpm(svmfloat8_t_val, svfloat32x2_t_val, fpm_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible{
|
||||
fpm_t fpm_t_val;
|
||||
svbfloat16x2_t svbfloat16x2_t_val;
|
||||
svfloat16x2_t svfloat16x2_t_val;
|
||||
svfloat32x2_t svfloat32x2_t_val;
|
||||
svmfloat8_t svmfloat8_t_val;
|
||||
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt1_bf16_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt1_bf16_mf8_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt1_f16_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt1_f16_mf8_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt2_bf16_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt2_bf16_mf8_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt2_f16_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt2_f16_mf8_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtlt1_bf16_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtlt1_bf16_mf8_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtlt1_f16_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtlt1_f16_mf8_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtlt2_bf16_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtlt2_bf16_mf8_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtlt2_f16_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtlt2_f16_mf8_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtn_mf8_bf16_x2_fpm(svbfloat16x2_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtn_mf8_f16_x2_fpm(svfloat16x2_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtn_mf8_fpm(svbfloat16x2_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtn_mf8_fpm(svfloat16x2_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtnb_mf8_f32_x2_fpm(svfloat32x2_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtnb_mf8_fpm(svfloat32x2_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtnt_mf8_f32_x2_fpm(svmfloat8_t_val, svfloat32x2_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtnt_mf8_fpm(svmfloat8_t_val, svfloat32x2_t_val, fpm_t_val);
|
||||
}
|
||||
@ -0,0 +1,77 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +fp8dot2 -target-feature +sme -target-feature +sve -target-feature +sve2 -verify=guard
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +ssve-fp8dot2 -target-feature +sve -verify=streaming-guard
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +fp8dot2 -target-feature +sme -target-feature +ssve-fp8dot2 -target-feature +sve -target-feature +sve2 -verify
|
||||
// expected-no-diagnostics
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sve.h>
|
||||
|
||||
// Properties: guard="sve,sve2,fp8dot2" streaming_guard="sme,ssve-fp8dot2" flags="feature-dependent"
|
||||
|
||||
void test(void) {
|
||||
fpm_t fpm_t_val;
|
||||
mfloat8_t mfloat8_t_val;
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svmfloat8_t svmfloat8_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_f16_mf8_fpm(svfloat16_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_fpm(svfloat16_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_fpm(svfloat16_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_f16_mf8_fpm(svfloat16_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_fpm(svfloat16_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_n_f16_mf8_fpm(svfloat16_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming{
|
||||
fpm_t fpm_t_val;
|
||||
mfloat8_t mfloat8_t_val;
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svmfloat8_t svmfloat8_t_val;
|
||||
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svdot_f16_mf8_fpm(svfloat16_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svdot_fpm(svfloat16_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svdot_fpm(svfloat16_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svdot_lane_f16_mf8_fpm(svfloat16_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svdot_lane_fpm(svfloat16_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svdot_n_f16_mf8_fpm(svfloat16_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible{
|
||||
fpm_t fpm_t_val;
|
||||
mfloat8_t mfloat8_t_val;
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svmfloat8_t svmfloat8_t_val;
|
||||
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_f16_mf8_fpm(svfloat16_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_fpm(svfloat16_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_fpm(svfloat16_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_f16_mf8_fpm(svfloat16_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_fpm(svfloat16_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_n_f16_mf8_fpm(svfloat16_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
}
|
||||
@ -0,0 +1,77 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +fp8dot4 -target-feature +sme -target-feature +sve -target-feature +sve2 -verify=guard
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +ssve-fp8dot4 -target-feature +sve -verify=streaming-guard
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +fp8dot4 -target-feature +sme -target-feature +ssve-fp8dot4 -target-feature +sve -target-feature +sve2 -verify
|
||||
// expected-no-diagnostics
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sve.h>
|
||||
|
||||
// Properties: guard="sve,sve2,fp8dot4" streaming_guard="sme,ssve-fp8dot4" flags="feature-dependent"
|
||||
|
||||
void test(void) {
|
||||
fpm_t fpm_t_val;
|
||||
mfloat8_t mfloat8_t_val;
|
||||
svfloat32_t svfloat32_t_val;
|
||||
svmfloat8_t svmfloat8_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_fpm(svfloat32_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_n_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming{
|
||||
fpm_t fpm_t_val;
|
||||
mfloat8_t mfloat8_t_val;
|
||||
svfloat32_t svfloat32_t_val;
|
||||
svmfloat8_t svmfloat8_t_val;
|
||||
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svdot_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svdot_fpm(svfloat32_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svdot_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svdot_lane_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svdot_lane_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svdot_n_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible{
|
||||
fpm_t fpm_t_val;
|
||||
mfloat8_t mfloat8_t_val;
|
||||
svfloat32_t svfloat32_t_val;
|
||||
svmfloat8_t svmfloat8_t_val;
|
||||
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_fpm(svfloat32_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_lane_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svdot_n_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
}
|
||||
@ -0,0 +1,290 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +fp8fma -target-feature +sme -target-feature +sve -target-feature +sve2 -verify=guard
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +ssve-fp8fma -target-feature +sve -verify=streaming-guard
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +fp8fma -target-feature +sme -target-feature +ssve-fp8fma -target-feature +sve -target-feature +sve2 -verify
|
||||
// expected-no-diagnostics
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sve.h>
|
||||
|
||||
// Properties: guard="sve,sve2,fp8fma" streaming_guard="sme,ssve-fp8fma" flags="feature-dependent"
|
||||
|
||||
void test(void) {
|
||||
fpm_t fpm_t_val;
|
||||
mfloat8_t mfloat8_t_val;
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svfloat32_t svfloat32_t_val;
|
||||
svmfloat8_t svmfloat8_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalb_f16_mf8_fpm(svfloat16_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalb_fpm(svfloat16_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalb_fpm(svfloat16_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalb_lane_f16_mf8_fpm(svfloat16_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalb_lane_fpm(svfloat16_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalb_n_f16_mf8_fpm(svfloat16_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlallbb_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlallbb_fpm(svfloat32_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlallbb_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlallbb_lane_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlallbb_lane_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlallbb_n_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlallbt_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlallbt_fpm(svfloat32_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlallbt_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlallbt_lane_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlallbt_lane_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlallbt_n_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalltb_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalltb_fpm(svfloat32_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalltb_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalltb_lane_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalltb_lane_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalltb_n_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalltt_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalltt_fpm(svfloat32_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalltt_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalltt_lane_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalltt_lane_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalltt_n_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalt_f16_mf8_fpm(svfloat16_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalt_fpm(svfloat16_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalt_fpm(svfloat16_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalt_lane_f16_mf8_fpm(svfloat16_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalt_lane_fpm(svfloat16_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalt_n_f16_mf8_fpm(svfloat16_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming{
|
||||
fpm_t fpm_t_val;
|
||||
mfloat8_t mfloat8_t_val;
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svfloat32_t svfloat32_t_val;
|
||||
svmfloat8_t svmfloat8_t_val;
|
||||
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmlalb_f16_mf8_fpm(svfloat16_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmlalb_fpm(svfloat16_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmlalb_fpm(svfloat16_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmlalb_lane_f16_mf8_fpm(svfloat16_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmlalb_lane_fpm(svfloat16_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmlalb_n_f16_mf8_fpm(svfloat16_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmlallbb_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmlallbb_fpm(svfloat32_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmlallbb_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmlallbb_lane_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmlallbb_lane_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmlallbb_n_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmlallbt_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmlallbt_fpm(svfloat32_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmlallbt_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmlallbt_lane_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmlallbt_lane_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmlallbt_n_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmlalltb_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmlalltb_fpm(svfloat32_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmlalltb_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmlalltb_lane_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmlalltb_lane_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmlalltb_n_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmlalltt_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmlalltt_fpm(svfloat32_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmlalltt_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmlalltt_lane_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmlalltt_lane_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmlalltt_n_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmlalt_f16_mf8_fpm(svfloat16_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmlalt_fpm(svfloat16_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmlalt_fpm(svfloat16_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmlalt_lane_f16_mf8_fpm(svfloat16_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmlalt_lane_fpm(svfloat16_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmlalt_n_f16_mf8_fpm(svfloat16_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible{
|
||||
fpm_t fpm_t_val;
|
||||
mfloat8_t mfloat8_t_val;
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svfloat32_t svfloat32_t_val;
|
||||
svmfloat8_t svmfloat8_t_val;
|
||||
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalb_f16_mf8_fpm(svfloat16_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalb_fpm(svfloat16_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalb_fpm(svfloat16_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalb_lane_f16_mf8_fpm(svfloat16_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalb_lane_fpm(svfloat16_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalb_n_f16_mf8_fpm(svfloat16_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlallbb_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlallbb_fpm(svfloat32_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlallbb_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlallbb_lane_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlallbb_lane_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlallbb_n_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlallbt_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlallbt_fpm(svfloat32_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlallbt_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlallbt_lane_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlallbt_lane_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlallbt_n_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalltb_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalltb_fpm(svfloat32_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalltb_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalltb_lane_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalltb_lane_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalltb_n_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalltt_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalltt_fpm(svfloat32_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalltt_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalltt_lane_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalltt_lane_fpm(svfloat32_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalltt_n_f32_mf8_fpm(svfloat32_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalt_f16_mf8_fpm(svfloat16_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalt_fpm(svfloat16_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalt_fpm(svfloat16_t_val, svmfloat8_t_val, svmfloat8_t_val, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalt_lane_f16_mf8_fpm(svfloat16_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalt_lane_fpm(svfloat16_t_val, svmfloat8_t_val, svmfloat8_t_val, 2, fpm_t_val);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmlalt_n_f16_mf8_fpm(svfloat16_t_val, svmfloat8_t_val, mfloat8_t_val, fpm_t_val);
|
||||
}
|
||||
@ -0,0 +1,277 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +lut -target-feature +sme -target-feature +sve -target-feature +sve2 -verify=guard
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +lut -target-feature +sme -target-feature +sme2 -target-feature +sve -verify=streaming-guard
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +lut -target-feature +sme -target-feature +sme2 -target-feature +sve -target-feature +sve2 -verify
|
||||
// expected-no-diagnostics
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sve.h>
|
||||
|
||||
// Properties: guard="sve,sve2,lut" streaming_guard="sme,sme2,lut" flags="feature-dependent"
|
||||
|
||||
void test(void) {
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svbfloat16x2_t svbfloat16x2_t_val;
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svfloat16x2_t svfloat16x2_t_val;
|
||||
svint8_t svint8_t_val;
|
||||
svint16_t svint16_t_val;
|
||||
svint16x2_t svint16x2_t_val;
|
||||
svuint8_t svuint8_t_val;
|
||||
svuint16_t svuint16_t_val;
|
||||
svuint16x2_t svuint16x2_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane(svbfloat16_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane(svfloat16_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane(svint8_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane(svint16_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane(svuint8_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane(svuint16_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_bf16(svbfloat16_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_f16(svfloat16_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_s8(svint8_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_s16(svint16_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_u8(svuint8_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_u16(svuint16_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane(svbfloat16_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane(svbfloat16x2_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane(svfloat16_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane(svfloat16x2_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane(svint8_t_val, svuint8_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane(svint16_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane(svint16x2_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane(svuint8_t_val, svuint8_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane(svuint16_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane(svuint16x2_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_bf16(svbfloat16_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_bf16_x2(svbfloat16x2_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_f16(svfloat16_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_f16_x2(svfloat16x2_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_s8(svint8_t_val, svuint8_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_s16(svint16_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_s16_x2(svint16x2_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_u8(svuint8_t_val, svuint8_t_val, 1);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_u16(svuint16_t_val, svuint8_t_val, 2);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_u16_x2(svuint16x2_t_val, svuint8_t_val, 2);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming{
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svbfloat16x2_t svbfloat16x2_t_val;
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svfloat16x2_t svfloat16x2_t_val;
|
||||
svint8_t svint8_t_val;
|
||||
svint16_t svint16_t_val;
|
||||
svint16x2_t svint16x2_t_val;
|
||||
svuint8_t svuint8_t_val;
|
||||
svuint16_t svuint16_t_val;
|
||||
svuint16x2_t svuint16x2_t_val;
|
||||
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svluti2_lane(svbfloat16_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svluti2_lane(svfloat16_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svluti2_lane(svint8_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svluti2_lane(svint16_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svluti2_lane(svuint8_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svluti2_lane(svuint16_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svluti2_lane_bf16(svbfloat16_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svluti2_lane_f16(svfloat16_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svluti2_lane_s8(svint8_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svluti2_lane_s16(svint16_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svluti2_lane_u8(svuint8_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svluti2_lane_u16(svuint16_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svluti4_lane(svbfloat16_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svluti4_lane(svbfloat16x2_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svluti4_lane(svfloat16_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svluti4_lane(svfloat16x2_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svluti4_lane(svint8_t_val, svuint8_t_val, 1);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svluti4_lane(svint16_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svluti4_lane(svint16x2_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svluti4_lane(svuint8_t_val, svuint8_t_val, 1);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svluti4_lane(svuint16_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svluti4_lane(svuint16x2_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svluti4_lane_bf16(svbfloat16_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svluti4_lane_bf16_x2(svbfloat16x2_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svluti4_lane_f16(svfloat16_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svluti4_lane_f16_x2(svfloat16x2_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svluti4_lane_s8(svint8_t_val, svuint8_t_val, 1);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svluti4_lane_s16(svint16_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svluti4_lane_s16_x2(svint16x2_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svluti4_lane_u8(svuint8_t_val, svuint8_t_val, 1);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svluti4_lane_u16(svuint16_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svluti4_lane_u16_x2(svuint16x2_t_val, svuint8_t_val, 2);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible{
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svbfloat16x2_t svbfloat16x2_t_val;
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svfloat16x2_t svfloat16x2_t_val;
|
||||
svint8_t svint8_t_val;
|
||||
svint16_t svint16_t_val;
|
||||
svint16x2_t svint16x2_t_val;
|
||||
svuint8_t svuint8_t_val;
|
||||
svuint16_t svuint16_t_val;
|
||||
svuint16x2_t svuint16x2_t_val;
|
||||
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane(svbfloat16_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane(svfloat16_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane(svint8_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane(svint16_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane(svuint8_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane(svuint16_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_bf16(svbfloat16_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_f16(svfloat16_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_s8(svint8_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_s16(svint16_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_u8(svuint8_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti2_lane_u16(svuint16_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane(svbfloat16_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane(svbfloat16x2_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane(svfloat16_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane(svfloat16x2_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane(svint8_t_val, svuint8_t_val, 1);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane(svint16_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane(svint16x2_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane(svuint8_t_val, svuint8_t_val, 1);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane(svuint16_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane(svuint16x2_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_bf16(svbfloat16_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_bf16_x2(svbfloat16x2_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_f16(svfloat16_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_f16_x2(svfloat16x2_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_s8(svint8_t_val, svuint8_t_val, 1);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_s16(svint16_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_s16_x2(svint16x2_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_u8(svuint8_t_val, svuint8_t_val, 1);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_u16(svuint16_t_val, svuint8_t_val, 2);
|
||||
// guard-error@+2 {{builtin can only be called from a non-streaming function}}
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svluti4_lane_u16_x2(svuint16x2_t_val, svuint8_t_val, 2);
|
||||
}
|
||||
16470
clang/test/Sema/AArch64/arm_sve_feature_dependent_sve_AND_sve2___sme.c
Normal file
16470
clang/test/Sema/AArch64/arm_sve_feature_dependent_sve_AND_sve2___sme.c
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
19470
clang/test/Sema/AArch64/arm_sve_feature_dependent_sve___sme.c
Normal file
19470
clang/test/Sema/AArch64/arm_sve_feature_dependent_sve___sme.c
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,61 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sve -verify=guard
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sme2 -target-feature +ssve-fexpa -target-feature +sve -verify
|
||||
// expected-no-diagnostics
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sve.h>
|
||||
|
||||
// Properties: guard="sve" streaming_guard="sme,sme2,ssve-fexpa" flags="feature-dependent"
|
||||
|
||||
void test(void) {
|
||||
svuint16_t svuint16_t_val;
|
||||
svuint32_t svuint32_t_val;
|
||||
svuint64_t svuint64_t_val;
|
||||
|
||||
svexpa(svuint16_t_val);
|
||||
svexpa(svuint32_t_val);
|
||||
svexpa(svuint64_t_val);
|
||||
svexpa_f16(svuint16_t_val);
|
||||
svexpa_f32(svuint32_t_val);
|
||||
svexpa_f64(svuint64_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming{
|
||||
svuint16_t svuint16_t_val;
|
||||
svuint32_t svuint32_t_val;
|
||||
svuint64_t svuint64_t_val;
|
||||
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svexpa(svuint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svexpa(svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svexpa(svuint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svexpa_f16(svuint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svexpa_f32(svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svexpa_f64(svuint64_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible{
|
||||
svuint16_t svuint16_t_val;
|
||||
svuint32_t svuint32_t_val;
|
||||
svuint64_t svuint64_t_val;
|
||||
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svexpa(svuint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svexpa(svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svexpa(svuint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svexpa_f16(svuint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svexpa_f32(svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svexpa_f64(svuint64_t_val);
|
||||
}
|
||||
@ -0,0 +1,103 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sve -verify=guard
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sme2p2 -target-feature +sve -verify
|
||||
// expected-no-diagnostics
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sve.h>
|
||||
|
||||
// Properties: guard="sve" streaming_guard="sme,sme2p2" flags="feature-dependent"
|
||||
|
||||
void test(void) {
|
||||
svbool_t svbool_t_val;
|
||||
svfloat32_t svfloat32_t_val;
|
||||
svfloat64_t svfloat64_t_val;
|
||||
svint32_t svint32_t_val;
|
||||
svint64_t svint64_t_val;
|
||||
svuint32_t svuint32_t_val;
|
||||
svuint64_t svuint64_t_val;
|
||||
|
||||
svcompact(svbool_t_val, svfloat32_t_val);
|
||||
svcompact(svbool_t_val, svfloat64_t_val);
|
||||
svcompact(svbool_t_val, svint32_t_val);
|
||||
svcompact(svbool_t_val, svint64_t_val);
|
||||
svcompact(svbool_t_val, svuint32_t_val);
|
||||
svcompact(svbool_t_val, svuint64_t_val);
|
||||
svcompact_f32(svbool_t_val, svfloat32_t_val);
|
||||
svcompact_f64(svbool_t_val, svfloat64_t_val);
|
||||
svcompact_s32(svbool_t_val, svint32_t_val);
|
||||
svcompact_s64(svbool_t_val, svint64_t_val);
|
||||
svcompact_u32(svbool_t_val, svuint32_t_val);
|
||||
svcompact_u64(svbool_t_val, svuint64_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming{
|
||||
svbool_t svbool_t_val;
|
||||
svfloat32_t svfloat32_t_val;
|
||||
svfloat64_t svfloat64_t_val;
|
||||
svint32_t svint32_t_val;
|
||||
svint64_t svint64_t_val;
|
||||
svuint32_t svuint32_t_val;
|
||||
svuint64_t svuint64_t_val;
|
||||
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcompact(svbool_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcompact(svbool_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcompact(svbool_t_val, svint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcompact(svbool_t_val, svint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcompact(svbool_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcompact(svbool_t_val, svuint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcompact_f32(svbool_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcompact_f64(svbool_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcompact_s32(svbool_t_val, svint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcompact_s64(svbool_t_val, svint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcompact_u32(svbool_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcompact_u64(svbool_t_val, svuint64_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible{
|
||||
svbool_t svbool_t_val;
|
||||
svfloat32_t svfloat32_t_val;
|
||||
svfloat64_t svfloat64_t_val;
|
||||
svint32_t svint32_t_val;
|
||||
svint64_t svint64_t_val;
|
||||
svuint32_t svuint32_t_val;
|
||||
svuint64_t svuint64_t_val;
|
||||
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcompact(svbool_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcompact(svbool_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcompact(svbool_t_val, svint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcompact(svbool_t_val, svint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcompact(svbool_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcompact(svbool_t_val, svuint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcompact_f32(svbool_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcompact_f64(svbool_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcompact_s32(svbool_t_val, svint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcompact_s64(svbool_t_val, svint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcompact_u32(svbool_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svcompact_u64(svbool_t_val, svuint64_t_val);
|
||||
}
|
||||
5881
clang/test/Sema/AArch64/arm_sve_non_streaming_only_sve.c
Normal file
5881
clang/test/Sema/AArch64/arm_sve_non_streaming_only_sve.c
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,36 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +bf16 -target-feature +sme -target-feature +sve -verify=guard
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sve.h>
|
||||
|
||||
// Properties: guard="sve,bf16" streaming_guard="" flags=""
|
||||
|
||||
void test(void) {
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svfloat32_t svfloat32_t_val;
|
||||
|
||||
svbfmmla(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svbfmmla_f32(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming{
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svfloat32_t svfloat32_t_val;
|
||||
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbfmmla(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbfmmla_f32(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible{
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svfloat32_t svfloat32_t_val;
|
||||
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbfmmla(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svbfmmla_f32(svfloat32_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
}
|
||||
@ -0,0 +1,33 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +f32mm -target-feature +sme -target-feature +sve -verify=guard
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sve.h>
|
||||
|
||||
// Properties: guard="sve,f32mm" streaming_guard="" flags=""
|
||||
|
||||
void test(void) {
|
||||
svfloat32_t svfloat32_t_val;
|
||||
|
||||
svmmla(svfloat32_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
svmmla_f32(svfloat32_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming{
|
||||
svfloat32_t svfloat32_t_val;
|
||||
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmmla(svfloat32_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmmla_f32(svfloat32_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible{
|
||||
svfloat32_t svfloat32_t_val;
|
||||
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmmla(svfloat32_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmmla_f32(svfloat32_t_val, svfloat32_t_val, svfloat32_t_val);
|
||||
}
|
||||
@ -0,0 +1,958 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +f64mm -target-feature +sme -target-feature +sve -verify=guard
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sve.h>
|
||||
|
||||
// Properties: guard="sve,f64mm" streaming_guard="" flags=""
|
||||
|
||||
void test(void) {
|
||||
bfloat16_t * bfloat16_t_ptr_val;
|
||||
float16_t * float16_t_ptr_val;
|
||||
float32_t * float32_t_ptr_val;
|
||||
float64_t * float64_t_ptr_val;
|
||||
int8_t * int8_t_ptr_val;
|
||||
int16_t * int16_t_ptr_val;
|
||||
int32_t * int32_t_ptr_val;
|
||||
int64_t * int64_t_ptr_val;
|
||||
mfloat8_t * mfloat8_t_ptr_val;
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svbool_t svbool_t_val;
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svfloat32_t svfloat32_t_val;
|
||||
svfloat64_t svfloat64_t_val;
|
||||
svint8_t svint8_t_val;
|
||||
svint16_t svint16_t_val;
|
||||
svint32_t svint32_t_val;
|
||||
svint64_t svint64_t_val;
|
||||
svuint8_t svuint8_t_val;
|
||||
svuint16_t svuint16_t_val;
|
||||
svuint32_t svuint32_t_val;
|
||||
svuint64_t svuint64_t_val;
|
||||
uint8_t * uint8_t_ptr_val;
|
||||
uint16_t * uint16_t_ptr_val;
|
||||
uint32_t * uint32_t_ptr_val;
|
||||
uint64_t * uint64_t_ptr_val;
|
||||
|
||||
svld1ro(svbool_t_val, bfloat16_t_ptr_val);
|
||||
svld1ro(svbool_t_val, float16_t_ptr_val);
|
||||
svld1ro(svbool_t_val, float32_t_ptr_val);
|
||||
svld1ro(svbool_t_val, float64_t_ptr_val);
|
||||
svld1ro(svbool_t_val, int8_t_ptr_val);
|
||||
svld1ro(svbool_t_val, int16_t_ptr_val);
|
||||
svld1ro(svbool_t_val, int32_t_ptr_val);
|
||||
svld1ro(svbool_t_val, int64_t_ptr_val);
|
||||
svld1ro(svbool_t_val, mfloat8_t_ptr_val);
|
||||
svld1ro(svbool_t_val, uint8_t_ptr_val);
|
||||
svld1ro(svbool_t_val, uint16_t_ptr_val);
|
||||
svld1ro(svbool_t_val, uint32_t_ptr_val);
|
||||
svld1ro(svbool_t_val, uint64_t_ptr_val);
|
||||
svld1ro_bf16(svbool_t_val, bfloat16_t_ptr_val);
|
||||
svld1ro_f16(svbool_t_val, float16_t_ptr_val);
|
||||
svld1ro_f32(svbool_t_val, float32_t_ptr_val);
|
||||
svld1ro_f64(svbool_t_val, float64_t_ptr_val);
|
||||
svld1ro_mf8(svbool_t_val, mfloat8_t_ptr_val);
|
||||
svld1ro_s8(svbool_t_val, int8_t_ptr_val);
|
||||
svld1ro_s16(svbool_t_val, int16_t_ptr_val);
|
||||
svld1ro_s32(svbool_t_val, int32_t_ptr_val);
|
||||
svld1ro_s64(svbool_t_val, int64_t_ptr_val);
|
||||
svld1ro_u8(svbool_t_val, uint8_t_ptr_val);
|
||||
svld1ro_u16(svbool_t_val, uint16_t_ptr_val);
|
||||
svld1ro_u32(svbool_t_val, uint32_t_ptr_val);
|
||||
svld1ro_u64(svbool_t_val, uint64_t_ptr_val);
|
||||
svmmla(svfloat64_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
svmmla_f64(svfloat64_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
svtrn1q(svbfloat16_t_val, svbfloat16_t_val);
|
||||
svtrn1q(svfloat16_t_val, svfloat16_t_val);
|
||||
svtrn1q(svfloat32_t_val, svfloat32_t_val);
|
||||
svtrn1q(svfloat64_t_val, svfloat64_t_val);
|
||||
svtrn1q(svint8_t_val, svint8_t_val);
|
||||
svtrn1q(svint16_t_val, svint16_t_val);
|
||||
svtrn1q(svint32_t_val, svint32_t_val);
|
||||
svtrn1q(svint64_t_val, svint64_t_val);
|
||||
svtrn1q(svuint8_t_val, svuint8_t_val);
|
||||
svtrn1q(svuint16_t_val, svuint16_t_val);
|
||||
svtrn1q(svuint32_t_val, svuint32_t_val);
|
||||
svtrn1q(svuint64_t_val, svuint64_t_val);
|
||||
svtrn1q_bf16(svbfloat16_t_val, svbfloat16_t_val);
|
||||
svtrn1q_f16(svfloat16_t_val, svfloat16_t_val);
|
||||
svtrn1q_f32(svfloat32_t_val, svfloat32_t_val);
|
||||
svtrn1q_f64(svfloat64_t_val, svfloat64_t_val);
|
||||
svtrn1q_s8(svint8_t_val, svint8_t_val);
|
||||
svtrn1q_s16(svint16_t_val, svint16_t_val);
|
||||
svtrn1q_s32(svint32_t_val, svint32_t_val);
|
||||
svtrn1q_s64(svint64_t_val, svint64_t_val);
|
||||
svtrn1q_u8(svuint8_t_val, svuint8_t_val);
|
||||
svtrn1q_u16(svuint16_t_val, svuint16_t_val);
|
||||
svtrn1q_u32(svuint32_t_val, svuint32_t_val);
|
||||
svtrn1q_u64(svuint64_t_val, svuint64_t_val);
|
||||
svtrn2q(svbfloat16_t_val, svbfloat16_t_val);
|
||||
svtrn2q(svfloat16_t_val, svfloat16_t_val);
|
||||
svtrn2q(svfloat32_t_val, svfloat32_t_val);
|
||||
svtrn2q(svfloat64_t_val, svfloat64_t_val);
|
||||
svtrn2q(svint8_t_val, svint8_t_val);
|
||||
svtrn2q(svint16_t_val, svint16_t_val);
|
||||
svtrn2q(svint32_t_val, svint32_t_val);
|
||||
svtrn2q(svint64_t_val, svint64_t_val);
|
||||
svtrn2q(svuint8_t_val, svuint8_t_val);
|
||||
svtrn2q(svuint16_t_val, svuint16_t_val);
|
||||
svtrn2q(svuint32_t_val, svuint32_t_val);
|
||||
svtrn2q(svuint64_t_val, svuint64_t_val);
|
||||
svtrn2q_bf16(svbfloat16_t_val, svbfloat16_t_val);
|
||||
svtrn2q_f16(svfloat16_t_val, svfloat16_t_val);
|
||||
svtrn2q_f32(svfloat32_t_val, svfloat32_t_val);
|
||||
svtrn2q_f64(svfloat64_t_val, svfloat64_t_val);
|
||||
svtrn2q_s8(svint8_t_val, svint8_t_val);
|
||||
svtrn2q_s16(svint16_t_val, svint16_t_val);
|
||||
svtrn2q_s32(svint32_t_val, svint32_t_val);
|
||||
svtrn2q_s64(svint64_t_val, svint64_t_val);
|
||||
svtrn2q_u8(svuint8_t_val, svuint8_t_val);
|
||||
svtrn2q_u16(svuint16_t_val, svuint16_t_val);
|
||||
svtrn2q_u32(svuint32_t_val, svuint32_t_val);
|
||||
svtrn2q_u64(svuint64_t_val, svuint64_t_val);
|
||||
svuzp1q(svbfloat16_t_val, svbfloat16_t_val);
|
||||
svuzp1q(svfloat16_t_val, svfloat16_t_val);
|
||||
svuzp1q(svfloat32_t_val, svfloat32_t_val);
|
||||
svuzp1q(svfloat64_t_val, svfloat64_t_val);
|
||||
svuzp1q(svint8_t_val, svint8_t_val);
|
||||
svuzp1q(svint16_t_val, svint16_t_val);
|
||||
svuzp1q(svint32_t_val, svint32_t_val);
|
||||
svuzp1q(svint64_t_val, svint64_t_val);
|
||||
svuzp1q(svuint8_t_val, svuint8_t_val);
|
||||
svuzp1q(svuint16_t_val, svuint16_t_val);
|
||||
svuzp1q(svuint32_t_val, svuint32_t_val);
|
||||
svuzp1q(svuint64_t_val, svuint64_t_val);
|
||||
svuzp1q_bf16(svbfloat16_t_val, svbfloat16_t_val);
|
||||
svuzp1q_f16(svfloat16_t_val, svfloat16_t_val);
|
||||
svuzp1q_f32(svfloat32_t_val, svfloat32_t_val);
|
||||
svuzp1q_f64(svfloat64_t_val, svfloat64_t_val);
|
||||
svuzp1q_s8(svint8_t_val, svint8_t_val);
|
||||
svuzp1q_s16(svint16_t_val, svint16_t_val);
|
||||
svuzp1q_s32(svint32_t_val, svint32_t_val);
|
||||
svuzp1q_s64(svint64_t_val, svint64_t_val);
|
||||
svuzp1q_u8(svuint8_t_val, svuint8_t_val);
|
||||
svuzp1q_u16(svuint16_t_val, svuint16_t_val);
|
||||
svuzp1q_u32(svuint32_t_val, svuint32_t_val);
|
||||
svuzp1q_u64(svuint64_t_val, svuint64_t_val);
|
||||
svuzp2q(svbfloat16_t_val, svbfloat16_t_val);
|
||||
svuzp2q(svfloat16_t_val, svfloat16_t_val);
|
||||
svuzp2q(svfloat32_t_val, svfloat32_t_val);
|
||||
svuzp2q(svfloat64_t_val, svfloat64_t_val);
|
||||
svuzp2q(svint8_t_val, svint8_t_val);
|
||||
svuzp2q(svint16_t_val, svint16_t_val);
|
||||
svuzp2q(svint32_t_val, svint32_t_val);
|
||||
svuzp2q(svint64_t_val, svint64_t_val);
|
||||
svuzp2q(svuint8_t_val, svuint8_t_val);
|
||||
svuzp2q(svuint16_t_val, svuint16_t_val);
|
||||
svuzp2q(svuint32_t_val, svuint32_t_val);
|
||||
svuzp2q(svuint64_t_val, svuint64_t_val);
|
||||
svuzp2q_bf16(svbfloat16_t_val, svbfloat16_t_val);
|
||||
svuzp2q_f16(svfloat16_t_val, svfloat16_t_val);
|
||||
svuzp2q_f32(svfloat32_t_val, svfloat32_t_val);
|
||||
svuzp2q_f64(svfloat64_t_val, svfloat64_t_val);
|
||||
svuzp2q_s8(svint8_t_val, svint8_t_val);
|
||||
svuzp2q_s16(svint16_t_val, svint16_t_val);
|
||||
svuzp2q_s32(svint32_t_val, svint32_t_val);
|
||||
svuzp2q_s64(svint64_t_val, svint64_t_val);
|
||||
svuzp2q_u8(svuint8_t_val, svuint8_t_val);
|
||||
svuzp2q_u16(svuint16_t_val, svuint16_t_val);
|
||||
svuzp2q_u32(svuint32_t_val, svuint32_t_val);
|
||||
svuzp2q_u64(svuint64_t_val, svuint64_t_val);
|
||||
svzip1q(svbfloat16_t_val, svbfloat16_t_val);
|
||||
svzip1q(svfloat16_t_val, svfloat16_t_val);
|
||||
svzip1q(svfloat32_t_val, svfloat32_t_val);
|
||||
svzip1q(svfloat64_t_val, svfloat64_t_val);
|
||||
svzip1q(svint8_t_val, svint8_t_val);
|
||||
svzip1q(svint16_t_val, svint16_t_val);
|
||||
svzip1q(svint32_t_val, svint32_t_val);
|
||||
svzip1q(svint64_t_val, svint64_t_val);
|
||||
svzip1q(svuint8_t_val, svuint8_t_val);
|
||||
svzip1q(svuint16_t_val, svuint16_t_val);
|
||||
svzip1q(svuint32_t_val, svuint32_t_val);
|
||||
svzip1q(svuint64_t_val, svuint64_t_val);
|
||||
svzip1q_bf16(svbfloat16_t_val, svbfloat16_t_val);
|
||||
svzip1q_f16(svfloat16_t_val, svfloat16_t_val);
|
||||
svzip1q_f32(svfloat32_t_val, svfloat32_t_val);
|
||||
svzip1q_f64(svfloat64_t_val, svfloat64_t_val);
|
||||
svzip1q_s8(svint8_t_val, svint8_t_val);
|
||||
svzip1q_s16(svint16_t_val, svint16_t_val);
|
||||
svzip1q_s32(svint32_t_val, svint32_t_val);
|
||||
svzip1q_s64(svint64_t_val, svint64_t_val);
|
||||
svzip1q_u8(svuint8_t_val, svuint8_t_val);
|
||||
svzip1q_u16(svuint16_t_val, svuint16_t_val);
|
||||
svzip1q_u32(svuint32_t_val, svuint32_t_val);
|
||||
svzip1q_u64(svuint64_t_val, svuint64_t_val);
|
||||
svzip2q(svbfloat16_t_val, svbfloat16_t_val);
|
||||
svzip2q(svfloat16_t_val, svfloat16_t_val);
|
||||
svzip2q(svfloat32_t_val, svfloat32_t_val);
|
||||
svzip2q(svfloat64_t_val, svfloat64_t_val);
|
||||
svzip2q(svint8_t_val, svint8_t_val);
|
||||
svzip2q(svint16_t_val, svint16_t_val);
|
||||
svzip2q(svint32_t_val, svint32_t_val);
|
||||
svzip2q(svint64_t_val, svint64_t_val);
|
||||
svzip2q(svuint8_t_val, svuint8_t_val);
|
||||
svzip2q(svuint16_t_val, svuint16_t_val);
|
||||
svzip2q(svuint32_t_val, svuint32_t_val);
|
||||
svzip2q(svuint64_t_val, svuint64_t_val);
|
||||
svzip2q_bf16(svbfloat16_t_val, svbfloat16_t_val);
|
||||
svzip2q_f16(svfloat16_t_val, svfloat16_t_val);
|
||||
svzip2q_f32(svfloat32_t_val, svfloat32_t_val);
|
||||
svzip2q_f64(svfloat64_t_val, svfloat64_t_val);
|
||||
svzip2q_s8(svint8_t_val, svint8_t_val);
|
||||
svzip2q_s16(svint16_t_val, svint16_t_val);
|
||||
svzip2q_s32(svint32_t_val, svint32_t_val);
|
||||
svzip2q_s64(svint64_t_val, svint64_t_val);
|
||||
svzip2q_u8(svuint8_t_val, svuint8_t_val);
|
||||
svzip2q_u16(svuint16_t_val, svuint16_t_val);
|
||||
svzip2q_u32(svuint32_t_val, svuint32_t_val);
|
||||
svzip2q_u64(svuint64_t_val, svuint64_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming{
|
||||
bfloat16_t * bfloat16_t_ptr_val;
|
||||
float16_t * float16_t_ptr_val;
|
||||
float32_t * float32_t_ptr_val;
|
||||
float64_t * float64_t_ptr_val;
|
||||
int8_t * int8_t_ptr_val;
|
||||
int16_t * int16_t_ptr_val;
|
||||
int32_t * int32_t_ptr_val;
|
||||
int64_t * int64_t_ptr_val;
|
||||
mfloat8_t * mfloat8_t_ptr_val;
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svbool_t svbool_t_val;
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svfloat32_t svfloat32_t_val;
|
||||
svfloat64_t svfloat64_t_val;
|
||||
svint8_t svint8_t_val;
|
||||
svint16_t svint16_t_val;
|
||||
svint32_t svint32_t_val;
|
||||
svint64_t svint64_t_val;
|
||||
svuint8_t svuint8_t_val;
|
||||
svuint16_t svuint16_t_val;
|
||||
svuint32_t svuint32_t_val;
|
||||
svuint64_t svuint64_t_val;
|
||||
uint8_t * uint8_t_ptr_val;
|
||||
uint16_t * uint16_t_ptr_val;
|
||||
uint32_t * uint32_t_ptr_val;
|
||||
uint64_t * uint64_t_ptr_val;
|
||||
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro(svbool_t_val, bfloat16_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro(svbool_t_val, float16_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro(svbool_t_val, float32_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro(svbool_t_val, float64_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro(svbool_t_val, int8_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro(svbool_t_val, int16_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro(svbool_t_val, int32_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro(svbool_t_val, int64_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro(svbool_t_val, mfloat8_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro(svbool_t_val, uint8_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro(svbool_t_val, uint16_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro(svbool_t_val, uint32_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro(svbool_t_val, uint64_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro_bf16(svbool_t_val, bfloat16_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro_f16(svbool_t_val, float16_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro_f32(svbool_t_val, float32_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro_f64(svbool_t_val, float64_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro_mf8(svbool_t_val, mfloat8_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro_s8(svbool_t_val, int8_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro_s16(svbool_t_val, int16_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro_s32(svbool_t_val, int32_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro_s64(svbool_t_val, int64_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro_u8(svbool_t_val, uint8_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro_u16(svbool_t_val, uint16_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro_u32(svbool_t_val, uint32_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro_u64(svbool_t_val, uint64_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmmla(svfloat64_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmmla_f64(svfloat64_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q(svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q(svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q(svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q(svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q(svint8_t_val, svint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q(svint16_t_val, svint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q(svint32_t_val, svint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q(svint64_t_val, svint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q(svuint16_t_val, svuint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q_bf16(svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q_f16(svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q_f32(svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q_f64(svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q_s8(svint8_t_val, svint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q_s16(svint16_t_val, svint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q_s32(svint32_t_val, svint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q_s64(svint64_t_val, svint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q_u8(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q_u16(svuint16_t_val, svuint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q_u32(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q_u64(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q(svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q(svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q(svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q(svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q(svint8_t_val, svint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q(svint16_t_val, svint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q(svint32_t_val, svint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q(svint64_t_val, svint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q(svuint16_t_val, svuint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q_bf16(svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q_f16(svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q_f32(svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q_f64(svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q_s8(svint8_t_val, svint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q_s16(svint16_t_val, svint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q_s32(svint32_t_val, svint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q_s64(svint64_t_val, svint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q_u8(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q_u16(svuint16_t_val, svuint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q_u32(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q_u64(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q(svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q(svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q(svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q(svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q(svint8_t_val, svint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q(svint16_t_val, svint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q(svint32_t_val, svint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q(svint64_t_val, svint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q(svuint16_t_val, svuint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q_bf16(svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q_f16(svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q_f32(svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q_f64(svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q_s8(svint8_t_val, svint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q_s16(svint16_t_val, svint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q_s32(svint32_t_val, svint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q_s64(svint64_t_val, svint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q_u8(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q_u16(svuint16_t_val, svuint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q_u32(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q_u64(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q(svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q(svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q(svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q(svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q(svint8_t_val, svint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q(svint16_t_val, svint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q(svint32_t_val, svint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q(svint64_t_val, svint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q(svuint16_t_val, svuint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q_bf16(svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q_f16(svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q_f32(svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q_f64(svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q_s8(svint8_t_val, svint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q_s16(svint16_t_val, svint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q_s32(svint32_t_val, svint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q_s64(svint64_t_val, svint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q_u8(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q_u16(svuint16_t_val, svuint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q_u32(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q_u64(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q(svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q(svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q(svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q(svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q(svint8_t_val, svint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q(svint16_t_val, svint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q(svint32_t_val, svint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q(svint64_t_val, svint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q(svuint16_t_val, svuint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q_bf16(svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q_f16(svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q_f32(svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q_f64(svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q_s8(svint8_t_val, svint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q_s16(svint16_t_val, svint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q_s32(svint32_t_val, svint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q_s64(svint64_t_val, svint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q_u8(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q_u16(svuint16_t_val, svuint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q_u32(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q_u64(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q(svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q(svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q(svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q(svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q(svint8_t_val, svint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q(svint16_t_val, svint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q(svint32_t_val, svint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q(svint64_t_val, svint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q(svuint16_t_val, svuint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q_bf16(svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q_f16(svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q_f32(svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q_f64(svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q_s8(svint8_t_val, svint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q_s16(svint16_t_val, svint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q_s32(svint32_t_val, svint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q_s64(svint64_t_val, svint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q_u8(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q_u16(svuint16_t_val, svuint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q_u32(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q_u64(svuint64_t_val, svuint64_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible{
|
||||
bfloat16_t * bfloat16_t_ptr_val;
|
||||
float16_t * float16_t_ptr_val;
|
||||
float32_t * float32_t_ptr_val;
|
||||
float64_t * float64_t_ptr_val;
|
||||
int8_t * int8_t_ptr_val;
|
||||
int16_t * int16_t_ptr_val;
|
||||
int32_t * int32_t_ptr_val;
|
||||
int64_t * int64_t_ptr_val;
|
||||
mfloat8_t * mfloat8_t_ptr_val;
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svbool_t svbool_t_val;
|
||||
svfloat16_t svfloat16_t_val;
|
||||
svfloat32_t svfloat32_t_val;
|
||||
svfloat64_t svfloat64_t_val;
|
||||
svint8_t svint8_t_val;
|
||||
svint16_t svint16_t_val;
|
||||
svint32_t svint32_t_val;
|
||||
svint64_t svint64_t_val;
|
||||
svuint8_t svuint8_t_val;
|
||||
svuint16_t svuint16_t_val;
|
||||
svuint32_t svuint32_t_val;
|
||||
svuint64_t svuint64_t_val;
|
||||
uint8_t * uint8_t_ptr_val;
|
||||
uint16_t * uint16_t_ptr_val;
|
||||
uint32_t * uint32_t_ptr_val;
|
||||
uint64_t * uint64_t_ptr_val;
|
||||
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro(svbool_t_val, bfloat16_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro(svbool_t_val, float16_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro(svbool_t_val, float32_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro(svbool_t_val, float64_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro(svbool_t_val, int8_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro(svbool_t_val, int16_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro(svbool_t_val, int32_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro(svbool_t_val, int64_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro(svbool_t_val, mfloat8_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro(svbool_t_val, uint8_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro(svbool_t_val, uint16_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro(svbool_t_val, uint32_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro(svbool_t_val, uint64_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro_bf16(svbool_t_val, bfloat16_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro_f16(svbool_t_val, float16_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro_f32(svbool_t_val, float32_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro_f64(svbool_t_val, float64_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro_mf8(svbool_t_val, mfloat8_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro_s8(svbool_t_val, int8_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro_s16(svbool_t_val, int16_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro_s32(svbool_t_val, int32_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro_s64(svbool_t_val, int64_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro_u8(svbool_t_val, uint8_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro_u16(svbool_t_val, uint16_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro_u32(svbool_t_val, uint32_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svld1ro_u64(svbool_t_val, uint64_t_ptr_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmmla(svfloat64_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmmla_f64(svfloat64_t_val, svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q(svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q(svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q(svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q(svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q(svint8_t_val, svint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q(svint16_t_val, svint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q(svint32_t_val, svint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q(svint64_t_val, svint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q(svuint16_t_val, svuint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q_bf16(svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q_f16(svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q_f32(svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q_f64(svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q_s8(svint8_t_val, svint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q_s16(svint16_t_val, svint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q_s32(svint32_t_val, svint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q_s64(svint64_t_val, svint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q_u8(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q_u16(svuint16_t_val, svuint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q_u32(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn1q_u64(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q(svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q(svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q(svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q(svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q(svint8_t_val, svint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q(svint16_t_val, svint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q(svint32_t_val, svint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q(svint64_t_val, svint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q(svuint16_t_val, svuint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q_bf16(svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q_f16(svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q_f32(svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q_f64(svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q_s8(svint8_t_val, svint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q_s16(svint16_t_val, svint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q_s32(svint32_t_val, svint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q_s64(svint64_t_val, svint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q_u8(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q_u16(svuint16_t_val, svuint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q_u32(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svtrn2q_u64(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q(svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q(svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q(svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q(svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q(svint8_t_val, svint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q(svint16_t_val, svint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q(svint32_t_val, svint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q(svint64_t_val, svint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q(svuint16_t_val, svuint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q_bf16(svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q_f16(svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q_f32(svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q_f64(svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q_s8(svint8_t_val, svint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q_s16(svint16_t_val, svint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q_s32(svint32_t_val, svint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q_s64(svint64_t_val, svint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q_u8(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q_u16(svuint16_t_val, svuint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q_u32(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp1q_u64(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q(svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q(svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q(svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q(svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q(svint8_t_val, svint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q(svint16_t_val, svint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q(svint32_t_val, svint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q(svint64_t_val, svint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q(svuint16_t_val, svuint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q_bf16(svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q_f16(svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q_f32(svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q_f64(svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q_s8(svint8_t_val, svint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q_s16(svint16_t_val, svint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q_s32(svint32_t_val, svint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q_s64(svint64_t_val, svint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q_u8(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q_u16(svuint16_t_val, svuint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q_u32(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svuzp2q_u64(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q(svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q(svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q(svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q(svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q(svint8_t_val, svint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q(svint16_t_val, svint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q(svint32_t_val, svint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q(svint64_t_val, svint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q(svuint16_t_val, svuint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q_bf16(svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q_f16(svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q_f32(svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q_f64(svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q_s8(svint8_t_val, svint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q_s16(svint16_t_val, svint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q_s32(svint32_t_val, svint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q_s64(svint64_t_val, svint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q_u8(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q_u16(svuint16_t_val, svuint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q_u32(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip1q_u64(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q(svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q(svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q(svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q(svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q(svint8_t_val, svint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q(svint16_t_val, svint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q(svint32_t_val, svint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q(svint64_t_val, svint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q(svuint16_t_val, svuint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q(svuint64_t_val, svuint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q_bf16(svbfloat16_t_val, svbfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q_f16(svfloat16_t_val, svfloat16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q_f32(svfloat32_t_val, svfloat32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q_f64(svfloat64_t_val, svfloat64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q_s8(svint8_t_val, svint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q_s16(svint16_t_val, svint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q_s32(svint32_t_val, svint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q_s64(svint64_t_val, svint64_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q_u8(svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q_u16(svuint16_t_val, svuint16_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q_u32(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svzip2q_u64(svuint64_t_val, svuint64_t_val);
|
||||
}
|
||||
@ -0,0 +1,62 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +i8mm -target-feature +sme -target-feature +sve -verify=guard
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sve.h>
|
||||
|
||||
// Properties: guard="sve,i8mm" streaming_guard="" flags=""
|
||||
|
||||
void test(void) {
|
||||
svint8_t svint8_t_val;
|
||||
svint32_t svint32_t_val;
|
||||
svuint8_t svuint8_t_val;
|
||||
svuint32_t svuint32_t_val;
|
||||
|
||||
svmmla(svint32_t_val, svint8_t_val, svint8_t_val);
|
||||
svmmla(svuint32_t_val, svuint8_t_val, svuint8_t_val);
|
||||
svmmla_s32(svint32_t_val, svint8_t_val, svint8_t_val);
|
||||
svmmla_u32(svuint32_t_val, svuint8_t_val, svuint8_t_val);
|
||||
svusmmla(svint32_t_val, svuint8_t_val, svint8_t_val);
|
||||
svusmmla_s32(svint32_t_val, svuint8_t_val, svint8_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming{
|
||||
svint8_t svint8_t_val;
|
||||
svint32_t svint32_t_val;
|
||||
svuint8_t svuint8_t_val;
|
||||
svuint32_t svuint32_t_val;
|
||||
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmmla(svint32_t_val, svint8_t_val, svint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmmla(svuint32_t_val, svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmmla_s32(svint32_t_val, svint8_t_val, svint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmmla_u32(svuint32_t_val, svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svusmmla(svint32_t_val, svuint8_t_val, svint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svusmmla_s32(svint32_t_val, svuint8_t_val, svint8_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible{
|
||||
svint8_t svint8_t_val;
|
||||
svint32_t svint32_t_val;
|
||||
svuint8_t svuint8_t_val;
|
||||
svuint32_t svuint32_t_val;
|
||||
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmmla(svint32_t_val, svint8_t_val, svint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmmla(svuint32_t_val, svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmmla_s32(svint32_t_val, svint8_t_val, svint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svmmla_u32(svuint32_t_val, svuint8_t_val, svuint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svusmmla(svint32_t_val, svuint8_t_val, svint8_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svusmmla_s32(svint32_t_val, svuint8_t_val, svint8_t_val);
|
||||
}
|
||||
@ -0,0 +1,43 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sve -target-feature +sve-sm4 -verify=guard
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sve.h>
|
||||
|
||||
// Properties: guard="sve,sve-sm4" streaming_guard="" flags=""
|
||||
|
||||
void test(void) {
|
||||
svuint32_t svuint32_t_val;
|
||||
|
||||
svsm4e(svuint32_t_val, svuint32_t_val);
|
||||
svsm4e_u32(svuint32_t_val, svuint32_t_val);
|
||||
svsm4ekey(svuint32_t_val, svuint32_t_val);
|
||||
svsm4ekey_u32(svuint32_t_val, svuint32_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming{
|
||||
svuint32_t svuint32_t_val;
|
||||
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svsm4e(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svsm4e_u32(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svsm4ekey(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svsm4ekey_u32(svuint32_t_val, svuint32_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible{
|
||||
svuint32_t svuint32_t_val;
|
||||
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svsm4e(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svsm4e_u32(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svsm4ekey(svuint32_t_val, svuint32_t_val);
|
||||
// guard-error@+1 {{builtin can only be called from a non-streaming function}}
|
||||
svsm4ekey_u32(svuint32_t_val, svuint32_t_val);
|
||||
}
|
||||
2386
clang/test/Sema/AArch64/arm_sve_non_streaming_only_sve_AND_sve2.c
Normal file
2386
clang/test/Sema/AArch64/arm_sve_non_streaming_only_sve_AND_sve2.c
Normal file
File diff suppressed because it is too large
Load Diff
1754
clang/test/Sema/AArch64/arm_sve_non_streaming_only_sve_AND_sve2p1.c
Normal file
1754
clang/test/Sema/AArch64/arm_sve_non_streaming_only_sve_AND_sve2p1.c
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,43 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sme-f16f16 -target-feature +sve -verify=streaming-guard
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sve.h>
|
||||
|
||||
// Properties: guard="" streaming_guard="sme,sme-f16f16" flags="streaming-only"
|
||||
|
||||
void test(void) {
|
||||
svfloat16_t svfloat16_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt_f32(svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt_f32_f16_x2(svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtl_f32(svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtl_f32_f16_x2(svfloat16_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming{
|
||||
svfloat16_t svfloat16_t_val;
|
||||
|
||||
svcvt_f32(svfloat16_t_val);
|
||||
svcvt_f32_f16_x2(svfloat16_t_val);
|
||||
svcvtl_f32(svfloat16_t_val);
|
||||
svcvtl_f32_f16_x2(svfloat16_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible{
|
||||
svfloat16_t svfloat16_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt_f32(svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt_f32_f16_x2(svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtl_f32(svfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtl_f32_f16_x2(svfloat16_t_val);
|
||||
}
|
||||
4034
clang/test/Sema/AArch64/arm_sve_streaming_only_sme_AND_sme2.c
Normal file
4034
clang/test/Sema/AArch64/arm_sve_streaming_only_sme_AND_sme2.c
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,158 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +faminmax -target-feature +sme -target-feature +sme2 -target-feature +sve -verify=streaming-guard
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sve.h>
|
||||
|
||||
// Properties: guard="" streaming_guard="sme,sme2,faminmax" flags="streaming-only"
|
||||
|
||||
void test(void) {
|
||||
svfloat16x2_t svfloat16x2_t_val;
|
||||
svfloat16x4_t svfloat16x4_t_val;
|
||||
svfloat32x2_t svfloat32x2_t_val;
|
||||
svfloat32x4_t svfloat32x4_t_val;
|
||||
svfloat64x2_t svfloat64x2_t_val;
|
||||
svfloat64x4_t svfloat64x4_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax(svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax(svfloat16x4_t_val, svfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax(svfloat32x2_t_val, svfloat32x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax(svfloat32x4_t_val, svfloat32x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax(svfloat64x2_t_val, svfloat64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax(svfloat64x4_t_val, svfloat64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_f16_x2(svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_f16_x4(svfloat16x4_t_val, svfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_f32_x2(svfloat32x2_t_val, svfloat32x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_f32_x4(svfloat32x4_t_val, svfloat32x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_f64_x2(svfloat64x2_t_val, svfloat64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_f64_x4(svfloat64x4_t_val, svfloat64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin(svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin(svfloat16x4_t_val, svfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin(svfloat32x2_t_val, svfloat32x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin(svfloat32x4_t_val, svfloat32x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin(svfloat64x2_t_val, svfloat64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin(svfloat64x4_t_val, svfloat64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_f16_x2(svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_f16_x4(svfloat16x4_t_val, svfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_f32_x2(svfloat32x2_t_val, svfloat32x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_f32_x4(svfloat32x4_t_val, svfloat32x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_f64_x2(svfloat64x2_t_val, svfloat64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_f64_x4(svfloat64x4_t_val, svfloat64x4_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming{
|
||||
svfloat16x2_t svfloat16x2_t_val;
|
||||
svfloat16x4_t svfloat16x4_t_val;
|
||||
svfloat32x2_t svfloat32x2_t_val;
|
||||
svfloat32x4_t svfloat32x4_t_val;
|
||||
svfloat64x2_t svfloat64x2_t_val;
|
||||
svfloat64x4_t svfloat64x4_t_val;
|
||||
|
||||
svamax(svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
svamax(svfloat16x4_t_val, svfloat16x4_t_val);
|
||||
svamax(svfloat32x2_t_val, svfloat32x2_t_val);
|
||||
svamax(svfloat32x4_t_val, svfloat32x4_t_val);
|
||||
svamax(svfloat64x2_t_val, svfloat64x2_t_val);
|
||||
svamax(svfloat64x4_t_val, svfloat64x4_t_val);
|
||||
svamax_f16_x2(svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
svamax_f16_x4(svfloat16x4_t_val, svfloat16x4_t_val);
|
||||
svamax_f32_x2(svfloat32x2_t_val, svfloat32x2_t_val);
|
||||
svamax_f32_x4(svfloat32x4_t_val, svfloat32x4_t_val);
|
||||
svamax_f64_x2(svfloat64x2_t_val, svfloat64x2_t_val);
|
||||
svamax_f64_x4(svfloat64x4_t_val, svfloat64x4_t_val);
|
||||
svamin(svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
svamin(svfloat16x4_t_val, svfloat16x4_t_val);
|
||||
svamin(svfloat32x2_t_val, svfloat32x2_t_val);
|
||||
svamin(svfloat32x4_t_val, svfloat32x4_t_val);
|
||||
svamin(svfloat64x2_t_val, svfloat64x2_t_val);
|
||||
svamin(svfloat64x4_t_val, svfloat64x4_t_val);
|
||||
svamin_f16_x2(svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
svamin_f16_x4(svfloat16x4_t_val, svfloat16x4_t_val);
|
||||
svamin_f32_x2(svfloat32x2_t_val, svfloat32x2_t_val);
|
||||
svamin_f32_x4(svfloat32x4_t_val, svfloat32x4_t_val);
|
||||
svamin_f64_x2(svfloat64x2_t_val, svfloat64x2_t_val);
|
||||
svamin_f64_x4(svfloat64x4_t_val, svfloat64x4_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible{
|
||||
svfloat16x2_t svfloat16x2_t_val;
|
||||
svfloat16x4_t svfloat16x4_t_val;
|
||||
svfloat32x2_t svfloat32x2_t_val;
|
||||
svfloat32x4_t svfloat32x4_t_val;
|
||||
svfloat64x2_t svfloat64x2_t_val;
|
||||
svfloat64x4_t svfloat64x4_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax(svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax(svfloat16x4_t_val, svfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax(svfloat32x2_t_val, svfloat32x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax(svfloat32x4_t_val, svfloat32x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax(svfloat64x2_t_val, svfloat64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax(svfloat64x4_t_val, svfloat64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_f16_x2(svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_f16_x4(svfloat16x4_t_val, svfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_f32_x2(svfloat32x2_t_val, svfloat32x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_f32_x4(svfloat32x4_t_val, svfloat32x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_f64_x2(svfloat64x2_t_val, svfloat64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamax_f64_x4(svfloat64x4_t_val, svfloat64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin(svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin(svfloat16x4_t_val, svfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin(svfloat32x2_t_val, svfloat32x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin(svfloat32x4_t_val, svfloat32x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin(svfloat64x2_t_val, svfloat64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin(svfloat64x4_t_val, svfloat64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_f16_x2(svfloat16x2_t_val, svfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_f16_x4(svfloat16x4_t_val, svfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_f32_x2(svfloat32x2_t_val, svfloat32x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_f32_x4(svfloat32x4_t_val, svfloat32x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_f64_x2(svfloat64x2_t_val, svfloat64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svamin_f64_x4(svfloat64x4_t_val, svfloat64x4_t_val);
|
||||
}
|
||||
@ -0,0 +1,314 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +fp8 -target-feature +sme -target-feature +sme2 -target-feature +sve -verify=streaming-guard
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sve.h>
|
||||
|
||||
// Properties: guard="" streaming_guard="sme,sme2,fp8" flags="streaming-only"
|
||||
|
||||
void test(void) {
|
||||
fpm_t fpm_t_val;
|
||||
svbfloat16x2_t svbfloat16x2_t_val;
|
||||
svfloat16x2_t svfloat16x2_t_val;
|
||||
svfloat16x4_t svfloat16x4_t_val;
|
||||
svfloat32x2_t svfloat32x2_t_val;
|
||||
svfloat32x4_t svfloat32x4_t_val;
|
||||
svfloat64x2_t svfloat64x2_t_val;
|
||||
svfloat64x4_t svfloat64x4_t_val;
|
||||
svint16_t svint16_t_val;
|
||||
svint16x2_t svint16x2_t_val;
|
||||
svint16x4_t svint16x4_t_val;
|
||||
svint32_t svint32_t_val;
|
||||
svint32x2_t svint32x2_t_val;
|
||||
svint32x4_t svint32x4_t_val;
|
||||
svint64_t svint64_t_val;
|
||||
svint64x2_t svint64x2_t_val;
|
||||
svint64x4_t svint64x4_t_val;
|
||||
svmfloat8_t svmfloat8_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt1_bf16_mf8_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt1_bf16_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt1_f16_mf8_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt1_f16_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt2_bf16_mf8_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt2_bf16_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt2_f16_mf8_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt2_f16_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt_mf8_bf16_x2_fpm(svbfloat16x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt_mf8_f16_x2_fpm(svfloat16x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt_mf8_f32_x4_fpm(svfloat32x4_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt_mf8_fpm(svbfloat16x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt_mf8_fpm(svfloat16x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt_mf8_fpm(svfloat32x4_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtl1_bf16_mf8_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtl1_bf16_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtl1_f16_mf8_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtl1_f16_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtl2_bf16_mf8_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtl2_bf16_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtl2_f16_mf8_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtl2_f16_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtn_mf8_f32_x4_fpm(svfloat32x4_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtn_mf8_fpm(svfloat32x4_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale(svfloat16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale(svfloat16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale(svfloat16x4_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale(svfloat16x4_t_val, svint16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale(svfloat32x2_t_val, svint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale(svfloat32x2_t_val, svint32x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale(svfloat32x4_t_val, svint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale(svfloat32x4_t_val, svint32x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale(svfloat64x2_t_val, svint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale(svfloat64x2_t_val, svint64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale(svfloat64x4_t_val, svint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale(svfloat64x4_t_val, svint64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale_f16_x2(svfloat16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale_f16_x4(svfloat16x4_t_val, svint16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale_f32_x2(svfloat32x2_t_val, svint32x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale_f32_x4(svfloat32x4_t_val, svint32x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale_f64_x2(svfloat64x2_t_val, svint64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale_f64_x4(svfloat64x4_t_val, svint64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale_single_f16_x2(svfloat16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale_single_f16_x4(svfloat16x4_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale_single_f32_x2(svfloat32x2_t_val, svint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale_single_f32_x4(svfloat32x4_t_val, svint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale_single_f64_x2(svfloat64x2_t_val, svint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale_single_f64_x4(svfloat64x4_t_val, svint64_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming{
|
||||
fpm_t fpm_t_val;
|
||||
svbfloat16x2_t svbfloat16x2_t_val;
|
||||
svfloat16x2_t svfloat16x2_t_val;
|
||||
svfloat16x4_t svfloat16x4_t_val;
|
||||
svfloat32x2_t svfloat32x2_t_val;
|
||||
svfloat32x4_t svfloat32x4_t_val;
|
||||
svfloat64x2_t svfloat64x2_t_val;
|
||||
svfloat64x4_t svfloat64x4_t_val;
|
||||
svint16_t svint16_t_val;
|
||||
svint16x2_t svint16x2_t_val;
|
||||
svint16x4_t svint16x4_t_val;
|
||||
svint32_t svint32_t_val;
|
||||
svint32x2_t svint32x2_t_val;
|
||||
svint32x4_t svint32x4_t_val;
|
||||
svint64_t svint64_t_val;
|
||||
svint64x2_t svint64x2_t_val;
|
||||
svint64x4_t svint64x4_t_val;
|
||||
svmfloat8_t svmfloat8_t_val;
|
||||
|
||||
svcvt1_bf16_mf8_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
svcvt1_bf16_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
svcvt1_f16_mf8_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
svcvt1_f16_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
svcvt2_bf16_mf8_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
svcvt2_bf16_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
svcvt2_f16_mf8_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
svcvt2_f16_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
svcvt_mf8_bf16_x2_fpm(svbfloat16x2_t_val, fpm_t_val);
|
||||
svcvt_mf8_f16_x2_fpm(svfloat16x2_t_val, fpm_t_val);
|
||||
svcvt_mf8_f32_x4_fpm(svfloat32x4_t_val, fpm_t_val);
|
||||
svcvt_mf8_fpm(svbfloat16x2_t_val, fpm_t_val);
|
||||
svcvt_mf8_fpm(svfloat16x2_t_val, fpm_t_val);
|
||||
svcvt_mf8_fpm(svfloat32x4_t_val, fpm_t_val);
|
||||
svcvtl1_bf16_mf8_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
svcvtl1_bf16_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
svcvtl1_f16_mf8_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
svcvtl1_f16_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
svcvtl2_bf16_mf8_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
svcvtl2_bf16_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
svcvtl2_f16_mf8_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
svcvtl2_f16_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
svcvtn_mf8_f32_x4_fpm(svfloat32x4_t_val, fpm_t_val);
|
||||
svcvtn_mf8_fpm(svfloat32x4_t_val, fpm_t_val);
|
||||
svscale(svfloat16x2_t_val, svint16_t_val);
|
||||
svscale(svfloat16x2_t_val, svint16x2_t_val);
|
||||
svscale(svfloat16x4_t_val, svint16_t_val);
|
||||
svscale(svfloat16x4_t_val, svint16x4_t_val);
|
||||
svscale(svfloat32x2_t_val, svint32_t_val);
|
||||
svscale(svfloat32x2_t_val, svint32x2_t_val);
|
||||
svscale(svfloat32x4_t_val, svint32_t_val);
|
||||
svscale(svfloat32x4_t_val, svint32x4_t_val);
|
||||
svscale(svfloat64x2_t_val, svint64_t_val);
|
||||
svscale(svfloat64x2_t_val, svint64x2_t_val);
|
||||
svscale(svfloat64x4_t_val, svint64_t_val);
|
||||
svscale(svfloat64x4_t_val, svint64x4_t_val);
|
||||
svscale_f16_x2(svfloat16x2_t_val, svint16x2_t_val);
|
||||
svscale_f16_x4(svfloat16x4_t_val, svint16x4_t_val);
|
||||
svscale_f32_x2(svfloat32x2_t_val, svint32x2_t_val);
|
||||
svscale_f32_x4(svfloat32x4_t_val, svint32x4_t_val);
|
||||
svscale_f64_x2(svfloat64x2_t_val, svint64x2_t_val);
|
||||
svscale_f64_x4(svfloat64x4_t_val, svint64x4_t_val);
|
||||
svscale_single_f16_x2(svfloat16x2_t_val, svint16_t_val);
|
||||
svscale_single_f16_x4(svfloat16x4_t_val, svint16_t_val);
|
||||
svscale_single_f32_x2(svfloat32x2_t_val, svint32_t_val);
|
||||
svscale_single_f32_x4(svfloat32x4_t_val, svint32_t_val);
|
||||
svscale_single_f64_x2(svfloat64x2_t_val, svint64_t_val);
|
||||
svscale_single_f64_x4(svfloat64x4_t_val, svint64_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible{
|
||||
fpm_t fpm_t_val;
|
||||
svbfloat16x2_t svbfloat16x2_t_val;
|
||||
svfloat16x2_t svfloat16x2_t_val;
|
||||
svfloat16x4_t svfloat16x4_t_val;
|
||||
svfloat32x2_t svfloat32x2_t_val;
|
||||
svfloat32x4_t svfloat32x4_t_val;
|
||||
svfloat64x2_t svfloat64x2_t_val;
|
||||
svfloat64x4_t svfloat64x4_t_val;
|
||||
svint16_t svint16_t_val;
|
||||
svint16x2_t svint16x2_t_val;
|
||||
svint16x4_t svint16x4_t_val;
|
||||
svint32_t svint32_t_val;
|
||||
svint32x2_t svint32x2_t_val;
|
||||
svint32x4_t svint32x4_t_val;
|
||||
svint64_t svint64_t_val;
|
||||
svint64x2_t svint64x2_t_val;
|
||||
svint64x4_t svint64x4_t_val;
|
||||
svmfloat8_t svmfloat8_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt1_bf16_mf8_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt1_bf16_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt1_f16_mf8_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt1_f16_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt2_bf16_mf8_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt2_bf16_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt2_f16_mf8_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt2_f16_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt_mf8_bf16_x2_fpm(svbfloat16x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt_mf8_f16_x2_fpm(svfloat16x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt_mf8_f32_x4_fpm(svfloat32x4_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt_mf8_fpm(svbfloat16x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt_mf8_fpm(svfloat16x2_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvt_mf8_fpm(svfloat32x4_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtl1_bf16_mf8_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtl1_bf16_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtl1_f16_mf8_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtl1_f16_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtl2_bf16_mf8_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtl2_bf16_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtl2_f16_mf8_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtl2_f16_x2_fpm(svmfloat8_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtn_mf8_f32_x4_fpm(svfloat32x4_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svcvtn_mf8_fpm(svfloat32x4_t_val, fpm_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale(svfloat16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale(svfloat16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale(svfloat16x4_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale(svfloat16x4_t_val, svint16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale(svfloat32x2_t_val, svint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale(svfloat32x2_t_val, svint32x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale(svfloat32x4_t_val, svint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale(svfloat32x4_t_val, svint32x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale(svfloat64x2_t_val, svint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale(svfloat64x2_t_val, svint64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale(svfloat64x4_t_val, svint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale(svfloat64x4_t_val, svint64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale_f16_x2(svfloat16x2_t_val, svint16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale_f16_x4(svfloat16x4_t_val, svint16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale_f32_x2(svfloat32x2_t_val, svint32x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale_f32_x4(svfloat32x4_t_val, svint32x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale_f64_x2(svfloat64x2_t_val, svint64x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale_f64_x4(svfloat64x4_t_val, svint64x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale_single_f16_x2(svfloat16x2_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale_single_f16_x4(svfloat16x4_t_val, svint16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale_single_f32_x2(svfloat32x2_t_val, svint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale_single_f32_x4(svfloat32x4_t_val, svint32_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale_single_f64_x2(svfloat64x2_t_val, svint64_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svscale_single_f64_x4(svfloat64x4_t_val, svint64_t_val);
|
||||
}
|
||||
@ -0,0 +1,209 @@
|
||||
// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sme2 -target-feature +sve -target-feature +sve-b16b16 -verify=streaming-guard
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sve.h>
|
||||
|
||||
// Properties: guard="" streaming_guard="sme,sme2,sve-b16b16" flags="streaming-only"
|
||||
|
||||
void test(void) {
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svbfloat16x2_t svbfloat16x2_t_val;
|
||||
svbfloat16x4_t svbfloat16x4_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svclamp(svbfloat16x2_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svclamp(svbfloat16x4_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svclamp_single_bf16_x2(svbfloat16x2_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svclamp_single_bf16_x4(svbfloat16x4_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmax(svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmax(svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmax(svbfloat16x4_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmax(svbfloat16x4_t_val, svbfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmax_bf16_x2(svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmax_bf16_x4(svbfloat16x4_t_val, svbfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmax_single_bf16_x2(svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmax_single_bf16_x4(svbfloat16x4_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmaxnm(svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmaxnm(svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmaxnm(svbfloat16x4_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmaxnm(svbfloat16x4_t_val, svbfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmaxnm_bf16_x2(svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmaxnm_bf16_x4(svbfloat16x4_t_val, svbfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmaxnm_single_bf16_x2(svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmaxnm_single_bf16_x4(svbfloat16x4_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmin(svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmin(svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmin(svbfloat16x4_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmin(svbfloat16x4_t_val, svbfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmin_bf16_x2(svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmin_bf16_x4(svbfloat16x4_t_val, svbfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmin_single_bf16_x2(svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmin_single_bf16_x4(svbfloat16x4_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svminnm(svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svminnm(svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svminnm(svbfloat16x4_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svminnm(svbfloat16x4_t_val, svbfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svminnm_bf16_x2(svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svminnm_bf16_x4(svbfloat16x4_t_val, svbfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svminnm_single_bf16_x2(svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svminnm_single_bf16_x4(svbfloat16x4_t_val, svbfloat16_t_val);
|
||||
}
|
||||
|
||||
void test_streaming(void) __arm_streaming{
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svbfloat16x2_t svbfloat16x2_t_val;
|
||||
svbfloat16x4_t svbfloat16x4_t_val;
|
||||
|
||||
svclamp(svbfloat16x2_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svclamp(svbfloat16x4_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svclamp_single_bf16_x2(svbfloat16x2_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svclamp_single_bf16_x4(svbfloat16x4_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
svmax(svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
svmax(svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
svmax(svbfloat16x4_t_val, svbfloat16_t_val);
|
||||
svmax(svbfloat16x4_t_val, svbfloat16x4_t_val);
|
||||
svmax_bf16_x2(svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
svmax_bf16_x4(svbfloat16x4_t_val, svbfloat16x4_t_val);
|
||||
svmax_single_bf16_x2(svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
svmax_single_bf16_x4(svbfloat16x4_t_val, svbfloat16_t_val);
|
||||
svmaxnm(svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
svmaxnm(svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
svmaxnm(svbfloat16x4_t_val, svbfloat16_t_val);
|
||||
svmaxnm(svbfloat16x4_t_val, svbfloat16x4_t_val);
|
||||
svmaxnm_bf16_x2(svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
svmaxnm_bf16_x4(svbfloat16x4_t_val, svbfloat16x4_t_val);
|
||||
svmaxnm_single_bf16_x2(svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
svmaxnm_single_bf16_x4(svbfloat16x4_t_val, svbfloat16_t_val);
|
||||
svmin(svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
svmin(svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
svmin(svbfloat16x4_t_val, svbfloat16_t_val);
|
||||
svmin(svbfloat16x4_t_val, svbfloat16x4_t_val);
|
||||
svmin_bf16_x2(svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
svmin_bf16_x4(svbfloat16x4_t_val, svbfloat16x4_t_val);
|
||||
svmin_single_bf16_x2(svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
svmin_single_bf16_x4(svbfloat16x4_t_val, svbfloat16_t_val);
|
||||
svminnm(svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
svminnm(svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
svminnm(svbfloat16x4_t_val, svbfloat16_t_val);
|
||||
svminnm(svbfloat16x4_t_val, svbfloat16x4_t_val);
|
||||
svminnm_bf16_x2(svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
svminnm_bf16_x4(svbfloat16x4_t_val, svbfloat16x4_t_val);
|
||||
svminnm_single_bf16_x2(svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
svminnm_single_bf16_x4(svbfloat16x4_t_val, svbfloat16_t_val);
|
||||
}
|
||||
|
||||
void test_streaming_compatible(void) __arm_streaming_compatible{
|
||||
svbfloat16_t svbfloat16_t_val;
|
||||
svbfloat16x2_t svbfloat16x2_t_val;
|
||||
svbfloat16x4_t svbfloat16x4_t_val;
|
||||
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svclamp(svbfloat16x2_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svclamp(svbfloat16x4_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svclamp_single_bf16_x2(svbfloat16x2_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svclamp_single_bf16_x4(svbfloat16x4_t_val, svbfloat16_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmax(svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmax(svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmax(svbfloat16x4_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmax(svbfloat16x4_t_val, svbfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmax_bf16_x2(svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmax_bf16_x4(svbfloat16x4_t_val, svbfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmax_single_bf16_x2(svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmax_single_bf16_x4(svbfloat16x4_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmaxnm(svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmaxnm(svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmaxnm(svbfloat16x4_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmaxnm(svbfloat16x4_t_val, svbfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmaxnm_bf16_x2(svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmaxnm_bf16_x4(svbfloat16x4_t_val, svbfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmaxnm_single_bf16_x2(svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmaxnm_single_bf16_x4(svbfloat16x4_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmin(svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmin(svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmin(svbfloat16x4_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmin(svbfloat16x4_t_val, svbfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmin_bf16_x2(svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmin_bf16_x4(svbfloat16x4_t_val, svbfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmin_single_bf16_x2(svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svmin_single_bf16_x4(svbfloat16x4_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svminnm(svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svminnm(svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svminnm(svbfloat16x4_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svminnm(svbfloat16x4_t_val, svbfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svminnm_bf16_x2(svbfloat16x2_t_val, svbfloat16x2_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svminnm_bf16_x4(svbfloat16x4_t_val, svbfloat16x4_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svminnm_single_bf16_x2(svbfloat16x2_t_val, svbfloat16_t_val);
|
||||
// streaming-guard-error@+1 {{builtin can only be called from a streaming function}}
|
||||
svminnm_single_bf16_x4(svbfloat16x4_t_val, svbfloat16_t_val);
|
||||
}
|
||||
@ -1,70 +0,0 @@
|
||||
// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py
|
||||
// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fsyntax-only -verify %s
|
||||
// expected-no-diagnostics
|
||||
|
||||
// REQUIRES: aarch64-registered-target
|
||||
|
||||
#include <arm_sve.h>
|
||||
|
||||
__attribute__((target("+sve2p1")))
|
||||
svfloat32_t good1(svfloat32_t a, svfloat32_t b, svfloat32_t c) {
|
||||
return svclamp(a, b, c);
|
||||
}
|
||||
|
||||
__attribute__((target("+sme2")))
|
||||
svfloat32_t good2(svfloat32_t a, svfloat32_t b, svfloat32_t c) __arm_streaming {
|
||||
return svclamp(a, b, c);
|
||||
}
|
||||
|
||||
__attribute__((target("+sve2p1,+sme2")))
|
||||
svfloat32_t good3(svfloat32_t a, svfloat32_t b, svfloat32_t c) __arm_streaming_compatible {
|
||||
return svclamp(a, b, c);
|
||||
}
|
||||
|
||||
__attribute__((target("+sve2p1,+sme2")))
|
||||
svfloat32_t good4(svfloat32_t a, svfloat32_t b, svfloat32_t c) __arm_streaming {
|
||||
return svclamp(a, b, c);
|
||||
}
|
||||
|
||||
__attribute__((target("+sve2p1")))
|
||||
svfloat32_t good5(svfloat32_t a, svfloat32_t b, svfloat32_t c) __arm_streaming_compatible {
|
||||
return svclamp(a, b, c);
|
||||
}
|
||||
|
||||
// Even though svclamp is not available in streaming mode without +sme2,
|
||||
// the behaviour should be the same as above, irrespective of whether +sme
|
||||
// is passed or not.
|
||||
__attribute__((target("+sve2p1,+sme")))
|
||||
svfloat32_t good6(svfloat32_t a, svfloat32_t b, svfloat32_t c) __arm_streaming_compatible {
|
||||
return svclamp(a, b, c);
|
||||
}
|
||||
|
||||
// Test that the +sve-b16b16 is not considered an SVE flag (it applies to both)
|
||||
__attribute__((target("+sme2,+sve2,+sve-b16b16")))
|
||||
svbfloat16_t good7(svbfloat16_t a, svbfloat16_t b, svbfloat16_t c) __arm_streaming {
|
||||
return svclamp_bf16(a, b, c);
|
||||
}
|
||||
|
||||
// SVE features flags can enable streaming builtins.
|
||||
__attribute__((target("+sve2p1,+sme")))
|
||||
svfloat32_t good8(svfloat32_t a, svfloat32_t b, svfloat32_t c) __arm_streaming {
|
||||
return svclamp(a, b, c) + svclamp(a, b, c);
|
||||
}
|
||||
|
||||
// SME features flags can enable non-streaming builtins.
|
||||
__attribute__((target("+sve,+sme2")))
|
||||
svfloat32_t good9(svfloat32_t a, svfloat32_t b, svfloat32_t c) {
|
||||
return svclamp(a, b, c) + svclamp(a, b, c);
|
||||
}
|
||||
|
||||
// SME features flags can enable streaming-compatible builtins.
|
||||
__attribute__((target("+sve,+sme2")))
|
||||
svfloat32_t good10(svfloat32_t a, svfloat32_t b, svfloat32_t c) __arm_streaming_compatible {
|
||||
return svclamp(a, b, c) + svclamp(a, b, c);
|
||||
}
|
||||
|
||||
// We don't want a warning about undefined behaviour if none of the feature requirements of the builtin are satisfied.
|
||||
// (this results in a target-guard error emitted by Clang CodeGen)
|
||||
svfloat32_t bad5(svfloat32_t a, svfloat32_t b, svfloat32_t c) {
|
||||
return svclamp(a, b, c);
|
||||
}
|
||||
@ -243,7 +243,9 @@ public:
|
||||
|
||||
/// Return the name, mangled with type information. The name is mangled for
|
||||
/// ClassS, so will add type suffixes such as _u32/_s32.
|
||||
std::string getMangledName() const { return mangleName(ClassS); }
|
||||
std::string getMangledName(ClassKind CK = ClassS) const {
|
||||
return mangleName(CK);
|
||||
}
|
||||
|
||||
/// As above, but mangles the LLVM name instead.
|
||||
std::string getMangledLLVMName() const { return mangleLLVMName(); }
|
||||
@ -309,6 +311,7 @@ private:
|
||||
StringMap<uint64_t> FlagTypes;
|
||||
StringMap<uint64_t> MergeTypes;
|
||||
StringMap<uint64_t> ImmCheckTypes;
|
||||
std::vector<llvm::StringRef> ImmCheckTypeNames;
|
||||
|
||||
public:
|
||||
SVEEmitter(const RecordKeeper &R) : Records(R) {
|
||||
@ -320,8 +323,15 @@ public:
|
||||
FlagTypes[RV->getNameInitAsString()] = RV->getValueAsInt("Value");
|
||||
for (auto *RV : Records.getAllDerivedDefinitions("MergeType"))
|
||||
MergeTypes[RV->getNameInitAsString()] = RV->getValueAsInt("Value");
|
||||
for (auto *RV : Records.getAllDerivedDefinitions("ImmCheckType"))
|
||||
ImmCheckTypes[RV->getNameInitAsString()] = RV->getValueAsInt("Value");
|
||||
for (auto *RV : Records.getAllDerivedDefinitions("ImmCheckType")) {
|
||||
auto [it, inserted] = ImmCheckTypes.try_emplace(
|
||||
RV->getNameInitAsString(), RV->getValueAsInt("Value"));
|
||||
if (!inserted)
|
||||
llvm_unreachable("Duplicate imm check");
|
||||
if ((size_t)it->second >= ImmCheckTypeNames.size())
|
||||
ImmCheckTypeNames.resize((size_t)it->second + 1);
|
||||
ImmCheckTypeNames[it->second] = it->first();
|
||||
}
|
||||
}
|
||||
|
||||
/// Returns the enum value for the immcheck type
|
||||
@ -340,6 +350,13 @@ public:
|
||||
llvm_unreachable("Unsupported flag");
|
||||
}
|
||||
|
||||
/// Returns the name for the immcheck type
|
||||
StringRef getImmCheckForEnumValue(unsigned Id) {
|
||||
if ((size_t)Id < ImmCheckTypeNames.size())
|
||||
return ImmCheckTypeNames[Id];
|
||||
llvm_unreachable("Unsupported imm check");
|
||||
}
|
||||
|
||||
// Returns the SVETypeFlags for a given value and mask.
|
||||
uint64_t encodeFlag(uint64_t V, StringRef MaskName) const {
|
||||
auto It = FlagTypes.find(MaskName);
|
||||
@ -389,6 +406,9 @@ public:
|
||||
/// Emit all the __builtin prototypes and code needed by Sema.
|
||||
void createBuiltins(raw_ostream &o);
|
||||
|
||||
/// Emit all the __builtin prototypes in JSON format.
|
||||
void createBuiltinsJSON(raw_ostream &o);
|
||||
|
||||
/// Emit all the information needed to map builtin -> LLVM IR intrinsic.
|
||||
void createCodeGenMap(raw_ostream &o);
|
||||
|
||||
@ -1552,6 +1572,82 @@ void SVEEmitter::createBuiltins(raw_ostream &OS) {
|
||||
OS << "#endif // GET_SVE_BUILTIN_INFOS\n\n";
|
||||
}
|
||||
|
||||
void SVEEmitter::createBuiltinsJSON(raw_ostream &OS) {
|
||||
SmallVector<std::unique_ptr<Intrinsic>, 128> Defs;
|
||||
std::vector<const Record *> RV = Records.getAllDerivedDefinitions("Inst");
|
||||
for (auto *R : RV)
|
||||
createIntrinsic(R, Defs);
|
||||
|
||||
OS << "[\n";
|
||||
bool FirstDef = true;
|
||||
|
||||
for (auto &Def : Defs) {
|
||||
std::vector<std::string> Flags;
|
||||
|
||||
if (Def->isFlagSet(getEnumValueForFlag("IsStreaming")))
|
||||
Flags.push_back("streaming-only");
|
||||
else if (Def->isFlagSet(getEnumValueForFlag("IsStreamingCompatible")))
|
||||
Flags.push_back("streaming-compatible");
|
||||
else if (Def->isFlagSet(getEnumValueForFlag("VerifyRuntimeMode")))
|
||||
Flags.push_back("feature-dependent");
|
||||
|
||||
if (Def->isFlagSet(getEnumValueForFlag("IsInZA")) ||
|
||||
Def->isFlagSet(getEnumValueForFlag("IsOutZA")) ||
|
||||
Def->isFlagSet(getEnumValueForFlag("IsInOutZA")))
|
||||
Flags.push_back("requires-za");
|
||||
|
||||
if (Def->isFlagSet(getEnumValueForFlag("IsInZT0")) ||
|
||||
Def->isFlagSet(getEnumValueForFlag("IsOutZT0")) ||
|
||||
Def->isFlagSet(getEnumValueForFlag("IsInOutZT0")))
|
||||
Flags.push_back("requires-zt");
|
||||
|
||||
if (!FirstDef)
|
||||
OS << ",\n";
|
||||
|
||||
OS << "{ ";
|
||||
OS << "\"guard\": \"" << Def->getSVEGuard() << "\",";
|
||||
OS << "\"streaming_guard\": \"" << Def->getSMEGuard() << "\",";
|
||||
OS << "\"flags\": \"";
|
||||
|
||||
for (size_t I = 0; I < Flags.size(); ++I) {
|
||||
if (I != 0)
|
||||
OS << ',';
|
||||
OS << Flags[I];
|
||||
}
|
||||
|
||||
OS << "\",\"builtin\": \"";
|
||||
|
||||
std::string BuiltinName = Def->getMangledName(Def->getClassKind());
|
||||
|
||||
OS << Def->getReturnType().str() << " " << BuiltinName << "(";
|
||||
for (unsigned I = 0; I < Def->getTypes().size() - 1; ++I) {
|
||||
if (I != 0)
|
||||
OS << ", ";
|
||||
|
||||
SVEType ParamType = Def->getParamType(I);
|
||||
|
||||
// These are ImmCheck'd but their type names are sufficiently clear.
|
||||
if (ParamType.isPredicatePattern() || ParamType.isPrefetchOp()) {
|
||||
OS << ParamType.str();
|
||||
continue;
|
||||
}
|
||||
|
||||
// Pass ImmCheck information by pretending it's a type.
|
||||
auto Iter = llvm::find_if(Def->getImmChecks(), [I](const auto &Chk) {
|
||||
return (unsigned)Chk.getImmArgIdx() == I;
|
||||
});
|
||||
if (Iter != Def->getImmChecks().end())
|
||||
OS << getImmCheckForEnumValue(Iter->getKind());
|
||||
else
|
||||
OS << ParamType.str();
|
||||
}
|
||||
OS << ");\" }";
|
||||
FirstDef = false;
|
||||
}
|
||||
|
||||
OS << "\n]\n";
|
||||
}
|
||||
|
||||
void SVEEmitter::createCodeGenMap(raw_ostream &OS) {
|
||||
std::vector<const Record *> RV = Records.getAllDerivedDefinitions("Inst");
|
||||
SmallVector<std::unique_ptr<Intrinsic>, 128> Defs;
|
||||
@ -1937,6 +2033,10 @@ void EmitSveBuiltins(const RecordKeeper &Records, raw_ostream &OS) {
|
||||
SVEEmitter(Records).createBuiltins(OS);
|
||||
}
|
||||
|
||||
void EmitSveBuiltinsJSON(const RecordKeeper &Records, raw_ostream &OS) {
|
||||
SVEEmitter(Records).createBuiltinsJSON(OS);
|
||||
}
|
||||
|
||||
void EmitSveBuiltinCG(const RecordKeeper &Records, raw_ostream &OS) {
|
||||
SVEEmitter(Records).createCodeGenMap(OS);
|
||||
}
|
||||
@ -1965,6 +2065,10 @@ void EmitSmeBuiltins(const RecordKeeper &Records, raw_ostream &OS) {
|
||||
SVEEmitter(Records).createSMEBuiltins(OS);
|
||||
}
|
||||
|
||||
void EmitSmeBuiltinsJSON(const RecordKeeper &Records, raw_ostream &OS) {
|
||||
SVEEmitter(Records).createBuiltinsJSON(OS);
|
||||
}
|
||||
|
||||
void EmitSmeBuiltinCG(const RecordKeeper &Records, raw_ostream &OS) {
|
||||
SVEEmitter(Records).createSMECodeGenMap(OS);
|
||||
}
|
||||
|
||||
@ -89,12 +89,14 @@ enum ActionType {
|
||||
GenArmMveBuiltinAliases,
|
||||
GenArmSveHeader,
|
||||
GenArmSveBuiltins,
|
||||
GenArmSveBuiltinsJSON,
|
||||
GenArmSveBuiltinCG,
|
||||
GenArmSveTypeFlags,
|
||||
GenArmSveRangeChecks,
|
||||
GenArmSveStreamingAttrs,
|
||||
GenArmSmeHeader,
|
||||
GenArmSmeBuiltins,
|
||||
GenArmSmeBuiltinsJSON,
|
||||
GenArmSmeBuiltinCG,
|
||||
GenArmSmeRangeChecks,
|
||||
GenArmSmeStreamingAttrs,
|
||||
@ -266,6 +268,8 @@ cl::opt<ActionType> Action(
|
||||
"Generate arm_sve.h for clang"),
|
||||
clEnumValN(GenArmSveBuiltins, "gen-arm-sve-builtins",
|
||||
"Generate arm_sve_builtins.inc for clang"),
|
||||
clEnumValN(GenArmSveBuiltinsJSON, "gen-arm-sve-builtins-json",
|
||||
"Generate arm_sve_buitins.json"),
|
||||
clEnumValN(GenArmSveBuiltinCG, "gen-arm-sve-builtin-codegen",
|
||||
"Generate arm_sve_builtin_cg_map.inc for clang"),
|
||||
clEnumValN(GenArmSveTypeFlags, "gen-arm-sve-typeflags",
|
||||
@ -278,6 +282,8 @@ cl::opt<ActionType> Action(
|
||||
"Generate arm_sme.h for clang"),
|
||||
clEnumValN(GenArmSmeBuiltins, "gen-arm-sme-builtins",
|
||||
"Generate arm_sme_builtins.inc for clang"),
|
||||
clEnumValN(GenArmSmeBuiltinsJSON, "gen-arm-sme-builtins-json",
|
||||
"Generate arm_sme_buitins.json"),
|
||||
clEnumValN(GenArmSmeBuiltinCG, "gen-arm-sme-builtin-codegen",
|
||||
"Generate arm_sme_builtin_cg_map.inc for clang"),
|
||||
clEnumValN(GenArmSmeRangeChecks, "gen-arm-sme-sema-rangechecks",
|
||||
@ -551,6 +557,9 @@ bool ClangTableGenMain(raw_ostream &OS, const RecordKeeper &Records) {
|
||||
case GenArmSveBuiltins:
|
||||
EmitSveBuiltins(Records, OS);
|
||||
break;
|
||||
case GenArmSveBuiltinsJSON:
|
||||
EmitSveBuiltinsJSON(Records, OS);
|
||||
break;
|
||||
case GenArmSveBuiltinCG:
|
||||
EmitSveBuiltinCG(Records, OS);
|
||||
break;
|
||||
@ -569,6 +578,9 @@ bool ClangTableGenMain(raw_ostream &OS, const RecordKeeper &Records) {
|
||||
case GenArmSmeBuiltins:
|
||||
EmitSmeBuiltins(Records, OS);
|
||||
break;
|
||||
case GenArmSmeBuiltinsJSON:
|
||||
EmitSmeBuiltinsJSON(Records, OS);
|
||||
break;
|
||||
case GenArmSmeBuiltinCG:
|
||||
EmitSmeBuiltinCG(Records, OS);
|
||||
break;
|
||||
|
||||
@ -140,6 +140,8 @@ void EmitImmCheckTypes(const llvm::RecordKeeper &Records,
|
||||
llvm::raw_ostream &OS);
|
||||
void EmitSveHeader(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
|
||||
void EmitSveBuiltins(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
|
||||
void EmitSveBuiltinsJSON(const llvm::RecordKeeper &Records,
|
||||
llvm::raw_ostream &OS);
|
||||
void EmitSveBuiltinCG(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
|
||||
void EmitSveTypeFlags(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
|
||||
void EmitSveRangeChecks(const llvm::RecordKeeper &Records,
|
||||
@ -149,6 +151,8 @@ void EmitSveStreamingAttrs(const llvm::RecordKeeper &Records,
|
||||
|
||||
void EmitSmeHeader(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
|
||||
void EmitSmeBuiltins(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
|
||||
void EmitSmeBuiltinsJSON(const llvm::RecordKeeper &Records,
|
||||
llvm::raw_ostream &OS);
|
||||
void EmitSmeBuiltinCG(const llvm::RecordKeeper &Records, llvm::raw_ostream &OS);
|
||||
void EmitSmeRangeChecks(const llvm::RecordKeeper &Records,
|
||||
llvm::raw_ostream &OS);
|
||||
|
||||
541
clang/utils/aarch64_builtins_test_generator.py
Executable file
541
clang/utils/aarch64_builtins_test_generator.py
Executable file
@ -0,0 +1,541 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Generate C test files that call ACLE builtins found in a JSON manifest.
|
||||
|
||||
Expected JSON input format (array of objects):
|
||||
[
|
||||
{
|
||||
"guard": "sve,(sve2p1|sme)",
|
||||
"streaming_guard": "sme",
|
||||
"flags": "feature-dependent",
|
||||
"builtin": "svint16_t svrevd_s16_z(svbool_t, svint16_t);"
|
||||
},
|
||||
...
|
||||
]
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import json
|
||||
import re
|
||||
import sys
|
||||
from collections import defaultdict
|
||||
from dataclasses import dataclass
|
||||
from enum import Enum
|
||||
from itertools import product
|
||||
from pathlib import Path
|
||||
from typing import Any, Dict, Iterable, List, Sequence, Tuple
|
||||
|
||||
assert sys.version_info >= (3, 7), "Only Python 3.7+ is supported."
|
||||
|
||||
|
||||
# Are we testing arm_sve.h or arm_sme.h based builtins.
|
||||
class Mode(Enum):
|
||||
SVE = "sve"
|
||||
SME = "sme"
|
||||
|
||||
|
||||
class FunctionType(Enum):
|
||||
NORMAL = "normal"
|
||||
STREAMING = "streaming"
|
||||
STREAMING_COMPATIBLE = "streaming-compatible"
|
||||
|
||||
|
||||
# Builtins are grouped by their required features.
|
||||
@dataclass(frozen=True, order=True)
|
||||
class BuiltinContext:
|
||||
guard: str
|
||||
streaming_guard: str
|
||||
flags: Tuple[str, ...]
|
||||
|
||||
def __str__(self) -> str:
|
||||
return (
|
||||
f"// Properties: "
|
||||
f'guard="{self.guard}" '
|
||||
f'streaming_guard="{self.streaming_guard}" '
|
||||
f'flags="{",".join(self.flags)}"'
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def from_json(cls, obj: dict[str, Any]) -> "BuiltinContext":
|
||||
flags = tuple(p.strip() for p in obj["flags"].split(",") if p.strip())
|
||||
return cls(obj["guard"], obj["streaming_guard"], flags)
|
||||
|
||||
|
||||
# --- Parsing builtins -------------------------------------------------------
|
||||
|
||||
# Captures the full function *declaration* inside the builtin string, e.g.:
|
||||
# "svint16_t svrevd_s16_z(svbool_t, svint16_t);"
|
||||
# group(1) => "svint16_t svrevd_s16_z"
|
||||
# group(2) => "svbool_t, svint16_t"
|
||||
FUNC_RE = re.compile(r"^\s*([a-zA-Z_][\w\s\*]*[\w\*])\s*\(\s*([^)]*)\s*\)\s*;\s*$")
|
||||
|
||||
# Pulls the final word out of the left side (the function name).
|
||||
NAME_RE = re.compile(r"([a-zA-Z_][\w]*)\s*$")
|
||||
|
||||
|
||||
def parse_builtin_declaration(decl: str) -> Tuple[str, List[str]]:
|
||||
"""Return (func_name, param_types) from a builtin declaration string.
|
||||
|
||||
Example:
|
||||
decl = "svint16_t svrevd_s16_z(svbool_t, svint16_t);"
|
||||
=> ("svrevd_s16_z", ["svbool_t", "svint16_t"])
|
||||
"""
|
||||
m = FUNC_RE.match(decl)
|
||||
if not m:
|
||||
raise ValueError(f"Unrecognized builtin declaration syntax: {decl!r}")
|
||||
|
||||
left = m.group(1) # return type + name
|
||||
params = m.group(2).strip()
|
||||
|
||||
name_m = NAME_RE.search(left)
|
||||
if not name_m:
|
||||
raise ValueError(f"Could not find function name in: {decl!r}")
|
||||
func_name = name_m.group(1)
|
||||
|
||||
param_types: List[str] = []
|
||||
if params:
|
||||
# Split by commas respecting no pointers/arrays with commas (not expected here)
|
||||
param_types = [p.strip() for p in params.split(",") if p.strip()]
|
||||
|
||||
return func_name, param_types
|
||||
|
||||
|
||||
# --- Variable synthesis -----------------------------------------------------
|
||||
|
||||
# Pick a safe (ideally non-zero) value for literal types
|
||||
LITERAL_TYPES_MAP: dict[str, str] = {
|
||||
"ImmCheck0_0": "0",
|
||||
"ImmCheck0_1": "1",
|
||||
"ImmCheck0_2": "2",
|
||||
"ImmCheck0_3": "2",
|
||||
"ImmCheck0_7": "2",
|
||||
"ImmCheck0_13": "2",
|
||||
"ImmCheck0_15": "2",
|
||||
"ImmCheck0_31": "2",
|
||||
"ImmCheck0_63": "2",
|
||||
"ImmCheck0_255": "2",
|
||||
"ImmCheck1_1": "1",
|
||||
"ImmCheck1_3": "2",
|
||||
"ImmCheck1_7": "2",
|
||||
"ImmCheck1_16": "2",
|
||||
"ImmCheck1_32": "2",
|
||||
"ImmCheck1_64": "2",
|
||||
"ImmCheck2_4_Mul2": "2",
|
||||
"ImmCheckComplexRot90_270": "90",
|
||||
"ImmCheckComplexRotAll90": "90",
|
||||
"ImmCheckCvt": "2",
|
||||
"ImmCheckExtract": "2",
|
||||
"ImmCheckLaneIndexCompRotate": "1",
|
||||
"ImmCheckLaneIndexDot": "1",
|
||||
"ImmCheckLaneIndex": "1",
|
||||
"ImmCheckShiftLeft": "2",
|
||||
"ImmCheckShiftRightNarrow": "2",
|
||||
"ImmCheckShiftRight": "2",
|
||||
"enum svpattern": "SV_MUL3",
|
||||
"enum svprfop": "SV_PSTL1KEEP",
|
||||
"void": "",
|
||||
}
|
||||
|
||||
|
||||
def make_arg_for_type(ty: str) -> Tuple[str, str]:
|
||||
"""Return (var_decl, var_use) for a parameter type.
|
||||
|
||||
Literal types return an empty declaration and a value that will be accepted
|
||||
by clang's semantic literal validation.
|
||||
"""
|
||||
# Compress whitespace and remove non-relevant qualifiers.
|
||||
ty = re.sub(r"\s+", " ", ty.strip()).replace(" const", "")
|
||||
if ty in LITERAL_TYPES_MAP:
|
||||
return "", LITERAL_TYPES_MAP[ty]
|
||||
|
||||
if ty.startswith("ImmCheck") or ty.startswith("enum "):
|
||||
print(f"Failed to parse potential literal type: {ty}", file=sys.stderr)
|
||||
|
||||
name = ty.replace(" ", "_").replace("*", "ptr") + "_val"
|
||||
return f"{ty} {name};", name
|
||||
|
||||
|
||||
# NOTE: Parsing is limited to the minimum required for guard strings.
|
||||
# Specifically the expected input is of the form:
|
||||
# feat1,feat2,...(feat3 | feat4 | ...),...
|
||||
def expand_feature_guard(
|
||||
guard: str, flags: Sequence[str], base_feature: str = ""
|
||||
) -> list[set[str]]:
|
||||
"""
|
||||
Expand a guard expression where ',' = AND and '|' = OR, with parentheses
|
||||
grouping OR-expressions. Returns a list of feature sets.
|
||||
"""
|
||||
if not guard:
|
||||
return []
|
||||
|
||||
parts = re.split(r",(?![^(]*\))", guard)
|
||||
|
||||
choices_per_part = []
|
||||
for part in parts:
|
||||
if part.startswith("(") and part.endswith(")"):
|
||||
choices_per_part.append(part[1:-1].split("|"))
|
||||
else:
|
||||
choices_per_part.append([part])
|
||||
|
||||
# Add feature that is common to all
|
||||
if base_feature:
|
||||
choices_per_part.append([base_feature])
|
||||
|
||||
if "requires-zt" in flags:
|
||||
choices_per_part.append(["sme2"])
|
||||
|
||||
# construct list of feature sets
|
||||
results = []
|
||||
for choice in product(*choices_per_part):
|
||||
choice_set = set(choice)
|
||||
results.append(choice_set)
|
||||
|
||||
# remove superset and duplicates
|
||||
unique = []
|
||||
for s in results:
|
||||
if any(s > other for other in results):
|
||||
continue
|
||||
if s not in unique:
|
||||
unique.append(s)
|
||||
|
||||
return unique
|
||||
|
||||
|
||||
def cc1_args_for_features(features: set[str]) -> str:
|
||||
return " ".join("-target-feature +" + s for s in sorted(features))
|
||||
|
||||
|
||||
def sanitise_guard(s: str) -> str:
|
||||
"""Rewrite guard strings in a form more suitable for file naming."""
|
||||
replacements = {
|
||||
",": "_AND_",
|
||||
"|": "_OR_",
|
||||
"(": "_LP_",
|
||||
")": "_RP_",
|
||||
}
|
||||
for k, v in replacements.items():
|
||||
s = s.replace(k, v)
|
||||
|
||||
# Collapse multiple underscores
|
||||
s = re.sub(r"_+", "_", s)
|
||||
return s.strip("_")
|
||||
|
||||
|
||||
def make_filename(prefix: str, ctx: BuiltinContext, ext: str) -> str:
|
||||
parts = [sanitise_guard(ctx.guard), sanitise_guard(ctx.streaming_guard)]
|
||||
sanitised_guard = "___".join(p for p in parts if p)
|
||||
|
||||
if "streaming-only" in ctx.flags:
|
||||
prefix += "_streaming_only"
|
||||
elif "streaming-compatible" in ctx.flags:
|
||||
prefix += "_streaming_compatible"
|
||||
elif "feature-dependent" in ctx.flags:
|
||||
prefix += "_feature_dependent"
|
||||
else:
|
||||
prefix += "_non_streaming_only"
|
||||
|
||||
return f"{prefix}_{sanitised_guard}{ext}"
|
||||
|
||||
|
||||
# --- Code Generation --------------------------------------------------------
|
||||
|
||||
|
||||
def emit_streaming_guard_run_lines(ctx: BuiltinContext) -> str:
|
||||
"""Emit lit RUN lines that will exercise the relevant Sema diagnistics."""
|
||||
run_prefix = "// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-none-linux-gnu"
|
||||
out: List[str] = []
|
||||
|
||||
# All RUN lines have SVE and SME enabled
|
||||
guard_features = expand_feature_guard(ctx.guard, ctx.flags, "sme")
|
||||
streaming_guard_features = expand_feature_guard(
|
||||
ctx.streaming_guard, ctx.flags, "sve"
|
||||
)
|
||||
|
||||
if "streaming-only" in ctx.flags:
|
||||
assert not guard_features
|
||||
# Generate RUN lines for features only available to streaming functions
|
||||
for feats in streaming_guard_features:
|
||||
out.append(
|
||||
f"{run_prefix} {cc1_args_for_features(feats)} -verify=streaming-guard"
|
||||
)
|
||||
elif "streaming-compatible" in ctx.flags:
|
||||
assert not guard_features
|
||||
# NOTE: Streaming compatible builtins don't require SVE.
|
||||
# Generate RUN lines for features available to all functions.
|
||||
for feats in expand_feature_guard(ctx.streaming_guard, ctx.flags):
|
||||
out.append(f"{run_prefix} {cc1_args_for_features(feats)} -verify")
|
||||
out.append("// expected-no-diagnostics")
|
||||
elif "feature-dependent" in ctx.flags:
|
||||
assert guard_features and streaming_guard_features
|
||||
combined_features = expand_feature_guard(
|
||||
ctx.guard + "," + ctx.streaming_guard, ctx.flags
|
||||
)
|
||||
|
||||
# Generate RUN lines for features only available to normal functions
|
||||
for feats in guard_features:
|
||||
if feats not in combined_features:
|
||||
out.append(f"{run_prefix} {cc1_args_for_features(feats)} -verify=guard")
|
||||
|
||||
# Geneate RUN lines for features only available to streaming functions
|
||||
for feats in streaming_guard_features:
|
||||
if feats not in combined_features:
|
||||
out.append(
|
||||
f"{run_prefix} {cc1_args_for_features(feats)} -verify=streaming-guard"
|
||||
)
|
||||
|
||||
# Generate RUN lines for features available to all functions
|
||||
for feats in combined_features:
|
||||
out.append(f"{run_prefix} {cc1_args_for_features(feats)} -verify")
|
||||
|
||||
out.append("// expected-no-diagnostics")
|
||||
else:
|
||||
assert not streaming_guard_features
|
||||
# Geneate RUN lines for features only available to normal functions
|
||||
for feats in guard_features:
|
||||
out.append(f"{run_prefix} {cc1_args_for_features(feats)} -verify=guard")
|
||||
|
||||
return "\n".join(out)
|
||||
|
||||
|
||||
def emit_streaming_guard_function(
|
||||
ctx: BuiltinContext,
|
||||
var_decls: Sequence[str],
|
||||
calls: Sequence[str],
|
||||
func_name: str,
|
||||
func_type: FunctionType = FunctionType.NORMAL,
|
||||
) -> str:
|
||||
"""Emit a C function calling all builtins.
|
||||
|
||||
`calls` is a sequence of tuples: (name, call_line)
|
||||
"""
|
||||
# Expected Sema diagnostics for invalid usage
|
||||
require_diagnostic = require_streaming_diagnostic = False
|
||||
if "streaming-only" in ctx.flags:
|
||||
if func_type != FunctionType.STREAMING:
|
||||
require_streaming_diagnostic = True
|
||||
elif "streaming-compatible" in ctx.flags:
|
||||
pass # streaming compatible builtins are always available
|
||||
elif "feature-dependent" in ctx.flags:
|
||||
guard_features = expand_feature_guard(ctx.guard, ctx.flags, "sme")
|
||||
streaming_guard_features = expand_feature_guard(
|
||||
ctx.streaming_guard, ctx.flags, "sve"
|
||||
)
|
||||
combined_features = expand_feature_guard(
|
||||
ctx.guard + "," + ctx.streaming_guard, ctx.flags
|
||||
)
|
||||
|
||||
if func_type != FunctionType.NORMAL:
|
||||
if any(feats not in combined_features for feats in guard_features):
|
||||
require_diagnostic = True
|
||||
if func_type != FunctionType.STREAMING:
|
||||
if any(
|
||||
feats not in combined_features for feats in streaming_guard_features
|
||||
):
|
||||
require_streaming_diagnostic = True
|
||||
else:
|
||||
if func_type != FunctionType.NORMAL:
|
||||
require_diagnostic = True
|
||||
|
||||
out: List[str] = []
|
||||
|
||||
# Emit test function declaration
|
||||
attr: list[str] = []
|
||||
if func_type == FunctionType.STREAMING:
|
||||
attr.append("__arm_streaming")
|
||||
elif func_type == FunctionType.STREAMING_COMPATIBLE:
|
||||
attr.append("__arm_streaming_compatible")
|
||||
|
||||
if "requires-za" in ctx.flags:
|
||||
attr.append('__arm_inout("za")')
|
||||
if "requires-zt" in ctx.flags:
|
||||
attr.append('__arm_inout("zt0")')
|
||||
out.append(f"void {func_name}(void) " + " ".join(attr) + "{")
|
||||
|
||||
# Emit variable declarations
|
||||
for v in var_decls:
|
||||
out.append(f" {v}")
|
||||
if var_decls:
|
||||
out.append("")
|
||||
|
||||
# Emit calls
|
||||
for call in calls:
|
||||
if require_diagnostic and require_streaming_diagnostic:
|
||||
out.append(
|
||||
" // guard-error@+2 {{builtin can only be called from a non-streaming function}}"
|
||||
)
|
||||
out.append(
|
||||
" // streaming-guard-error@+1 {{builtin can only be called from a streaming function}}"
|
||||
)
|
||||
elif require_diagnostic:
|
||||
out.append(
|
||||
" // guard-error@+1 {{builtin can only be called from a non-streaming function}}"
|
||||
)
|
||||
elif require_streaming_diagnostic:
|
||||
out.append(
|
||||
" // streaming-guard-error@+1 {{builtin can only be called from a streaming function}}"
|
||||
)
|
||||
out.append(f" {call}")
|
||||
|
||||
out.append("}")
|
||||
return "\n".join(out) + "\n"
|
||||
|
||||
|
||||
def natural_key(s: str):
|
||||
"""Allow sorting akin to "sort -V"""
|
||||
return [int(text) if text.isdigit() else text for text in re.split(r"(\d+)", s)]
|
||||
|
||||
|
||||
def build_calls_for_group(builtins: Iterable[str]) -> Tuple[List[str], List[str]]:
|
||||
"""From a list of builtin declaration strings, produce:
|
||||
- a sorted list of unique variable declarations
|
||||
- a sorted list of builtin calls
|
||||
"""
|
||||
var_decls: List[str] = []
|
||||
seen_types: set[str] = set()
|
||||
calls: List[str] = []
|
||||
|
||||
for decl in builtins:
|
||||
fn, param_types = parse_builtin_declaration(decl)
|
||||
|
||||
arg_names: List[str] = []
|
||||
for i, ptype in enumerate(param_types):
|
||||
vdecl, vname = make_arg_for_type(ptype)
|
||||
if vdecl and vdecl not in seen_types:
|
||||
seen_types.add(vdecl)
|
||||
var_decls.append(vdecl)
|
||||
arg_names.append(vname)
|
||||
|
||||
calls.append(f"{fn}(" + ", ".join(arg_names) + ");")
|
||||
|
||||
# Natural sort (e.g. int8_t before int16_t)
|
||||
calls.sort(key=natural_key)
|
||||
var_decls.sort(key=natural_key)
|
||||
|
||||
return var_decls, calls
|
||||
|
||||
|
||||
def gen_streaming_guard_tests(mode: Mode, json_path: Path, out_dir: Path) -> None:
|
||||
"""Generate a set of Clang Sema test files to ensure SVE/SME builtins are
|
||||
callable based on the function type, or the required diagnostic is emitted.
|
||||
"""
|
||||
try:
|
||||
data = json.loads(json_path.read_text())
|
||||
except json.JSONDecodeError as e:
|
||||
print(f"Failed to parse JSON {json_path}: {e}", file=sys.stderr)
|
||||
return
|
||||
|
||||
# Group by (guard, streaming_guard)
|
||||
by_guard: Dict[BuiltinContext, List[str]] = defaultdict(list)
|
||||
for obj in data:
|
||||
by_guard[BuiltinContext.from_json(obj)].append(obj["builtin"])
|
||||
|
||||
# For each guard pair, emit 3 functions
|
||||
for builtin_ctx, builtin_decls in by_guard.items():
|
||||
var_decls, calls = build_calls_for_group(builtin_decls)
|
||||
|
||||
out_parts: List[str] = []
|
||||
out_parts.append(
|
||||
"// NOTE: File has been autogenerated by utils/aarch64_builtins_test_generator.py"
|
||||
)
|
||||
out_parts.append(emit_streaming_guard_run_lines(builtin_ctx))
|
||||
out_parts.append("")
|
||||
out_parts.append("// REQUIRES: aarch64-registered-target")
|
||||
out_parts.append("")
|
||||
out_parts.append(f"#include <arm_{mode.value}.h>")
|
||||
out_parts.append("")
|
||||
out_parts.append(str(builtin_ctx))
|
||||
out_parts.append("")
|
||||
out_parts.append(
|
||||
emit_streaming_guard_function(builtin_ctx, var_decls, calls, "test")
|
||||
)
|
||||
out_parts.append(
|
||||
emit_streaming_guard_function(
|
||||
builtin_ctx, var_decls, calls, "test_streaming", FunctionType.STREAMING
|
||||
)
|
||||
)
|
||||
out_parts.append(
|
||||
emit_streaming_guard_function(
|
||||
builtin_ctx,
|
||||
var_decls,
|
||||
calls,
|
||||
"test_streaming_compatible",
|
||||
FunctionType.STREAMING_COMPATIBLE,
|
||||
)
|
||||
)
|
||||
|
||||
output = "\n".join(out_parts).rstrip() + "\n"
|
||||
|
||||
if out_dir:
|
||||
out_dir.mkdir(parents=True, exist_ok=True)
|
||||
filename = make_filename(f"arm_{mode.value}", builtin_ctx, ".c")
|
||||
(out_dir / filename).write_text(output)
|
||||
else:
|
||||
print(output)
|
||||
|
||||
return
|
||||
|
||||
|
||||
# --- Main -------------------------------------------------------------------
|
||||
|
||||
|
||||
def existing_file(path: str) -> Path:
|
||||
p = Path(path)
|
||||
if not p.is_file():
|
||||
raise argparse.ArgumentTypeError(f"{p} is not a valid file")
|
||||
return p
|
||||
|
||||
|
||||
def main(argv: Sequence[str] | None = None) -> int:
|
||||
ap = argparse.ArgumentParser(description="Emit C tests for SVE/SME builtins")
|
||||
ap.add_argument(
|
||||
"json", type=existing_file, help="Path to json formatted builtin descriptions"
|
||||
)
|
||||
ap.add_argument(
|
||||
"--out-dir", type=Path, default=None, help="Output directory (default: stdout)"
|
||||
)
|
||||
ap.add_argument(
|
||||
"--gen-streaming-guard-tests",
|
||||
action="store_true",
|
||||
help="Generate C tests to validate SVE/SME builtin usage base on streaming attribute",
|
||||
)
|
||||
ap.add_argument(
|
||||
"--gen-target-guard-tests",
|
||||
action="store_true",
|
||||
help="Generate C tests to validate SVE/SME builtin usage based on target features",
|
||||
)
|
||||
ap.add_argument(
|
||||
"--gen-builtin-tests",
|
||||
action="store_true",
|
||||
help="Generate C tests to exercise SVE/SME builtins",
|
||||
)
|
||||
ap.add_argument(
|
||||
"--base-target-feature",
|
||||
choices=["sve", "sme"],
|
||||
help="Force builtin source (sve: arm_sve.h, sme: arm_sme.h)",
|
||||
)
|
||||
|
||||
args = ap.parse_args(argv)
|
||||
|
||||
# When not forced, try to infer the mode from the input, defaulting to SVE.
|
||||
if args.base_target_feature:
|
||||
mode = Mode(args.base_target_feature)
|
||||
elif args.json and args.json.name == "arm_sme_builtins.json":
|
||||
mode = Mode.SME
|
||||
else:
|
||||
mode = Mode.SVE
|
||||
|
||||
# Generate test file
|
||||
if args.gen_streaming_guard_tests:
|
||||
gen_streaming_guard_tests(mode, args.json, args.out_dir)
|
||||
if args.gen_target_guard_tests:
|
||||
ap.error("--gen-target-guard-tests not implemented yet!")
|
||||
if args.gen_builtin_tests:
|
||||
ap.error("--gen-builtin-tests not implemented yet!")
|
||||
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main())
|
||||
Loading…
x
Reference in New Issue
Block a user