xref: /llvm-project/clang/test/CodeGen/AArch64/sve.c (revision 207e5ccceec8d3cc3f32723e78f2a142bc61b07d)
1 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve \
2 // RUN:  -emit-llvm -o - %s 2>&1 | FileCheck %s -check-prefix=CHECK
3 
4 // CHECK: @ptr ={{.*}} global ptr null, align 8
5 // CHECK: %s8 = alloca <vscale x 16 x i8>, align 16
6 // CHECK: %s16 = alloca <vscale x 8 x i16>, align 16
7 // CHECK: %s32 = alloca <vscale x 4 x i32>, align 16
8 // CHECK: %s64 = alloca <vscale x 2 x i64>, align 16
9 // CHECK: %u8 = alloca <vscale x 16 x i8>, align 16
10 // CHECK: %u16 = alloca <vscale x 8 x i16>, align 16
11 // CHECK: %u32 = alloca <vscale x 4 x i32>, align 16
12 // CHECK: %u64 = alloca <vscale x 2 x i64>, align 16
13 // CHECK: %f16 = alloca <vscale x 8 x half>, align 16
14 // CHECK: %f32 = alloca <vscale x 4 x float>, align 16
15 // CHECK: %f64 = alloca <vscale x 2 x double>, align 16
16 // CHECK: %mf8 = alloca <vscale x 16 x i8>, align 16
17 // CHECK: %bf16 = alloca <vscale x 8 x bfloat>, align 16
18 // CHECK: %b8 = alloca <vscale x 16 x i1>, align 2
19 
20 __SVInt8_t *ptr;
21 
22 void test_locals(void) {
23   __SVInt8_t s8;
24   __SVInt16_t s16;
25   __SVInt32_t s32;
26   __SVInt64_t s64;
27 
28   __SVUint8_t u8;
29   __SVUint16_t u16;
30   __SVUint32_t u32;
31   __SVUint64_t u64;
32 
33   __SVFloat16_t f16;
34   __SVFloat32_t f32;
35   __SVFloat64_t f64;
36 
37   __SVMfloat8_t mf8;
38   __SVBfloat16_t bf16;
39 
40   __SVBool_t b8;
41 }
42