// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --version 4 // RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve2p1 -O2 -Werror -Wall -emit-llvm -o - %s | opt -S -passes=mem2reg,tailcallelim | FileCheck %s // RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve2p1 -O2 -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -passes=mem2reg,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK // RUN: %clang_cc1 -triple aarch64 -target-feature +sme -target-feature +sme2 -O2 -Werror -Wall -emit-llvm -o - %s | opt -S -passes=mem2reg,tailcallelim | FileCheck %s // RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sme -target-feature +sme2 -O2 -Werror -Wall -emit-llvm -o - %s | opt -S -passes=mem2reg,tailcallelim | FileCheck %s // RUN: %clang_cc1 -triple aarch64 -target-feature +sme -target-feature +sve -target-feature +sve2 -target-feature +sve2p1 -O2 -Werror -Wall -emit-llvm -o - %s | opt -S -passes=mem2reg,tailcallelim | FileCheck %s // RUN: %clang_cc1 -triple aarch64 -target-feature +sme -target-feature +sme2 -O2 -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -passes=mem2reg,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK // RUN: %clang_cc1 -triple aarch64 -target-feature +sme -target-feature +sme2 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s // REQUIRES: aarch64-registered-target #include #if defined(__ARM_FEATURE_SME) && defined(__ARM_FEATURE_SVE) #define MODE_ATTR __arm_streaming_compatible #elif defined(__ARM_FEATURE_SME) #define MODE_ATTR __arm_streaming #else #define MODE_ATTR #endif // CHECK-LABEL: define dso_local { , } @test_svundef2_b( // CHECK-SAME: ) local_unnamed_addr #[[ATTR0:[0-9]+]] { // CHECK-NEXT: entry: // CHECK-NEXT: ret { , } undef // // CPP-CHECK-LABEL: define dso_local { , } @_Z15test_svundef2_bv( // CPP-CHECK-SAME: ) local_unnamed_addr #[[ATTR0:[0-9]+]] { // CPP-CHECK-NEXT: entry: // CPP-CHECK-NEXT: ret { , } undef // svboolx2_t test_svundef2_b(void) MODE_ATTR { return svundef2_b(); } // CHECK-LABEL: define dso_local { , , , } @test_svundef4_b( // CHECK-SAME: ) local_unnamed_addr #[[ATTR0]] { // CHECK-NEXT: entry: // CHECK-NEXT: ret { , , , } undef // // CPP-CHECK-LABEL: define dso_local { , , , } @_Z15test_svundef4_bv( // CPP-CHECK-SAME: ) local_unnamed_addr #[[ATTR0]] { // CPP-CHECK-NEXT: entry: // CPP-CHECK-NEXT: ret { , , , } undef // svboolx4_t test_svundef4_b(void) MODE_ATTR { return svundef4_b(); }