1 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu %s -emit-llvm -o - \ 2 // RUN: | FileCheck %s 3 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu %s -emit-llvm -o - \ 4 // RUN: -target-feature +sve,+bf16 | FileCheck %s 5 6 template<typename T> struct S {}; 7 8 // CHECK: _Z2f11SIu10__SVInt8_tE f1(S<__SVInt8_t>)9void f1(S<__SVInt8_t>) {} 10 // CHECK: _Z2f21SIu11__SVInt16_tE f2(S<__SVInt16_t>)11void f2(S<__SVInt16_t>) {} 12 // CHECK: _Z2f31SIu11__SVInt32_tE f3(S<__SVInt32_t>)13void f3(S<__SVInt32_t>) {} 14 // CHECK: _Z2f41SIu11__SVInt64_tE f4(S<__SVInt64_t>)15void f4(S<__SVInt64_t>) {} 16 // CHECK: _Z2f51SIu11__SVUint8_tE f5(S<__SVUint8_t>)17void f5(S<__SVUint8_t>) {} 18 // CHECK: _Z2f61SIu12__SVUint16_tE f6(S<__SVUint16_t>)19void f6(S<__SVUint16_t>) {} 20 // CHECK: _Z2f71SIu12__SVUint32_tE f7(S<__SVUint32_t>)21void f7(S<__SVUint32_t>) {} 22 // CHECK: _Z2f81SIu12__SVUint64_tE f8(S<__SVUint64_t>)23void f8(S<__SVUint64_t>) {} 24 // CHECK: _Z2f91SIu13__SVFloat16_tE f9(S<__SVFloat16_t>)25void f9(S<__SVFloat16_t>) {} 26 // CHECK: _Z3f101SIu13__SVFloat32_tE f10(S<__SVFloat32_t>)27void f10(S<__SVFloat32_t>) {} 28 // CHECK: _Z3f111SIu13__SVFloat64_tE f11(S<__SVFloat64_t>)29void f11(S<__SVFloat64_t>) {} 30 // CHECK: _Z3f121SIu14__SVBFloat16_tE f12(S<__SVBFloat16_t>)31void f12(S<__SVBFloat16_t>) {} 32 // CHECK: _Z3f131SIu10__SVBool_tE f13(S<__SVBool_t>)33void f13(S<__SVBool_t>) {} 34 35 // The tuple types don't use the internal name for mangling. 36 37 // CHECK: _Z3f131SI10svint8x2_tE f13(S<__clang_svint8x2_t>)38void f13(S<__clang_svint8x2_t>) {} 39 // CHECK: _Z3f141SI10svint8x3_tE f14(S<__clang_svint8x3_t>)40void f14(S<__clang_svint8x3_t>) {} 41 // CHECK: _Z3f151SI10svint8x4_tE f15(S<__clang_svint8x4_t>)42void f15(S<__clang_svint8x4_t>) {} 43 // CHECK: _Z3f161SI11svint16x2_tE f16(S<__clang_svint16x2_t>)44void f16(S<__clang_svint16x2_t>) {} 45 // CHECK: _Z3f171SI11svint16x3_tE f17(S<__clang_svint16x3_t>)46void f17(S<__clang_svint16x3_t>) {} 47 // CHECK: _Z3f181SI11svint16x4_tE f18(S<__clang_svint16x4_t>)48void f18(S<__clang_svint16x4_t>) {} 49 // CHECK: _Z3f191SI11svint32x2_tE f19(S<__clang_svint32x2_t>)50void f19(S<__clang_svint32x2_t>) {} 51 // CHECK: _Z3f201SI11svint32x3_tE f20(S<__clang_svint32x3_t>)52void f20(S<__clang_svint32x3_t>) {} 53 // CHECK: _Z3f211SI11svint32x4_tE f21(S<__clang_svint32x4_t>)54void f21(S<__clang_svint32x4_t>) {} 55 // CHECK: _Z3f221SI11svint64x2_tE f22(S<__clang_svint64x2_t>)56void f22(S<__clang_svint64x2_t>) {} 57 // CHECK: _Z3f231SI11svint64x3_tE f23(S<__clang_svint64x3_t>)58void f23(S<__clang_svint64x3_t>) {} 59 // CHECK: _Z3f241SI11svint64x4_tE f24(S<__clang_svint64x4_t>)60void f24(S<__clang_svint64x4_t>) {} 61 // CHECK: _Z3f251SI11svuint8x2_tE f25(S<__clang_svuint8x2_t>)62void f25(S<__clang_svuint8x2_t>) {} 63 // CHECK: _Z3f261SI11svuint8x3_tE f26(S<__clang_svuint8x3_t>)64void f26(S<__clang_svuint8x3_t>) {} 65 // CHECK: _Z3f271SI11svuint8x4_tE f27(S<__clang_svuint8x4_t>)66void f27(S<__clang_svuint8x4_t>) {} 67 // CHECK: _Z3f281SI12svuint16x2_tE f28(S<__clang_svuint16x2_t>)68void f28(S<__clang_svuint16x2_t>) {} 69 // CHECK: _Z3f291SI12svuint16x3_tE f29(S<__clang_svuint16x3_t>)70void f29(S<__clang_svuint16x3_t>) {} 71 // CHECK: _Z3f301SI12svuint16x4_tE f30(S<__clang_svuint16x4_t>)72void f30(S<__clang_svuint16x4_t>) {} 73 // CHECK: _Z3f311SI12svuint32x2_tE f31(S<__clang_svuint32x2_t>)74void f31(S<__clang_svuint32x2_t>) {} 75 // CHECK: _Z3f321SI12svuint32x3_tE f32(S<__clang_svuint32x3_t>)76void f32(S<__clang_svuint32x3_t>) {} 77 // CHECK: _Z3f331SI12svuint32x4_tE f33(S<__clang_svuint32x4_t>)78void f33(S<__clang_svuint32x4_t>) {} 79 // CHECK: _Z3f341SI12svuint64x2_tE f34(S<__clang_svuint64x2_t>)80void f34(S<__clang_svuint64x2_t>) {} 81 // CHECK: _Z3f351SI12svuint64x3_tE f35(S<__clang_svuint64x3_t>)82void f35(S<__clang_svuint64x3_t>) {} 83 // CHECK: _Z3f361SI12svuint64x4_tE f36(S<__clang_svuint64x4_t>)84void f36(S<__clang_svuint64x4_t>) {} 85 // CHECK: _Z3f371SI13svfloat16x2_tE f37(S<__clang_svfloat16x2_t>)86void f37(S<__clang_svfloat16x2_t>) {} 87 // CHECK: _Z3f381SI13svfloat16x3_tE f38(S<__clang_svfloat16x3_t>)88void f38(S<__clang_svfloat16x3_t>) {} 89 // CHECK: _Z3f391SI13svfloat16x4_tE f39(S<__clang_svfloat16x4_t>)90void f39(S<__clang_svfloat16x4_t>) {} 91 // CHECK: _Z3f401SI13svfloat32x2_tE f40(S<__clang_svfloat32x2_t>)92void f40(S<__clang_svfloat32x2_t>) {} 93 // CHECK: _Z3f411SI13svfloat32x3_tE f41(S<__clang_svfloat32x3_t>)94void f41(S<__clang_svfloat32x3_t>) {} 95 // CHECK: _Z3f421SI13svfloat32x4_tE f42(S<__clang_svfloat32x4_t>)96void f42(S<__clang_svfloat32x4_t>) {} 97 // CHECK: _Z3f431SI13svfloat64x2_tE f43(S<__clang_svfloat64x2_t>)98void f43(S<__clang_svfloat64x2_t>) {} 99 // CHECK: _Z3f441SI13svfloat64x3_tE f44(S<__clang_svfloat64x3_t>)100void f44(S<__clang_svfloat64x3_t>) {} 101 // CHECK: _Z3f451SI13svfloat64x4_tE f45(S<__clang_svfloat64x4_t>)102void f45(S<__clang_svfloat64x4_t>) {} 103 // CHECK: _Z3f461SI14svbfloat16x2_tE f46(S<__clang_svbfloat16x2_t>)104void f46(S<__clang_svbfloat16x2_t>) {} 105 // CHECK: _Z3f471SI14svbfloat16x3_tE f47(S<__clang_svbfloat16x3_t>)106void f47(S<__clang_svbfloat16x3_t>) {} 107 // CHECK: _Z3f481SI14svbfloat16x4_tE f48(S<__clang_svbfloat16x4_t>)108void f48(S<__clang_svbfloat16x4_t>) {} 109