1- // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -emit-llvm -target-feature +sme %s -DUSE_FLATTEN -o - | FileCheck %s
2- // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -emit-llvm -target-feature +sme %s -DUSE_ALWAYS_INLINE_STMT -o - | FileCheck %s
1+ // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -emit-llvm -target-feature +sme -target-feature +sme2 %s -DUSE_FLATTEN -o - | FileCheck %s
2+ // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -emit-llvm -target-feature +sme -target-feature +sme2 %s -DUSE_ALWAYS_INLINE_STMT -o - | FileCheck %s
33
44// REQUIRES: aarch64-registered-target
55
@@ -20,6 +20,7 @@ void fn_streaming_compatible(void) __arm_streaming_compatible { was_inlined(); }
2020void fn_streaming (void ) __arm_streaming { was_inlined (); }
2121__arm_locally_streaming void fn_locally_streaming (void ) { was_inlined (); }
2222__arm_new ("za" ) void fn_streaming_new_za (void ) __arm_streaming { was_inlined (); }
23+ __arm_new ("zt0" ) void fn_streaming_new_zt0 (void ) __arm_streaming { was_inlined (); }
2324
2425FN_ATTR
2526void caller (void ) {
@@ -28,6 +29,7 @@ void caller(void) {
2829 STMT_ATTR fn_streaming ();
2930 STMT_ATTR fn_locally_streaming ();
3031 STMT_ATTR fn_streaming_new_za ();
32+ STMT_ATTR fn_streaming_new_zt0 ();
3133}
3234// CHECK-LABEL: void @caller()
3335// CHECK-NEXT: entry:
@@ -36,13 +38,15 @@ void caller(void) {
3638// CHECK-NEXT: call void @fn_streaming
3739// CHECK-NEXT: call void @fn_locally_streaming
3840// CHECK-NEXT: call void @fn_streaming_new_za
41+ // CHECK-NEXT: call void @fn_streaming_new_zt0
3942
4043FN_ATTR void caller_streaming_compatible (void ) __arm_streaming_compatible {
4144 STMT_ATTR fn ();
4245 STMT_ATTR fn_streaming_compatible ();
4346 STMT_ATTR fn_streaming ();
4447 STMT_ATTR fn_locally_streaming ();
4548 STMT_ATTR fn_streaming_new_za ();
49+ STMT_ATTR fn_streaming_new_zt0 ();
4650}
4751// CHECK-LABEL: void @caller_streaming_compatible()
4852// CHECK-NEXT: entry:
@@ -51,13 +55,15 @@ FN_ATTR void caller_streaming_compatible(void) __arm_streaming_compatible {
5155// CHECK-NEXT: call void @fn_streaming
5256// CHECK-NEXT: call void @fn_locally_streaming
5357// CHECK-NEXT: call void @fn_streaming_new_za
58+ // CHECK-NEXT: call void @fn_streaming_new_zt0
5459
5560FN_ATTR void caller_streaming (void ) __arm_streaming {
5661 STMT_ATTR fn ();
5762 STMT_ATTR fn_streaming_compatible ();
5863 STMT_ATTR fn_streaming ();
5964 STMT_ATTR fn_locally_streaming ();
6065 STMT_ATTR fn_streaming_new_za ();
66+ STMT_ATTR fn_streaming_new_zt0 ();
6167}
6268// CHECK-LABEL: void @caller_streaming()
6369// CHECK-NEXT: entry:
@@ -66,6 +72,7 @@ FN_ATTR void caller_streaming(void) __arm_streaming {
6672// CHECK-NEXT: call void @was_inlined
6773// CHECK-NEXT: call void @was_inlined
6874// CHECK-NEXT: call void @fn_streaming_new_za
75+ // CHECK-NEXT: call void @fn_streaming_new_zt0
6976
7077FN_ATTR __arm_locally_streaming
7178void caller_locally_streaming (void ) {
@@ -74,6 +81,7 @@ void caller_locally_streaming(void) {
7481 STMT_ATTR fn_streaming ();
7582 STMT_ATTR fn_locally_streaming ();
7683 STMT_ATTR fn_streaming_new_za ();
84+ STMT_ATTR fn_streaming_new_zt0 ();
7785}
7886// CHECK-LABEL: void @caller_locally_streaming()
7987// CHECK-NEXT: entry:
@@ -82,3 +90,4 @@ void caller_locally_streaming(void) {
8290// CHECK-NEXT: call void @was_inlined
8391// CHECK-NEXT: call void @was_inlined
8492// CHECK-NEXT: call void @fn_streaming_new_za
93+ // CHECK-NEXT: call void @fn_streaming_new_zt0
0 commit comments