3
3
// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2p1 -S -O1 -Werror -emit-llvm -o - %s | FileCheck %s
4
4
// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2p1 -S -O1 -Werror -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
5
5
// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2p1 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s
6
- // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +sme2 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s
7
- // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sme2 -S -O1 -Werror -emit-llvm -o - %s | FileCheck %s
8
- // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sme2 -S -O1 -Werror -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
9
- // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sme2 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s
6
+ // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +sme2 -S -DTEST_SME2 - disable-O0-optnone -Werror -Wall -o /dev/null %s
7
+ // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sme2 -S -DTEST_SME2 - O1 -Werror -emit-llvm -o - %s | FileCheck %s
8
+ // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sme2 -S -DTEST_SME2 - O1 -Werror -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
9
+ // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sme2 -S -DTEST_SME2 - disable-O0-optnone -Werror -Wall -o /dev/null %s
10
10
11
11
#include <arm_sve.h>
12
12
13
+ #ifndef TEST_SME2
14
+ #define ATTR
15
+ #else
16
+ #define ATTR __arm_streaming
17
+ #endif
18
+
13
19
// CHECK-LABEL: @test_svcntp_c8_vlx2(
14
20
// CHECK-NEXT: entry:
15
21
// CHECK-NEXT: [[TMP0:%.*]] = tail call i64 @llvm.aarch64.sve.cntp.c8(target("aarch64.svcount") [[PNN:%.*]], i32 2)
20
26
// CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call i64 @llvm.aarch64.sve.cntp.c8(target("aarch64.svcount") [[PNN:%.*]], i32 2)
21
27
// CPP-CHECK-NEXT: ret i64 [[TMP0]]
22
28
//
23
- uint64_t test_svcntp_c8_vlx2 (svcount_t pnn ) {
29
+ uint64_t test_svcntp_c8_vlx2 (svcount_t pnn ) ATTR {
24
30
return svcntp_c8 (pnn , 2 );
25
31
}
26
32
@@ -34,7 +40,7 @@ uint64_t test_svcntp_c8_vlx2(svcount_t pnn) {
34
40
// CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call i64 @llvm.aarch64.sve.cntp.c8(target("aarch64.svcount") [[PNN:%.*]], i32 4)
35
41
// CPP-CHECK-NEXT: ret i64 [[TMP0]]
36
42
//
37
- uint64_t test_svcntp_c8_vlx4 (svcount_t pnn ) {
43
+ uint64_t test_svcntp_c8_vlx4 (svcount_t pnn ) ATTR {
38
44
return svcntp_c8 (pnn , 4 );
39
45
}
40
46
@@ -48,7 +54,7 @@ uint64_t test_svcntp_c8_vlx4(svcount_t pnn) {
48
54
// CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call i64 @llvm.aarch64.sve.cntp.c16(target("aarch64.svcount") [[PNN:%.*]], i32 2)
49
55
// CPP-CHECK-NEXT: ret i64 [[TMP0]]
50
56
//
51
- uint64_t test_svcntp_c16_vlx2 (svcount_t pnn ) {
57
+ uint64_t test_svcntp_c16_vlx2 (svcount_t pnn ) ATTR {
52
58
return svcntp_c16 (pnn , 2 );
53
59
}
54
60
@@ -62,7 +68,7 @@ uint64_t test_svcntp_c16_vlx2(svcount_t pnn) {
62
68
// CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call i64 @llvm.aarch64.sve.cntp.c16(target("aarch64.svcount") [[PNN:%.*]], i32 4)
63
69
// CPP-CHECK-NEXT: ret i64 [[TMP0]]
64
70
//
65
- uint64_t test_svcntp_c16_vlx4 (svcount_t pnn ) {
71
+ uint64_t test_svcntp_c16_vlx4 (svcount_t pnn ) ATTR {
66
72
return svcntp_c16 (pnn , 4 );
67
73
}
68
74
@@ -76,7 +82,7 @@ uint64_t test_svcntp_c16_vlx4(svcount_t pnn) {
76
82
// CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call i64 @llvm.aarch64.sve.cntp.c32(target("aarch64.svcount") [[PNN:%.*]], i32 2)
77
83
// CPP-CHECK-NEXT: ret i64 [[TMP0]]
78
84
//
79
- uint64_t test_svcntp_c32_vlx2 (svcount_t pnn ) {
85
+ uint64_t test_svcntp_c32_vlx2 (svcount_t pnn ) ATTR {
80
86
return svcntp_c32 (pnn , 2 );
81
87
}
82
88
@@ -90,7 +96,7 @@ uint64_t test_svcntp_c32_vlx2(svcount_t pnn) {
90
96
// CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call i64 @llvm.aarch64.sve.cntp.c32(target("aarch64.svcount") [[PNN:%.*]], i32 4)
91
97
// CPP-CHECK-NEXT: ret i64 [[TMP0]]
92
98
//
93
- uint64_t test_svcntp_c32_vlx4 (svcount_t pnn ) {
99
+ uint64_t test_svcntp_c32_vlx4 (svcount_t pnn ) ATTR {
94
100
return svcntp_c32 (pnn , 4 );
95
101
}
96
102
@@ -104,7 +110,7 @@ uint64_t test_svcntp_c32_vlx4(svcount_t pnn) {
104
110
// CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call i64 @llvm.aarch64.sve.cntp.c64(target("aarch64.svcount") [[PNN:%.*]], i32 2)
105
111
// CPP-CHECK-NEXT: ret i64 [[TMP0]]
106
112
//
107
- uint64_t test_svcntp_c64_vlx2 (svcount_t pnn ) {
113
+ uint64_t test_svcntp_c64_vlx2 (svcount_t pnn ) ATTR {
108
114
return svcntp_c64 (pnn , 2 );
109
115
}
110
116
@@ -118,6 +124,6 @@ uint64_t test_svcntp_c64_vlx2(svcount_t pnn) {
118
124
// CPP-CHECK-NEXT: [[TMP0:%.*]] = tail call i64 @llvm.aarch64.sve.cntp.c64(target("aarch64.svcount") [[PNN:%.*]], i32 4)
119
125
// CPP-CHECK-NEXT: ret i64 [[TMP0]]
120
126
//
121
- uint64_t test_svcntp_c64_vlx4 (svcount_t pnn ) {
127
+ uint64_t test_svcntp_c64_vlx4 (svcount_t pnn ) ATTR {
122
128
return svcntp_c64 (pnn , 4 );
123
129
}
0 commit comments