403 lines · c
1// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --version 52 3// RUN: %clang_cc1 -triple aarch64 -target-feature +sme2 -target-feature +sme -target-feature +sme-lutv2 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s4// RUN: %clang_cc1 -triple aarch64 -target-feature +sme2 -target-feature +sme -target-feature +sme-lutv2 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK5// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sme -target-feature +sme2 -target-feature +sme-lutv2 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s6// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sme -target-feature +sme2 -target-feature +sme-lutv2 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK7// RUN: %clang_cc1 -triple aarch64 -target-feature +sme -target-feature +sme2 -target-feature +sme-lutv2 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s8 9// REQUIRES: aarch64-registered-target10 11#ifdef SVE_OVERLOADED_FORMS12#define SVE_ACLE_FUNC(A1,A2_UNUSED) A113#else14#define SVE_ACLE_FUNC(A1,A2) A1##A215#endif16 17#include <arm_sme.h>18 19// CHECK-LABEL: define dso_local void @test_write_lane_zt_u8_1(20// CHECK-SAME: <vscale x 16 x i8> [[V:%.*]]) #[[ATTR0:[0-9]+]] {21// CHECK-NEXT: [[ENTRY:.*:]]22// CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv16i8(i32 0, <vscale x 16 x i8> [[V]], i32 1)23// CHECK-NEXT: ret void24//25// CPP-CHECK-LABEL: define dso_local void @_Z23test_write_lane_zt_u8_1u11__SVUint8_t(26// CPP-CHECK-SAME: <vscale x 16 x i8> [[V:%.*]]) #[[ATTR0:[0-9]+]] {27// CPP-CHECK-NEXT: [[ENTRY:.*:]]28// CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv16i8(i32 0, <vscale x 16 x i8> [[V]], i32 1)29// CPP-CHECK-NEXT: ret void30//31void test_write_lane_zt_u8_1(svuint8_t v) __arm_streaming __arm_inout("zt0") {32 SVE_ACLE_FUNC(svwrite_lane_zt, _u8)(0, v, 1);33}34 35// CHECK-LABEL: define dso_local void @test_write_lane_zt_s8_2(36// CHECK-SAME: <vscale x 16 x i8> [[V:%.*]]) #[[ATTR0]] {37// CHECK-NEXT: [[ENTRY:.*:]]38// CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv16i8(i32 0, <vscale x 16 x i8> [[V]], i32 2)39// CHECK-NEXT: ret void40//41// CPP-CHECK-LABEL: define dso_local void @_Z23test_write_lane_zt_s8_2u10__SVInt8_t(42// CPP-CHECK-SAME: <vscale x 16 x i8> [[V:%.*]]) #[[ATTR0]] {43// CPP-CHECK-NEXT: [[ENTRY:.*:]]44// CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv16i8(i32 0, <vscale x 16 x i8> [[V]], i32 2)45// CPP-CHECK-NEXT: ret void46//47void test_write_lane_zt_s8_2(svint8_t v) __arm_streaming __arm_inout("zt0") {48 SVE_ACLE_FUNC(svwrite_lane_zt, _s8)(0, v, 2);49}50 51// CHECK-LABEL: define dso_local void @test_write_lane_zt_u16_3(52// CHECK-SAME: <vscale x 8 x i16> [[V:%.*]]) #[[ATTR0]] {53// CHECK-NEXT: [[ENTRY:.*:]]54// CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv8i16(i32 0, <vscale x 8 x i16> [[V]], i32 1)55// CHECK-NEXT: ret void56//57// CPP-CHECK-LABEL: define dso_local void @_Z24test_write_lane_zt_u16_3u12__SVUint16_t(58// CPP-CHECK-SAME: <vscale x 8 x i16> [[V:%.*]]) #[[ATTR0]] {59// CPP-CHECK-NEXT: [[ENTRY:.*:]]60// CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv8i16(i32 0, <vscale x 8 x i16> [[V]], i32 1)61// CPP-CHECK-NEXT: ret void62//63void test_write_lane_zt_u16_3(svuint16_t v) __arm_streaming __arm_inout("zt0") {64 SVE_ACLE_FUNC(svwrite_lane_zt, _u16)(0, v, 1);65}66 67// CHECK-LABEL: define dso_local void @test_write_lane_zt_s16_1(68// CHECK-SAME: <vscale x 8 x i16> [[V:%.*]]) #[[ATTR0]] {69// CHECK-NEXT: [[ENTRY:.*:]]70// CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv8i16(i32 0, <vscale x 8 x i16> [[V]], i32 1)71// CHECK-NEXT: ret void72//73// CPP-CHECK-LABEL: define dso_local void @_Z24test_write_lane_zt_s16_1u11__SVInt16_t(74// CPP-CHECK-SAME: <vscale x 8 x i16> [[V:%.*]]) #[[ATTR0]] {75// CPP-CHECK-NEXT: [[ENTRY:.*:]]76// CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv8i16(i32 0, <vscale x 8 x i16> [[V]], i32 1)77// CPP-CHECK-NEXT: ret void78//79void test_write_lane_zt_s16_1(svint16_t v) __arm_streaming __arm_inout("zt0") {80 SVE_ACLE_FUNC(svwrite_lane_zt, _s16)(0, v, 1);81}82 83// CHECK-LABEL: define dso_local void @test_write_lane_zt_u32_2(84// CHECK-SAME: <vscale x 4 x i32> [[V:%.*]]) #[[ATTR0]] {85// CHECK-NEXT: [[ENTRY:.*:]]86// CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv4i32(i32 0, <vscale x 4 x i32> [[V]], i32 2)87// CHECK-NEXT: ret void88//89// CPP-CHECK-LABEL: define dso_local void @_Z24test_write_lane_zt_u32_2u12__SVUint32_t(90// CPP-CHECK-SAME: <vscale x 4 x i32> [[V:%.*]]) #[[ATTR0]] {91// CPP-CHECK-NEXT: [[ENTRY:.*:]]92// CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv4i32(i32 0, <vscale x 4 x i32> [[V]], i32 2)93// CPP-CHECK-NEXT: ret void94//95void test_write_lane_zt_u32_2(svuint32_t v) __arm_streaming __arm_inout("zt0") {96 SVE_ACLE_FUNC(svwrite_lane_zt, _u32)(0, v, 2);97}98 99// CHECK-LABEL: define dso_local void @test_write_lane_zt_s32_3(100// CHECK-SAME: <vscale x 4 x i32> [[V:%.*]]) #[[ATTR0]] {101// CHECK-NEXT: [[ENTRY:.*:]]102// CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv4i32(i32 0, <vscale x 4 x i32> [[V]], i32 3)103// CHECK-NEXT: ret void104//105// CPP-CHECK-LABEL: define dso_local void @_Z24test_write_lane_zt_s32_3u11__SVInt32_t(106// CPP-CHECK-SAME: <vscale x 4 x i32> [[V:%.*]]) #[[ATTR0]] {107// CPP-CHECK-NEXT: [[ENTRY:.*:]]108// CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv4i32(i32 0, <vscale x 4 x i32> [[V]], i32 3)109// CPP-CHECK-NEXT: ret void110//111void test_write_lane_zt_s32_3(svint32_t v) __arm_streaming __arm_inout("zt0") {112 SVE_ACLE_FUNC(svwrite_lane_zt, _s32)(0, v, 3);113}114 115// CHECK-LABEL: define dso_local void @test_write_lane_zt_u64_0(116// CHECK-SAME: <vscale x 2 x i64> [[V:%.*]]) #[[ATTR0]] {117// CHECK-NEXT: [[ENTRY:.*:]]118// CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv2i64(i32 0, <vscale x 2 x i64> [[V]], i32 1)119// CHECK-NEXT: ret void120//121// CPP-CHECK-LABEL: define dso_local void @_Z24test_write_lane_zt_u64_0u12__SVUint64_t(122// CPP-CHECK-SAME: <vscale x 2 x i64> [[V:%.*]]) #[[ATTR0]] {123// CPP-CHECK-NEXT: [[ENTRY:.*:]]124// CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv2i64(i32 0, <vscale x 2 x i64> [[V]], i32 1)125// CPP-CHECK-NEXT: ret void126//127void test_write_lane_zt_u64_0(svuint64_t v) __arm_streaming __arm_inout("zt0") {128 SVE_ACLE_FUNC(svwrite_lane_zt, _u64)(0, v, 1);129}130 131// CHECK-LABEL: define dso_local void @test_write_lane_zt_s64_1(132// CHECK-SAME: <vscale x 2 x i64> [[V:%.*]]) #[[ATTR0]] {133// CHECK-NEXT: [[ENTRY:.*:]]134// CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv2i64(i32 0, <vscale x 2 x i64> [[V]], i32 1)135// CHECK-NEXT: ret void136//137// CPP-CHECK-LABEL: define dso_local void @_Z24test_write_lane_zt_s64_1u11__SVInt64_t(138// CPP-CHECK-SAME: <vscale x 2 x i64> [[V:%.*]]) #[[ATTR0]] {139// CPP-CHECK-NEXT: [[ENTRY:.*:]]140// CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv2i64(i32 0, <vscale x 2 x i64> [[V]], i32 1)141// CPP-CHECK-NEXT: ret void142//143void test_write_lane_zt_s64_1(svint64_t v) __arm_streaming __arm_inout("zt0") {144 SVE_ACLE_FUNC(svwrite_lane_zt, _s64)(0, v, 1);145}146 147// CHECK-LABEL: define dso_local void @test_write_lane_zt_f16_2(148// CHECK-SAME: <vscale x 8 x half> [[V:%.*]]) #[[ATTR0]] {149// CHECK-NEXT: [[ENTRY:.*:]]150// CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv8f16(i32 0, <vscale x 8 x half> [[V]], i32 2)151// CHECK-NEXT: ret void152//153// CPP-CHECK-LABEL: define dso_local void @_Z24test_write_lane_zt_f16_2u13__SVFloat16_t(154// CPP-CHECK-SAME: <vscale x 8 x half> [[V:%.*]]) #[[ATTR0]] {155// CPP-CHECK-NEXT: [[ENTRY:.*:]]156// CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv8f16(i32 0, <vscale x 8 x half> [[V]], i32 2)157// CPP-CHECK-NEXT: ret void158//159void test_write_lane_zt_f16_2(svfloat16_t v) __arm_streaming __arm_inout("zt0") {160 SVE_ACLE_FUNC(svwrite_lane_zt, _f16)(0, v, 2);161}162 163// CHECK-LABEL: define dso_local void @test_write_lane_zt_bf16_3(164// CHECK-SAME: <vscale x 8 x bfloat> [[V:%.*]]) #[[ATTR0]] {165// CHECK-NEXT: [[ENTRY:.*:]]166// CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv8bf16(i32 0, <vscale x 8 x bfloat> [[V]], i32 3)167// CHECK-NEXT: ret void168//169// CPP-CHECK-LABEL: define dso_local void @_Z25test_write_lane_zt_bf16_3u14__SVBfloat16_t(170// CPP-CHECK-SAME: <vscale x 8 x bfloat> [[V:%.*]]) #[[ATTR0]] {171// CPP-CHECK-NEXT: [[ENTRY:.*:]]172// CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv8bf16(i32 0, <vscale x 8 x bfloat> [[V]], i32 3)173// CPP-CHECK-NEXT: ret void174//175void test_write_lane_zt_bf16_3(svbfloat16_t v) __arm_streaming __arm_inout("zt0") {176 SVE_ACLE_FUNC(svwrite_lane_zt, _bf16)(0, v, 3);177}178 179// CHECK-LABEL: define dso_local void @test_write_lane_zt_f32_0(180// CHECK-SAME: <vscale x 4 x float> [[V:%.*]]) #[[ATTR0]] {181// CHECK-NEXT: [[ENTRY:.*:]]182// CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv4f32(i32 0, <vscale x 4 x float> [[V]], i32 2)183// CHECK-NEXT: ret void184//185// CPP-CHECK-LABEL: define dso_local void @_Z24test_write_lane_zt_f32_0u13__SVFloat32_t(186// CPP-CHECK-SAME: <vscale x 4 x float> [[V:%.*]]) #[[ATTR0]] {187// CPP-CHECK-NEXT: [[ENTRY:.*:]]188// CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv4f32(i32 0, <vscale x 4 x float> [[V]], i32 2)189// CPP-CHECK-NEXT: ret void190//191void test_write_lane_zt_f32_0(svfloat32_t v) __arm_streaming __arm_inout("zt0") {192 SVE_ACLE_FUNC(svwrite_lane_zt, _f32)(0, v, 2);193}194 195// CHECK-LABEL: define dso_local void @test_write_lane_zt_f64_1(196// CHECK-SAME: <vscale x 2 x double> [[V:%.*]]) #[[ATTR0]] {197// CHECK-NEXT: [[ENTRY:.*:]]198// CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv2f64(i32 0, <vscale x 2 x double> [[V]], i32 1)199// CHECK-NEXT: ret void200//201// CPP-CHECK-LABEL: define dso_local void @_Z24test_write_lane_zt_f64_1u13__SVFloat64_t(202// CPP-CHECK-SAME: <vscale x 2 x double> [[V:%.*]]) #[[ATTR0]] {203// CPP-CHECK-NEXT: [[ENTRY:.*:]]204// CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.lane.zt.nxv2f64(i32 0, <vscale x 2 x double> [[V]], i32 1)205// CPP-CHECK-NEXT: ret void206//207void test_write_lane_zt_f64_1(svfloat64_t v) __arm_streaming __arm_inout("zt0") {208 SVE_ACLE_FUNC(svwrite_lane_zt, _f64)(0, v, 1);209}210 211//ALIAS212// CHECK-LABEL: define dso_local void @test_write_zt_u8(213// CHECK-SAME: <vscale x 16 x i8> [[V:%.*]]) #[[ATTR2:[0-9]+]] {214// CHECK-NEXT: [[ENTRY:.*:]]215// CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv16i8(i32 0, <vscale x 16 x i8> [[V]])216// CHECK-NEXT: ret void217//218// CPP-CHECK-LABEL: define dso_local void @_Z16test_write_zt_u8u11__SVUint8_t(219// CPP-CHECK-SAME: <vscale x 16 x i8> [[V:%.*]]) #[[ATTR2:[0-9]+]] {220// CPP-CHECK-NEXT: [[ENTRY:.*:]]221// CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv16i8(i32 0, <vscale x 16 x i8> [[V]])222// CPP-CHECK-NEXT: ret void223//224void test_write_zt_u8(svuint8_t v) __arm_streaming __arm_out("zt0") {225 SVE_ACLE_FUNC(svwrite_zt, _u8)(0, v);226}227 228// CHECK-LABEL: define dso_local void @test_write_zt_s8(229// CHECK-SAME: <vscale x 16 x i8> [[V:%.*]]) #[[ATTR2]] {230// CHECK-NEXT: [[ENTRY:.*:]]231// CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv16i8(i32 0, <vscale x 16 x i8> [[V]])232// CHECK-NEXT: ret void233//234// CPP-CHECK-LABEL: define dso_local void @_Z16test_write_zt_s8u10__SVInt8_t(235// CPP-CHECK-SAME: <vscale x 16 x i8> [[V:%.*]]) #[[ATTR2]] {236// CPP-CHECK-NEXT: [[ENTRY:.*:]]237// CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv16i8(i32 0, <vscale x 16 x i8> [[V]])238// CPP-CHECK-NEXT: ret void239//240void test_write_zt_s8(svint8_t v) __arm_streaming __arm_out("zt0") {241 SVE_ACLE_FUNC(svwrite_zt, _s8)(0, v);242}243 244// CHECK-LABEL: define dso_local void @test_write_zt_u16(245// CHECK-SAME: <vscale x 8 x i16> [[V:%.*]]) #[[ATTR2]] {246// CHECK-NEXT: [[ENTRY:.*:]]247// CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv8i16(i32 0, <vscale x 8 x i16> [[V]])248// CHECK-NEXT: ret void249//250// CPP-CHECK-LABEL: define dso_local void @_Z17test_write_zt_u16u12__SVUint16_t(251// CPP-CHECK-SAME: <vscale x 8 x i16> [[V:%.*]]) #[[ATTR2]] {252// CPP-CHECK-NEXT: [[ENTRY:.*:]]253// CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv8i16(i32 0, <vscale x 8 x i16> [[V]])254// CPP-CHECK-NEXT: ret void255//256void test_write_zt_u16(svuint16_t v) __arm_streaming __arm_out("zt0") {257 SVE_ACLE_FUNC(svwrite_zt, _u16)(0, v);258}259 260// CHECK-LABEL: define dso_local void @test_write_zt_s16(261// CHECK-SAME: <vscale x 8 x i16> [[V:%.*]]) #[[ATTR2]] {262// CHECK-NEXT: [[ENTRY:.*:]]263// CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv8i16(i32 0, <vscale x 8 x i16> [[V]])264// CHECK-NEXT: ret void265//266// CPP-CHECK-LABEL: define dso_local void @_Z17test_write_zt_s16u11__SVInt16_t(267// CPP-CHECK-SAME: <vscale x 8 x i16> [[V:%.*]]) #[[ATTR2]] {268// CPP-CHECK-NEXT: [[ENTRY:.*:]]269// CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv8i16(i32 0, <vscale x 8 x i16> [[V]])270// CPP-CHECK-NEXT: ret void271//272void test_write_zt_s16(svint16_t v) __arm_streaming __arm_out("zt0") {273 SVE_ACLE_FUNC(svwrite_zt, _s16)(0, v);274}275 276// CHECK-LABEL: define dso_local void @test_write_zt_u32(277// CHECK-SAME: <vscale x 4 x i32> [[V:%.*]]) #[[ATTR2]] {278// CHECK-NEXT: [[ENTRY:.*:]]279// CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv4i32(i32 0, <vscale x 4 x i32> [[V]])280// CHECK-NEXT: ret void281//282// CPP-CHECK-LABEL: define dso_local void @_Z17test_write_zt_u32u12__SVUint32_t(283// CPP-CHECK-SAME: <vscale x 4 x i32> [[V:%.*]]) #[[ATTR2]] {284// CPP-CHECK-NEXT: [[ENTRY:.*:]]285// CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv4i32(i32 0, <vscale x 4 x i32> [[V]])286// CPP-CHECK-NEXT: ret void287//288void test_write_zt_u32(svuint32_t v) __arm_streaming __arm_out("zt0") {289 SVE_ACLE_FUNC(svwrite_zt, _u32)(0, v);290}291 292// CHECK-LABEL: define dso_local void @test_write_zt_s32(293// CHECK-SAME: <vscale x 4 x i32> [[V:%.*]]) #[[ATTR2]] {294// CHECK-NEXT: [[ENTRY:.*:]]295// CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv4i32(i32 0, <vscale x 4 x i32> [[V]])296// CHECK-NEXT: ret void297//298// CPP-CHECK-LABEL: define dso_local void @_Z17test_write_zt_s32u11__SVInt32_t(299// CPP-CHECK-SAME: <vscale x 4 x i32> [[V:%.*]]) #[[ATTR2]] {300// CPP-CHECK-NEXT: [[ENTRY:.*:]]301// CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv4i32(i32 0, <vscale x 4 x i32> [[V]])302// CPP-CHECK-NEXT: ret void303//304void test_write_zt_s32(svint32_t v) __arm_streaming __arm_out("zt0") {305 SVE_ACLE_FUNC(svwrite_zt, _s32)(0, v);306}307 308// CHECK-LABEL: define dso_local void @test_write_zt_u64(309// CHECK-SAME: <vscale x 2 x i64> [[V:%.*]]) #[[ATTR2]] {310// CHECK-NEXT: [[ENTRY:.*:]]311// CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv2i64(i32 0, <vscale x 2 x i64> [[V]])312// CHECK-NEXT: ret void313//314// CPP-CHECK-LABEL: define dso_local void @_Z17test_write_zt_u64u12__SVUint64_t(315// CPP-CHECK-SAME: <vscale x 2 x i64> [[V:%.*]]) #[[ATTR2]] {316// CPP-CHECK-NEXT: [[ENTRY:.*:]]317// CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv2i64(i32 0, <vscale x 2 x i64> [[V]])318// CPP-CHECK-NEXT: ret void319//320void test_write_zt_u64(svuint64_t v) __arm_streaming __arm_out("zt0") {321 SVE_ACLE_FUNC(svwrite_zt, _u64)(0, v);322}323 324// CHECK-LABEL: define dso_local void @test_write_zt_s64(325// CHECK-SAME: <vscale x 2 x i64> [[V:%.*]]) #[[ATTR2]] {326// CHECK-NEXT: [[ENTRY:.*:]]327// CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv2i64(i32 0, <vscale x 2 x i64> [[V]])328// CHECK-NEXT: ret void329//330// CPP-CHECK-LABEL: define dso_local void @_Z17test_write_zt_s64u11__SVInt64_t(331// CPP-CHECK-SAME: <vscale x 2 x i64> [[V:%.*]]) #[[ATTR2]] {332// CPP-CHECK-NEXT: [[ENTRY:.*:]]333// CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv2i64(i32 0, <vscale x 2 x i64> [[V]])334// CPP-CHECK-NEXT: ret void335//336void test_write_zt_s64(svint64_t v) __arm_streaming __arm_out("zt0") {337 SVE_ACLE_FUNC(svwrite_zt, _s64)(0, v);338}339 340// CHECK-LABEL: define dso_local void @test_write_zt_f16(341// CHECK-SAME: <vscale x 8 x half> [[V:%.*]]) #[[ATTR2]] {342// CHECK-NEXT: [[ENTRY:.*:]]343// CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv8f16(i32 0, <vscale x 8 x half> [[V]])344// CHECK-NEXT: ret void345//346// CPP-CHECK-LABEL: define dso_local void @_Z17test_write_zt_f16u13__SVFloat16_t(347// CPP-CHECK-SAME: <vscale x 8 x half> [[V:%.*]]) #[[ATTR2]] {348// CPP-CHECK-NEXT: [[ENTRY:.*:]]349// CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv8f16(i32 0, <vscale x 8 x half> [[V]])350// CPP-CHECK-NEXT: ret void351//352void test_write_zt_f16(svfloat16_t v) __arm_streaming __arm_out("zt0") {353 SVE_ACLE_FUNC(svwrite_zt, _f16)(0, v);354}355 356// CHECK-LABEL: define dso_local void @test_write_zt_bf16(357// CHECK-SAME: <vscale x 8 x bfloat> [[V:%.*]]) #[[ATTR2]] {358// CHECK-NEXT: [[ENTRY:.*:]]359// CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv8bf16(i32 0, <vscale x 8 x bfloat> [[V]])360// CHECK-NEXT: ret void361//362// CPP-CHECK-LABEL: define dso_local void @_Z18test_write_zt_bf16u14__SVBfloat16_t(363// CPP-CHECK-SAME: <vscale x 8 x bfloat> [[V:%.*]]) #[[ATTR2]] {364// CPP-CHECK-NEXT: [[ENTRY:.*:]]365// CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv8bf16(i32 0, <vscale x 8 x bfloat> [[V]])366// CPP-CHECK-NEXT: ret void367//368void test_write_zt_bf16(svbfloat16_t v) __arm_streaming __arm_out("zt0") {369 SVE_ACLE_FUNC(svwrite_zt, _bf16)(0, v);370}371 372// CHECK-LABEL: define dso_local void @test_write_zt_f32(373// CHECK-SAME: <vscale x 4 x float> [[V:%.*]]) #[[ATTR2]] {374// CHECK-NEXT: [[ENTRY:.*:]]375// CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv4f32(i32 0, <vscale x 4 x float> [[V]])376// CHECK-NEXT: ret void377//378// CPP-CHECK-LABEL: define dso_local void @_Z17test_write_zt_f32u13__SVFloat32_t(379// CPP-CHECK-SAME: <vscale x 4 x float> [[V:%.*]]) #[[ATTR2]] {380// CPP-CHECK-NEXT: [[ENTRY:.*:]]381// CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv4f32(i32 0, <vscale x 4 x float> [[V]])382// CPP-CHECK-NEXT: ret void383//384void test_write_zt_f32(svfloat32_t v) __arm_streaming __arm_out("zt0") {385 SVE_ACLE_FUNC(svwrite_zt, _f32)(0, v);386}387 388// CHECK-LABEL: define dso_local void @test_write__zt_f64(389// CHECK-SAME: <vscale x 2 x double> [[V:%.*]]) #[[ATTR2]] {390// CHECK-NEXT: [[ENTRY:.*:]]391// CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv2f64(i32 0, <vscale x 2 x double> [[V]])392// CHECK-NEXT: ret void393//394// CPP-CHECK-LABEL: define dso_local void @_Z18test_write__zt_f64u13__SVFloat64_t(395// CPP-CHECK-SAME: <vscale x 2 x double> [[V:%.*]]) #[[ATTR2]] {396// CPP-CHECK-NEXT: [[ENTRY:.*:]]397// CPP-CHECK-NEXT: tail call void @llvm.aarch64.sme.write.zt.nxv2f64(i32 0, <vscale x 2 x double> [[V]])398// CPP-CHECK-NEXT: ret void399//400void test_write__zt_f64(svfloat64_t v) __arm_streaming __arm_out("zt0") {401 SVE_ACLE_FUNC(svwrite_zt, _f64)(0, v);402}403