184 lines · c
1// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py2// REQUIRES: aarch64-registered-target3// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -passes=mem2reg,tailcallelim | FileCheck %s4// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -passes=mem2reg,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK5// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -S -disable-O0-optnone -Werror -o /dev/null %s6// RUN: %clang_cc1 -triple aarch64 -target-feature +sme -S -disable-O0-optnone -Werror -o /dev/null %s7 8#include <arm_sve.h>9 10#if defined __ARM_FEATURE_SME11#define MODE_ATTR __arm_streaming12#else13#define MODE_ATTR14#endif15 16// CHECK-LABEL: @test_svundef_s8(17// CHECK-NEXT: entry:18// CHECK-NEXT: ret <vscale x 16 x i8> undef19//20// CPP-CHECK-LABEL: @_Z15test_svundef_s8v(21// CPP-CHECK-NEXT: entry:22// CPP-CHECK-NEXT: ret <vscale x 16 x i8> undef23//24svint8_t test_svundef_s8(void) MODE_ATTR25{26 return svundef_s8();27}28 29// CHECK-LABEL: @test_svundef_s16(30// CHECK-NEXT: entry:31// CHECK-NEXT: ret <vscale x 8 x i16> undef32//33// CPP-CHECK-LABEL: @_Z16test_svundef_s16v(34// CPP-CHECK-NEXT: entry:35// CPP-CHECK-NEXT: ret <vscale x 8 x i16> undef36//37svint16_t test_svundef_s16(void) MODE_ATTR38{39 return svundef_s16();40}41 42// CHECK-LABEL: @test_svundef_s32(43// CHECK-NEXT: entry:44// CHECK-NEXT: ret <vscale x 4 x i32> undef45//46// CPP-CHECK-LABEL: @_Z16test_svundef_s32v(47// CPP-CHECK-NEXT: entry:48// CPP-CHECK-NEXT: ret <vscale x 4 x i32> undef49//50svint32_t test_svundef_s32(void) MODE_ATTR51{52 return svundef_s32();53}54 55// CHECK-LABEL: @test_svundef_s64(56// CHECK-NEXT: entry:57// CHECK-NEXT: ret <vscale x 2 x i64> undef58//59// CPP-CHECK-LABEL: @_Z16test_svundef_s64v(60// CPP-CHECK-NEXT: entry:61// CPP-CHECK-NEXT: ret <vscale x 2 x i64> undef62//63svint64_t test_svundef_s64(void) MODE_ATTR64{65 return svundef_s64();66}67 68// CHECK-LABEL: @test_svundef_u8(69// CHECK-NEXT: entry:70// CHECK-NEXT: ret <vscale x 16 x i8> undef71//72// CPP-CHECK-LABEL: @_Z15test_svundef_u8v(73// CPP-CHECK-NEXT: entry:74// CPP-CHECK-NEXT: ret <vscale x 16 x i8> undef75//76svuint8_t test_svundef_u8(void) MODE_ATTR77{78 return svundef_u8();79}80 81// CHECK-LABEL: @test_svundef_u16(82// CHECK-NEXT: entry:83// CHECK-NEXT: ret <vscale x 8 x i16> undef84//85// CPP-CHECK-LABEL: @_Z16test_svundef_u16v(86// CPP-CHECK-NEXT: entry:87// CPP-CHECK-NEXT: ret <vscale x 8 x i16> undef88//89svuint16_t test_svundef_u16(void) MODE_ATTR90{91 return svundef_u16();92}93 94// CHECK-LABEL: @test_svundef_u32(95// CHECK-NEXT: entry:96// CHECK-NEXT: ret <vscale x 4 x i32> undef97//98// CPP-CHECK-LABEL: @_Z16test_svundef_u32v(99// CPP-CHECK-NEXT: entry:100// CPP-CHECK-NEXT: ret <vscale x 4 x i32> undef101//102svuint32_t test_svundef_u32(void) MODE_ATTR103{104 return svundef_u32();105}106 107// CHECK-LABEL: @test_svundef_u64(108// CHECK-NEXT: entry:109// CHECK-NEXT: ret <vscale x 2 x i64> undef110//111// CPP-CHECK-LABEL: @_Z16test_svundef_u64v(112// CPP-CHECK-NEXT: entry:113// CPP-CHECK-NEXT: ret <vscale x 2 x i64> undef114//115svuint64_t test_svundef_u64(void) MODE_ATTR116{117 return svundef_u64();118}119 120// CHECK-LABEL: @test_svundef_f16(121// CHECK-NEXT: entry:122// CHECK-NEXT: ret <vscale x 8 x half> undef123//124// CPP-CHECK-LABEL: @_Z16test_svundef_f16v(125// CPP-CHECK-NEXT: entry:126// CPP-CHECK-NEXT: ret <vscale x 8 x half> undef127//128svfloat16_t test_svundef_f16(void) MODE_ATTR129{130 return svundef_f16();131}132 133// CHECK-LABEL: @test_svundef_f32(134// CHECK-NEXT: entry:135// CHECK-NEXT: ret <vscale x 4 x float> undef136//137// CPP-CHECK-LABEL: @_Z16test_svundef_f32v(138// CPP-CHECK-NEXT: entry:139// CPP-CHECK-NEXT: ret <vscale x 4 x float> undef140//141svfloat32_t test_svundef_f32(void) MODE_ATTR142{143 return svundef_f32();144}145 146// CHECK-LABEL: @test_svundef_f64(147// CHECK-NEXT: entry:148// CHECK-NEXT: ret <vscale x 2 x double> undef149//150// CPP-CHECK-LABEL: @_Z16test_svundef_f64v(151// CPP-CHECK-NEXT: entry:152// CPP-CHECK-NEXT: ret <vscale x 2 x double> undef153//154svfloat64_t test_svundef_f64(void) MODE_ATTR155{156 return svundef_f64();157}158 159// CHECK-LABEL: @test_svundef_mf8(160// CHECK-NEXT: entry:161// CHECK-NEXT: ret <vscale x 16 x i8> undef162//163// CPP-CHECK-LABEL: @_Z16test_svundef_mf8v(164// CPP-CHECK-NEXT: entry:165// CPP-CHECK-NEXT: ret <vscale x 16 x i8> undef166//167svmfloat8_t test_svundef_mf8(void) MODE_ATTR168{169 return svundef_mf8();170}171 172// CHECK-LABEL: @test_svundef_bf16(173// CHECK-NEXT: entry:174// CHECK-NEXT: ret <vscale x 8 x bfloat> undef175//176// CPP-CHECK-LABEL: @_Z17test_svundef_bf16v(177// CPP-CHECK-NEXT: entry:178// CPP-CHECK-NEXT: ret <vscale x 8 x bfloat> undef179//180svbfloat16_t test_svundef_bf16(void) MODE_ATTR181{182 return svundef_bf16();183}184