1 // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --version 4
2 // REQUIRES: aarch64-registered-target
4 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sme2p1 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s
5 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sme2p1 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK
6 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sme2p1 -disable-O0-optnone -Werror -Wall -o /dev/null %s
10 #define SVE_ACLE_FUNC(A1,A2) A1##A2
12 // CHECK-LABEL: define dso_local void @test_svzero_za64_vg1x2(
13 // CHECK-SAME: i32 noundef [[SLICE:%.*]]) #[[ATTR0:[0-9]+]] {
15 // CHECK-NEXT: tail call void @llvm.aarch64.sme.zero.za64.vg1x2(i32 [[SLICE]])
16 // CHECK-NEXT: ret void
18 // CPP-CHECK-LABEL: define dso_local void @_Z22test_svzero_za64_vg1x2j(
19 // CPP-CHECK-SAME: i32 noundef [[SLICE:%.*]]) #[[ATTR0:[0-9]+]] {
20 // CPP-CHECK-NEXT: entry:
21 // CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.zero.za64.vg1x2(i32 [[SLICE]])
22 // CPP-CHECK-NEXT: ret void
24 void test_svzero_za64_vg1x2(uint32_t slice
) __arm_streaming
__arm_inout("za")
26 SVE_ACLE_FUNC(svzero_za64
,_vg1x2
)(slice
);
29 // CHECK-LABEL: define dso_local void @test_svzero_za64_vg1x4(
30 // CHECK-SAME: i32 noundef [[SLICE:%.*]]) #[[ATTR0]] {
32 // CHECK-NEXT: tail call void @llvm.aarch64.sme.zero.za64.vg1x4(i32 [[SLICE]])
33 // CHECK-NEXT: ret void
35 // CPP-CHECK-LABEL: define dso_local void @_Z22test_svzero_za64_vg1x4j(
36 // CPP-CHECK-SAME: i32 noundef [[SLICE:%.*]]) #[[ATTR0]] {
37 // CPP-CHECK-NEXT: entry:
38 // CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.zero.za64.vg1x4(i32 [[SLICE]])
39 // CPP-CHECK-NEXT: ret void
41 void test_svzero_za64_vg1x4(uint32_t slice
) __arm_streaming
__arm_inout("za"){
42 SVE_ACLE_FUNC(svzero_za64
,_vg1x4
)(slice
);
45 // CHECK-LABEL: define dso_local void @test_svzero_za64_vg2x1(
46 // CHECK-SAME: i32 noundef [[SLICE:%.*]]) #[[ATTR0]] {
48 // CHECK-NEXT: tail call void @llvm.aarch64.sme.zero.za64.vg2x1(i32 [[SLICE]])
49 // CHECK-NEXT: ret void
51 // CPP-CHECK-LABEL: define dso_local void @_Z22test_svzero_za64_vg2x1j(
52 // CPP-CHECK-SAME: i32 noundef [[SLICE:%.*]]) #[[ATTR0]] {
53 // CPP-CHECK-NEXT: entry:
54 // CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.zero.za64.vg2x1(i32 [[SLICE]])
55 // CPP-CHECK-NEXT: ret void
57 void test_svzero_za64_vg2x1(uint32_t slice
) __arm_streaming
__arm_inout("za"){
58 SVE_ACLE_FUNC(svzero_za64
,_vg2x1
)(slice
);
61 // CHECK-LABEL: define dso_local void @test_svzero_za64_vg2x2(
62 // CHECK-SAME: i32 noundef [[SLICE:%.*]]) #[[ATTR0]] {
64 // CHECK-NEXT: tail call void @llvm.aarch64.sme.zero.za64.vg2x2(i32 [[SLICE]])
65 // CHECK-NEXT: ret void
67 // CPP-CHECK-LABEL: define dso_local void @_Z22test_svzero_za64_vg2x2j(
68 // CPP-CHECK-SAME: i32 noundef [[SLICE:%.*]]) #[[ATTR0]] {
69 // CPP-CHECK-NEXT: entry:
70 // CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.zero.za64.vg2x2(i32 [[SLICE]])
71 // CPP-CHECK-NEXT: ret void
73 void test_svzero_za64_vg2x2(uint32_t slice
) __arm_streaming
__arm_inout("za"){
74 SVE_ACLE_FUNC(svzero_za64
,_vg2x2
)(slice
);
77 // CHECK-LABEL: define dso_local void @test_svzero_za64_vg2x4(
78 // CHECK-SAME: i32 noundef [[SLICE:%.*]]) #[[ATTR0]] {
80 // CHECK-NEXT: tail call void @llvm.aarch64.sme.zero.za64.vg2x4(i32 [[SLICE]])
81 // CHECK-NEXT: ret void
83 // CPP-CHECK-LABEL: define dso_local void @_Z22test_svzero_za64_vg2x4j(
84 // CPP-CHECK-SAME: i32 noundef [[SLICE:%.*]]) #[[ATTR0]] {
85 // CPP-CHECK-NEXT: entry:
86 // CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.zero.za64.vg2x4(i32 [[SLICE]])
87 // CPP-CHECK-NEXT: ret void
89 void test_svzero_za64_vg2x4(uint32_t slice
) __arm_streaming
__arm_inout("za"){
90 SVE_ACLE_FUNC(svzero_za64
,_vg2x4
)(slice
);
93 // CHECK-LABEL: define dso_local void @test_svzero_za64_vg4x1(
94 // CHECK-SAME: i32 noundef [[SLICE:%.*]]) #[[ATTR0]] {
96 // CHECK-NEXT: tail call void @llvm.aarch64.sme.zero.za64.vg4x1(i32 [[SLICE]])
97 // CHECK-NEXT: ret void
99 // CPP-CHECK-LABEL: define dso_local void @_Z22test_svzero_za64_vg4x1j(
100 // CPP-CHECK-SAME: i32 noundef [[SLICE:%.*]]) #[[ATTR0]] {
101 // CPP-CHECK-NEXT: entry:
102 // CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.zero.za64.vg4x1(i32 [[SLICE]])
103 // CPP-CHECK-NEXT: ret void
105 void test_svzero_za64_vg4x1(uint32_t slice
) __arm_streaming
__arm_inout("za"){
106 SVE_ACLE_FUNC(svzero_za64
,_vg4x1
)(slice
);
109 // CHECK-LABEL: define dso_local void @test_svzero_za64_vg4x2(
110 // CHECK-SAME: i32 noundef [[SLICE:%.*]]) #[[ATTR0]] {
111 // CHECK-NEXT: entry:
112 // CHECK-NEXT: tail call void @llvm.aarch64.sme.zero.za64.vg4x2(i32 [[SLICE]])
113 // CHECK-NEXT: ret void
115 // CPP-CHECK-LABEL: define dso_local void @_Z22test_svzero_za64_vg4x2j(
116 // CPP-CHECK-SAME: i32 noundef [[SLICE:%.*]]) #[[ATTR0]] {
117 // CPP-CHECK-NEXT: entry:
118 // CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.zero.za64.vg4x2(i32 [[SLICE]])
119 // CPP-CHECK-NEXT: ret void
121 void test_svzero_za64_vg4x2(uint32_t slice
) __arm_streaming
__arm_inout("za"){
122 SVE_ACLE_FUNC(svzero_za64
,_vg4x2
)(slice
);
125 // CHECK-LABEL: define dso_local void @test_svzero_za64_vg4x4(
126 // CHECK-SAME: i32 noundef [[SLICE:%.*]]) #[[ATTR0]] {
127 // CHECK-NEXT: entry:
128 // CHECK-NEXT: tail call void @llvm.aarch64.sme.zero.za64.vg4x4(i32 [[SLICE]])
129 // CHECK-NEXT: ret void
131 // CPP-CHECK-LABEL: define dso_local void @_Z22test_svzero_za64_vg4x4j(
132 // CPP-CHECK-SAME: i32 noundef [[SLICE:%.*]]) #[[ATTR0]] {
133 // CPP-CHECK-NEXT: entry:
134 // CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.zero.za64.vg4x4(i32 [[SLICE]])
135 // CPP-CHECK-NEXT: ret void
137 void test_svzero_za64_vg4x4(uint32_t slice
) __arm_streaming
__arm_inout("za"){
138 SVE_ACLE_FUNC(svzero_za64
,_vg4x4
)(slice
);