brintos

brintos / llvm-project-archived public Read only

0
0
Text · 29.7 KiB · af81d71 Raw
467 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_2x2_za32_s8_s8(20// CHECK-NEXT:  entry:21// CHECK-NEXT:    tail call void @llvm.aarch64.sme.smop4a.wide.2x2.nxv16i8(i32 1, <vscale x 16 x i8> [[ZN_COERCE0:%.*]], <vscale x 16 x i8> [[ZN_COERCE1:%.*]], <vscale x 16 x i8> [[ZM_COERCE0:%.*]], <vscale x 16 x i8> [[ZM_COERCE1:%.*]])22// CHECK-NEXT:    ret void23//24// CPP-CHECK-LABEL: @_Z27test_svmop4a_2x2_za32_s8_s810svint8x2_tS_(25// CPP-CHECK-NEXT:  entry:26// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.smop4a.wide.2x2.nxv16i8(i32 1, <vscale x 16 x i8> [[ZN_COERCE0:%.*]], <vscale x 16 x i8> [[ZN_COERCE1:%.*]], <vscale x 16 x i8> [[ZM_COERCE0:%.*]], <vscale x 16 x i8> [[ZM_COERCE1:%.*]])27// CPP-CHECK-NEXT:    ret void28//29void test_svmop4a_2x2_za32_s8_s8(svint8x2_t zn, svint8x2_t zm) __arm_streaming __arm_inout("za") {30  SME_ACLE_FUNC(svmop4a,_2x2,_za32,_s8_s8)(1, zn, zm);31}32 33// CHECK-LABEL: @test_svmop4s_2x2_za32_s8_s8(34// CHECK-NEXT:  entry:35// CHECK-NEXT:    tail call void @llvm.aarch64.sme.smop4s.wide.2x2.nxv16i8(i32 1, <vscale x 16 x i8> [[ZN_COERCE0:%.*]], <vscale x 16 x i8> [[ZN_COERCE1:%.*]], <vscale x 16 x i8> [[ZM_COERCE0:%.*]], <vscale x 16 x i8> [[ZM_COERCE1:%.*]])36// CHECK-NEXT:    ret void37//38// CPP-CHECK-LABEL: @_Z27test_svmop4s_2x2_za32_s8_s810svint8x2_tS_(39// CPP-CHECK-NEXT:  entry:40// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.smop4s.wide.2x2.nxv16i8(i32 1, <vscale x 16 x i8> [[ZN_COERCE0:%.*]], <vscale x 16 x i8> [[ZN_COERCE1:%.*]], <vscale x 16 x i8> [[ZM_COERCE0:%.*]], <vscale x 16 x i8> [[ZM_COERCE1:%.*]])41// CPP-CHECK-NEXT:    ret void42//43void test_svmop4s_2x2_za32_s8_s8(svint8x2_t zn, svint8x2_t zm) __arm_streaming __arm_inout("za") {44  SME_ACLE_FUNC(svmop4s,_2x2,_za32,_s8_s8)(1, zn, zm);45}46 47// CHECK-LABEL: @test_svmop4a_2x2_za32_u8_u8(48// CHECK-NEXT:  entry:49// CHECK-NEXT:    tail call void @llvm.aarch64.sme.umop4a.wide.2x2.nxv16i8(i32 1, <vscale x 16 x i8> [[ZN_COERCE0:%.*]], <vscale x 16 x i8> [[ZN_COERCE1:%.*]], <vscale x 16 x i8> [[ZM_COERCE0:%.*]], <vscale x 16 x i8> [[ZM_COERCE1:%.*]])50// CHECK-NEXT:    ret void51//52// CPP-CHECK-LABEL: @_Z27test_svmop4a_2x2_za32_u8_u811svuint8x2_tS_(53// CPP-CHECK-NEXT:  entry:54// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.umop4a.wide.2x2.nxv16i8(i32 1, <vscale x 16 x i8> [[ZN_COERCE0:%.*]], <vscale x 16 x i8> [[ZN_COERCE1:%.*]], <vscale x 16 x i8> [[ZM_COERCE0:%.*]], <vscale x 16 x i8> [[ZM_COERCE1:%.*]])55// CPP-CHECK-NEXT:    ret void56//57void test_svmop4a_2x2_za32_u8_u8(svuint8x2_t zn, svuint8x2_t zm) __arm_streaming __arm_inout("za") {58  SME_ACLE_FUNC(svmop4a,_2x2,_za32,_u8_u8)(1, zn, zm);59}60 61// CHECK-LABEL: @test_svmop4s_2x2_za32_u8_u8(62// CHECK-NEXT:  entry:63// CHECK-NEXT:    tail call void @llvm.aarch64.sme.umop4s.wide.2x2.nxv16i8(i32 1, <vscale x 16 x i8> [[ZN_COERCE0:%.*]], <vscale x 16 x i8> [[ZN_COERCE1:%.*]], <vscale x 16 x i8> [[ZM_COERCE0:%.*]], <vscale x 16 x i8> [[ZM_COERCE1:%.*]])64// CHECK-NEXT:    ret void65//66// CPP-CHECK-LABEL: @_Z27test_svmop4s_2x2_za32_u8_u811svuint8x2_tS_(67// CPP-CHECK-NEXT:  entry:68// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.umop4s.wide.2x2.nxv16i8(i32 1, <vscale x 16 x i8> [[ZN_COERCE0:%.*]], <vscale x 16 x i8> [[ZN_COERCE1:%.*]], <vscale x 16 x i8> [[ZM_COERCE0:%.*]], <vscale x 16 x i8> [[ZM_COERCE1:%.*]])69// CPP-CHECK-NEXT:    ret void70//71void test_svmop4s_2x2_za32_u8_u8(svuint8x2_t zn, svuint8x2_t zm) __arm_streaming __arm_inout("za") {72  SME_ACLE_FUNC(svmop4s,_2x2,_za32,_u8_u8)(1, zn, zm);73}74 75// CHECK-LABEL: @test_svmop4a_2x2_za32_s8_u8(76// CHECK-NEXT:  entry:77// CHECK-NEXT:    tail call void @llvm.aarch64.sme.sumop4a.wide.2x2.nxv16i8(i32 1, <vscale x 16 x i8> [[ZN_COERCE0:%.*]], <vscale x 16 x i8> [[ZN_COERCE1:%.*]], <vscale x 16 x i8> [[ZM_COERCE0:%.*]], <vscale x 16 x i8> [[ZM_COERCE1:%.*]])78// CHECK-NEXT:    ret void79//80// CPP-CHECK-LABEL: @_Z27test_svmop4a_2x2_za32_s8_u810svint8x2_t11svuint8x2_t(81// CPP-CHECK-NEXT:  entry:82// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.sumop4a.wide.2x2.nxv16i8(i32 1, <vscale x 16 x i8> [[ZN_COERCE0:%.*]], <vscale x 16 x i8> [[ZN_COERCE1:%.*]], <vscale x 16 x i8> [[ZM_COERCE0:%.*]], <vscale x 16 x i8> [[ZM_COERCE1:%.*]])83// CPP-CHECK-NEXT:    ret void84//85void test_svmop4a_2x2_za32_s8_u8(svint8x2_t zn, svuint8x2_t zm) __arm_streaming __arm_inout("za") {86  SME_ACLE_FUNC(svmop4a,_2x2,_za32,_s8_u8)(1, zn, zm);87}88 89// CHECK-LABEL: @test_svmop4s_2x2_za32_s8_u8(90// CHECK-NEXT:  entry:91// CHECK-NEXT:    tail call void @llvm.aarch64.sme.sumop4s.wide.2x2.nxv16i8(i32 1, <vscale x 16 x i8> [[ZN_COERCE0:%.*]], <vscale x 16 x i8> [[ZN_COERCE1:%.*]], <vscale x 16 x i8> [[ZM_COERCE0:%.*]], <vscale x 16 x i8> [[ZM_COERCE1:%.*]])92// CHECK-NEXT:    ret void93//94// CPP-CHECK-LABEL: @_Z27test_svmop4s_2x2_za32_s8_u810svint8x2_t11svuint8x2_t(95// CPP-CHECK-NEXT:  entry:96// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.sumop4s.wide.2x2.nxv16i8(i32 1, <vscale x 16 x i8> [[ZN_COERCE0:%.*]], <vscale x 16 x i8> [[ZN_COERCE1:%.*]], <vscale x 16 x i8> [[ZM_COERCE0:%.*]], <vscale x 16 x i8> [[ZM_COERCE1:%.*]])97// CPP-CHECK-NEXT:    ret void98//99void test_svmop4s_2x2_za32_s8_u8(svint8x2_t zn, svuint8x2_t zm) __arm_streaming __arm_inout("za") {100  SME_ACLE_FUNC(svmop4s,_2x2,_za32,_s8_u8)(1, zn, zm);101}102 103// CHECK-LABEL: @test_svmop4a_2x2_za32_u8_s8(104// CHECK-NEXT:  entry:105// CHECK-NEXT:    tail call void @llvm.aarch64.sme.usmop4a.wide.2x2.nxv16i8(i32 1, <vscale x 16 x i8> [[ZN_COERCE0:%.*]], <vscale x 16 x i8> [[ZN_COERCE1:%.*]], <vscale x 16 x i8> [[ZM_COERCE0:%.*]], <vscale x 16 x i8> [[ZM_COERCE1:%.*]])106// CHECK-NEXT:    ret void107//108// CPP-CHECK-LABEL: @_Z27test_svmop4a_2x2_za32_u8_s811svuint8x2_t10svint8x2_t(109// CPP-CHECK-NEXT:  entry:110// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.usmop4a.wide.2x2.nxv16i8(i32 1, <vscale x 16 x i8> [[ZN_COERCE0:%.*]], <vscale x 16 x i8> [[ZN_COERCE1:%.*]], <vscale x 16 x i8> [[ZM_COERCE0:%.*]], <vscale x 16 x i8> [[ZM_COERCE1:%.*]])111// CPP-CHECK-NEXT:    ret void112//113void test_svmop4a_2x2_za32_u8_s8(svuint8x2_t zn, svint8x2_t zm) __arm_streaming __arm_inout("za") {114  SME_ACLE_FUNC(svmop4a,_2x2,_za32,_u8_s8)(1, zn, zm);115}116 117// CHECK-LABEL: @test_svmop4s_2x2_za32_u8_s8(118// CHECK-NEXT:  entry:119// CHECK-NEXT:    tail call void @llvm.aarch64.sme.usmop4s.wide.2x2.nxv16i8(i32 1, <vscale x 16 x i8> [[ZN_COERCE0:%.*]], <vscale x 16 x i8> [[ZN_COERCE1:%.*]], <vscale x 16 x i8> [[ZM_COERCE0:%.*]], <vscale x 16 x i8> [[ZM_COERCE1:%.*]])120// CHECK-NEXT:    ret void121//122// CPP-CHECK-LABEL: @_Z27test_svmop4s_2x2_za32_u8_s811svuint8x2_t10svint8x2_t(123// CPP-CHECK-NEXT:  entry:124// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.usmop4s.wide.2x2.nxv16i8(i32 1, <vscale x 16 x i8> [[ZN_COERCE0:%.*]], <vscale x 16 x i8> [[ZN_COERCE1:%.*]], <vscale x 16 x i8> [[ZM_COERCE0:%.*]], <vscale x 16 x i8> [[ZM_COERCE1:%.*]])125// CPP-CHECK-NEXT:    ret void126//127void test_svmop4s_2x2_za32_u8_s8(svuint8x2_t zn, svint8x2_t zm) __arm_streaming __arm_inout("za") {128  SME_ACLE_FUNC(svmop4s,_2x2,_za32,_u8_s8)(1, zn, zm);129}130 131// CHECK-LABEL: @test_svmop4a_2x2_za32_s16_s16(132// CHECK-NEXT:  entry:133// CHECK-NEXT:    tail call void @llvm.aarch64.sme.smop4a.wide.2x2.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN_COERCE0:%.*]], <vscale x 8 x i16> [[ZN_COERCE1:%.*]], <vscale x 8 x i16> [[ZM_COERCE0:%.*]], <vscale x 8 x i16> [[ZM_COERCE1:%.*]])134// CHECK-NEXT:    ret void135//136// CPP-CHECK-LABEL: @_Z29test_svmop4a_2x2_za32_s16_s1611svint16x2_tS_(137// CPP-CHECK-NEXT:  entry:138// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.smop4a.wide.2x2.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN_COERCE0:%.*]], <vscale x 8 x i16> [[ZN_COERCE1:%.*]], <vscale x 8 x i16> [[ZM_COERCE0:%.*]], <vscale x 8 x i16> [[ZM_COERCE1:%.*]])139// CPP-CHECK-NEXT:    ret void140//141void test_svmop4a_2x2_za32_s16_s16(svint16x2_t zn, svint16x2_t zm) __arm_streaming __arm_inout("za") {142  SME_ACLE_FUNC(svmop4a,_2x2,_za32,_s16_s16)(1, zn, zm);143}144 145// CHECK-LABEL: @test_svmop4s_2x2_za32_s16_s16(146// CHECK-NEXT:  entry:147// CHECK-NEXT:    tail call void @llvm.aarch64.sme.smop4s.wide.2x2.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN_COERCE0:%.*]], <vscale x 8 x i16> [[ZN_COERCE1:%.*]], <vscale x 8 x i16> [[ZM_COERCE0:%.*]], <vscale x 8 x i16> [[ZM_COERCE1:%.*]])148// CHECK-NEXT:    ret void149//150// CPP-CHECK-LABEL: @_Z29test_svmop4s_2x2_za32_s16_s1611svint16x2_tS_(151// CPP-CHECK-NEXT:  entry:152// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.smop4s.wide.2x2.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN_COERCE0:%.*]], <vscale x 8 x i16> [[ZN_COERCE1:%.*]], <vscale x 8 x i16> [[ZM_COERCE0:%.*]], <vscale x 8 x i16> [[ZM_COERCE1:%.*]])153// CPP-CHECK-NEXT:    ret void154//155void test_svmop4s_2x2_za32_s16_s16(svint16x2_t zn, svint16x2_t zm) __arm_streaming __arm_inout("za") {156  SME_ACLE_FUNC(svmop4s,_2x2,_za32,_s16_s16)(1, zn, zm);157}158 159// CHECK-LABEL: @test_svmop4a_2x2_za32_u16_u16(160// CHECK-NEXT:  entry:161// CHECK-NEXT:    tail call void @llvm.aarch64.sme.umop4a.wide.2x2.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN_COERCE0:%.*]], <vscale x 8 x i16> [[ZN_COERCE1:%.*]], <vscale x 8 x i16> [[ZM_COERCE0:%.*]], <vscale x 8 x i16> [[ZM_COERCE1:%.*]])162// CHECK-NEXT:    ret void163//164// CPP-CHECK-LABEL: @_Z29test_svmop4a_2x2_za32_u16_u1612svuint16x2_tS_(165// CPP-CHECK-NEXT:  entry:166// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.umop4a.wide.2x2.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN_COERCE0:%.*]], <vscale x 8 x i16> [[ZN_COERCE1:%.*]], <vscale x 8 x i16> [[ZM_COERCE0:%.*]], <vscale x 8 x i16> [[ZM_COERCE1:%.*]])167// CPP-CHECK-NEXT:    ret void168//169void test_svmop4a_2x2_za32_u16_u16(svuint16x2_t zn, svuint16x2_t zm) __arm_streaming __arm_inout("za") {170  SME_ACLE_FUNC(svmop4a,_2x2,_za32,_u16_u16)(1, zn, zm);171}172 173// CHECK-LABEL: @test_svmop4s_2x2_za32_u16_u16(174// CHECK-NEXT:  entry:175// CHECK-NEXT:    tail call void @llvm.aarch64.sme.umop4s.wide.2x2.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN_COERCE0:%.*]], <vscale x 8 x i16> [[ZN_COERCE1:%.*]], <vscale x 8 x i16> [[ZM_COERCE0:%.*]], <vscale x 8 x i16> [[ZM_COERCE1:%.*]])176// CHECK-NEXT:    ret void177//178// CPP-CHECK-LABEL: @_Z29test_svmop4s_2x2_za32_u16_u1612svuint16x2_tS_(179// CPP-CHECK-NEXT:  entry:180// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.umop4s.wide.2x2.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN_COERCE0:%.*]], <vscale x 8 x i16> [[ZN_COERCE1:%.*]], <vscale x 8 x i16> [[ZM_COERCE0:%.*]], <vscale x 8 x i16> [[ZM_COERCE1:%.*]])181// CPP-CHECK-NEXT:    ret void182//183void test_svmop4s_2x2_za32_u16_u16(svuint16x2_t zn, svuint16x2_t zm) __arm_streaming __arm_inout("za") {184  SME_ACLE_FUNC(svmop4s,_2x2,_za32,_u16_u16)(1, zn, zm);185}186 187// CHECK-LABEL: @test_svmop4a_2x2_za32_f16_f16(188// CHECK-NEXT:  entry:189// CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4a.wide.2x2.nxv8f16(i32 1, <vscale x 8 x half> [[ZN_COERCE0:%.*]], <vscale x 8 x half> [[ZN_COERCE1:%.*]], <vscale x 8 x half> [[ZM_COERCE0:%.*]], <vscale x 8 x half> [[ZM_COERCE1:%.*]])190// CHECK-NEXT:    ret void191//192// CPP-CHECK-LABEL: @_Z29test_svmop4a_2x2_za32_f16_f1613svfloat16x2_tS_(193// CPP-CHECK-NEXT:  entry:194// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4a.wide.2x2.nxv8f16(i32 1, <vscale x 8 x half> [[ZN_COERCE0:%.*]], <vscale x 8 x half> [[ZN_COERCE1:%.*]], <vscale x 8 x half> [[ZM_COERCE0:%.*]], <vscale x 8 x half> [[ZM_COERCE1:%.*]])195// CPP-CHECK-NEXT:    ret void196//197void test_svmop4a_2x2_za32_f16_f16(svfloat16x2_t zn, svfloat16x2_t zm) __arm_streaming __arm_inout("za") {198  SME_ACLE_FUNC(svmop4a,_2x2,_za32,_f16_f16)(1, zn, zm);199}200 201// CHECK-LABEL: @test_svmop4s_2x2_za32_f16_f16(202// CHECK-NEXT:  entry:203// CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4s.wide.2x2.nxv8f16(i32 1, <vscale x 8 x half> [[ZN_COERCE0:%.*]], <vscale x 8 x half> [[ZN_COERCE1:%.*]], <vscale x 8 x half> [[ZM_COERCE0:%.*]], <vscale x 8 x half> [[ZM_COERCE1:%.*]])204// CHECK-NEXT:    ret void205//206// CPP-CHECK-LABEL: @_Z29test_svmop4s_2x2_za32_f16_f1613svfloat16x2_tS_(207// CPP-CHECK-NEXT:  entry:208// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4s.wide.2x2.nxv8f16(i32 1, <vscale x 8 x half> [[ZN_COERCE0:%.*]], <vscale x 8 x half> [[ZN_COERCE1:%.*]], <vscale x 8 x half> [[ZM_COERCE0:%.*]], <vscale x 8 x half> [[ZM_COERCE1:%.*]])209// CPP-CHECK-NEXT:    ret void210//211void test_svmop4s_2x2_za32_f16_f16(svfloat16x2_t zn, svfloat16x2_t zm) __arm_streaming __arm_inout("za") {212  SME_ACLE_FUNC(svmop4s,_2x2,_za32,_f16_f16)(1, zn, zm);213}214 215// CHECK-LABEL: @test_svmop4a_2x2_za32_bf16_bf16(216// CHECK-NEXT:  entry:217// CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4a.wide.2x2.nxv8bf16(i32 1, <vscale x 8 x bfloat> [[ZN_COERCE0:%.*]], <vscale x 8 x bfloat> [[ZN_COERCE1:%.*]], <vscale x 8 x bfloat> [[ZM_COERCE0:%.*]], <vscale x 8 x bfloat> [[ZM_COERCE1:%.*]])218// CHECK-NEXT:    ret void219//220// CPP-CHECK-LABEL: @_Z31test_svmop4a_2x2_za32_bf16_bf1614svbfloat16x2_tS_(221// CPP-CHECK-NEXT:  entry:222// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4a.wide.2x2.nxv8bf16(i32 1, <vscale x 8 x bfloat> [[ZN_COERCE0:%.*]], <vscale x 8 x bfloat> [[ZN_COERCE1:%.*]], <vscale x 8 x bfloat> [[ZM_COERCE0:%.*]], <vscale x 8 x bfloat> [[ZM_COERCE1:%.*]])223// CPP-CHECK-NEXT:    ret void224//225void test_svmop4a_2x2_za32_bf16_bf16(svbfloat16x2_t zn, svbfloat16x2_t zm) __arm_streaming __arm_inout("za") {226  SME_ACLE_FUNC(svmop4a,_2x2,_za32,_bf16_bf16)(1, zn, zm);227}228 229// CHECK-LABEL: @test_svmop4s_2x2_za32_bf16_bf16(230// CHECK-NEXT:  entry:231// CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4s.wide.2x2.nxv8bf16(i32 1, <vscale x 8 x bfloat> [[ZN_COERCE0:%.*]], <vscale x 8 x bfloat> [[ZN_COERCE1:%.*]], <vscale x 8 x bfloat> [[ZM_COERCE0:%.*]], <vscale x 8 x bfloat> [[ZM_COERCE1:%.*]])232// CHECK-NEXT:    ret void233//234// CPP-CHECK-LABEL: @_Z31test_svmop4s_2x2_za32_bf16_bf1614svbfloat16x2_tS_(235// CPP-CHECK-NEXT:  entry:236// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4s.wide.2x2.nxv8bf16(i32 1, <vscale x 8 x bfloat> [[ZN_COERCE0:%.*]], <vscale x 8 x bfloat> [[ZN_COERCE1:%.*]], <vscale x 8 x bfloat> [[ZM_COERCE0:%.*]], <vscale x 8 x bfloat> [[ZM_COERCE1:%.*]])237// CPP-CHECK-NEXT:    ret void238//239void test_svmop4s_2x2_za32_bf16_bf16(svbfloat16x2_t zn, svbfloat16x2_t zm) __arm_streaming __arm_inout("za") {240  SME_ACLE_FUNC(svmop4s,_2x2,_za32,_bf16_bf16)(1, zn, zm);241}242 243// CHECK-LABEL: @test_svmop4a_2x2_za64_s16_s16(244// CHECK-NEXT:  entry:245// CHECK-NEXT:    tail call void @llvm.aarch64.sme.smop4a.za64.wide.2x2.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN_COERCE0:%.*]], <vscale x 8 x i16> [[ZN_COERCE1:%.*]], <vscale x 8 x i16> [[ZM_COERCE0:%.*]], <vscale x 8 x i16> [[ZM_COERCE1:%.*]])246// CHECK-NEXT:    ret void247//248// CPP-CHECK-LABEL: @_Z29test_svmop4a_2x2_za64_s16_s1611svint16x2_tS_(249// CPP-CHECK-NEXT:  entry:250// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.smop4a.za64.wide.2x2.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN_COERCE0:%.*]], <vscale x 8 x i16> [[ZN_COERCE1:%.*]], <vscale x 8 x i16> [[ZM_COERCE0:%.*]], <vscale x 8 x i16> [[ZM_COERCE1:%.*]])251// CPP-CHECK-NEXT:    ret void252//253void test_svmop4a_2x2_za64_s16_s16(svint16x2_t zn, svint16x2_t zm) __arm_streaming __arm_inout("za") {254  SME_ACLE_FUNC(svmop4a,_2x2,_za64,_s16_s16)(1, zn, zm);255}256 257// CHECK-LABEL: @test_svmop4s_2x2_za64_s16_s16(258// CHECK-NEXT:  entry:259// CHECK-NEXT:    tail call void @llvm.aarch64.sme.smop4s.za64.wide.2x2.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN_COERCE0:%.*]], <vscale x 8 x i16> [[ZN_COERCE1:%.*]], <vscale x 8 x i16> [[ZM_COERCE0:%.*]], <vscale x 8 x i16> [[ZM_COERCE1:%.*]])260// CHECK-NEXT:    ret void261//262// CPP-CHECK-LABEL: @_Z29test_svmop4s_2x2_za64_s16_s1611svint16x2_tS_(263// CPP-CHECK-NEXT:  entry:264// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.smop4s.za64.wide.2x2.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN_COERCE0:%.*]], <vscale x 8 x i16> [[ZN_COERCE1:%.*]], <vscale x 8 x i16> [[ZM_COERCE0:%.*]], <vscale x 8 x i16> [[ZM_COERCE1:%.*]])265// CPP-CHECK-NEXT:    ret void266//267void test_svmop4s_2x2_za64_s16_s16(svint16x2_t zn, svint16x2_t zm) __arm_streaming __arm_inout("za") {268  SME_ACLE_FUNC(svmop4s,_2x2,_za64,_s16_s16)(1, zn, zm);269}270 271// CHECK-LABEL: @test_svmop4a_2x2_za64_u16_u16(272// CHECK-NEXT:  entry:273// CHECK-NEXT:    tail call void @llvm.aarch64.sme.umop4a.za64.wide.2x2.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN_COERCE0:%.*]], <vscale x 8 x i16> [[ZN_COERCE1:%.*]], <vscale x 8 x i16> [[ZM_COERCE0:%.*]], <vscale x 8 x i16> [[ZM_COERCE1:%.*]])274// CHECK-NEXT:    ret void275//276// CPP-CHECK-LABEL: @_Z29test_svmop4a_2x2_za64_u16_u1612svuint16x2_tS_(277// CPP-CHECK-NEXT:  entry:278// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.umop4a.za64.wide.2x2.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN_COERCE0:%.*]], <vscale x 8 x i16> [[ZN_COERCE1:%.*]], <vscale x 8 x i16> [[ZM_COERCE0:%.*]], <vscale x 8 x i16> [[ZM_COERCE1:%.*]])279// CPP-CHECK-NEXT:    ret void280//281void test_svmop4a_2x2_za64_u16_u16(svuint16x2_t zn, svuint16x2_t zm) __arm_streaming __arm_inout("za") {282  SME_ACLE_FUNC(svmop4a,_2x2,_za64,_u16_u16)(1, zn, zm);283}284 285// CHECK-LABEL: @test_svmop4s_2x2_za64_u16_u16(286// CHECK-NEXT:  entry:287// CHECK-NEXT:    tail call void @llvm.aarch64.sme.umop4s.za64.wide.2x2.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN_COERCE0:%.*]], <vscale x 8 x i16> [[ZN_COERCE1:%.*]], <vscale x 8 x i16> [[ZM_COERCE0:%.*]], <vscale x 8 x i16> [[ZM_COERCE1:%.*]])288// CHECK-NEXT:    ret void289//290// CPP-CHECK-LABEL: @_Z29test_svmop4s_2x2_za64_u16_u1612svuint16x2_tS_(291// CPP-CHECK-NEXT:  entry:292// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.umop4s.za64.wide.2x2.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN_COERCE0:%.*]], <vscale x 8 x i16> [[ZN_COERCE1:%.*]], <vscale x 8 x i16> [[ZM_COERCE0:%.*]], <vscale x 8 x i16> [[ZM_COERCE1:%.*]])293// CPP-CHECK-NEXT:    ret void294//295void test_svmop4s_2x2_za64_u16_u16(svuint16x2_t zn, svuint16x2_t zm) __arm_streaming __arm_inout("za") {296  SME_ACLE_FUNC(svmop4s,_2x2,_za64,_u16_u16)(1, zn, zm);297}298 299// CHECK-LABEL: @test_svmop4a_2x2_za64_s16_u16(300// CHECK-NEXT:  entry:301// CHECK-NEXT:    tail call void @llvm.aarch64.sme.sumop4a.za64.wide.2x2.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN_COERCE0:%.*]], <vscale x 8 x i16> [[ZN_COERCE1:%.*]], <vscale x 8 x i16> [[ZM_COERCE0:%.*]], <vscale x 8 x i16> [[ZM_COERCE1:%.*]])302// CHECK-NEXT:    ret void303//304// CPP-CHECK-LABEL: @_Z29test_svmop4a_2x2_za64_s16_u1611svint16x2_t12svuint16x2_t(305// CPP-CHECK-NEXT:  entry:306// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.sumop4a.za64.wide.2x2.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN_COERCE0:%.*]], <vscale x 8 x i16> [[ZN_COERCE1:%.*]], <vscale x 8 x i16> [[ZM_COERCE0:%.*]], <vscale x 8 x i16> [[ZM_COERCE1:%.*]])307// CPP-CHECK-NEXT:    ret void308//309void test_svmop4a_2x2_za64_s16_u16(svint16x2_t zn, svuint16x2_t zm) __arm_streaming __arm_inout("za") {310  SME_ACLE_FUNC(svmop4a,_2x2,_za64,_s16_u16)(1, zn, zm);311}312 313// CHECK-LABEL: @test_svmop4s_2x2_za64_s16_u16(314// CHECK-NEXT:  entry:315// CHECK-NEXT:    tail call void @llvm.aarch64.sme.sumop4s.za64.wide.2x2.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN_COERCE0:%.*]], <vscale x 8 x i16> [[ZN_COERCE1:%.*]], <vscale x 8 x i16> [[ZM_COERCE0:%.*]], <vscale x 8 x i16> [[ZM_COERCE1:%.*]])316// CHECK-NEXT:    ret void317//318// CPP-CHECK-LABEL: @_Z29test_svmop4s_2x2_za64_s16_u1611svint16x2_t12svuint16x2_t(319// CPP-CHECK-NEXT:  entry:320// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.sumop4s.za64.wide.2x2.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN_COERCE0:%.*]], <vscale x 8 x i16> [[ZN_COERCE1:%.*]], <vscale x 8 x i16> [[ZM_COERCE0:%.*]], <vscale x 8 x i16> [[ZM_COERCE1:%.*]])321// CPP-CHECK-NEXT:    ret void322//323void test_svmop4s_2x2_za64_s16_u16(svint16x2_t zn, svuint16x2_t zm) __arm_streaming __arm_inout("za") {324  SME_ACLE_FUNC(svmop4s,_2x2,_za64,_s16_u16)(1, zn, zm);325}326 327// CHECK-LABEL: @test_svmop4a_2x2_za64_u16_s16(328// CHECK-NEXT:  entry:329// CHECK-NEXT:    tail call void @llvm.aarch64.sme.usmop4a.za64.wide.2x2.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN_COERCE0:%.*]], <vscale x 8 x i16> [[ZN_COERCE1:%.*]], <vscale x 8 x i16> [[ZM_COERCE0:%.*]], <vscale x 8 x i16> [[ZM_COERCE1:%.*]])330// CHECK-NEXT:    ret void331//332// CPP-CHECK-LABEL: @_Z29test_svmop4a_2x2_za64_u16_s1612svuint16x2_t11svint16x2_t(333// CPP-CHECK-NEXT:  entry:334// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.usmop4a.za64.wide.2x2.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN_COERCE0:%.*]], <vscale x 8 x i16> [[ZN_COERCE1:%.*]], <vscale x 8 x i16> [[ZM_COERCE0:%.*]], <vscale x 8 x i16> [[ZM_COERCE1:%.*]])335// CPP-CHECK-NEXT:    ret void336//337void test_svmop4a_2x2_za64_u16_s16(svuint16x2_t zn, svint16x2_t zm) __arm_streaming __arm_inout("za") {338  SME_ACLE_FUNC(svmop4a,_2x2,_za64,_u16_s16)(1, zn, zm);339}340 341// CHECK-LABEL: @test_svmop4s_2x2_za64_u16_s16(342// CHECK-NEXT:  entry:343// CHECK-NEXT:    tail call void @llvm.aarch64.sme.usmop4s.za64.wide.2x2.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN_COERCE0:%.*]], <vscale x 8 x i16> [[ZN_COERCE1:%.*]], <vscale x 8 x i16> [[ZM_COERCE0:%.*]], <vscale x 8 x i16> [[ZM_COERCE1:%.*]])344// CHECK-NEXT:    ret void345//346// CPP-CHECK-LABEL: @_Z29test_svmop4s_2x2_za64_u16_s1612svuint16x2_t11svint16x2_t(347// CPP-CHECK-NEXT:  entry:348// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.usmop4s.za64.wide.2x2.nxv8i16(i32 1, <vscale x 8 x i16> [[ZN_COERCE0:%.*]], <vscale x 8 x i16> [[ZN_COERCE1:%.*]], <vscale x 8 x i16> [[ZM_COERCE0:%.*]], <vscale x 8 x i16> [[ZM_COERCE1:%.*]])349// CPP-CHECK-NEXT:    ret void350//351void test_svmop4s_2x2_za64_u16_s16(svuint16x2_t zn, svint16x2_t zm) __arm_streaming __arm_inout("za") {352  SME_ACLE_FUNC(svmop4s,_2x2,_za64,_u16_s16)(1, zn, zm);353}354 355 356// CHECK-LABEL: @test_svmop4a_2x2_za16_f16_f16(357// CHECK-NEXT:  entry:358// CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4a.2x2.nxv8f16(i32 1, <vscale x 8 x half> [[ZN_COERCE0:%.*]], <vscale x 8 x half> [[ZN_COERCE1:%.*]], <vscale x 8 x half> [[ZM_COERCE0:%.*]], <vscale x 8 x half> [[ZM_COERCE1:%.*]])359// CHECK-NEXT:    ret void360//361// CPP-CHECK-LABEL: @_Z29test_svmop4a_2x2_za16_f16_f1613svfloat16x2_tS_(362// CPP-CHECK-NEXT:  entry:363// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4a.2x2.nxv8f16(i32 1, <vscale x 8 x half> [[ZN_COERCE0:%.*]], <vscale x 8 x half> [[ZN_COERCE1:%.*]], <vscale x 8 x half> [[ZM_COERCE0:%.*]], <vscale x 8 x half> [[ZM_COERCE1:%.*]])364// CPP-CHECK-NEXT:    ret void365//366void test_svmop4a_2x2_za16_f16_f16(svfloat16x2_t zn, svfloat16x2_t zm) __arm_streaming __arm_inout("za") {367  SME_ACLE_FUNC(svmop4a,_2x2,_za16,_f16_f16)(1, zn, zm);368}369 370// CHECK-LABEL: @test_svmop4s_2x2_za16_f16_f16(371// CHECK-NEXT:  entry:372// CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4s.2x2.nxv8f16(i32 1, <vscale x 8 x half> [[ZN_COERCE0:%.*]], <vscale x 8 x half> [[ZN_COERCE1:%.*]], <vscale x 8 x half> [[ZM_COERCE0:%.*]], <vscale x 8 x half> [[ZM_COERCE1:%.*]])373// CHECK-NEXT:    ret void374//375// CPP-CHECK-LABEL: @_Z29test_svmop4s_2x2_za16_f16_f1613svfloat16x2_tS_(376// CPP-CHECK-NEXT:  entry:377// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4s.2x2.nxv8f16(i32 1, <vscale x 8 x half> [[ZN_COERCE0:%.*]], <vscale x 8 x half> [[ZN_COERCE1:%.*]], <vscale x 8 x half> [[ZM_COERCE0:%.*]], <vscale x 8 x half> [[ZM_COERCE1:%.*]])378// CPP-CHECK-NEXT:    ret void379//380void test_svmop4s_2x2_za16_f16_f16(svfloat16x2_t zn, svfloat16x2_t zm) __arm_streaming __arm_inout("za") {381  SME_ACLE_FUNC(svmop4s,_2x2,_za16,_f16_f16)(1, zn, zm);382}383 384// CHECK-LABEL: @test_svmop4a_2x2_za32_f32_f32(385// CHECK-NEXT:  entry:386// CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4a.2x2.nxv4f32(i32 1, <vscale x 4 x float> [[ZN_COERCE0:%.*]], <vscale x 4 x float> [[ZN_COERCE1:%.*]], <vscale x 4 x float> [[ZM_COERCE0:%.*]], <vscale x 4 x float> [[ZM_COERCE1:%.*]])387// CHECK-NEXT:    ret void388//389// CPP-CHECK-LABEL: @_Z29test_svmop4a_2x2_za32_f32_f3213svfloat32x2_tS_(390// CPP-CHECK-NEXT:  entry:391// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4a.2x2.nxv4f32(i32 1, <vscale x 4 x float> [[ZN_COERCE0:%.*]], <vscale x 4 x float> [[ZN_COERCE1:%.*]], <vscale x 4 x float> [[ZM_COERCE0:%.*]], <vscale x 4 x float> [[ZM_COERCE1:%.*]])392// CPP-CHECK-NEXT:    ret void393//394void test_svmop4a_2x2_za32_f32_f32(svfloat32x2_t zn, svfloat32x2_t zm) __arm_streaming __arm_inout("za") {395  SME_ACLE_FUNC(svmop4a,_2x2,_za32,_f32_f32)(1, zn, zm);396}397 398// CHECK-LABEL: @test_svmop4s_2x2_za32_f32_f32(399// CHECK-NEXT:  entry:400// CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4s.2x2.nxv4f32(i32 1, <vscale x 4 x float> [[ZN_COERCE0:%.*]], <vscale x 4 x float> [[ZN_COERCE1:%.*]], <vscale x 4 x float> [[ZM_COERCE0:%.*]], <vscale x 4 x float> [[ZM_COERCE1:%.*]])401// CHECK-NEXT:    ret void402//403// CPP-CHECK-LABEL: @_Z29test_svmop4s_2x2_za32_f32_f3213svfloat32x2_tS_(404// CPP-CHECK-NEXT:  entry:405// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4s.2x2.nxv4f32(i32 1, <vscale x 4 x float> [[ZN_COERCE0:%.*]], <vscale x 4 x float> [[ZN_COERCE1:%.*]], <vscale x 4 x float> [[ZM_COERCE0:%.*]], <vscale x 4 x float> [[ZM_COERCE1:%.*]])406// CPP-CHECK-NEXT:    ret void407//408void test_svmop4s_2x2_za32_f32_f32(svfloat32x2_t zn, svfloat32x2_t zm) __arm_streaming __arm_inout("za") {409  SME_ACLE_FUNC(svmop4s,_2x2,_za32,_f32_f32)(1, zn, zm);410}411 412// CHECK-LABEL: @test_svmop4a_2x2_za64_f64_f64(413// CHECK-NEXT:  entry:414// CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4a.2x2.nxv2f64(i32 1, <vscale x 2 x double> [[ZN_COERCE0:%.*]], <vscale x 2 x double> [[ZN_COERCE1:%.*]], <vscale x 2 x double> [[ZM_COERCE0:%.*]], <vscale x 2 x double> [[ZM_COERCE1:%.*]])415// CHECK-NEXT:    ret void416//417// CPP-CHECK-LABEL: @_Z29test_svmop4a_2x2_za64_f64_f6413svfloat64x2_tS_(418// CPP-CHECK-NEXT:  entry:419// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4a.2x2.nxv2f64(i32 1, <vscale x 2 x double> [[ZN_COERCE0:%.*]], <vscale x 2 x double> [[ZN_COERCE1:%.*]], <vscale x 2 x double> [[ZM_COERCE0:%.*]], <vscale x 2 x double> [[ZM_COERCE1:%.*]])420// CPP-CHECK-NEXT:    ret void421//422void test_svmop4a_2x2_za64_f64_f64(svfloat64x2_t zn, svfloat64x2_t zm) __arm_streaming __arm_inout("za") {423  SME_ACLE_FUNC(svmop4a,_2x2,_za64,_f64_f64)(1, zn, zm);424}425 426// CHECK-LABEL: @test_svmop4s_2x2_za64_f64_f64(427// CHECK-NEXT:  entry:428// CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4s.2x2.nxv2f64(i32 1, <vscale x 2 x double> [[ZN_COERCE0:%.*]], <vscale x 2 x double> [[ZN_COERCE1:%.*]], <vscale x 2 x double> [[ZM_COERCE0:%.*]], <vscale x 2 x double> [[ZM_COERCE1:%.*]])429// CHECK-NEXT:    ret void430//431// CPP-CHECK-LABEL: @_Z29test_svmop4s_2x2_za64_f64_f6413svfloat64x2_tS_(432// CPP-CHECK-NEXT:  entry:433// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4s.2x2.nxv2f64(i32 1, <vscale x 2 x double> [[ZN_COERCE0:%.*]], <vscale x 2 x double> [[ZN_COERCE1:%.*]], <vscale x 2 x double> [[ZM_COERCE0:%.*]], <vscale x 2 x double> [[ZM_COERCE1:%.*]])434// CPP-CHECK-NEXT:    ret void435//436void test_svmop4s_2x2_za64_f64_f64(svfloat64x2_t zn, svfloat64x2_t zm) __arm_streaming __arm_inout("za") {437  SME_ACLE_FUNC(svmop4s,_2x2,_za64,_f64_f64)(1, zn, zm);438}439 440// CHECK-LABEL: @test_svmop4a_2x2_za16_bf16_bf16(441// CHECK-NEXT:  entry:442// CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4a.2x2.nxv8bf16(i32 1, <vscale x 8 x bfloat> [[ZN_COERCE0:%.*]], <vscale x 8 x bfloat> [[ZN_COERCE1:%.*]], <vscale x 8 x bfloat> [[ZM_COERCE0:%.*]], <vscale x 8 x bfloat> [[ZM_COERCE1:%.*]])443// CHECK-NEXT:    ret void444//445// CPP-CHECK-LABEL: @_Z31test_svmop4a_2x2_za16_bf16_bf1614svbfloat16x2_tS_(446// CPP-CHECK-NEXT:  entry:447// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4a.2x2.nxv8bf16(i32 1, <vscale x 8 x bfloat> [[ZN_COERCE0:%.*]], <vscale x 8 x bfloat> [[ZN_COERCE1:%.*]], <vscale x 8 x bfloat> [[ZM_COERCE0:%.*]], <vscale x 8 x bfloat> [[ZM_COERCE1:%.*]])448// CPP-CHECK-NEXT:    ret void449//450void test_svmop4a_2x2_za16_bf16_bf16(svbfloat16x2_t zn, svbfloat16x2_t zm) __arm_streaming __arm_inout("za") {451  SME_ACLE_FUNC(svmop4a,_2x2,_za16,_bf16_bf16)(1, zn, zm);452}453 454// CHECK-LABEL: @test_svmop4s_2x2_za16_bf16_bf16(455// CHECK-NEXT:  entry:456// CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4s.2x2.nxv8bf16(i32 1, <vscale x 8 x bfloat> [[ZN_COERCE0:%.*]], <vscale x 8 x bfloat> [[ZN_COERCE1:%.*]], <vscale x 8 x bfloat> [[ZM_COERCE0:%.*]], <vscale x 8 x bfloat> [[ZM_COERCE1:%.*]])457// CHECK-NEXT:    ret void458//459// CPP-CHECK-LABEL: @_Z31test_svmop4s_2x2_za16_bf16_bf1614svbfloat16x2_tS_(460// CPP-CHECK-NEXT:  entry:461// CPP-CHECK-NEXT:    tail call void @llvm.aarch64.sme.mop4s.2x2.nxv8bf16(i32 1, <vscale x 8 x bfloat> [[ZN_COERCE0:%.*]], <vscale x 8 x bfloat> [[ZN_COERCE1:%.*]], <vscale x 8 x bfloat> [[ZM_COERCE0:%.*]], <vscale x 8 x bfloat> [[ZM_COERCE1:%.*]])462// CPP-CHECK-NEXT:    ret void463//464void test_svmop4s_2x2_za16_bf16_bf16(svbfloat16x2_t zn, svbfloat16x2_t zm) __arm_streaming __arm_inout("za") {465  SME_ACLE_FUNC(svmop4s,_2x2,_za16,_bf16_bf16)(1, zn, zm);466}467