// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --version 3 // RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64-none-linux-gnu %s -emit-llvm -o - \ // RUN: -target-feature +sve,+bf16 | FileCheck %s // RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64-none-linux-gnu %s -emit-llvm -o - \ // RUN: -target-feature +sve,+bf16 -fclang-abi-compat=17 | FileCheck %s --check-prefix=COMPAT_17 void f(__SVInt8_t, __SVInt8_t); void f(__SVInt16_t, __SVInt16_t); void f(__SVInt16_t, __SVInt16_t); void f(__SVInt32_t, __SVInt32_t); void f(__SVInt64_t, __SVInt64_t); void f(__SVUint8_t, __SVUint8_t); void f(__SVUint16_t, __SVUint16_t); void f(__SVUint32_t, __SVUint32_t); void f(__SVUint64_t, __SVUint64_t); void f(__SVFloat16_t, __SVFloat16_t); void f(__SVFloat32_t, __SVFloat32_t); void f(__SVFloat64_t, __SVFloat64_t); void f(__SVBfloat16_t, __SVBfloat16_t); void f(__SVBool_t, __SVBool_t); void f(__SVCount_t, __SVCount_t); void f(__clang_svint8x2_t, __clang_svint8x2_t); void f(__clang_svint8x3_t, __clang_svint8x3_t); void f(__clang_svint8x4_t, __clang_svint8x4_t); void f(__clang_svint16x2_t, __clang_svint16x2_t); void f(__clang_svint16x3_t, __clang_svint16x3_t); void f(__clang_svint16x4_t, __clang_svint16x4_t); void f(__clang_svint32x2_t, __clang_svint32x2_t); void f(__clang_svint32x3_t, __clang_svint32x3_t); void f(__clang_svint32x4_t, __clang_svint32x4_t); void f(__clang_svint64x2_t, __clang_svint64x2_t); void f(__clang_svint64x3_t, __clang_svint64x3_t); void f(__clang_svint64x4_t, __clang_svint64x4_t); void f(__clang_svuint8x2_t, __clang_svuint8x2_t); void f(__clang_svuint8x3_t, __clang_svuint8x3_t); void f(__clang_svuint8x4_t, __clang_svuint8x4_t); void f(__clang_svuint16x2_t, __clang_svuint16x2_t); void f(__clang_svuint16x3_t, __clang_svuint16x3_t); void f(__clang_svuint16x4_t, __clang_svuint16x4_t); void f(__clang_svuint32x2_t, __clang_svuint32x2_t); void f(__clang_svuint32x3_t, __clang_svuint32x3_t); void f(__clang_svuint32x4_t, __clang_svuint32x4_t); void f(__clang_svuint64x2_t, __clang_svuint64x2_t); void f(__clang_svuint64x3_t, __clang_svuint64x3_t); void f(__clang_svuint64x4_t, __clang_svuint64x4_t); void f(__clang_svfloat16x2_t, __clang_svfloat16x2_t); void f(__clang_svfloat16x3_t, __clang_svfloat16x3_t); void f(__clang_svfloat16x4_t, __clang_svfloat16x4_t); void f(__clang_svfloat32x2_t, __clang_svfloat32x2_t); void f(__clang_svfloat32x3_t, __clang_svfloat32x3_t); void f(__clang_svfloat32x4_t, __clang_svfloat32x4_t); void f(__clang_svfloat64x2_t, __clang_svfloat64x2_t); void f(__clang_svfloat64x3_t, __clang_svfloat64x3_t); void f(__clang_svfloat64x4_t, __clang_svfloat64x4_t); void f(__clang_svbfloat16x2_t, __clang_svbfloat16x2_t); void f(__clang_svbfloat16x3_t, __clang_svbfloat16x3_t); void f(__clang_svbfloat16x4_t, __clang_svbfloat16x4_t); void f(__clang_svboolx2_t, __clang_svboolx2_t); void f(__clang_svboolx4_t, __clang_svboolx4_t); // CHECK-LABEL: define dso_local void @_Z3foov( // CHECK-SAME: ) #[[ATTR0:[0-9]+]] { // CHECK-NEXT: entry: // CHECK-NEXT: call void @_Z1fu10__SVInt8_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1fu11__SVInt16_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1fu11__SVInt16_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1fu11__SVInt32_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1fu11__SVInt64_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1fu11__SVUint8_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1fu12__SVUint16_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1fu12__SVUint32_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1fu12__SVUint64_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1fu13__SVFloat16_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1fu13__SVFloat32_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1fu13__SVFloat64_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1fu14__SVBfloat16_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1fu10__SVBool_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1fu11__SVCount_tS_(target("aarch64.svcount") zeroinitializer, target("aarch64.svcount") zeroinitializer) // CHECK-NEXT: call void @_Z1f10svint8x2_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1f10svint8x3_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1f10svint8x4_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1f11svint16x2_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1f11svint16x3_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1f11svint16x4_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1f11svint32x2_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1f11svint32x3_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1f11svint32x4_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1f11svint64x2_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1f11svint64x3_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1f11svint64x4_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1f11svuint8x2_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1f11svuint8x3_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1f11svuint8x4_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1f12svuint16x2_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1f12svuint16x3_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1f12svuint16x4_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1f12svuint32x2_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1f12svuint32x3_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1f12svuint32x4_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1f12svuint64x2_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1f12svuint64x3_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1f12svuint64x4_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1f13svfloat16x2_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1f13svfloat16x3_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1f13svfloat16x4_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1f13svfloat32x2_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1f13svfloat32x3_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1f13svfloat32x4_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1f13svfloat64x2_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1f13svfloat64x3_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1f13svfloat64x4_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1f14svbfloat16x2_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1f14svbfloat16x3_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1f14svbfloat16x4_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1f10svboolx2_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: call void @_Z1f10svboolx4_tS_( zeroinitializer, zeroinitializer) // CHECK-NEXT: ret void // // COMPAT_17-LABEL: define dso_local void @_Z3foov( // COMPAT_17-SAME: ) #[[ATTR0:[0-9]+]] { // COMPAT_17-NEXT: entry: // COMPAT_17-NEXT: call void @_Z1fu10__SVInt8_tu10__SVInt8_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1fu11__SVInt16_tu11__SVInt16_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1fu11__SVInt16_tu11__SVInt16_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1fu11__SVInt32_tu11__SVInt32_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1fu11__SVInt64_tu11__SVInt64_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1fu11__SVUint8_tu11__SVUint8_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1fu12__SVUint16_tu12__SVUint16_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1fu12__SVUint32_tu12__SVUint32_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1fu12__SVUint64_tu12__SVUint64_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1fu13__SVFloat16_tu13__SVFloat16_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1fu13__SVFloat32_tu13__SVFloat32_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1fu13__SVFloat64_tu13__SVFloat64_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1fu14__SVBFloat16_tu14__SVBFloat16_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1fu10__SVBool_tu10__SVBool_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1fu11__SVCount_tu11__SVCount_t(target("aarch64.svcount") zeroinitializer, target("aarch64.svcount") zeroinitializer) // COMPAT_17-NEXT: call void @_Z1f10svint8x2_t10svint8x2_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1f10svint8x3_t10svint8x3_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1f10svint8x4_t10svint8x4_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1f11svint16x2_t11svint16x2_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1f11svint16x3_t11svint16x3_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1f11svint16x4_t11svint16x4_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1f11svint32x2_t11svint32x2_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1f11svint32x3_t11svint32x3_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1f11svint32x4_t11svint32x4_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1f11svint64x2_t11svint64x2_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1f11svint64x3_t11svint64x3_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1f11svint64x4_t11svint64x4_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1f11svuint8x2_t11svuint8x2_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1f11svuint8x3_t11svuint8x3_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1f11svuint8x4_t11svuint8x4_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1f12svuint16x2_t12svuint16x2_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1f12svuint16x3_t12svuint16x3_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1f12svuint16x4_t12svuint16x4_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1f12svuint32x2_t12svuint32x2_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1f12svuint32x3_t12svuint32x3_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1f12svuint32x4_t12svuint32x4_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1f12svuint64x2_t12svuint64x2_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1f12svuint64x3_t12svuint64x3_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1f12svuint64x4_t12svuint64x4_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1f13svfloat16x2_t13svfloat16x2_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1f13svfloat16x3_t13svfloat16x3_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1f13svfloat16x4_t13svfloat16x4_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1f13svfloat32x2_t13svfloat32x2_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1f13svfloat32x3_t13svfloat32x3_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1f13svfloat32x4_t13svfloat32x4_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1f13svfloat64x2_t13svfloat64x2_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1f13svfloat64x3_t13svfloat64x3_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1f13svfloat64x4_t13svfloat64x4_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1f14svbfloat16x2_t14svbfloat16x2_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1f14svbfloat16x3_t14svbfloat16x3_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1f14svbfloat16x4_t14svbfloat16x4_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1f10svboolx2_t10svboolx2_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: call void @_Z1f10svboolx4_t10svboolx4_t( zeroinitializer, zeroinitializer) // COMPAT_17-NEXT: ret void // void foo() { f(__SVInt8_t(), __SVInt8_t()); f(__SVInt16_t(), __SVInt16_t()); f(__SVInt16_t(), __SVInt16_t()); f(__SVInt32_t(), __SVInt32_t()); f(__SVInt64_t(), __SVInt64_t()); f(__SVUint8_t(), __SVUint8_t()); f(__SVUint16_t(), __SVUint16_t()); f(__SVUint32_t(), __SVUint32_t()); f(__SVUint64_t(), __SVUint64_t()); f(__SVFloat16_t(), __SVFloat16_t()); f(__SVFloat32_t(), __SVFloat32_t()); f(__SVFloat64_t(), __SVFloat64_t()); f(__SVBfloat16_t(), __SVBfloat16_t()); f(__SVBool_t(), __SVBool_t()); f(__SVCount_t(), __SVCount_t()); f(__clang_svint8x2_t(), __clang_svint8x2_t()); f(__clang_svint8x3_t(), __clang_svint8x3_t()); f(__clang_svint8x4_t(), __clang_svint8x4_t()); f(__clang_svint16x2_t(), __clang_svint16x2_t()); f(__clang_svint16x3_t(), __clang_svint16x3_t()); f(__clang_svint16x4_t(), __clang_svint16x4_t()); f(__clang_svint32x2_t(), __clang_svint32x2_t()); f(__clang_svint32x3_t(), __clang_svint32x3_t()); f(__clang_svint32x4_t(), __clang_svint32x4_t()); f(__clang_svint64x2_t(), __clang_svint64x2_t()); f(__clang_svint64x3_t(), __clang_svint64x3_t()); f(__clang_svint64x4_t(), __clang_svint64x4_t()); f(__clang_svuint8x2_t(), __clang_svuint8x2_t()); f(__clang_svuint8x3_t(), __clang_svuint8x3_t()); f(__clang_svuint8x4_t(), __clang_svuint8x4_t()); f(__clang_svuint16x2_t(), __clang_svuint16x2_t()); f(__clang_svuint16x3_t(), __clang_svuint16x3_t()); f(__clang_svuint16x4_t(), __clang_svuint16x4_t()); f(__clang_svuint32x2_t(), __clang_svuint32x2_t()); f(__clang_svuint32x3_t(), __clang_svuint32x3_t()); f(__clang_svuint32x4_t(), __clang_svuint32x4_t()); f(__clang_svuint64x2_t(), __clang_svuint64x2_t()); f(__clang_svuint64x3_t(), __clang_svuint64x3_t()); f(__clang_svuint64x4_t(), __clang_svuint64x4_t()); f(__clang_svfloat16x2_t(), __clang_svfloat16x2_t()); f(__clang_svfloat16x3_t(), __clang_svfloat16x3_t()); f(__clang_svfloat16x4_t(), __clang_svfloat16x4_t()); f(__clang_svfloat32x2_t(), __clang_svfloat32x2_t()); f(__clang_svfloat32x3_t(), __clang_svfloat32x3_t()); f(__clang_svfloat32x4_t(), __clang_svfloat32x4_t()); f(__clang_svfloat64x2_t(), __clang_svfloat64x2_t()); f(__clang_svfloat64x3_t(), __clang_svfloat64x3_t()); f(__clang_svfloat64x4_t(), __clang_svfloat64x4_t()); f(__clang_svbfloat16x2_t(), __clang_svbfloat16x2_t()); f(__clang_svbfloat16x3_t(), __clang_svbfloat16x3_t()); f(__clang_svbfloat16x4_t(), __clang_svbfloat16x4_t()); f(__clang_svboolx2_t(), __clang_svboolx2_t()); f(__clang_svboolx4_t(), __clang_svboolx4_t()); }