11// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --version 3
22// REQUIRES: aarch64-registered-target
3- // RUN: %clang_cc1 -DDISABLE_SME_ATTRIBUTES - triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sve -S -O1 -Werror -emit-llvm -o - %s | FileCheck %s -check-prefixes=CHECK,CHECK-C
4- // RUN: %clang_cc1 -DDISABLE_SME_ATTRIBUTES - triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sve -S -O1 -Werror -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefixes=CHECK,CHECK-CXX
5- // RUN: %clang_cc1 -DDISABLE_SME_ATTRIBUTES - triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sve -S -O1 -Werror -o /dev/null %s
3+ // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sve -S -O1 -Werror -emit-llvm -o - %s | FileCheck %s -check-prefixes=CHECK,CHECK-C
4+ // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sve -S -O1 -Werror -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefixes=CHECK,CHECK-CXX
5+ // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sve -S -O1 -Werror -o /dev/null %s
66
77#include <arm_sme_draft_spec_subject_to_change.h>
88
9- #ifdef DISABLE_SME_ATTRIBUTES
10- #define ARM_STREAMING_ATTR
11- #else
12- #define ARM_STREAMING_ATTR __attribute__((arm_streaming))
13- #endif
14-
159// CHECK-C-LABEL: define dso_local void @test_svld1_hor_vnum_za8(
1610// CHECK-C-SAME: i32 noundef [[SLICE_BASE:%.*]], <vscale x 16 x i1> [[PG:%.*]], ptr noundef [[PTR:%.*]], i64 noundef [[VNUM:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] {
1711// CHECK-C-NEXT: entry:
3428// CHECK-CXX-NEXT: tail call void @llvm.aarch64.sme.ld1b.horiz(<vscale x 16 x i1> [[PG]], ptr [[TMP1]], i32 0, i32 [[ADD]])
3529// CHECK-CXX-NEXT: ret void
3630//
37- ARM_STREAMING_ATTR void test_svld1_hor_vnum_za8 (uint32_t slice_base , svbool_t pg , const void * ptr , int64_t vnum ) {
31+ void test_svld1_hor_vnum_za8 (uint32_t slice_base , svbool_t pg , const void * ptr , int64_t vnum ) __arm_streaming {
3832 svld1_hor_vnum_za8 (0 , slice_base , pg , ptr , vnum );
3933 svld1_hor_vnum_za8 (0 , slice_base + 15 , pg , ptr , vnum );
4034}
@@ -63,7 +57,7 @@ ARM_STREAMING_ATTR void test_svld1_hor_vnum_za8(uint32_t slice_base, svbool_t pg
6357// CHECK-CXX-NEXT: tail call void @llvm.aarch64.sme.ld1h.horiz(<vscale x 8 x i1> [[TMP0]], ptr [[TMP2]], i32 1, i32 [[ADD]])
6458// CHECK-CXX-NEXT: ret void
6559//
66- ARM_STREAMING_ATTR void test_svld1_hor_vnum_za16 (uint32_t slice_base , svbool_t pg , const void * ptr , int64_t vnum ) {
60+ void test_svld1_hor_vnum_za16 (uint32_t slice_base , svbool_t pg , const void * ptr , int64_t vnum ) __arm_streaming {
6761 svld1_hor_vnum_za16 (0 , slice_base , pg , ptr , vnum );
6862 svld1_hor_vnum_za16 (1 , slice_base + 7 , pg , ptr , vnum );
6963}
@@ -92,7 +86,7 @@ ARM_STREAMING_ATTR void test_svld1_hor_vnum_za16(uint32_t slice_base, svbool_t p
9286// CHECK-CXX-NEXT: tail call void @llvm.aarch64.sme.ld1w.horiz(<vscale x 4 x i1> [[TMP0]], ptr [[TMP2]], i32 3, i32 [[ADD]])
9387// CHECK-CXX-NEXT: ret void
9488//
95- ARM_STREAMING_ATTR void test_svld1_hor_vnum_za32 (uint32_t slice_base , svbool_t pg , const void * ptr , int64_t vnum ) {
89+ void test_svld1_hor_vnum_za32 (uint32_t slice_base , svbool_t pg , const void * ptr , int64_t vnum ) __arm_streaming {
9690 svld1_hor_vnum_za32 (0 , slice_base , pg , ptr , vnum );
9791 svld1_hor_vnum_za32 (3 , slice_base + 3 , pg , ptr , vnum );
9892}
@@ -121,7 +115,7 @@ ARM_STREAMING_ATTR void test_svld1_hor_vnum_za32(uint32_t slice_base, svbool_t p
121115// CHECK-CXX-NEXT: tail call void @llvm.aarch64.sme.ld1d.horiz(<vscale x 2 x i1> [[TMP0]], ptr [[TMP2]], i32 7, i32 [[ADD]])
122116// CHECK-CXX-NEXT: ret void
123117//
124- ARM_STREAMING_ATTR void test_svld1_hor_vnum_za64 (uint32_t slice_base , svbool_t pg , const void * ptr , int64_t vnum ) {
118+ void test_svld1_hor_vnum_za64 (uint32_t slice_base , svbool_t pg , const void * ptr , int64_t vnum ) __arm_streaming {
125119 svld1_hor_vnum_za64 (0 , slice_base , pg , ptr , vnum );
126120 svld1_hor_vnum_za64 (7 , slice_base + 1 , pg , ptr , vnum );
127121}
@@ -148,7 +142,7 @@ ARM_STREAMING_ATTR void test_svld1_hor_vnum_za64(uint32_t slice_base, svbool_t p
148142// CHECK-CXX-NEXT: tail call void @llvm.aarch64.sme.ld1q.horiz(<vscale x 1 x i1> [[TMP0]], ptr [[TMP2]], i32 15, i32 [[SLICE_BASE]])
149143// CHECK-CXX-NEXT: ret void
150144//
151- ARM_STREAMING_ATTR void test_svld1_hor_vnum_za128 (uint32_t slice_base , svbool_t pg , const void * ptr , int64_t vnum ) {
145+ void test_svld1_hor_vnum_za128 (uint32_t slice_base , svbool_t pg , const void * ptr , int64_t vnum ) __arm_streaming {
152146 svld1_hor_vnum_za128 (0 , slice_base , pg , ptr , vnum );
153147 svld1_hor_vnum_za128 (15 , slice_base , pg , ptr , vnum );
154148}
@@ -175,7 +169,7 @@ ARM_STREAMING_ATTR void test_svld1_hor_vnum_za128(uint32_t slice_base, svbool_t
175169// CHECK-CXX-NEXT: tail call void @llvm.aarch64.sme.ld1b.vert(<vscale x 16 x i1> [[PG]], ptr [[TMP1]], i32 0, i32 [[ADD]])
176170// CHECK-CXX-NEXT: ret void
177171//
178- ARM_STREAMING_ATTR void test_svld1_ver_hor_za8 (uint32_t slice_base , svbool_t pg , const void * ptr , int64_t vnum ) {
172+ void test_svld1_ver_hor_za8 (uint32_t slice_base , svbool_t pg , const void * ptr , int64_t vnum ) __arm_streaming {
179173 svld1_ver_vnum_za8 (0 , slice_base , pg , ptr , vnum );
180174 svld1_ver_vnum_za8 (0 , slice_base + 15 , pg , ptr , vnum );
181175}
@@ -204,7 +198,7 @@ ARM_STREAMING_ATTR void test_svld1_ver_hor_za8(uint32_t slice_base, svbool_t pg,
204198// CHECK-CXX-NEXT: tail call void @llvm.aarch64.sme.ld1h.vert(<vscale x 8 x i1> [[TMP0]], ptr [[TMP2]], i32 1, i32 [[ADD]])
205199// CHECK-CXX-NEXT: ret void
206200//
207- ARM_STREAMING_ATTR void test_svld1_ver_vnum_za16 (uint32_t slice_base , svbool_t pg , const void * ptr , int64_t vnum ) {
201+ void test_svld1_ver_vnum_za16 (uint32_t slice_base , svbool_t pg , const void * ptr , int64_t vnum ) __arm_streaming {
208202 svld1_ver_vnum_za16 (0 , slice_base , pg , ptr , vnum );
209203 svld1_ver_vnum_za16 (1 , slice_base + 7 , pg , ptr , vnum );
210204}
@@ -233,7 +227,7 @@ ARM_STREAMING_ATTR void test_svld1_ver_vnum_za16(uint32_t slice_base, svbool_t p
233227// CHECK-CXX-NEXT: tail call void @llvm.aarch64.sme.ld1w.vert(<vscale x 4 x i1> [[TMP0]], ptr [[TMP2]], i32 3, i32 [[ADD]])
234228// CHECK-CXX-NEXT: ret void
235229//
236- ARM_STREAMING_ATTR void test_svld1_ver_vnum_za32 (uint32_t slice_base , svbool_t pg , const void * ptr , int64_t vnum ) {
230+ void test_svld1_ver_vnum_za32 (uint32_t slice_base , svbool_t pg , const void * ptr , int64_t vnum ) __arm_streaming {
237231 svld1_ver_vnum_za32 (0 , slice_base , pg , ptr , vnum );
238232 svld1_ver_vnum_za32 (3 , slice_base + 3 , pg , ptr , vnum );
239233}
@@ -262,7 +256,7 @@ ARM_STREAMING_ATTR void test_svld1_ver_vnum_za32(uint32_t slice_base, svbool_t p
262256// CHECK-CXX-NEXT: tail call void @llvm.aarch64.sme.ld1d.vert(<vscale x 2 x i1> [[TMP0]], ptr [[TMP2]], i32 7, i32 [[ADD]])
263257// CHECK-CXX-NEXT: ret void
264258//
265- ARM_STREAMING_ATTR void test_svld1_ver_vnum_za64 (uint32_t slice_base , svbool_t pg , const void * ptr , int64_t vnum ) {
259+ void test_svld1_ver_vnum_za64 (uint32_t slice_base , svbool_t pg , const void * ptr , int64_t vnum ) __arm_streaming {
266260 svld1_ver_vnum_za64 (0 , slice_base , pg , ptr , vnum );
267261 svld1_ver_vnum_za64 (7 , slice_base + 1 , pg , ptr , vnum );
268262}
@@ -289,7 +283,7 @@ ARM_STREAMING_ATTR void test_svld1_ver_vnum_za64(uint32_t slice_base, svbool_t p
289283// CHECK-CXX-NEXT: tail call void @llvm.aarch64.sme.ld1q.vert(<vscale x 1 x i1> [[TMP0]], ptr [[TMP2]], i32 15, i32 [[SLICE_BASE]])
290284// CHECK-CXX-NEXT: ret void
291285//
292- ARM_STREAMING_ATTR void test_svld1_ver_vnum_za128 (uint32_t slice_base , svbool_t pg , const void * ptr , int64_t vnum ) {
286+ void test_svld1_ver_vnum_za128 (uint32_t slice_base , svbool_t pg , const void * ptr , int64_t vnum ) __arm_streaming {
293287 svld1_ver_vnum_za128 (0 , slice_base , pg , ptr , vnum );
294288 svld1_ver_vnum_za128 (15 , slice_base , pg , ptr , vnum );
295289}
0 commit comments