|
55 | 55 | // CHECK-NEXT: [[B8:%.*]] = alloca <vscale x 16 x i1>, align 2
|
56 | 56 | // CHECK-NEXT: [[B8X2:%.*]] = alloca <vscale x 32 x i1>, align 2
|
57 | 57 | // CHECK-NEXT: [[B8X4:%.*]] = alloca <vscale x 64 x i1>, align 2
|
| 58 | +// CHECK-NEXT: [[CNT:%.*]] = alloca target("aarch64.svcount"), align 2 |
58 | 59 | // CHECK-NEXT: store <vscale x 16 x i8> zeroinitializer, ptr [[S8]], align 16
|
59 | 60 | // CHECK-NEXT: store <vscale x 8 x i16> zeroinitializer, ptr [[S16]], align 16
|
60 | 61 | // CHECK-NEXT: store <vscale x 4 x i32> zeroinitializer, ptr [[S32]], align 16
|
|
106 | 107 | // CHECK-NEXT: store <vscale x 16 x i1> zeroinitializer, ptr [[B8]], align 2
|
107 | 108 | // CHECK-NEXT: store <vscale x 32 x i1> zeroinitializer, ptr [[B8X2]], align 2
|
108 | 109 | // CHECK-NEXT: store <vscale x 64 x i1> zeroinitializer, ptr [[B8X4]], align 2
|
| 110 | +// CHECK-NEXT: store target("aarch64.svcount") zeroinitializer, ptr [[CNT]], align 2 |
109 | 111 | // CHECK-NEXT: ret void
|
110 | 112 | //
|
111 | 113 | void test_locals(void) {
|
@@ -164,6 +166,8 @@ void test_locals(void) {
|
164 | 166 | __SVBool_t b8{};
|
165 | 167 | __clang_svboolx2_t b8x2{};
|
166 | 168 | __clang_svboolx4_t b8x4{};
|
| 169 | + |
| 170 | + __SVCount_t cnt{}; |
167 | 171 | }
|
168 | 172 |
|
169 | 173 | // CHECK-LABEL: define dso_local void @_Z12test_copy_s8u10__SVInt8_t
|
@@ -879,3 +883,17 @@ void test_copy_b8x2(__clang_svboolx2_t a) {
|
879 | 883 | void test_copy_b8x4(__clang_svboolx4_t a) {
|
880 | 884 | __clang_svboolx4_t b{a};
|
881 | 885 | }
|
| 886 | + |
| 887 | +// CHECK-LABEL: define dso_local void @_Z13test_copy_cntu11__SVCount_t |
| 888 | +// CHECK-SAME: (target("aarch64.svcount") [[A:%.*]]) #[[ATTR0]] { |
| 889 | +// CHECK-NEXT: entry: |
| 890 | +// CHECK-NEXT: [[A_ADDR:%.*]] = alloca target("aarch64.svcount"), align 2 |
| 891 | +// CHECK-NEXT: [[B:%.*]] = alloca target("aarch64.svcount"), align 2 |
| 892 | +// CHECK-NEXT: store target("aarch64.svcount") [[A]], ptr [[A_ADDR]], align 2 |
| 893 | +// CHECK-NEXT: [[TMP0:%.*]] = load target("aarch64.svcount"), ptr [[A_ADDR]], align 2 |
| 894 | +// CHECK-NEXT: store target("aarch64.svcount") [[TMP0]], ptr [[B]], align 2 |
| 895 | +// CHECK-NEXT: ret void |
| 896 | +// |
| 897 | +void test_copy_cnt(__SVCount_t a) { |
| 898 | + __SVCount_t b{a}; |
| 899 | +} |
0 commit comments