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 
3 #include <arm_sve.h>
4 
test_svundef4_s8()5 svint8x4_t test_svundef4_s8()
6 {
7   // CHECK-LABEL: test_svundef4_s8
8   // CHECK: ret <vscale x 64 x i8> undef
9   return svundef4_s8();
10 }
11 
test_svundef4_s16()12 svint16x4_t test_svundef4_s16()
13 {
14   // CHECK-LABEL: test_svundef4_s16
15   // CHECK: ret <vscale x 32 x i16> undef
16   return svundef4_s16();
17 }
18 
test_svundef4_s32()19 svint32x4_t test_svundef4_s32()
20 {
21   // CHECK-LABEL: test_svundef4_s32
22   // CHECK: ret <vscale x 16 x i32> undef
23   return svundef4_s32();
24 }
25 
test_svundef4_s64()26 svint64x4_t test_svundef4_s64()
27 {
28   // CHECK-LABEL: test_svundef4_s64
29   // CHECK: ret <vscale x 8 x i64> undef
30   return svundef4_s64();
31 }
32 
test_svundef4_u8()33 svuint8x4_t test_svundef4_u8()
34 {
35   // CHECK-LABEL: test_svundef4_u8
36   // CHECK: ret <vscale x 64 x i8> undef
37   return svundef4_u8();
38 }
39 
test_svundef4_u16()40 svuint16x4_t test_svundef4_u16()
41 {
42   // CHECK-LABEL: test_svundef4_u16
43   // CHECK: ret <vscale x 32 x i16> undef
44   return svundef4_u16();
45 }
46 
test_svundef4_u32()47 svuint32x4_t test_svundef4_u32()
48 {
49   // CHECK-LABEL: test_svundef4_u32
50   // CHECK: ret <vscale x 16 x i32> undef
51   return svundef4_u32();
52 }
53 
test_svundef4_u64()54 svuint64x4_t test_svundef4_u64()
55 {
56   // CHECK-LABEL: test_svundef4_u64
57   // CHECK: ret <vscale x 8 x i64> undef
58   return svundef4_u64();
59 }
60 
test_svundef4_f16()61 svfloat16x4_t test_svundef4_f16()
62 {
63   // CHECK-LABEL: test_svundef4_f16
64   // CHECK: ret <vscale x 32 x half> undef
65   return svundef4_f16();
66 }
67 
test_svundef4_f32()68 svfloat32x4_t test_svundef4_f32()
69 {
70   // CHECK-LABEL: test_svundef4_f32
71   // CHECK: ret <vscale x 16 x float> undef
72   return svundef4_f32();
73 }
74 
test_svundef4_f64()75 svfloat64x4_t test_svundef4_f64()
76 {
77   // CHECK-LABEL: test_svundef4_f64
78   // CHECK: ret <vscale x 8 x double> undef
79   return svundef4_f64();
80 }
81