brintos

brintos / llvm-project-archived public Read only

0
0
Text · 23.6 KiB · 3f2a79d Raw
466 lines · c
1// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py2 3// REQUIRES: aarch64-registered-target4// RUN: %clang_cc1 -triple aarch64 -target-feature +sme-mop4 -target-feature +sme-f16f16 -target-feature +sme-i16i64 -target-feature +sme-b16b16 -target-feature +sme-f64f64 -target-feature +sme -target-feature +sme2 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s5// RUN: %clang_cc1 -triple aarch64 -target-feature +sme-mop4 -target-feature +sme-f16f16 -target-feature +sme-i16i64 -target-feature +sme-b16b16 -target-feature +sme-f64f64 -target-feature +sme -target-feature +sme2 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK6// RUN: %clang_cc1 -DSME_OVERLOADED_FORMS -triple aarch64 -target-feature +sme-mop4 -target-feature +sme-f16f16 -target-feature +sme-i16i64 -target-feature +sme-b16b16 -target-feature +sme-f64f64 -target-feature +sme -target-feature +sme2 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s7// RUN: %clang_cc1 -DSME_OVERLOADED_FORMS -triple aarch64 -target-feature +sme-mop4 -target-feature +sme-f16f16 -target-feature +sme-i16i64 -target-feature +sme-b16b16 -target-feature +sme-f64f64 -target-feature +sme -target-feature +sme2 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK8// RUN: %clang_cc1 -triple aarch64 -target-feature +sme-mop4 -target-feature +sme-f16f16 -target-feature +sme-i16i64 -target-feature +sme-b16b16 -target-feature +sme-f64f64 -target-feature +sme -target-feature +sme2 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s9 10 11#include <arm_sme.h>12 13#ifdef SME_OVERLOADED_FORMS14#define SME_ACLE_FUNC(A1,A2_UNUSED,A3, A4_UNUSED) A1##A315#else16#define SME_ACLE_FUNC(A1,A2,A3,A4) A1##A2##A3##A417#endif18 19// CHECK-LABEL: @test_svmop4a_1x1_za32_s8_s8(20// CHECK-NEXT:  entry:21// CHECK-NEXT:    tail call void @llvm.aarch64.sme.smop4a.wide.1x1.nxv16i8(i32 1, <vscale x 16 x i8> [[ZN:%.*]], <vscale x 16 x i8> [[ZM:%.*]])22// CHECK-NEXT:    ret void23//24// CPP-CHECK-LABEL: @_Z27test_svmop4a_1x1_za32_s8_s8u10__SVInt8_tS_(25// CPP-CHECK-NEXT:  entry:26// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.smop4a.wide.1x1.nxv16i8(i32 1, <vscale x 16 x i8> [[ZN:%.*]], <vscale x 16 x i8> [[ZM:%.*]])27// CPP-CHECK-NEXT:    ret void28//29void test_svmop4a_1x1_za32_s8_s8(svint8_t zn, svint8_t zm) __arm_streaming __arm_inout("za") {30  SME_ACLE_FUNC(svmop4a,_1x1,_za32,_s8_s8)(1, zn, zm);31}32 33// CHECK-LABEL: @test_svmop4s_1x1_za32_s8_s8(34// CHECK-NEXT:  entry:35// CHECK-NEXT:    tail call void @llvm.aarch64.sme.smop4s.wide.1x1.nxv16i8(i32 1, <vscale x 16 x i8> [[ZN:%.*]], <vscale x 16 x i8> [[ZM:%.*]])36// CHECK-NEXT:    ret void37//38// CPP-CHECK-LABEL: @_Z27test_svmop4s_1x1_za32_s8_s8u10__SVInt8_tS_(39// CPP-CHECK-NEXT:  entry:40// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.smop4s.wide.1x1.nxv16i8(i32 1, <vscale x 16 x i8> [[ZN:%.*]], <vscale x 16 x i8> [[ZM:%.*]])41// CPP-CHECK-NEXT:    ret void42//43void test_svmop4s_1x1_za32_s8_s8(svint8_t zn, svint8_t zm) __arm_streaming __arm_inout("za") {44  SME_ACLE_FUNC(svmop4s,_1x1,_za32,_s8_s8)(1, zn, zm);45}46 47// CHECK-LABEL: @test_svmop4a_1x1_za32_u8_u8(48// CHECK-NEXT:  entry:49// CHECK-NEXT:    tail call void @llvm.aarch64.sme.umop4a.wide.1x1.nxv16i8(i32 1, <vscale x 16 x i8> [[ZN:%.*]], <vscale x 16 x i8> [[ZM:%.*]])50// CHECK-NEXT:    ret void51//52// CPP-CHECK-LABEL: @_Z27test_svmop4a_1x1_za32_u8_u8u11__SVUint8_tS_(53// CPP-CHECK-NEXT:  entry:54// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.umop4a.wide.1x1.nxv16i8(i32 1, <vscale x 16 x i8> [[ZN:%.*]], <vscale x 16 x i8> [[ZM:%.*]])55// CPP-CHECK-NEXT:    ret void56//57void test_svmop4a_1x1_za32_u8_u8(svuint8_t zn, svuint8_t zm) __arm_streaming __arm_inout("za") {58  SME_ACLE_FUNC(svmop4a,_1x1,_za32,_u8_u8)(1, zn, zm);59}60 61// CHECK-LABEL: @test_svmop4s_1x1_za32_u8_u8(62// CHECK-NEXT:  entry:63// CHECK-NEXT:    tail call void @llvm.aarch64.sme.umop4s.wide.1x1.nxv16i8(i32 1, <vscale x 16 x i8> [[ZN:%.*]], <vscale x 16 x i8> [[ZM:%.*]])64// CHECK-NEXT:    ret void65//66// CPP-CHECK-LABEL: @_Z27test_svmop4s_1x1_za32_u8_u8u11__SVUint8_tS_(67// CPP-CHECK-NEXT:  entry:68// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.umop4s.wide.1x1.nxv16i8(i32 1, <vscale x 16 x i8> [[ZN:%.*]], <vscale x 16 x i8> [[ZM:%.*]])69// CPP-CHECK-NEXT:    ret void70//71void test_svmop4s_1x1_za32_u8_u8(svuint8_t zn, svuint8_t zm) __arm_streaming __arm_inout("za") {72  SME_ACLE_FUNC(svmop4s,_1x1,_za32,_u8_u8)(1, zn, zm);73}74 75// CHECK-LABEL: @test_svmop4a_1x1_za32_s8_u8(76// CHECK-NEXT:  entry:77// CHECK-NEXT:    tail call void @llvm.aarch64.sme.sumop4a.wide.1x1.nxv16i8(i32 1, <vscale x 16 x i8> [[ZN:%.*]], <vscale x 16 x i8> [[ZM:%.*]])78// CHECK-NEXT:    ret void79//80// CPP-CHECK-LABEL: @_Z27test_svmop4a_1x1_za32_s8_u8u10__SVInt8_tu11__SVUint8_t(81// CPP-CHECK-NEXT:  entry:82// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.sumop4a.wide.1x1.nxv16i8(i32 1, <vscale x 16 x i8> [[ZN:%.*]], <vscale x 16 x i8> [[ZM:%.*]])83// CPP-CHECK-NEXT:    ret void84//85void test_svmop4a_1x1_za32_s8_u8(svint8_t zn, svuint8_t zm) __arm_streaming __arm_inout("za") {86  SME_ACLE_FUNC(svmop4a,_1x1,_za32,_s8_u8)(1, zn, zm);87}88 89// CHECK-LABEL: @test_svmop4s_1x1_za32_s8_u8(90// CHECK-NEXT:  entry:91// CHECK-NEXT:    tail call void @llvm.aarch64.sme.sumop4s.wide.1x1.nxv16i8(i32 1, <vscale x 16 x i8> [[ZN:%.*]], <vscale x 16 x i8> [[ZM:%.*]])92// CHECK-NEXT:    ret void93//94// CPP-CHECK-LABEL: @_Z27test_svmop4s_1x1_za32_s8_u8u10__SVInt8_tu11__SVUint8_t(95// CPP-CHECK-NEXT:  entry:96// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.sumop4s.wide.1x1.nxv16i8(i32 1, <vscale x 16 x i8> [[ZN:%.*]], <vscale x 16 x i8> [[ZM:%.*]])97// CPP-CHECK-NEXT:    ret void98//99void test_svmop4s_1x1_za32_s8_u8(svint8_t zn, svuint8_t zm) __arm_streaming __arm_inout("za") {100  SME_ACLE_FUNC(svmop4s,_1x1,_za32,_s8_u8)(1, zn, zm);101}102 103// CHECK-LABEL: @test_svmop4a_1x1_za32_u8_s8(104// CHECK-NEXT:  entry:105// CHECK-NEXT:    tail call void @llvm.aarch64.sme.usmop4a.wide.1x1.nxv16i8(i32 1, <vscale x 16 x i8> [[ZN:%.*]], <vscale x 16 x i8> [[ZM:%.*]])106// CHECK-NEXT:    ret void107//108// CPP-CHECK-LABEL: @_Z27test_svmop4a_1x1_za32_u8_s8u11__SVUint8_tu10__SVInt8_t(109// CPP-CHECK-NEXT:  entry:110// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.usmop4a.wide.1x1.nxv16i8(i32 1, <vscale x 16 x i8> [[ZN:%.*]], <vscale x 16 x i8> [[ZM:%.*]])111// CPP-CHECK-NEXT:    ret void112//113void test_svmop4a_1x1_za32_u8_s8(svuint8_t zn, svint8_t zm) __arm_streaming __arm_inout("za") {114  SME_ACLE_FUNC(svmop4a,_1x1,_za32,_u8_s8)(1, zn, zm);115}116 117// CHECK-LABEL: @test_svmop4s_1x1_za32_u8_s8(118// CHECK-NEXT:  entry:119// CHECK-NEXT:    tail call void @llvm.aarch64.sme.usmop4s.wide.1x1.nxv16i8(i32 1, <vscale x 16 x i8> [[ZN:%.*]], <vscale x 16 x i8> [[ZM:%.*]])120// CHECK-NEXT:    ret void121//122// CPP-CHECK-LABEL: @_Z27test_svmop4s_1x1_za32_u8_s8u11__SVUint8_tu10__SVInt8_t(123// CPP-CHECK-NEXT:  entry:124// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.usmop4s.wide.1x1.nxv16i8(i32 1, <vscale x 16 x i8> [[ZN:%.*]], <vscale x 16 x i8> [[ZM:%.*]])125// CPP-CHECK-NEXT:    ret void126//127void test_svmop4s_1x1_za32_u8_s8(svuint8_t zn, svint8_t zm) __arm_streaming __arm_inout("za") {128  SME_ACLE_FUNC(svmop4s,_1x1,_za32,_u8_s8)(1, zn, zm);129}130 131// CHECK-LABEL: @test_svmop4a_1x1_za32_s16_s16(132// CHECK-NEXT:  entry:133// CHECK-NEXT:    tail call void @llvm.aarch64.sme.smop4a.wide.1x1.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN:%.*]], <vscale x 8 x i16> [[ZM:%.*]])134// CHECK-NEXT:    ret void135//136// CPP-CHECK-LABEL: @_Z29test_svmop4a_1x1_za32_s16_s16u11__SVInt16_tS_(137// CPP-CHECK-NEXT:  entry:138// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.smop4a.wide.1x1.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN:%.*]], <vscale x 8 x i16> [[ZM:%.*]])139// CPP-CHECK-NEXT:    ret void140//141void test_svmop4a_1x1_za32_s16_s16(svint16_t zn, svint16_t zm) __arm_streaming __arm_inout("za") {142  SME_ACLE_FUNC(svmop4a,_1x1,_za32,_s16_s16)(1, zn, zm);143}144 145// CHECK-LABEL: @test_svmop4s_1x1_za32_s16_s16(146// CHECK-NEXT:  entry:147// CHECK-NEXT:    tail call void @llvm.aarch64.sme.smop4s.wide.1x1.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN:%.*]], <vscale x 8 x i16> [[ZM:%.*]])148// CHECK-NEXT:    ret void149//150// CPP-CHECK-LABEL: @_Z29test_svmop4s_1x1_za32_s16_s16u11__SVInt16_tS_(151// CPP-CHECK-NEXT:  entry:152// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.smop4s.wide.1x1.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN:%.*]], <vscale x 8 x i16> [[ZM:%.*]])153// CPP-CHECK-NEXT:    ret void154//155void test_svmop4s_1x1_za32_s16_s16(svint16_t zn, svint16_t zm) __arm_streaming __arm_inout("za") {156  SME_ACLE_FUNC(svmop4s,_1x1,_za32,_s16_s16)(1, zn, zm);157}158 159// CHECK-LABEL: @test_svmop4a_1x1_za32_u16_u16(160// CHECK-NEXT:  entry:161// CHECK-NEXT:    tail call void @llvm.aarch64.sme.umop4a.wide.1x1.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN:%.*]], <vscale x 8 x i16> [[ZM:%.*]])162// CHECK-NEXT:    ret void163//164// CPP-CHECK-LABEL: @_Z29test_svmop4a_1x1_za32_u16_u16u12__SVUint16_tS_(165// CPP-CHECK-NEXT:  entry:166// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.umop4a.wide.1x1.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN:%.*]], <vscale x 8 x i16> [[ZM:%.*]])167// CPP-CHECK-NEXT:    ret void168//169void test_svmop4a_1x1_za32_u16_u16(svuint16_t zn, svuint16_t zm) __arm_streaming __arm_inout("za") {170  SME_ACLE_FUNC(svmop4a,_1x1,_za32,_u16_u16)(1, zn, zm);171}172 173// CHECK-LABEL: @test_svmop4s_1x1_za32_u16_u16(174// CHECK-NEXT:  entry:175// CHECK-NEXT:    tail call void @llvm.aarch64.sme.umop4s.wide.1x1.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN:%.*]], <vscale x 8 x i16> [[ZM:%.*]])176// CHECK-NEXT:    ret void177//178// CPP-CHECK-LABEL: @_Z29test_svmop4s_1x1_za32_u16_u16u12__SVUint16_tS_(179// CPP-CHECK-NEXT:  entry:180// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.umop4s.wide.1x1.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN:%.*]], <vscale x 8 x i16> [[ZM:%.*]])181// CPP-CHECK-NEXT:    ret void182//183void test_svmop4s_1x1_za32_u16_u16(svuint16_t zn, svuint16_t zm) __arm_streaming __arm_inout("za") {184  SME_ACLE_FUNC(svmop4s,_1x1,_za32,_u16_u16)(1, zn, zm);185}186 187// CHECK-LABEL: @test_svmop4a_1x1_za32_f16_f16(188// CHECK-NEXT:  entry:189// CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4a.wide.1x1.nxv8f16(i32 1, <vscale x 8 x half> [[ZN:%.*]], <vscale x 8 x half> [[ZM:%.*]])190// CHECK-NEXT:    ret void191//192// CPP-CHECK-LABEL: @_Z29test_svmop4a_1x1_za32_f16_f16u13__SVFloat16_tS_(193// CPP-CHECK-NEXT:  entry:194// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4a.wide.1x1.nxv8f16(i32 1, <vscale x 8 x half> [[ZN:%.*]], <vscale x 8 x half> [[ZM:%.*]])195// CPP-CHECK-NEXT:    ret void196//197void test_svmop4a_1x1_za32_f16_f16(svfloat16_t zn, svfloat16_t zm) __arm_streaming __arm_inout("za") {198  SME_ACLE_FUNC(svmop4a,_1x1,_za32,_f16_f16)(1, zn, zm);199}200 201// CHECK-LABEL: @test_svmop4s_1x1_za32_f16_f16(202// CHECK-NEXT:  entry:203// CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4s.wide.1x1.nxv8f16(i32 1, <vscale x 8 x half> [[ZN:%.*]], <vscale x 8 x half> [[ZM:%.*]])204// CHECK-NEXT:    ret void205//206// CPP-CHECK-LABEL: @_Z29test_svmop4s_1x1_za32_f16_f16u13__SVFloat16_tS_(207// CPP-CHECK-NEXT:  entry:208// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4s.wide.1x1.nxv8f16(i32 1, <vscale x 8 x half> [[ZN:%.*]], <vscale x 8 x half> [[ZM:%.*]])209// CPP-CHECK-NEXT:    ret void210//211void test_svmop4s_1x1_za32_f16_f16(svfloat16_t zn, svfloat16_t zm) __arm_streaming __arm_inout("za") {212  SME_ACLE_FUNC(svmop4s,_1x1,_za32,_f16_f16)(1, zn, zm);213}214 215// CHECK-LABEL: @test_svmop4a_1x1_za32_bf16_bf16(216// CHECK-NEXT:  entry:217// CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4a.wide.1x1.nxv8bf16(i32 1, <vscale x 8 x bfloat> [[ZN:%.*]], <vscale x 8 x bfloat> [[ZM:%.*]])218// CHECK-NEXT:    ret void219//220// CPP-CHECK-LABEL: @_Z31test_svmop4a_1x1_za32_bf16_bf16u14__SVBfloat16_tS_(221// CPP-CHECK-NEXT:  entry:222// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4a.wide.1x1.nxv8bf16(i32 1, <vscale x 8 x bfloat> [[ZN:%.*]], <vscale x 8 x bfloat> [[ZM:%.*]])223// CPP-CHECK-NEXT:    ret void224//225void test_svmop4a_1x1_za32_bf16_bf16(svbfloat16_t zn, svbfloat16_t zm) __arm_streaming __arm_inout("za") {226  SME_ACLE_FUNC(svmop4a,_1x1,_za32,_bf16_bf16)(1, zn, zm);227}228 229// CHECK-LABEL: @test_svmop4s_1x1_za32_bf16_bf16(230// CHECK-NEXT:  entry:231// CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4s.wide.1x1.nxv8bf16(i32 1, <vscale x 8 x bfloat> [[ZN:%.*]], <vscale x 8 x bfloat> [[ZM:%.*]])232// CHECK-NEXT:    ret void233//234// CPP-CHECK-LABEL: @_Z31test_svmop4s_1x1_za32_bf16_bf16u14__SVBfloat16_tS_(235// CPP-CHECK-NEXT:  entry:236// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4s.wide.1x1.nxv8bf16(i32 1, <vscale x 8 x bfloat> [[ZN:%.*]], <vscale x 8 x bfloat> [[ZM:%.*]])237// CPP-CHECK-NEXT:    ret void238//239void test_svmop4s_1x1_za32_bf16_bf16(svbfloat16_t zn, svbfloat16_t zm) __arm_streaming __arm_inout("za") {240  SME_ACLE_FUNC(svmop4s,_1x1,_za32,_bf16_bf16)(1, zn, zm);241}242 243// CHECK-LABEL: @test_svmop4a_1x1_za64_s16_s16(244// CHECK-NEXT:  entry:245// CHECK-NEXT:    tail call void @llvm.aarch64.sme.smop4a.za64.wide.1x1.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN:%.*]], <vscale x 8 x i16> [[ZM:%.*]])246// CHECK-NEXT:    ret void247//248// CPP-CHECK-LABEL: @_Z29test_svmop4a_1x1_za64_s16_s16u11__SVInt16_tS_(249// CPP-CHECK-NEXT:  entry:250// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.smop4a.za64.wide.1x1.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN:%.*]], <vscale x 8 x i16> [[ZM:%.*]])251// CPP-CHECK-NEXT:    ret void252//253void test_svmop4a_1x1_za64_s16_s16(svint16_t zn, svint16_t zm) __arm_streaming __arm_inout("za") {254  SME_ACLE_FUNC(svmop4a,_1x1,_za64,_s16_s16)(1, zn, zm);255}256 257// CHECK-LABEL: @test_svmop4s_1x1_za64_s16_s16(258// CHECK-NEXT:  entry:259// CHECK-NEXT:    tail call void @llvm.aarch64.sme.smop4s.za64.wide.1x1.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN:%.*]], <vscale x 8 x i16> [[ZM:%.*]])260// CHECK-NEXT:    ret void261//262// CPP-CHECK-LABEL: @_Z29test_svmop4s_1x1_za64_s16_s16u11__SVInt16_tS_(263// CPP-CHECK-NEXT:  entry:264// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.smop4s.za64.wide.1x1.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN:%.*]], <vscale x 8 x i16> [[ZM:%.*]])265// CPP-CHECK-NEXT:    ret void266//267void test_svmop4s_1x1_za64_s16_s16(svint16_t zn, svint16_t zm) __arm_streaming __arm_inout("za") {268  SME_ACLE_FUNC(svmop4s,_1x1,_za64,_s16_s16)(1, zn, zm);269}270 271// CHECK-LABEL: @test_svmop4a_1x1_za64_u16_u16(272// CHECK-NEXT:  entry:273// CHECK-NEXT:    tail call void @llvm.aarch64.sme.umop4a.za64.wide.1x1.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN:%.*]], <vscale x 8 x i16> [[ZM:%.*]])274// CHECK-NEXT:    ret void275//276// CPP-CHECK-LABEL: @_Z29test_svmop4a_1x1_za64_u16_u16u12__SVUint16_tS_(277// CPP-CHECK-NEXT:  entry:278// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.umop4a.za64.wide.1x1.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN:%.*]], <vscale x 8 x i16> [[ZM:%.*]])279// CPP-CHECK-NEXT:    ret void280//281void test_svmop4a_1x1_za64_u16_u16(svuint16_t zn, svuint16_t zm) __arm_streaming __arm_inout("za") {282  SME_ACLE_FUNC(svmop4a,_1x1,_za64,_u16_u16)(1, zn, zm);283}284 285// CHECK-LABEL: @test_svmop4s_1x1_za64_u16_u16(286// CHECK-NEXT:  entry:287// CHECK-NEXT:    tail call void @llvm.aarch64.sme.umop4s.za64.wide.1x1.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN:%.*]], <vscale x 8 x i16> [[ZM:%.*]])288// CHECK-NEXT:    ret void289//290// CPP-CHECK-LABEL: @_Z29test_svmop4s_1x1_za64_u16_u16u12__SVUint16_tS_(291// CPP-CHECK-NEXT:  entry:292// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.umop4s.za64.wide.1x1.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN:%.*]], <vscale x 8 x i16> [[ZM:%.*]])293// CPP-CHECK-NEXT:    ret void294//295void test_svmop4s_1x1_za64_u16_u16(svuint16_t zn, svuint16_t zm) __arm_streaming __arm_inout("za") {296  SME_ACLE_FUNC(svmop4s,_1x1,_za64,_u16_u16)(1, zn, zm);297}298 299// CHECK-LABEL: @test_svmop4a_1x1_za64_s16_u16(300// CHECK-NEXT:  entry:301// CHECK-NEXT:    tail call void @llvm.aarch64.sme.sumop4a.za64.wide.1x1.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN:%.*]], <vscale x 8 x i16> [[ZM:%.*]])302// CHECK-NEXT:    ret void303//304// CPP-CHECK-LABEL: @_Z29test_svmop4a_1x1_za64_s16_u16u11__SVInt16_tu12__SVUint16_t(305// CPP-CHECK-NEXT:  entry:306// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.sumop4a.za64.wide.1x1.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN:%.*]], <vscale x 8 x i16> [[ZM:%.*]])307// CPP-CHECK-NEXT:    ret void308//309void test_svmop4a_1x1_za64_s16_u16(svint16_t zn, svuint16_t zm) __arm_streaming __arm_inout("za") {310  SME_ACLE_FUNC(svmop4a,_1x1,_za64,_s16_u16)(1, zn, zm);311}312 313// CHECK-LABEL: @test_svmop4s_1x1_za64_s16_u16(314// CHECK-NEXT:  entry:315// CHECK-NEXT:    tail call void @llvm.aarch64.sme.sumop4s.za64.wide.1x1.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN:%.*]], <vscale x 8 x i16> [[ZM:%.*]])316// CHECK-NEXT:    ret void317//318// CPP-CHECK-LABEL: @_Z29test_svmop4s_1x1_za64_s16_u16u11__SVInt16_tu12__SVUint16_t(319// CPP-CHECK-NEXT:  entry:320// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.sumop4s.za64.wide.1x1.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN:%.*]], <vscale x 8 x i16> [[ZM:%.*]])321// CPP-CHECK-NEXT:    ret void322//323void test_svmop4s_1x1_za64_s16_u16(svint16_t zn, svuint16_t zm) __arm_streaming __arm_inout("za") {324  SME_ACLE_FUNC(svmop4s,_1x1,_za64,_s16_u16)(1, zn, zm);325}326 327// CHECK-LABEL: @test_svmop4a_1x1_za64_u16_s16(328// CHECK-NEXT:  entry:329// CHECK-NEXT:    tail call void @llvm.aarch64.sme.usmop4a.za64.wide.1x1.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN:%.*]], <vscale x 8 x i16> [[ZM:%.*]])330// CHECK-NEXT:    ret void331//332// CPP-CHECK-LABEL: @_Z29test_svmop4a_1x1_za64_u16_s16u12__SVUint16_tu11__SVInt16_t(333// CPP-CHECK-NEXT:  entry:334// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.usmop4a.za64.wide.1x1.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN:%.*]], <vscale x 8 x i16> [[ZM:%.*]])335// CPP-CHECK-NEXT:    ret void336//337void test_svmop4a_1x1_za64_u16_s16(svuint16_t zn, svint16_t zm) __arm_streaming __arm_inout("za") {338  SME_ACLE_FUNC(svmop4a,_1x1,_za64,_u16_s16)(1, zn, zm);339}340 341// CHECK-LABEL: @test_svmop4s_1x1_za64_u16_s16(342// CHECK-NEXT:  entry:343// CHECK-NEXT:    tail call void @llvm.aarch64.sme.usmop4s.za64.wide.1x1.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN:%.*]], <vscale x 8 x i16> [[ZM:%.*]])344// CHECK-NEXT:    ret void345//346// CPP-CHECK-LABEL: @_Z29test_svmop4s_1x1_za64_u16_s16u12__SVUint16_tu11__SVInt16_t(347// CPP-CHECK-NEXT:  entry:348// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.usmop4s.za64.wide.1x1.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN:%.*]], <vscale x 8 x i16> [[ZM:%.*]])349// CPP-CHECK-NEXT:    ret void350//351void test_svmop4s_1x1_za64_u16_s16(svuint16_t zn, svint16_t zm) __arm_streaming __arm_inout("za") {352  SME_ACLE_FUNC(svmop4s,_1x1,_za64,_u16_s16)(1, zn, zm);353}354 355// CHECK-LABEL: @test_svmop4a_1x1_za16_f16_f16(356// CHECK-NEXT:  entry:357// CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4a.1x1.nxv8f16(i32 1, <vscale x 8 x half> [[ZN:%.*]], <vscale x 8 x half> [[ZM:%.*]])358// CHECK-NEXT:    ret void359//360// CPP-CHECK-LABEL: @_Z29test_svmop4a_1x1_za16_f16_f16u13__SVFloat16_tS_(361// CPP-CHECK-NEXT:  entry:362// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4a.1x1.nxv8f16(i32 1, <vscale x 8 x half> [[ZN:%.*]], <vscale x 8 x half> [[ZM:%.*]])363// CPP-CHECK-NEXT:    ret void364//365void test_svmop4a_1x1_za16_f16_f16(svfloat16_t zn, svfloat16_t zm) __arm_streaming __arm_inout("za") {366  SME_ACLE_FUNC(svmop4a,_1x1,_za16,_f16_f16)(1, zn, zm);367}368 369// CHECK-LABEL: @test_svmop4s_1x1_za16_f16_f16(370// CHECK-NEXT:  entry:371// CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4s.1x1.nxv8f16(i32 1, <vscale x 8 x half> [[ZN:%.*]], <vscale x 8 x half> [[ZM:%.*]])372// CHECK-NEXT:    ret void373//374// CPP-CHECK-LABEL: @_Z29test_svmop4s_1x1_za16_f16_f16u13__SVFloat16_tS_(375// CPP-CHECK-NEXT:  entry:376// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4s.1x1.nxv8f16(i32 1, <vscale x 8 x half> [[ZN:%.*]], <vscale x 8 x half> [[ZM:%.*]])377// CPP-CHECK-NEXT:    ret void378//379void test_svmop4s_1x1_za16_f16_f16(svfloat16_t zn, svfloat16_t zm) __arm_streaming __arm_inout("za") {380  SME_ACLE_FUNC(svmop4s,_1x1,_za16,_f16_f16)(1, zn, zm);381}382 383// CHECK-LABEL: @test_svmop4a_1x1_za32_f32_f32(384// CHECK-NEXT:  entry:385// CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4a.1x1.nxv4f32(i32 1, <vscale x 4 x float> [[ZN:%.*]], <vscale x 4 x float> [[ZM:%.*]])386// CHECK-NEXT:    ret void387//388// CPP-CHECK-LABEL: @_Z29test_svmop4a_1x1_za32_f32_f32u13__SVFloat32_tS_(389// CPP-CHECK-NEXT:  entry:390// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4a.1x1.nxv4f32(i32 1, <vscale x 4 x float> [[ZN:%.*]], <vscale x 4 x float> [[ZM:%.*]])391// CPP-CHECK-NEXT:    ret void392//393void test_svmop4a_1x1_za32_f32_f32(svfloat32_t zn, svfloat32_t zm) __arm_streaming __arm_inout("za") {394  SME_ACLE_FUNC(svmop4a,_1x1,_za32,_f32_f32)(1, zn, zm);395}396 397// CHECK-LABEL: @test_svmop4s_1x1_za32_f32_f32(398// CHECK-NEXT:  entry:399// CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4s.1x1.nxv4f32(i32 1, <vscale x 4 x float> [[ZN:%.*]], <vscale x 4 x float> [[ZM:%.*]])400// CHECK-NEXT:    ret void401//402// CPP-CHECK-LABEL: @_Z29test_svmop4s_1x1_za32_f32_f32u13__SVFloat32_tS_(403// CPP-CHECK-NEXT:  entry:404// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4s.1x1.nxv4f32(i32 1, <vscale x 4 x float> [[ZN:%.*]], <vscale x 4 x float> [[ZM:%.*]])405// CPP-CHECK-NEXT:    ret void406//407void test_svmop4s_1x1_za32_f32_f32(svfloat32_t zn, svfloat32_t zm) __arm_streaming __arm_inout("za") {408  SME_ACLE_FUNC(svmop4s,_1x1,_za32,_f32_f32)(1, zn, zm);409}410 411// CHECK-LABEL: @test_svmop4a_1x1_za64_f64_f64(412// CHECK-NEXT:  entry:413// CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4a.1x1.nxv2f64(i32 1, <vscale x 2 x double> [[ZN:%.*]], <vscale x 2 x double> [[ZM:%.*]])414// CHECK-NEXT:    ret void415//416// CPP-CHECK-LABEL: @_Z29test_svmop4a_1x1_za64_f64_f64u13__SVFloat64_tS_(417// CPP-CHECK-NEXT:  entry:418// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4a.1x1.nxv2f64(i32 1, <vscale x 2 x double> [[ZN:%.*]], <vscale x 2 x double> [[ZM:%.*]])419// CPP-CHECK-NEXT:    ret void420//421void test_svmop4a_1x1_za64_f64_f64(svfloat64_t zn, svfloat64_t zm) __arm_streaming __arm_inout("za") {422  SME_ACLE_FUNC(svmop4a,_1x1,_za64,_f64_f64)(1, zn, zm);423}424 425// CHECK-LABEL: @test_svmop4s_1x1_za64_f64_f64(426// CHECK-NEXT:  entry:427// CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4s.1x1.nxv2f64(i32 1, <vscale x 2 x double> [[ZN:%.*]], <vscale x 2 x double> [[ZM:%.*]])428// CHECK-NEXT:    ret void429//430// CPP-CHECK-LABEL: @_Z29test_svmop4s_1x1_za64_f64_f64u13__SVFloat64_tS_(431// CPP-CHECK-NEXT:  entry:432// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4s.1x1.nxv2f64(i32 1, <vscale x 2 x double> [[ZN:%.*]], <vscale x 2 x double> [[ZM:%.*]])433// CPP-CHECK-NEXT:    ret void434//435void test_svmop4s_1x1_za64_f64_f64(svfloat64_t zn, svfloat64_t zm) __arm_streaming __arm_inout("za") {436  SME_ACLE_FUNC(svmop4s,_1x1,_za64,_f64_f64)(1, zn, zm);437}438 439// CHECK-LABEL: @test_svmop4a_1x1_za16_bf16_bf16(440// CHECK-NEXT:  entry:441// CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4a.1x1.nxv8bf16(i32 1, <vscale x 8 x bfloat> [[ZN:%.*]], <vscale x 8 x bfloat> [[ZM:%.*]])442// CHECK-NEXT:    ret void443//444// CPP-CHECK-LABEL: @_Z31test_svmop4a_1x1_za16_bf16_bf16u14__SVBfloat16_tS_(445// CPP-CHECK-NEXT:  entry:446// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4a.1x1.nxv8bf16(i32 1, <vscale x 8 x bfloat> [[ZN:%.*]], <vscale x 8 x bfloat> [[ZM:%.*]])447// CPP-CHECK-NEXT:    ret void448//449void test_svmop4a_1x1_za16_bf16_bf16(svbfloat16_t zn, svbfloat16_t zm) __arm_streaming __arm_inout("za") {450  SME_ACLE_FUNC(svmop4a,_1x1,_za16,_bf16_bf16)(1, zn, zm);451}452 453// CHECK-LABEL: @test_svmop4s_1x1_za16_bf16_bf16(454// CHECK-NEXT:  entry:455// CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4s.1x1.nxv8bf16(i32 1, <vscale x 8 x bfloat> [[ZN:%.*]], <vscale x 8 x bfloat> [[ZM:%.*]])456// CHECK-NEXT:    ret void457//458// CPP-CHECK-LABEL: @_Z31test_svmop4s_1x1_za16_bf16_bf16u14__SVBfloat16_tS_(459// CPP-CHECK-NEXT:  entry:460// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4s.1x1.nxv8bf16(i32 1, <vscale x 8 x bfloat> [[ZN:%.*]], <vscale x 8 x bfloat> [[ZM:%.*]])461// CPP-CHECK-NEXT:    ret void462//463void test_svmop4s_1x1_za16_bf16_bf16(svbfloat16_t zn, svbfloat16_t zm) __arm_streaming __arm_inout("za") {464  SME_ACLE_FUNC(svmop4s,_1x1,_za16,_bf16_bf16)(1, zn, zm);465}466