1 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -S -O2 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
2 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -S -O2 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s
3 
4 #include <arm_sve.h>
5 
test_svundef2_s8()6 svint8x2_t test_svundef2_s8()
7 {
8   // CHECK-LABEL: test_svundef2_s8
9   // CHECK: ret <vscale x 32 x i8> undef
10   return svundef2_s8();
11 }
12 
test_svundef2_s16()13 svint16x2_t test_svundef2_s16()
14 {
15   // CHECK-LABEL: test_svundef2_s16
16   // CHECK: ret <vscale x 16 x i16> undef
17   return svundef2_s16();
18 }
19 
test_svundef2_s32()20 svint32x2_t test_svundef2_s32()
21 {
22   // CHECK-LABEL: test_svundef2_s32
23   // CHECK: ret <vscale x 8 x i32> undef
24   return svundef2_s32();
25 }
26 
test_svundef2_s64()27 svint64x2_t test_svundef2_s64()
28 {
29   // CHECK-LABEL: test_svundef2_s64
30   // CHECK: ret <vscale x 4 x i64> undef
31   return svundef2_s64();
32 }
33 
test_svundef2_u8()34 svuint8x2_t test_svundef2_u8()
35 {
36   // CHECK-LABEL: test_svundef2_u8
37   // CHECK: ret <vscale x 32 x i8> undef
38   return svundef2_u8();
39 }
40 
test_svundef2_u16()41 svuint16x2_t test_svundef2_u16()
42 {
43   // CHECK-LABEL: test_svundef2_u16
44   // CHECK: ret <vscale x 16 x i16> undef
45   return svundef2_u16();
46 }
47 
test_svundef2_u32()48 svuint32x2_t test_svundef2_u32()
49 {
50   // CHECK-LABEL: test_svundef2_u32
51   // CHECK: ret <vscale x 8 x i32> undef
52   return svundef2_u32();
53 }
54 
test_svundef2_u64()55 svuint64x2_t test_svundef2_u64()
56 {
57   // CHECK-LABEL: test_svundef2_u64
58   // CHECK: ret <vscale x 4 x i64> undef
59   return svundef2_u64();
60 }
61 
test_svundef2_f16()62 svfloat16x2_t test_svundef2_f16()
63 {
64   // CHECK-LABEL: test_svundef2_f16
65   // CHECK: ret <vscale x 16 x half> undef
66   return svundef2_f16();
67 }
68 
test_svundef2_f32()69 svfloat32x2_t test_svundef2_f32()
70 {
71   // CHECK-LABEL: test_svundef2_f32
72   // CHECK: ret <vscale x 8 x float> undef
73   return svundef2_f32();
74 }
75 
test_svundef2_f64()76 svfloat64x2_t test_svundef2_f64()
77 {
78   // CHECK-LABEL: test_svundef2_f64
79   // CHECK: ret <vscale x 4 x double> undef
80   return svundef2_f64();
81 }
82