diff --git a/clang/include/clang/Basic/arm_sve.td b/clang/include/clang/Basic/arm_sve.td index 94c093d8911562..078373823a3b6f 100644 --- a/clang/include/clang/Basic/arm_sve.td +++ b/clang/include/clang/Basic/arm_sve.td @@ -2092,7 +2092,7 @@ let SVETargetGuard = "sve2p1", SMETargetGuard = "sme2" in { def SVCNTP_COUNT : SInst<"svcntp_{d}", "n}i", "QcQsQiQl", MergeNone, "aarch64_sve_cntp_{d}", [IsOverloadNone, VerifyRuntimeMode], [ImmCheck<1, ImmCheck2_4_Mul2>]>; } -let SVETargetGuard = "sve2,b16b16", SMETargetGuard = "sme2,b16b16" in { +let SVETargetGuard = "sve2,sve-b16b16", SMETargetGuard = "sme2,sve-b16b16" in { defm SVMUL_BF : SInstZPZZ<"svmul", "b", "aarch64_sve_fmul", "aarch64_sve_fmul_u", [VerifyRuntimeMode]>; defm SVADD_BF : SInstZPZZ<"svadd", "b", "aarch64_sve_fadd", "aarch64_sve_fadd_u", [VerifyRuntimeMode]>; defm SVSUB_BF : SInstZPZZ<"svsub", "b", "aarch64_sve_fsub", "aarch64_sve_fsub_u", [VerifyRuntimeMode]>; @@ -2116,7 +2116,7 @@ def SVFCLAMP_BF : SInst<"svclamp[_{d}]", "dddd", "b", MergeNone, "aarch64_sve_ multiclass MinMaxIntr { def SVS # NAME : SInst<"sv" # i # "[" # zm # "_{d}_" # mul # "]", t, "csil", MergeNone, "aarch64_sve_s" # i # zm # "_" # mul, [IsStreaming], []>; def SVU # NAME : SInst<"sv" # i # "[" # zm # "_{d}_" # mul # "]", t, "UcUsUiUl", MergeNone, "aarch64_sve_u" # i # zm # "_" # mul, [IsStreaming], []>; - def SVF # NAME : SInst<"sv" # i # "[" # zm # "_{d}_" # mul # "]", t, "bhfd", MergeNone, "aarch64_sve_f" # i # zm # "_" # mul, [IsStreaming], []>; + def SVF # NAME : SInst<"sv" # i # "[" # zm # "_{d}_" # mul # "]", t, "hfd", MergeNone, "aarch64_sve_f" # i # zm # "_" # mul, [IsStreaming], []>; } let SVETargetGuard = InvalidMode, SMETargetGuard = "sme2" in { @@ -2134,11 +2134,11 @@ let SVETargetGuard = InvalidMode, SMETargetGuard = "sme2" in { } multiclass SInstMinMaxByVector { - def NAME # _SINGLE_X2 : SInst<"sv" # name # "nm[_single_{d}_x2]", "22d", "bhfd", MergeNone, "aarch64_sve_f" # name # "nm_single_x2", [IsStreaming], []>; - def NAME # _SINGLE_X4 : SInst<"sv" # name # "nm[_single_{d}_x4]", "44d", "bhfd", MergeNone, "aarch64_sve_f" # name # "nm_single_x4", [IsStreaming], []>; + def NAME # _SINGLE_X2 : SInst<"sv" # name # "nm[_single_{d}_x2]", "22d", "hfd", MergeNone, "aarch64_sve_f" # name # "nm_single_x2", [IsStreaming], []>; + def NAME # _SINGLE_X4 : SInst<"sv" # name # "nm[_single_{d}_x4]", "44d", "hfd", MergeNone, "aarch64_sve_f" # name # "nm_single_x4", [IsStreaming], []>; - def NAME # _X2 : SInst<"sv" # name # "nm[_{d}_x2]", "222", "bhfd", MergeNone, "aarch64_sve_f" # name # "nm_x2", [IsStreaming], []>; - def NAME # _X4 : SInst<"sv" # name # "nm[_{d}_x4]", "444", "bhfd", MergeNone, "aarch64_sve_f" # name # "nm_x4", [IsStreaming], []>; + def NAME # _X2 : SInst<"sv" # name # "nm[_{d}_x2]", "222", "hfd", MergeNone, "aarch64_sve_f" # name # "nm_x2", [IsStreaming], []>; + def NAME # _X4 : SInst<"sv" # name # "nm[_{d}_x4]", "444", "hfd", MergeNone, "aarch64_sve_f" # name # "nm_x4", [IsStreaming], []>; } let SVETargetGuard = InvalidMode, SMETargetGuard = "sme2" in { @@ -2172,9 +2172,25 @@ let SVETargetGuard = InvalidMode, SMETargetGuard = "sme2" in { def SVFCLAMP_X4 : SInst<"svclamp[_single_{d}_x4]", "44dd", "hfd", MergeNone, "aarch64_sve_fclamp_single_x4", [IsStreaming], []>; } -let SVETargetGuard = InvalidMode, SMETargetGuard = "sme2,b16b16"in { - def SVBFCLAMP_X2 : SInst<"svclamp[_single_{d}_x2]", "22dd", "b", MergeNone, "aarch64_sve_bfclamp_single_x2", [IsStreaming], []>; - def SVBFCLAMP_X4 : SInst<"svclamp[_single_{d}_x4]", "44dd", "b", MergeNone, "aarch64_sve_bfclamp_single_x4", [IsStreaming], []>; +multiclass BfSingleMultiVector { + def NAME # _SINGLE_X2 : SInst<"sv" # name # "[_single_{d}_x2]", "22d", "b", MergeNone, "aarch64_sve_f" # name # "_single_x2", [IsStreaming], []>; + def NAME # _SINGLE_X4 : SInst<"sv" # name # "[_single_{d}_x4]", "44d", "b", MergeNone, "aarch64_sve_f" # name # "_single_x4", [IsStreaming], []>; + + def NAME # _X2 : SInst<"sv" # name # "[_{d}_x2]", "222", "b", MergeNone, "aarch64_sve_f" # name # "_x2", [IsStreaming], []>; + def NAME # _X4 : SInst<"sv" # name # "[_{d}_x4]", "444", "b", MergeNone, "aarch64_sve_f" # name # "_x4", [IsStreaming], []>; +} + +let SVETargetGuard = InvalidMode, SMETargetGuard = "sme2,sve-b16b16"in { + def SVBFCLAMP_X2 : SInst<"svclamp[_single_{d}_x2]", "22dd", "b", MergeNone, "aarch64_sve_bfclamp_single_x2", [IsStreaming], []>; + def SVBFCLAMP_X4 : SInst<"svclamp[_single_{d}_x4]", "44dd", "b", MergeNone, "aarch64_sve_bfclamp_single_x4", [IsStreaming], []>; + + // bfmin, bfmax (single, multi) + defm SVBFMIN : BfSingleMultiVector<"min">; + defm SVBFMAX : BfSingleMultiVector<"max">; + + // bfminnm, bfmaxnm (single, multi) + defm SVBFMINNM : BfSingleMultiVector<"minnm">; + defm SVBFMAXNM : BfSingleMultiVector<"maxnm">; } let SVETargetGuard = InvalidMode, SMETargetGuard = "sme2" in { diff --git a/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_clamp.c b/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_clamp.c index 30d963d5425c42..972a6582998838 100644 --- a/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_clamp.c +++ b/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_clamp.c @@ -1,14 +1,14 @@ // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py // REQUIRES: aarch64-registered-target -// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 \ +// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 \ // RUN: -Werror -emit-llvm -disable-O0-optnone -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 \ +// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 \ // RUN: -Werror -emit-llvm -disable-O0-optnone -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 \ +// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 \ // RUN: -Werror -emit-llvm -disable-O0-optnone -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 \ +// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 \ // RUN: -Werror -emit-llvm -disable-O0-optnone -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 \ +// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 \ // RUN: -S -disable-O0-optnone -Werror -Wall -o /dev/null %s #include diff --git a/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_max.c b/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_max.c index cc084f74d8a498..bd8d57e3523312 100644 --- a/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_max.c +++ b/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_max.c @@ -1,9 +1,9 @@ // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py -// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -fclang-abi-compat=latest -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -fclang-abi-compat=latest -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s +// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s +// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK +// RUN: %clang_cc1 -fclang-abi-compat=latest -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s +// RUN: %clang_cc1 -fclang-abi-compat=latest -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK +// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s // REQUIRES: aarch64-registered-target #include diff --git a/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_maxnm.c b/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_maxnm.c index f48c885497813e..07659932bef0a8 100644 --- a/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_maxnm.c +++ b/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_maxnm.c @@ -1,11 +1,11 @@ // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py // REQUIRES: aarch64-registered-target -// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK +// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s +// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK +// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s #include #ifdef SVE_OVERLOADED_FORMS diff --git a/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_min.c b/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_min.c index df9386092737bc..fe7b74c0052476 100644 --- a/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_min.c +++ b/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_min.c @@ -1,9 +1,9 @@ // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py -// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -fclang-abi-compat=latest -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -fclang-abi-compat=latest -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s +// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s +// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK +// RUN: %clang_cc1 -fclang-abi-compat=latest -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s +// RUN: %clang_cc1 -fclang-abi-compat=latest -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK +// RUN: %clang_cc1 -fclang-abi-compat=latest -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s // REQUIRES: aarch64-registered-target #include diff --git a/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_minnm.c b/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_minnm.c index 65d440df870d20..3b221c030eddf9 100644 --- a/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_minnm.c +++ b/clang/test/CodeGen/aarch64-sme2-intrinsics/acle_sme2_minnm.c @@ -1,11 +1,11 @@ // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py // REQUIRES: aarch64-registered-target -// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK +// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s +// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK +// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s #include #ifdef SVE_OVERLOADED_FORMS diff --git a/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfadd.c b/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfadd.c index 452b8fc6e0bb41..0f3b92f81cdeef 100644 --- a/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfadd.c +++ b/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfadd.c @@ -1,11 +1,11 @@ // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py // REQUIRES: aarch64-registered-target -// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +b16b16 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s -// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK +// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s +// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK +// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-b16b16 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s #include #if defined __ARM_FEATURE_SME diff --git a/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfclamp.c b/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfclamp.c index 57f025fbbada79..09559948684801 100644 --- a/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfclamp.c +++ b/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfclamp.c @@ -1,10 +1,10 @@ // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py // REQUIRES: aarch64-registered-target -// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve2p1 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve2p1 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve2p1 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve2p1 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve2p1 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -o /dev/null %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve2p1 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve2p1 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK +// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve2p1 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s +// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve2p1 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK +// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve2p1 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -o /dev/null %s #include #ifdef SVE_OVERLOADED_FORMS diff --git a/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmax.c b/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmax.c index 2518ace73c2674..cc3207aba01e4e 100644 --- a/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmax.c +++ b/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmax.c @@ -1,11 +1,11 @@ // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py // REQUIRES: aarch64-registered-target -// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +b16b16 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s -// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK +// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s +// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK +// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-b16b16 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s #include #if defined __ARM_FEATURE_SME diff --git a/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmaxnm.c b/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmaxnm.c index ccfc63810d72de..7983943af3d891 100644 --- a/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmaxnm.c +++ b/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmaxnm.c @@ -1,11 +1,11 @@ // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py // REQUIRES: aarch64-registered-target -// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +b16b16 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s -// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK +// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s +// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK +// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-b16b16 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s #include #if defined __ARM_FEATURE_SME diff --git a/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmin.c b/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmin.c index ebf5c24fb8a4d6..97159f119375a7 100644 --- a/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmin.c +++ b/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmin.c @@ -1,11 +1,11 @@ // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py // REQUIRES: aarch64-registered-target -// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +b16b16 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s -// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK +// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s +// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK +// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-b16b16 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s #include #if defined __ARM_FEATURE_SME diff --git a/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfminnm.c b/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfminnm.c index d5869fc21c3c88..4cadbdc2b4d88f 100644 --- a/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfminnm.c +++ b/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfminnm.c @@ -1,11 +1,11 @@ // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py // REQUIRES: aarch64-registered-target -// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +b16b16 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s -// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK +// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s +// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK +// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-b16b16 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s #include #if defined __ARM_FEATURE_SME diff --git a/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmla.c b/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmla.c index bd0dcf18e7b021..720853fccb6501 100644 --- a/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmla.c +++ b/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmla.c @@ -1,11 +1,11 @@ // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py // REQUIRES: aarch64-registered-target -// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -o /dev/null %s -// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -o /dev/null %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK +// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s +// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK +// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -o /dev/null %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -o /dev/null %s #include #if defined __ARM_FEATURE_SME diff --git a/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmla_lane.c b/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmla_lane.c index d4cfceb50d91fb..8d13d83d6ef995 100644 --- a/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmla_lane.c +++ b/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmla_lane.c @@ -1,10 +1,10 @@ // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py // REQUIRES: aarch64-registered-target -// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve2p1 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve2p1 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve2p1 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve2p1 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve2p1 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -o /dev/null %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve2p1 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve2p1 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK +// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve2p1 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s +// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve2p1 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK +// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve2p1 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -o /dev/null %s #include #ifdef SVE_OVERLOADED_FORMS diff --git a/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmls.c b/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmls.c index 82d8134a1fb61d..98c4dc95fecdf3 100644 --- a/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmls.c +++ b/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmls.c @@ -1,11 +1,11 @@ // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py // REQUIRES: aarch64-registered-target -// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -o /dev/null %s -// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -o /dev/null %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK +// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s +// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK +// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -o /dev/null %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -o /dev/null %s #include #if defined __ARM_FEATURE_SME diff --git a/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmls_lane.c b/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmls_lane.c index 72ace1b3418e32..4adc3881871037 100644 --- a/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmls_lane.c +++ b/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmls_lane.c @@ -1,10 +1,10 @@ // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py // REQUIRES: aarch64-registered-target -// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve2p1 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve2p1 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve2p1 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve2p1 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve2p1 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -o /dev/null %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve2p1 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve2p1 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK +// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve2p1 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s +// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve2p1 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK +// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve2p1 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -o /dev/null %s #include #ifdef SVE_OVERLOADED_FORMS diff --git a/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmul.c b/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmul.c index 655bd9051ed552..e9443e35cee578 100644 --- a/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmul.c +++ b/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmul.c @@ -1,11 +1,11 @@ // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py // REQUIRES: aarch64-registered-target -// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +b16b16 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s -// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK +// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s +// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK +// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-b16b16 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s #include #if defined __ARM_FEATURE_SME diff --git a/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmul_lane.c b/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmul_lane.c index 20328817fd9b4b..adcd4b8b72651c 100644 --- a/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmul_lane.c +++ b/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfmul_lane.c @@ -1,10 +1,10 @@ // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py // REQUIRES: aarch64-registered-target -// RUN: %clang_cc1 -triple aarch64 -target-feature +sve2 -target-feature +sve2p1 -target-feature +b16b16 -target-feature +sve -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -triple aarch64 -target-feature +sve2 -target-feature +sve2p1 -target-feature +b16b16 -target-feature +sve -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve2 -target-feature +sve2p1 -target-feature +b16b16 -target-feature +sve -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve2 -target-feature +sve2p1 -target-feature +b16b16 -target-feature +sve -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -triple aarch64 -target-feature +sve2 -target-feature +sve2p1 -target-feature +b16b16 -target-feature +sve -target-feature -S -disable-O0-optnone -Werror -Wall -o /dev/null %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +sve2 -target-feature +sve2p1 -target-feature +sve-b16b16 -target-feature +sve -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +sve2 -target-feature +sve2p1 -target-feature +sve-b16b16 -target-feature +sve -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK +// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve2 -target-feature +sve2p1 -target-feature +sve-b16b16 -target-feature +sve -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s +// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve2 -target-feature +sve2p1 -target-feature +sve-b16b16 -target-feature +sve -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK +// RUN: %clang_cc1 -triple aarch64 -target-feature +sve2 -target-feature +sve2p1 -target-feature +sve-b16b16 -target-feature +sve -target-feature -S -disable-O0-optnone -Werror -Wall -o /dev/null %s #include #ifdef SVE_OVERLOADED_FORMS diff --git a/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfsub.c b/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfsub.c index 9eae73608ed515..a58f0046e61f33 100644 --- a/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfsub.c +++ b/clang/test/CodeGen/aarch64-sve2p1-intrinsics/acle_sve2p1_bfsub.c @@ -1,11 +1,11 @@ // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py // REQUIRES: aarch64-registered-target -// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK -// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +b16b16 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s -// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +b16b16 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK +// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s +// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-b16b16 -disable-O0-optnone -Werror -Wall -emit-llvm -o - -x c++ %s | opt -S -p mem2reg,instcombine,tailcallelim | FileCheck %s -check-prefix=CPP-CHECK +// RUN: %clang_cc1 -triple aarch64 -target-feature +sve -target-feature +sve2 -target-feature +sve-b16b16 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s +// RUN: %clang_cc1 -triple aarch64 -target-feature +bf16 -target-feature +sme -target-feature +sme2 -target-feature +sve-b16b16 -S -disable-O0-optnone -Werror -Wall -o /dev/null %s #include #if defined __ARM_FEATURE_SME diff --git a/clang/test/Driver/print-supported-extensions-aarch64.c b/clang/test/Driver/print-supported-extensions-aarch64.c index 6b969d50610f8b..242cece3a92a83 100644 --- a/clang/test/Driver/print-supported-extensions-aarch64.c +++ b/clang/test/Driver/print-supported-extensions-aarch64.c @@ -5,7 +5,7 @@ // CHECK-EMPTY: // CHECK-NEXT: Name Architecture Feature(s) Description // CHECK-NEXT: aes FEAT_AES, FEAT_PMULL Enable AES support -// CHECK-NEXT: b16b16 FEAT_SVE_B16B16 Enable SVE2.1 or SME2.1 non-widening BFloat16 to BFloat16 instructions +// CHECK-NEXT: b16b16 FEAT_B16B16 Enable SME2.1 ZA-targeting non-widening BFloat16 to BFloat16 instructions // CHECK-NEXT: bf16 FEAT_BF16 Enable BFloat16 Extension // CHECK-NEXT: brbe FEAT_BRBE Enable Branch Record Buffer Extension // CHECK-NEXT: bti FEAT_BTI Enable Branch Target Identification @@ -71,6 +71,7 @@ // CHECK-NEXT: ssve-fp8dot4 FEAT_SSVE_FP8DOT4 Enable SVE2 FP8 4-way dot product instructions // CHECK-NEXT: ssve-fp8fma FEAT_SSVE_FP8FMA Enable SVE2 FP8 multiply-add instructions // CHECK-NEXT: sve FEAT_SVE Enable Scalable Vector Extension (SVE) instructions +// CHECK-NEXT: sve-b16b16 FEAT_SVE_B16B16 Enable SVE2.1 non-widening and SME2.1 Z-targeting non-widening BFloat16 to BFloat16 instructions // CHECK-NEXT: sve2 FEAT_SVE2 Enable Scalable Vector Extension 2 (SVE2) instructions // CHECK-NEXT: sve2-aes FEAT_SVE_AES, FEAT_SVE_PMULL128 Enable AES SVE2 instructions // CHECK-NEXT: sve2-bitperm FEAT_SVE_BitPerm Enable bit permutation SVE2 instructions diff --git a/clang/test/Sema/aarch64-sme2-intrinsics/acle_sme2_b16b16.cpp b/clang/test/Sema/aarch64-sme2-intrinsics/acle_sme2_b16b16.cpp index 8a8f121d7227d8..b93f348557c014 100644 --- a/clang/test/Sema/aarch64-sme2-intrinsics/acle_sme2_b16b16.cpp +++ b/clang/test/Sema/aarch64-sme2-intrinsics/acle_sme2_b16b16.cpp @@ -6,8 +6,45 @@ void test_b16b16( svbfloat16_t bf16, svbfloat16x2_t bf16x2, svbfloat16x4_t bf16x4) __arm_streaming { - // expected-error@+1 {{'svclamp_single_bf16_x2' needs target feature sme2,b16b16}} + // expected-error@+1 {{'svclamp_single_bf16_x2' needs target feature sme2,sve-b16b16}} svclamp_single_bf16_x2(bf16x2, bf16, bf16); - // expected-error@+1 {{'svclamp_single_bf16_x4' needs target feature sme2,b16b16}} + // expected-error@+1 {{'svclamp_single_bf16_x4' needs target feature sme2,sve-b16b16}} svclamp_single_bf16_x4(bf16x4, bf16, bf16); + + // expected-error@+1 {{'svmax_single_bf16_x2' needs target feature sme2,sve-b16b16}} + svmax_single_bf16_x2(bf16x2, bf16); + // expected-error@+1 {{'svmax_single_bf16_x4' needs target feature sme2,sve-b16b16}} + svmax_single_bf16_x4(bf16x4, bf16); + // expected-error@+1 {{'svmax_bf16_x2' needs target feature sme2,sve-b16b16}} + svmax_bf16_x2(bf16x2, bf16x2); + // expected-error@+1 {{'svmax_bf16_x4' needs target feature sme2,sve-b16b16}} + svmax_bf16_x4(bf16x4, bf16x4); + + // expected-error@+1 {{'svmaxnm_single_bf16_x2' needs target feature sme2,sve-b16b16}} + svmaxnm_single_bf16_x2(bf16x2, bf16); + // expected-error@+1 {{'svmaxnm_single_bf16_x4' needs target feature sme2,sve-b16b16}} + svmaxnm_single_bf16_x4(bf16x4, bf16); + // expected-error@+1 {{'svmaxnm_bf16_x2' needs target feature sme2,sve-b16b16}} + svmaxnm_bf16_x2(bf16x2, bf16x2); + // expected-error@+1 {{'svmaxnm_bf16_x4' needs target feature sme2,sve-b16b16}} + svmaxnm_bf16_x4(bf16x4, bf16x4); + + // expected-error@+1 {{'svmin_single_bf16_x2' needs target feature sme2,sve-b16b16}} + svmin_single_bf16_x2(bf16x2, bf16); + // expected-error@+1 {{'svmin_single_bf16_x4' needs target feature sme2,sve-b16b16}} + svmin_single_bf16_x4(bf16x4, bf16); + // expected-error@+1 {{'svmin_bf16_x2' needs target feature sme2,sve-b16b16}} + svmin_bf16_x2(bf16x2, bf16x2); + // expected-error@+1 {{'svmin_bf16_x4' needs target feature sme2,sve-b16b16}} + svmin_bf16_x4(bf16x4, bf16x4); + + // expected-error@+1 {{'svminnm_single_bf16_x2' needs target feature sme2,sve-b16b16}} + svminnm_single_bf16_x2(bf16x2, bf16); + // expected-error@+1 {{'svminnm_single_bf16_x4' needs target feature sme2,sve-b16b16}} + svminnm_single_bf16_x4(bf16x4, bf16); + + // expected-error@+1 {{'svminnm_bf16_x2' needs target feature sme2,sve-b16b16}} + svminnm_bf16_x2(bf16x2, bf16x2); + // expected-error@+1 {{'svminnm_bf16_x4' needs target feature sme2,sve-b16b16}} + svminnm_bf16_x4(bf16x4, bf16x4); } \ No newline at end of file diff --git a/clang/test/Sema/aarch64-sve2p1-intrinsics/acle_sve2p1_b16b16.cpp b/clang/test/Sema/aarch64-sve2p1-intrinsics/acle_sve2p1_b16b16.cpp new file mode 100644 index 00000000000000..188054f4517140 --- /dev/null +++ b/clang/test/Sema/aarch64-sve2p1-intrinsics/acle_sve2p1_b16b16.cpp @@ -0,0 +1,56 @@ +// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +sve2 -verify -verify-ignore-unexpected=error,note -emit-llvm -o - %s +// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sme -target-feature +sme2 -verify -verify-ignore-unexpected=error,note -emit-llvm -o - %s +// REQUIRES: aarch64-registered-target + +#include + +#if defined __ARM_FEATURE_SME +#define MODE_ATTR __arm_streaming +#else +#define MODE_ATTR +#endif + +__attribute__((target("sve-b16b16"))) +void test_with_sve_b16b16(svbool_t pg, svbfloat16_t op1, svbfloat16_t op2, svbfloat16_t op3) MODE_ATTR +{ + svclamp_bf16(op1, op2, op3); + svadd_bf16_m(pg, op1, op2); + svmax_bf16_m(pg, op1, op2); + svmaxnm_bf16_m(pg, op1, op2); + svmin_bf16_m(pg, op1, op2); + svminnm_bf16_m(pg, op1, op2); + svmla_lane_bf16(op1, op2, op3, 1); + svmla_bf16_m(pg, op1, op2, op3); + svmls_bf16_m(pg, op1, op2, op3); + svmul_lane_bf16(op1, op2, 1); + svmul_bf16_m(pg, op1, op2); + svsub_bf16_m(pg, op1, op2); +} + +void test_no_sve_b16b16(svbool_t pg, svbfloat16_t op1, svbfloat16_t op2, svbfloat16_t op3) MODE_ATTR +{ + // expected-error@+1 {{'svclamp_bf16' needs target feature (sve2,sve-b16b16)|(sme2,sve-b16b16)}} + svclamp_bf16(op1, op2, op3); + // expected-error@+1 {{'svadd_bf16_m' needs target feature (sve2,sve-b16b16)|(sme2,sve-b16b16)}} + svadd_bf16_m(pg, op1, op2); + // expected-error@+1 {{'svmax_bf16_m' needs target feature (sve2,sve-b16b16)|(sme2,sve-b16b16)}} + svmax_bf16_m(pg, op1, op2); + // expected-error@+1 {{'svmaxnm_bf16_m' needs target feature (sve2,sve-b16b16)|(sme2,sve-b16b16)}} + svmaxnm_bf16_m(pg, op1, op2); + // expected-error@+1 {{'svmin_bf16_m' needs target feature (sve2,sve-b16b16)|(sme2,sve-b16b16)}} + svmin_bf16_m(pg, op1, op2); + // expected-error@+1 {{'svminnm_bf16_m' needs target feature (sve2,sve-b16b16)|(sme2,sve-b16b16)}} + svminnm_bf16_m(pg, op1, op2); + // expected-error@+1 {{'svmla_lane_bf16' needs target feature (sve2,sve-b16b16)|(sme2,sve-b16b16)}} + svmla_lane_bf16(op1, op2, op3, 1); + // expected-error@+1 {{'svmla_bf16_m' needs target feature (sve2,sve-b16b16)|(sme2,sve-b16b16)}} + svmla_bf16_m(pg, op1, op2, op3); + // expected-error@+1 {{'svmls_bf16_m' needs target feature (sve2,sve-b16b16)|(sme2,sve-b16b16)}} + svmls_bf16_m(pg, op1, op2, op3); + // expected-error@+1 {{'svmul_lane_bf16' needs target feature (sve2,sve-b16b16)|(sme2,sve-b16b16)}} + svmul_lane_bf16(op1, op2, 1); + // expected-error@+1 {{'svmul_bf16_m' needs target feature (sve2,sve-b16b16)|(sme2,sve-b16b16)}} + svmul_bf16_m(pg, op1, op2); + // expected-error@+1 {{'svsub_bf16_m' needs target feature (sve2,sve-b16b16)|(sme2,sve-b16b16)}} + svsub_bf16_m(pg, op1, op2); +} diff --git a/llvm/lib/Target/AArch64/AArch64Features.td b/llvm/lib/Target/AArch64/AArch64Features.td index db0e1a2df16deb..2aa74deb0e850c 100644 --- a/llvm/lib/Target/AArch64/AArch64Features.td +++ b/llvm/lib/Target/AArch64/AArch64Features.td @@ -435,8 +435,11 @@ def FeatureMEC : Extension<"mec", "MEC", "FEAT_MEC", def FeatureSVE2p1: ExtensionWithMArch<"sve2p1", "SVE2p1", "FEAT_SVE2p1", "Enable Scalable Vector Extension 2.1 instructions", [FeatureSVE2]>; -def FeatureB16B16 : ExtensionWithMArch<"b16b16", "B16B16", "FEAT_SVE_B16B16", - "Enable SVE2.1 or SME2.1 non-widening BFloat16 to BFloat16 instructions", [FeatureBF16]>; +def FeatureB16B16 : ExtensionWithMArch<"b16b16", "B16B16", "FEAT_B16B16", + "Enable SME2.1 ZA-targeting non-widening BFloat16 to BFloat16 instructions", [FeatureBF16]>; + +def FeatureSVEB16B16: ExtensionWithMArch<"sve-b16b16", "SVEB16B16", "FEAT_SVE_B16B16", + "Enable SVE2.1 non-widening and SME2.1 Z-targeting non-widening BFloat16 to BFloat16 instructions">; def FeatureSMEF16F16 : ExtensionWithMArch<"sme-f16f16", "SMEF16F16", "FEAT_SME_F16F16", "Enable SME non-widening Float16 instructions", [FeatureSME2]>; diff --git a/llvm/lib/Target/AArch64/AArch64InstrInfo.td b/llvm/lib/Target/AArch64/AArch64InstrInfo.td index 93d2c0b2c9f426..1e5c5e2657e65d 100644 --- a/llvm/lib/Target/AArch64/AArch64InstrInfo.td +++ b/llvm/lib/Target/AArch64/AArch64InstrInfo.td @@ -143,6 +143,8 @@ def HasFuseAES : Predicate<"Subtarget->hasFuseAES()">, "fuse-aes">; def HasSVE : Predicate<"Subtarget->isSVEAvailable()">, AssemblerPredicateWithAll<(all_of FeatureSVE), "sve">; +def HasSVEB16B16 : Predicate<"Subtarget->hasSVEB16B16()">, + AssemblerPredicateWithAll<(all_of FeatureSVEB16B16), "sve-b16b16">; def HasSVE2 : Predicate<"Subtarget->isSVEAvailable() && Subtarget->hasSVE2()">, AssemblerPredicateWithAll<(all_of FeatureSVE2), "sve2">; def HasSVE2p1 : Predicate<"Subtarget->isSVEAvailable() && Subtarget->hasSVE2p1()">, diff --git a/llvm/lib/Target/AArch64/AArch64SMEInstrInfo.td b/llvm/lib/Target/AArch64/AArch64SMEInstrInfo.td index 709a98d3a8cb4d..22de9e1458b7ad 100644 --- a/llvm/lib/Target/AArch64/AArch64SMEInstrInfo.td +++ b/llvm/lib/Target/AArch64/AArch64SMEInstrInfo.td @@ -857,6 +857,7 @@ defm FMOPA_MPPZZ_H : sme2p1_fmop_tile_fp16<"fmopa", 0b0, 0b0, nxv8f16, int_aarch defm FMOPS_MPPZZ_H : sme2p1_fmop_tile_fp16<"fmops", 0b0, 0b1, nxv8f16, int_aarch64_sme_mops>; } +// SME2 ZA-targeting non-widening BFloat16 instructions let Predicates = [HasSME2, HasB16B16] in { defm BFADD_VG2_M2Z_H : sme2_multivec_accum_add_sub_vg2<"bfadd", 0b1100, MatrixOp16, ZZ_h_mul_r, nxv8bf16, int_aarch64_sme_add_za16_vg1x2>; defm BFADD_VG4_M4Z_H : sme2_multivec_accum_add_sub_vg4<"bfadd", 0b1100, MatrixOp16, ZZZZ_h_mul_r, nxv8bf16, int_aarch64_sme_add_za16_vg1x4>; @@ -877,6 +878,12 @@ defm BFMLS_VG4_M4ZZ : sme2_dot_mla_add_sub_array_vg4_single<"bfmls", 0b1111101, defm BFMLS_VG2_M2Z2Z : sme2_dot_mla_add_sub_array_vg2_multi<"bfmls", 0b1100011, MatrixOp16, ZZ_h_mul_r, nxv8bf16, int_aarch64_sme_fmls_vg1x2>; defm BFMLS_VG4_M4Z4Z : sme2_dot_mla_add_sub_array_vg4_multi<"bfmls", 0b1100011, MatrixOp16, ZZZZ_h_mul_r, nxv8bf16, int_aarch64_sme_fmls_vg1x4>; +defm BFMOPA_MPPZZ_H : sme2p1_fmop_tile_fp16<"bfmopa", 0b1, 0b0, nxv8bf16, int_aarch64_sme_mopa>; +defm BFMOPS_MPPZZ_H : sme2p1_fmop_tile_fp16<"bfmops", 0b1, 0b1, nxv8bf16, int_aarch64_sme_mops>; +} + +// SME2 Z-targeting non-widening BFloat16 instructions +let Predicates = [HasSME2, HasSVEB16B16] in { defm BFMAX_VG2_2ZZ : sme2p1_bf_max_min_vector_vg2_single<"bfmax", 0b0010000>; defm BFMAX_VG4_4ZZ : sme2p1_bf_max_min_vector_vg4_single<"bfmax", 0b0010000>; defm BFMAX_VG2_2Z2Z : sme2p1_bf_max_min_vector_vg2_multi<"bfmax", 0b0010000>; @@ -899,9 +906,6 @@ defm BFMINNM_VG4_4Z2Z : sme2p1_bf_max_min_vector_vg4_multi<"bfminnm", 0b0010011 defm BFCLAMP_VG2_2ZZZ: sme2p1_bfclamp_vector_vg2_multi<"bfclamp">; defm BFCLAMP_VG4_4ZZZ: sme2p1_bfclamp_vector_vg4_multi<"bfclamp">; - -defm BFMOPA_MPPZZ_H : sme2p1_fmop_tile_fp16<"bfmopa", 0b1, 0b0, nxv8bf16, int_aarch64_sme_mopa>; -defm BFMOPS_MPPZZ_H : sme2p1_fmop_tile_fp16<"bfmops", 0b1, 0b1, nxv8bf16, int_aarch64_sme_mops>; } let Predicates = [HasSME2, HasFP8] in { diff --git a/llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td b/llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td index 209830c7dc4ab1..d9a70b5ef02fcb 100644 --- a/llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td +++ b/llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td @@ -4110,7 +4110,7 @@ def : InstAlias<"pfalse\t$Pd", (PFALSE PPRorPNR8:$Pd), 0>; // Non-widening BFloat16 to BFloat16 instructions //===----------------------------------------------------------------------===// -let Predicates = [HasSVE2orSME2, HasB16B16, UseExperimentalZeroingPseudos] in { +let Predicates = [HasSVE2orSME2, HasSVEB16B16, UseExperimentalZeroingPseudos] in { defm BFADD_ZPZZ : sve2p1_bf_2op_p_zds_zeroing; defm BFSUB_ZPZZ : sve2p1_bf_2op_p_zds_zeroing; defm BFMUL_ZPZZ : sve2p1_bf_2op_p_zds_zeroing; @@ -4118,9 +4118,9 @@ defm BFMAXNM_ZPZZ : sve2p1_bf_2op_p_zds_zeroing; defm BFMINNM_ZPZZ : sve2p1_bf_2op_p_zds_zeroing; defm BFMIN_ZPZZ : sve2p1_bf_2op_p_zds_zeroing; defm BFMAX_ZPZZ : sve2p1_bf_2op_p_zds_zeroing; -} // HasSVE2orSME2, HasB16B16, UseExperimentalZeroingPseudos +} // HasSVE2orSME2, HasSVEB16B16, UseExperimentalZeroingPseudos -let Predicates = [HasSVE2orSME2, HasB16B16] in { +let Predicates = [HasSVE2orSME2, HasSVEB16B16] in { defm BFMLA_ZPmZZ : sve_fp_3op_p_zds_a_bf<0b00, "bfmla", "BFMLA_ZPZZZ", AArch64fmla_m1>; defm BFMLS_ZPmZZ : sve_fp_3op_p_zds_a_bf<0b01, "bfmls", "BFMLS_ZPZZZ", AArch64fmls_m1>; @@ -4160,7 +4160,7 @@ defm BFMINNM_ZPZZ : sve2p1_bf_bin_pred_zds; defm BFMUL_ZZZI : sve2p1_fp_bfmul_by_indexed_elem<"bfmul", int_aarch64_sve_fmul_lane>; defm BFCLAMP_ZZZ : sve2p1_bfclamp<"bfclamp", AArch64fclamp>; -} // End HasSVE2orSME2, HasB16B16 +} // End HasSVE2orSME2, HasSVEB16B16 //===----------------------------------------------------------------------===// diff --git a/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp b/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp index 8d4fc4ec5b007a..8a93b7fc4c89fb 100644 --- a/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp +++ b/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp @@ -3677,6 +3677,7 @@ static const struct Extension { {"rcpc", {AArch64::FeatureRCPC}}, {"rng", {AArch64::FeatureRandGen}}, {"sve", {AArch64::FeatureSVE}}, + {"sve-b16b16", {AArch64::FeatureSVEB16B16}}, {"sve2", {AArch64::FeatureSVE2}}, {"sve2-aes", {AArch64::FeatureSVE2AES}}, {"sve2-sm4", {AArch64::FeatureSVE2SM4}}, diff --git a/llvm/test/CodeGen/AArch64/sme2-intrinsics-max.ll b/llvm/test/CodeGen/AArch64/sme2-intrinsics-max.ll index 6e2c48f88e0244..9d865b1e744716 100644 --- a/llvm/test/CodeGen/AArch64/sme2-intrinsics-max.ll +++ b/llvm/test/CodeGen/AArch64/sme2-intrinsics-max.ll @@ -1,5 +1,5 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4 -; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sme2 -mattr=+b16b16 -force-streaming -verify-machineinstrs < %s | FileCheck %s +; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sme2 -mattr=+sve-b16b16 -force-streaming -verify-machineinstrs < %s | FileCheck %s ; SMAX (Single, x2) diff --git a/llvm/test/CodeGen/AArch64/sme2-intrinsics-min.ll b/llvm/test/CodeGen/AArch64/sme2-intrinsics-min.ll index d37984596f8474..575bcbc919b8cc 100644 --- a/llvm/test/CodeGen/AArch64/sme2-intrinsics-min.ll +++ b/llvm/test/CodeGen/AArch64/sme2-intrinsics-min.ll @@ -1,5 +1,5 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4 -; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sme2 -mattr=+b16b16 -force-streaming -verify-machineinstrs < %s | FileCheck %s +; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sme2 -mattr=+sve-b16b16 -force-streaming -verify-machineinstrs < %s | FileCheck %s ; SMIN (Single, x2) diff --git a/llvm/test/CodeGen/AArch64/sve2-min-max-clamp.ll b/llvm/test/CodeGen/AArch64/sve2-min-max-clamp.ll index 365fd534548495..d5fda04b9773d7 100644 --- a/llvm/test/CodeGen/AArch64/sve2-min-max-clamp.ll +++ b/llvm/test/CodeGen/AArch64/sve2-min-max-clamp.ll @@ -1,5 +1,5 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 4 -; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve2p1 -mattr=+b16b16 < %s | FileCheck %s +; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve2p1 -mattr=+sve-b16b16 < %s | FileCheck %s ; Replace pattern min(max(v1,v2),v3) by clamp diff --git a/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfadd.ll b/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfadd.ll index 221bb3b6045fb2..7b921d71cbfb4b 100644 --- a/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfadd.ll +++ b/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfadd.ll @@ -1,5 +1,5 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py -; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve2p1 -mattr=+b16b16 -mattr=+use-experimental-zeroing-pseudos -verify-machineinstrs < %s \ +; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve2p1 -mattr=+sve-b16b16 -mattr=+use-experimental-zeroing-pseudos -verify-machineinstrs < %s \ ; RUN: | FileCheck %s define @bfadd_pred( %pg, %a, %b){ diff --git a/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfclamp.ll b/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfclamp.ll index 7934f831a7e62f..baadd08e392d05 100644 --- a/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfclamp.ll +++ b/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfclamp.ll @@ -1,5 +1,5 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py -; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve2p1 -mattr=+sme2 -mattr=+b16b16 -verify-machineinstrs < %s | FileCheck %s +; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve2p1 -mattr=+sme2 -mattr=+sve-b16b16 -verify-machineinstrs < %s | FileCheck %s define @bfclamp( %a, %b, %c){ ; CHECK-LABEL: bfclamp: diff --git a/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmax.ll b/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmax.ll index 24c4fedb342662..55ef452b603088 100644 --- a/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmax.ll +++ b/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmax.ll @@ -1,5 +1,5 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py -; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve2p1 -mattr=+b16b16 -mattr=+use-experimental-zeroing-pseudos -verify-machineinstrs < %s \ +; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve2p1 -mattr=+sve-b16b16 -mattr=+use-experimental-zeroing-pseudos -verify-machineinstrs < %s \ ; RUN: | FileCheck %s define @bfmax_pred( %pg, %a, %b){ diff --git a/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmaxnm.ll b/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmaxnm.ll index 25fe9cf7243a4e..9b0f7e039f2e56 100644 --- a/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmaxnm.ll +++ b/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmaxnm.ll @@ -1,5 +1,5 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py -; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve2p1 -mattr=+b16b16 -mattr=+use-experimental-zeroing-pseudos -verify-machineinstrs < %s \ +; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve2p1 -mattr=+sve-b16b16 -mattr=+use-experimental-zeroing-pseudos -verify-machineinstrs < %s \ ; RUN: | FileCheck %s define @bfmaxnm_pred( %pg, %a, %b){ diff --git a/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmin.ll b/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmin.ll index d5b0b8be8b85ea..8c586fd47f5a89 100644 --- a/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmin.ll +++ b/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmin.ll @@ -1,5 +1,5 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py -; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve2p1 -mattr=+b16b16 -mattr=+use-experimental-zeroing-pseudos -verify-machineinstrs < %s \ +; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve2p1 -mattr=+sve-b16b16 -mattr=+use-experimental-zeroing-pseudos -verify-machineinstrs < %s \ ; RUN: | FileCheck %s define @bfmin_pred( %pg, %a, %b){ diff --git a/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfminnm.ll b/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfminnm.ll index c019dc7cbe2910..90132224e02233 100644 --- a/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfminnm.ll +++ b/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfminnm.ll @@ -1,5 +1,5 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py -; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve2p1 -mattr=+b16b16 -mattr=+use-experimental-zeroing-pseudos -verify-machineinstrs < %s \ +; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve2p1 -mattr=+sve-b16b16 -mattr=+use-experimental-zeroing-pseudos -verify-machineinstrs < %s \ ; RUN: | FileCheck %s define @bfminnm_pred( %pg, %a, %b){ diff --git a/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmla.ll b/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmla.ll index 02b1db13ea34f7..eb7e99f332da3e 100644 --- a/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmla.ll +++ b/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmla.ll @@ -1,5 +1,5 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py -; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve2p1 -mattr=+b16b16 -verify-machineinstrs < %s | FileCheck %s +; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve2p1 -mattr=+sve-b16b16 -verify-machineinstrs < %s | FileCheck %s define @bfmla_m( %pg, %a, %b, %c){ ; CHECK-LABEL: bfmla_m: diff --git a/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmla_lane.ll b/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmla_lane.ll index d0e3a82df3ff91..ece96b38d78637 100644 --- a/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmla_lane.ll +++ b/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmla_lane.ll @@ -1,5 +1,5 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py -; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve2p1 -mattr=+b16b16 -verify-machineinstrs < %s | FileCheck %s +; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve2p1 -mattr=+sve-b16b16 -verify-machineinstrs < %s | FileCheck %s define @bfmla_lane_idx1( %a, %b, %c){ ; CHECK-LABEL: bfmla_lane_idx1: diff --git a/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmls.ll b/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmls.ll index 987fe1fb5822aa..8ff1afcc9b4abb 100644 --- a/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmls.ll +++ b/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmls.ll @@ -1,5 +1,5 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py -; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve2p1 -mattr=+b16b16 -verify-machineinstrs < %s | FileCheck %s +; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve2p1 -mattr=+sve-b16b16 -verify-machineinstrs < %s | FileCheck %s define @bfmls_m( %pg, %a, %b, %c){ ; CHECK-LABEL: bfmls_m: diff --git a/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmls_lane.ll b/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmls_lane.ll index 16b4538ffab9e2..81406bf08b9359 100644 --- a/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmls_lane.ll +++ b/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmls_lane.ll @@ -1,5 +1,5 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py -; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve2p1 -mattr=+b16b16 -verify-machineinstrs < %s | FileCheck %s +; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve2p1 -mattr=+sve-b16b16 -verify-machineinstrs < %s | FileCheck %s define @bfmls_lane_idx1( %a, %b, %c){ ; CHECK-LABEL: bfmls_lane_idx1: diff --git a/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmul.ll b/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmul.ll index a04c5a52139cdf..8b6a087578ed80 100644 --- a/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmul.ll +++ b/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmul.ll @@ -1,5 +1,5 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py -; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve2p1 -mattr=+b16b16 -mattr=+use-experimental-zeroing-pseudos -verify-machineinstrs < %s \ +; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve2p1 -mattr=+sve-b16b16 -mattr=+use-experimental-zeroing-pseudos -verify-machineinstrs < %s \ ; RUN: | FileCheck %s define @bfmul_pred( %pg, %a, %b){ diff --git a/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmul_lane.ll b/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmul_lane.ll index 2962d59e707ca2..28ae9b0d19e1c8 100644 --- a/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmul_lane.ll +++ b/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfmul_lane.ll @@ -1,5 +1,5 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py -; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve2p1 -mattr=+b16b16 -verify-machineinstrs < %s | FileCheck %s +; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve2p1 -mattr=+sve-b16b16 -verify-machineinstrs < %s | FileCheck %s define @bfmul_lane_idx1( %a, %b) { ; CHECK-LABEL: bfmul_lane_idx1: diff --git a/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfsub.ll b/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfsub.ll index 752b5ae9df6307..1b1304312ceb7f 100644 --- a/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfsub.ll +++ b/llvm/test/CodeGen/AArch64/sve2p1-intrinsics-bfsub.ll @@ -1,5 +1,5 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py -; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve2p1 -mattr=+b16b16 -mattr=+use-experimental-zeroing-pseudos -verify-machineinstrs < %s \ +; RUN: llc -mtriple=aarch64-linux-gnu -mattr=+sve2p1 -mattr=+sve-b16b16 -mattr=+use-experimental-zeroing-pseudos -verify-machineinstrs < %s \ ; RUN: | FileCheck %s define @bfsub_pred( %pg, %a, %b){ diff --git a/llvm/test/MC/AArch64/SME2/bfclamp-diagnostics.s b/llvm/test/MC/AArch64/SME2/bfclamp-diagnostics.s index 661cfadc64f1ca..5d40bb05ea6904 100644 --- a/llvm/test/MC/AArch64/SME2/bfclamp-diagnostics.s +++ b/llvm/test/MC/AArch64/SME2/bfclamp-diagnostics.s @@ -1,4 +1,4 @@ -// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 2>&1 < %s | FileCheck %s +// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sve-b16b16 2>&1 < %s | FileCheck %s // --------------------------------------------------------------------------// // Invalid vector list diff --git a/llvm/test/MC/AArch64/SME2/bfclamp.s b/llvm/test/MC/AArch64/SME2/bfclamp.s index dc3caecc33b78e..3ce9ed6f4c0739 100644 --- a/llvm/test/MC/AArch64/SME2/bfclamp.s +++ b/llvm/test/MC/AArch64/SME2/bfclamp.s @@ -1,60 +1,60 @@ -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sve-b16b16 < %s \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST // RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \ // RUN: | FileCheck %s --check-prefix=CHECK-ERROR -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --mattr=+sme2,+b16b16 - | FileCheck %s --check-prefix=CHECK-INST -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --mattr=+sme2,+sve-b16b16 - | FileCheck %s --check-prefix=CHECK-INST +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+sve-b16b16 < %s \ // RUN: | llvm-objdump -d --mattr=-sme2 - | FileCheck %s --check-prefix=CHECK-UNKNOWN -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sve-b16b16 < %s \ // RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ -// RUN: | llvm-mc -triple=aarch64 -mattr=+sme2,+b16b16 -disassemble -show-encoding \ +// RUN: | llvm-mc -triple=aarch64 -mattr=+sme2,+sve-b16b16 -disassemble -show-encoding \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST bfclamp {z0.h, z1.h}, z0.h, z0.h // 11000001-00100000-11000000-00000000 // CHECK-INST: bfclamp { z0.h, z1.h }, z0.h, z0.h // CHECK-ENCODING: [0x00,0xc0,0x20,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c120c000 bfclamp {z20.h, z21.h}, z10.h, z21.h // 11000001-00110101-11000001-01010100 // CHECK-INST: bfclamp { z20.h, z21.h }, z10.h, z21.h // CHECK-ENCODING: [0x54,0xc1,0x35,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c135c154 bfclamp {z22.h, z23.h}, z13.h, z8.h // 11000001-00101000-11000001-10110110 // CHECK-INST: bfclamp { z22.h, z23.h }, z13.h, z8.h // CHECK-ENCODING: [0xb6,0xc1,0x28,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c128c1b6 bfclamp {z30.h, z31.h}, z31.h, z31.h // 11000001-00111111-11000011-11111110 // CHECK-INST: bfclamp { z30.h, z31.h }, z31.h, z31.h // CHECK-ENCODING: [0xfe,0xc3,0x3f,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c13fc3fe bfclamp {z0.h - z3.h}, z0.h, z0.h // 11000001-00100000-11001000-00000000 // CHECK-INST: bfclamp { z0.h - z3.h }, z0.h, z0.h // CHECK-ENCODING: [0x00,0xc8,0x20,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c120c800 bfclamp {z20.h - z23.h}, z10.h, z21.h // 11000001-00110101-11001001-01010100 // CHECK-INST: bfclamp { z20.h - z23.h }, z10.h, z21.h // CHECK-ENCODING: [0x54,0xc9,0x35,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c135c954 bfclamp {z20.h - z23.h}, z13.h, z8.h // 11000001-00101000-11001001-10110100 // CHECK-INST: bfclamp { z20.h - z23.h }, z13.h, z8.h // CHECK-ENCODING: [0xb4,0xc9,0x28,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c128c9b4 bfclamp {z28.h - z31.h}, z31.h, z31.h // 11000001-00111111-11001011-11111100 // CHECK-INST: bfclamp { z28.h - z31.h }, z31.h, z31.h // CHECK-ENCODING: [0xfc,0xcb,0x3f,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c13fcbfc diff --git a/llvm/test/MC/AArch64/SME2/bfmax-diagnostics.s b/llvm/test/MC/AArch64/SME2/bfmax-diagnostics.s index bbb619ed666392..d0718e621153c3 100644 --- a/llvm/test/MC/AArch64/SME2/bfmax-diagnostics.s +++ b/llvm/test/MC/AArch64/SME2/bfmax-diagnostics.s @@ -1,4 +1,4 @@ -// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 2>&1 < %s | FileCheck %s +// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sve-b16b16 2>&1 < %s | FileCheck %s // --------------------------------------------------------------------------// // Invalid vector list diff --git a/llvm/test/MC/AArch64/SME2/bfmax.s b/llvm/test/MC/AArch64/SME2/bfmax.s index 657fcbc7738302..78656a7b43ff62 100644 --- a/llvm/test/MC/AArch64/SME2/bfmax.s +++ b/llvm/test/MC/AArch64/SME2/bfmax.s @@ -1,108 +1,108 @@ -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sve-b16b16 < %s \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST // RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \ // RUN: | FileCheck %s --check-prefix=CHECK-ERROR -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --mattr=-sme2 --mattr=+sme2,+b16b16 - | FileCheck %s --check-prefix=CHECK-INST -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --mattr=-sme2 --mattr=+sme2,+sve-b16b16 - | FileCheck %s --check-prefix=CHECK-INST +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+sve-b16b16 < %s \ // RUN: | llvm-objdump -d --mattr=-sme2 - | FileCheck %s --check-prefix=CHECK-UNKNOWN -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sve-b16b16 < %s \ // RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ -// RUN: | llvm-mc -triple=aarch64 -mattr=+sme2,+b16b16 -disassemble -show-encoding \ +// RUN: | llvm-mc -triple=aarch64 -mattr=+sme2,+sve-b16b16 -disassemble -show-encoding \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST bfmax {z0.h, z1.h}, {z0.h, z1.h}, z0.h // 11000001-00100000-10100001-00000000 // CHECK-INST: bfmax { z0.h, z1.h }, { z0.h, z1.h }, z0.h // CHECK-ENCODING: [0x00,0xa1,0x20,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c120a100 bfmax {z20.h, z21.h}, {z20.h, z21.h}, z5.h // 11000001-00100101-10100001-00010100 // CHECK-INST: bfmax { z20.h, z21.h }, { z20.h, z21.h }, z5.h // CHECK-ENCODING: [0x14,0xa1,0x25,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c125a114 bfmax {z22.h, z23.h}, {z22.h, z23.h}, z8.h // 11000001-00101000-10100001-00010110 // CHECK-INST: bfmax { z22.h, z23.h }, { z22.h, z23.h }, z8.h // CHECK-ENCODING: [0x16,0xa1,0x28,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c128a116 bfmax {z30.h, z31.h}, {z30.h, z31.h}, z15.h // 11000001-00101111-10100001-00011110 // CHECK-INST: bfmax { z30.h, z31.h }, { z30.h, z31.h }, z15.h // CHECK-ENCODING: [0x1e,0xa1,0x2f,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c12fa11e bfmax {z0.h, z1.h}, {z0.h, z1.h}, {z0.h, z1.h} // 11000001-00100000-10110001-00000000 // CHECK-INST: bfmax { z0.h, z1.h }, { z0.h, z1.h }, { z0.h, z1.h } // CHECK-ENCODING: [0x00,0xb1,0x20,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c120b100 bfmax {z20.h, z21.h}, {z20.h, z21.h}, {z20.h, z21.h} // 11000001-00110100-10110001-00010100 // CHECK-INST: bfmax { z20.h, z21.h }, { z20.h, z21.h }, { z20.h, z21.h } // CHECK-ENCODING: [0x14,0xb1,0x34,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c134b114 bfmax {z22.h, z23.h}, {z22.h, z23.h}, {z8.h, z9.h} // 11000001-00101000-10110001-00010110 // CHECK-INST: bfmax { z22.h, z23.h }, { z22.h, z23.h }, { z8.h, z9.h } // CHECK-ENCODING: [0x16,0xb1,0x28,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c128b116 bfmax {z30.h, z31.h}, {z30.h, z31.h}, {z30.h, z31.h} // 11000001-00111110-10110001-00011110 // CHECK-INST: bfmax { z30.h, z31.h }, { z30.h, z31.h }, { z30.h, z31.h } // CHECK-ENCODING: [0x1e,0xb1,0x3e,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c13eb11e bfmax {z0.h - z3.h}, {z0.h - z3.h}, z0.h // 11000001-00100000-10101001-00000000 // CHECK-INST: bfmax { z0.h - z3.h }, { z0.h - z3.h }, z0.h // CHECK-ENCODING: [0x00,0xa9,0x20,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c120a900 bfmax {z20.h - z23.h}, {z20.h - z23.h}, z5.h // 11000001-00100101-10101001-00010100 // CHECK-INST: bfmax { z20.h - z23.h }, { z20.h - z23.h }, z5.h // CHECK-ENCODING: [0x14,0xa9,0x25,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c125a914 bfmax {z20.h - z23.h}, {z20.h - z23.h}, z8.h // 11000001-00101000-10101001-00010100 // CHECK-INST: bfmax { z20.h - z23.h }, { z20.h - z23.h }, z8.h // CHECK-ENCODING: [0x14,0xa9,0x28,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c128a914 bfmax {z28.h - z31.h}, {z28.h - z31.h}, z15.h // 11000001-00101111-10101001-00011100 // CHECK-INST: bfmax { z28.h - z31.h }, { z28.h - z31.h }, z15.h // CHECK-ENCODING: [0x1c,0xa9,0x2f,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c12fa91c bfmax {z0.h - z3.h}, {z0.h - z3.h}, {z0.h - z3.h} // 11000001-00100000-10111001-00000000 // CHECK-INST: bfmax { z0.h - z3.h }, { z0.h - z3.h }, { z0.h - z3.h } // CHECK-ENCODING: [0x00,0xb9,0x20,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c120b900 bfmax {z20.h - z23.h}, {z20.h - z23.h}, {z20.h - z23.h} // 11000001-00110100-10111001-00010100 // CHECK-INST: bfmax { z20.h - z23.h }, { z20.h - z23.h }, { z20.h - z23.h } // CHECK-ENCODING: [0x14,0xb9,0x34,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c134b914 bfmax {z20.h - z23.h}, {z20.h - z23.h}, {z8.h - z11.h} // 11000001-00101000-10111001-00010100 // CHECK-INST: bfmax { z20.h - z23.h }, { z20.h - z23.h }, { z8.h - z11.h } // CHECK-ENCODING: [0x14,0xb9,0x28,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c128b914 bfmax {z28.h - z31.h}, {z28.h - z31.h}, {z28.h - z31.h} // 11000001-00111100-10111001-00011100 // CHECK-INST: bfmax { z28.h - z31.h }, { z28.h - z31.h }, { z28.h - z31.h } // CHECK-ENCODING: [0x1c,0xb9,0x3c,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c13cb91c diff --git a/llvm/test/MC/AArch64/SME2/bfmaxnm-diagnostics.s b/llvm/test/MC/AArch64/SME2/bfmaxnm-diagnostics.s index ab837b64b26518..39a2740973e427 100644 --- a/llvm/test/MC/AArch64/SME2/bfmaxnm-diagnostics.s +++ b/llvm/test/MC/AArch64/SME2/bfmaxnm-diagnostics.s @@ -1,4 +1,4 @@ -// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 2>&1 < %s | FileCheck %s +// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sve-b16b16 2>&1 < %s | FileCheck %s // --------------------------------------------------------------------------// // Invalid vector list diff --git a/llvm/test/MC/AArch64/SME2/bfmaxnm.s b/llvm/test/MC/AArch64/SME2/bfmaxnm.s index f61f530548f6f5..860da4d48baca3 100644 --- a/llvm/test/MC/AArch64/SME2/bfmaxnm.s +++ b/llvm/test/MC/AArch64/SME2/bfmaxnm.s @@ -1,108 +1,108 @@ -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sve-b16b16 < %s \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST // RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \ // RUN: | FileCheck %s --check-prefix=CHECK-ERROR -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --mattr=-sme2 --mattr=+sme2,+b16b16 - | FileCheck %s --check-prefix=CHECK-INST -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --mattr=-sme2 --mattr=+sme2,+sve-b16b16 - | FileCheck %s --check-prefix=CHECK-INST +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+sve-b16b16 < %s \ // RUN: | llvm-objdump -d --mattr=-sme2 - | FileCheck %s --check-prefix=CHECK-UNKNOWN -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sve-b16b16 < %s \ // RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ -// RUN: | llvm-mc -triple=aarch64 -mattr=+sme2,+b16b16 -disassemble -show-encoding \ +// RUN: | llvm-mc -triple=aarch64 -mattr=+sme2,+sve-b16b16 -disassemble -show-encoding \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST bfmaxnm {z0.h, z1.h}, {z0.h, z1.h}, z0.h // 11000001-00100000-10100001-00100000 // CHECK-INST: bfmaxnm { z0.h, z1.h }, { z0.h, z1.h }, z0.h // CHECK-ENCODING: [0x20,0xa1,0x20,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c120a120 bfmaxnm {z20.h, z21.h}, {z20.h, z21.h}, z5.h // 11000001-00100101-10100001-00110100 // CHECK-INST: bfmaxnm { z20.h, z21.h }, { z20.h, z21.h }, z5.h // CHECK-ENCODING: [0x34,0xa1,0x25,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c125a134 bfmaxnm {z22.h, z23.h}, {z22.h, z23.h}, z8.h // 11000001-00101000-10100001-00110110 // CHECK-INST: bfmaxnm { z22.h, z23.h }, { z22.h, z23.h }, z8.h // CHECK-ENCODING: [0x36,0xa1,0x28,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c128a136 bfmaxnm {z30.h, z31.h}, {z30.h, z31.h}, z15.h // 11000001-00101111-10100001-00111110 // CHECK-INST: bfmaxnm { z30.h, z31.h }, { z30.h, z31.h }, z15.h // CHECK-ENCODING: [0x3e,0xa1,0x2f,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c12fa13e bfmaxnm {z0.h, z1.h}, {z0.h, z1.h}, {z0.h, z1.h} // 11000001-00100000-10110001-00100000 // CHECK-INST: bfmaxnm { z0.h, z1.h }, { z0.h, z1.h }, { z0.h, z1.h } // CHECK-ENCODING: [0x20,0xb1,0x20,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c120b120 bfmaxnm {z20.h, z21.h}, {z20.h, z21.h}, {z20.h, z21.h} // 11000001-00110100-10110001-00110100 // CHECK-INST: bfmaxnm { z20.h, z21.h }, { z20.h, z21.h }, { z20.h, z21.h } // CHECK-ENCODING: [0x34,0xb1,0x34,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c134b134 bfmaxnm {z22.h, z23.h}, {z22.h, z23.h}, {z8.h, z9.h} // 11000001-00101000-10110001-00110110 // CHECK-INST: bfmaxnm { z22.h, z23.h }, { z22.h, z23.h }, { z8.h, z9.h } // CHECK-ENCODING: [0x36,0xb1,0x28,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c128b136 bfmaxnm {z30.h, z31.h}, {z30.h, z31.h}, {z30.h, z31.h} // 11000001-00111110-10110001-00111110 // CHECK-INST: bfmaxnm { z30.h, z31.h }, { z30.h, z31.h }, { z30.h, z31.h } // CHECK-ENCODING: [0x3e,0xb1,0x3e,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c13eb13e bfmaxnm {z0.h - z3.h}, {z0.h - z3.h}, z0.h // 11000001-00100000-10101001-00100000 // CHECK-INST: bfmaxnm { z0.h - z3.h }, { z0.h - z3.h }, z0.h // CHECK-ENCODING: [0x20,0xa9,0x20,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c120a920 bfmaxnm {z20.h - z23.h}, {z20.h - z23.h}, z5.h // 11000001-00100101-10101001-00110100 // CHECK-INST: bfmaxnm { z20.h - z23.h }, { z20.h - z23.h }, z5.h // CHECK-ENCODING: [0x34,0xa9,0x25,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c125a934 bfmaxnm {z20.h - z23.h}, {z20.h - z23.h}, z8.h // 11000001-00101000-10101001-00110100 // CHECK-INST: bfmaxnm { z20.h - z23.h }, { z20.h - z23.h }, z8.h // CHECK-ENCODING: [0x34,0xa9,0x28,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c128a934 bfmaxnm {z28.h - z31.h}, {z28.h - z31.h}, z15.h // 11000001-00101111-10101001-00111100 // CHECK-INST: bfmaxnm { z28.h - z31.h }, { z28.h - z31.h }, z15.h // CHECK-ENCODING: [0x3c,0xa9,0x2f,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c12fa93c bfmaxnm {z0.h - z3.h}, {z0.h - z3.h}, {z0.h - z3.h} // 11000001-00100000-10111001-00100000 // CHECK-INST: bfmaxnm { z0.h - z3.h }, { z0.h - z3.h }, { z0.h - z3.h } // CHECK-ENCODING: [0x20,0xb9,0x20,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c120b920 bfmaxnm {z20.h - z23.h}, {z20.h - z23.h}, {z20.h - z23.h} // 11000001-00110100-10111001-00110100 // CHECK-INST: bfmaxnm { z20.h - z23.h }, { z20.h - z23.h }, { z20.h - z23.h } // CHECK-ENCODING: [0x34,0xb9,0x34,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c134b934 bfmaxnm {z20.h - z23.h}, {z20.h - z23.h}, {z8.h - z11.h} // 11000001-00101000-10111001-00110100 // CHECK-INST: bfmaxnm { z20.h - z23.h }, { z20.h - z23.h }, { z8.h - z11.h } // CHECK-ENCODING: [0x34,0xb9,0x28,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c128b934 bfmaxnm {z28.h - z31.h}, {z28.h - z31.h}, {z28.h - z31.h} // 11000001-00111100-10111001-00111100 // CHECK-INST: bfmaxnm { z28.h - z31.h }, { z28.h - z31.h }, { z28.h - z31.h } // CHECK-ENCODING: [0x3c,0xb9,0x3c,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c13cb93c diff --git a/llvm/test/MC/AArch64/SME2/bfmin-diagnostics.s b/llvm/test/MC/AArch64/SME2/bfmin-diagnostics.s index 41f10361135e6a..3628f53bcd0b52 100644 --- a/llvm/test/MC/AArch64/SME2/bfmin-diagnostics.s +++ b/llvm/test/MC/AArch64/SME2/bfmin-diagnostics.s @@ -1,4 +1,4 @@ -// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 2>&1 < %s | FileCheck %s +// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sve-b16b16 2>&1 < %s | FileCheck %s // --------------------------------------------------------------------------// // Invalid vector list diff --git a/llvm/test/MC/AArch64/SME2/bfmin.s b/llvm/test/MC/AArch64/SME2/bfmin.s index 6612e3c187b299..5cc3fd3241c066 100644 --- a/llvm/test/MC/AArch64/SME2/bfmin.s +++ b/llvm/test/MC/AArch64/SME2/bfmin.s @@ -1,108 +1,108 @@ -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sve-b16b16 < %s \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST // RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \ // RUN: | FileCheck %s --check-prefix=CHECK-ERROR -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --mattr=-sme2 --mattr=+sme2,+b16b16 - | FileCheck %s --check-prefix=CHECK-INST -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --mattr=-sme2 --mattr=+sme2,+sve-b16b16 - | FileCheck %s --check-prefix=CHECK-INST +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+sve-b16b16 < %s \ // RUN: | llvm-objdump -d --mattr=-sme2 - | FileCheck %s --check-prefix=CHECK-UNKNOWN -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sve-b16b16 < %s \ // RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ -// RUN: | llvm-mc -triple=aarch64 -mattr=+sme2,+b16b16 -disassemble -show-encoding \ +// RUN: | llvm-mc -triple=aarch64 -mattr=+sme2,+sve-b16b16 -disassemble -show-encoding \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST bfmin {z0.h, z1.h}, {z0.h, z1.h}, z0.h // 11000001-00100000-10100001-00000001 // CHECK-INST: bfmin { z0.h, z1.h }, { z0.h, z1.h }, z0.h // CHECK-ENCODING: [0x01,0xa1,0x20,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c120a101 bfmin {z20.h, z21.h}, {z20.h, z21.h}, z5.h // 11000001-00100101-10100001-00010101 // CHECK-INST: bfmin { z20.h, z21.h }, { z20.h, z21.h }, z5.h // CHECK-ENCODING: [0x15,0xa1,0x25,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c125a115 bfmin {z22.h, z23.h}, {z22.h, z23.h}, z8.h // 11000001-00101000-10100001-00010111 // CHECK-INST: bfmin { z22.h, z23.h }, { z22.h, z23.h }, z8.h // CHECK-ENCODING: [0x17,0xa1,0x28,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c128a117 bfmin {z30.h, z31.h}, {z30.h, z31.h}, z15.h // 11000001-00101111-10100001-00011111 // CHECK-INST: bfmin { z30.h, z31.h }, { z30.h, z31.h }, z15.h // CHECK-ENCODING: [0x1f,0xa1,0x2f,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c12fa11f bfmin {z0.h, z1.h}, {z0.h, z1.h}, {z0.h, z1.h} // 11000001-00100000-10110001-00000001 // CHECK-INST: bfmin { z0.h, z1.h }, { z0.h, z1.h }, { z0.h, z1.h } // CHECK-ENCODING: [0x01,0xb1,0x20,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c120b101 bfmin {z20.h, z21.h}, {z20.h, z21.h}, {z20.h, z21.h} // 11000001-00110100-10110001-00010101 // CHECK-INST: bfmin { z20.h, z21.h }, { z20.h, z21.h }, { z20.h, z21.h } // CHECK-ENCODING: [0x15,0xb1,0x34,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c134b115 bfmin {z22.h, z23.h}, {z22.h, z23.h}, {z8.h, z9.h} // 11000001-00101000-10110001-00010111 // CHECK-INST: bfmin { z22.h, z23.h }, { z22.h, z23.h }, { z8.h, z9.h } // CHECK-ENCODING: [0x17,0xb1,0x28,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c128b117 bfmin {z30.h, z31.h}, {z30.h, z31.h}, {z30.h, z31.h} // 11000001-00111110-10110001-00011111 // CHECK-INST: bfmin { z30.h, z31.h }, { z30.h, z31.h }, { z30.h, z31.h } // CHECK-ENCODING: [0x1f,0xb1,0x3e,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c13eb11f bfmin {z0.h - z3.h}, {z0.h - z3.h}, z0.h // 11000001-00100000-10101001-00000001 // CHECK-INST: bfmin { z0.h - z3.h }, { z0.h - z3.h }, z0.h // CHECK-ENCODING: [0x01,0xa9,0x20,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c120a901 bfmin {z20.h - z23.h}, {z20.h - z23.h}, z5.h // 11000001-00100101-10101001-00010101 // CHECK-INST: bfmin { z20.h - z23.h }, { z20.h - z23.h }, z5.h // CHECK-ENCODING: [0x15,0xa9,0x25,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c125a915 bfmin {z20.h - z23.h}, {z20.h - z23.h}, z8.h // 11000001-00101000-10101001-00010101 // CHECK-INST: bfmin { z20.h - z23.h }, { z20.h - z23.h }, z8.h // CHECK-ENCODING: [0x15,0xa9,0x28,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c128a915 bfmin {z28.h - z31.h}, {z28.h - z31.h}, z15.h // 11000001-00101111-10101001-00011101 // CHECK-INST: bfmin { z28.h - z31.h }, { z28.h - z31.h }, z15.h // CHECK-ENCODING: [0x1d,0xa9,0x2f,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c12fa91d bfmin {z0.h - z3.h}, {z0.h - z3.h}, {z0.h - z3.h} // 11000001-00100000-10111001-00000001 // CHECK-INST: bfmin { z0.h - z3.h }, { z0.h - z3.h }, { z0.h - z3.h } // CHECK-ENCODING: [0x01,0xb9,0x20,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c120b901 bfmin {z20.h - z23.h}, {z20.h - z23.h}, {z20.h - z23.h} // 11000001-00110100-10111001-00010101 // CHECK-INST: bfmin { z20.h - z23.h }, { z20.h - z23.h }, { z20.h - z23.h } // CHECK-ENCODING: [0x15,0xb9,0x34,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c134b915 bfmin {z20.h - z23.h}, {z20.h - z23.h}, {z8.h - z11.h} // 11000001-00101000-10111001-00010101 // CHECK-INST: bfmin { z20.h - z23.h }, { z20.h - z23.h }, { z8.h - z11.h } // CHECK-ENCODING: [0x15,0xb9,0x28,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c128b915 bfmin {z28.h - z31.h}, {z28.h - z31.h}, {z28.h - z31.h} // 11000001-00111100-10111001-00011101 // CHECK-INST: bfmin { z28.h - z31.h }, { z28.h - z31.h }, { z28.h - z31.h } // CHECK-ENCODING: [0x1d,0xb9,0x3c,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c13cb91d diff --git a/llvm/test/MC/AArch64/SME2/bfminnm-diagnostics.s b/llvm/test/MC/AArch64/SME2/bfminnm-diagnostics.s index 14485e915ea660..25a1bf5038efe8 100644 --- a/llvm/test/MC/AArch64/SME2/bfminnm-diagnostics.s +++ b/llvm/test/MC/AArch64/SME2/bfminnm-diagnostics.s @@ -1,4 +1,4 @@ -// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 2>&1 < %s | FileCheck %s +// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sve-b16b16 2>&1 < %s | FileCheck %s // --------------------------------------------------------------------------// // Invalid vector list diff --git a/llvm/test/MC/AArch64/SME2/bfminnm.s b/llvm/test/MC/AArch64/SME2/bfminnm.s index 4a48a0d4553333..f0355803ed9f21 100644 --- a/llvm/test/MC/AArch64/SME2/bfminnm.s +++ b/llvm/test/MC/AArch64/SME2/bfminnm.s @@ -1,113 +1,113 @@ -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sve-b16b16 < %s \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST // RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \ // RUN: | FileCheck %s --check-prefix=CHECK-ERROR -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --mattr=-sme2 --mattr=+sme2,+b16b16 - | FileCheck %s --check-prefix=CHECK-INST -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --mattr=-sme2 --mattr=+sme2,+sve-b16b16 - | FileCheck %s --check-prefix=CHECK-INST +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+sve-b16b16 < %s \ // RUN: | llvm-objdump -d --mattr=-sme2 - | FileCheck %s --check-prefix=CHECK-UNKNOWN -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sve-b16b16 < %s \ // RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ -// RUN: | llvm-mc -triple=aarch64 -mattr=+sme2,+b16b16 -disassemble -show-encoding \ +// RUN: | llvm-mc -triple=aarch64 -mattr=+sme2,+sve-b16b16 -disassemble -show-encoding \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST bfminnm {z0.h, z1.h}, {z0.h, z1.h}, z0.h // 11000001-00100000-10100001-00100001 // CHECK-INST: bfminnm { z0.h, z1.h }, { z0.h, z1.h }, z0.h // CHECK-ENCODING: [0x21,0xa1,0x20,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c120a121 bfminnm {z20.h, z21.h}, {z20.h, z21.h}, z5.h // 11000001-00100101-10100001-00110101 // CHECK-INST: bfminnm { z20.h, z21.h }, { z20.h, z21.h }, z5.h // CHECK-ENCODING: [0x35,0xa1,0x25,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c125a135 bfminnm {z22.h, z23.h}, {z22.h, z23.h}, z8.h // 11000001-00101000-10100001-00110111 // CHECK-INST: bfminnm { z22.h, z23.h }, { z22.h, z23.h }, z8.h // CHECK-ENCODING: [0x37,0xa1,0x28,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c128a137 bfminnm {z30.h, z31.h}, {z30.h, z31.h}, z15.h // 11000001-00101111-10100001-00111111 // CHECK-INST: bfminnm { z30.h, z31.h }, { z30.h, z31.h }, z15.h // CHECK-ENCODING: [0x3f,0xa1,0x2f,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c12fa13f bfminnm {z0.h, z1.h}, {z0.h, z1.h}, {z0.h, z1.h} // 11000001-00100000-10110001-00100001 // CHECK-INST: bfminnm { z0.h, z1.h }, { z0.h, z1.h }, { z0.h, z1.h } // CHECK-ENCODING: [0x21,0xb1,0x20,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c120b121 bfminnm {z20.h, z21.h}, {z20.h, z21.h}, {z20.h, z21.h} // 11000001-00110100-10110001-00110101 // CHECK-INST: bfminnm { z20.h, z21.h }, { z20.h, z21.h }, { z20.h, z21.h } // CHECK-ENCODING: [0x35,0xb1,0x34,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c134b135 bfminnm {z22.h, z23.h}, {z22.h, z23.h}, {z8.h, z9.h} // 11000001-00101000-10110001-00110111 // CHECK-INST: bfminnm { z22.h, z23.h }, { z22.h, z23.h }, { z8.h, z9.h } // CHECK-ENCODING: [0x37,0xb1,0x28,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c128b137 bfminnm {z30.h, z31.h}, {z30.h, z31.h}, {z30.h, z31.h} // 11000001-00111110-10110001-00111111 // CHECK-INST: bfminnm { z30.h, z31.h }, { z30.h, z31.h }, { z30.h, z31.h } // CHECK-ENCODING: [0x3f,0xb1,0x3e,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c13eb13f bfminnm {z0.h - z3.h}, {z0.h - z3.h}, z0.h // 11000001-00100000-10101001-00100001 // CHECK-INST: bfminnm { z0.h - z3.h }, { z0.h - z3.h }, z0.h // CHECK-ENCODING: [0x21,0xa9,0x20,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c120a921 bfminnm {z20.h - z23.h}, {z20.h - z23.h}, z5.h // 11000001-00100101-10101001-00110101 // CHECK-INST: bfminnm { z20.h - z23.h }, { z20.h - z23.h }, z5.h // CHECK-ENCODING: [0x35,0xa9,0x25,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c125a935 bfminnm {z20.h - z23.h}, {z20.h - z23.h}, z8.h // 11000001-00101000-10101001-00110101 // CHECK-INST: bfminnm { z20.h - z23.h }, { z20.h - z23.h }, z8.h // CHECK-ENCODING: [0x35,0xa9,0x28,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c128a935 bfminnm {z28.h - z31.h}, {z28.h - z31.h}, z15.h // 11000001-00101111-10101001-00111101 // CHECK-INST: bfminnm { z28.h - z31.h }, { z28.h - z31.h }, z15.h // CHECK-ENCODING: [0x3d,0xa9,0x2f,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c12fa93d bfminnm {z0.h - z3.h}, {z0.h - z3.h}, {z0.h - z3.h} // 11000001-00100000-10111001-00100001 // CHECK-INST: bfminnm { z0.h - z3.h }, { z0.h - z3.h }, { z0.h - z3.h } // CHECK-ENCODING: [0x21,0xb9,0x20,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c120b921 bfminnm {z20.h - z23.h}, {z20.h - z23.h}, {z20.h - z23.h} // 11000001-00110100-10111001-00110101 // CHECK-INST: bfminnm { z20.h - z23.h }, { z20.h - z23.h }, { z20.h - z23.h } // CHECK-ENCODING: [0x35,0xb9,0x34,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c134b935 bfminnm {z20.h - z23.h}, {z20.h - z23.h}, {z8.h - z11.h} // 11000001-00101000-10111001-00110101 // CHECK-INST: bfminnm { z20.h - z23.h }, { z20.h - z23.h }, { z8.h - z11.h } // CHECK-ENCODING: [0x35,0xb9,0x28,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c128b935 bfminnm {z28.h - z31.h}, {z28.h - z31.h}, {z28.h - z31.h} // 11000001-00111100-10111001-00111101 // CHECK-INST: bfminnm { z28.h - z31.h }, { z28.h - z31.h }, { z28.h - z31.h } // CHECK-ENCODING: [0x3d,0xb9,0x3c,0xc1] -// CHECK-ERROR: instruction requires: b16b16 sme2 +// CHECK-ERROR: instruction requires: sme2 sve-b16b16 // CHECK-UNKNOWN: c13cb93d diff --git a/llvm/test/MC/AArch64/SME2p1/directive-arch-negative.s b/llvm/test/MC/AArch64/SME2p1/directive-arch-negative.s index 948d8f996c1567..17d239b140662b 100644 --- a/llvm/test/MC/AArch64/SME2p1/directive-arch-negative.s +++ b/llvm/test/MC/AArch64/SME2p1/directive-arch-negative.s @@ -5,3 +5,9 @@ sqcvt z0.h, {z0.s, z1.s} // CHECK: error: instruction requires: sme2 // CHECK: sqcvt z0.h, {z0.s, z1.s} + +.arch armv9-a+sme2+sve-b16b16 +.arch armv9-a+sme2+nosve-b16b16 +bfclamp { z0.h, z1.h }, z0.h, z0.h +// CHECK: error: instruction requires: sve-b16b16 +// CHECK: bfclamp { z0.h, z1.h }, z0.h, z0.h diff --git a/llvm/test/MC/AArch64/SME2p1/directive-arch.s b/llvm/test/MC/AArch64/SME2p1/directive-arch.s index 112de2530ca8bd..085a38cef007c6 100644 --- a/llvm/test/MC/AArch64/SME2p1/directive-arch.s +++ b/llvm/test/MC/AArch64/SME2p1/directive-arch.s @@ -5,4 +5,6 @@ sqcvt z0.h, {z0.s, z1.s} // CHECK: sqcvt z0.h, { z0.s, z1.s } -.arch armv9-a+nosme2p1 +.arch armv9-a+sme2+sve-b16b16 +bfclamp { z0.h, z1.h }, z0.h, z0.h +// CHECK: bfclamp { z0.h, z1.h }, z0.h, z0.h diff --git a/llvm/test/MC/AArch64/SME2p1/directive-arch_extension-negative.s b/llvm/test/MC/AArch64/SME2p1/directive-arch_extension-negative.s index 19f11b88173ffc..6a7301c66c08d9 100644 --- a/llvm/test/MC/AArch64/SME2p1/directive-arch_extension-negative.s +++ b/llvm/test/MC/AArch64/SME2p1/directive-arch_extension-negative.s @@ -5,3 +5,10 @@ sqcvt z0.h, { z0.s, z1.s } // CHECK: error: instruction requires: sme2 // CHECK: sqcvt z0.h + +.arch_extension sme2 +.arch_extension sve-b16b16 +.arch_extension nosve-b16b16 +bfclamp { z0.h, z1.h }, z0.h, z0.h +// CHECK: error: instruction requires: sve-b16b16 +// CHECK: bfclamp { z0.h, z1.h }, z0.h, z0.h \ No newline at end of file diff --git a/llvm/test/MC/AArch64/SME2p1/directive-arch_extension.s b/llvm/test/MC/AArch64/SME2p1/directive-arch_extension.s index 653956d733450c..0e6e2e7b305f4e 100644 --- a/llvm/test/MC/AArch64/SME2p1/directive-arch_extension.s +++ b/llvm/test/MC/AArch64/SME2p1/directive-arch_extension.s @@ -3,3 +3,8 @@ .arch_extension sme2p1 sqcvt z0.h, { z0.s, z1.s } // CHECK: sqcvt z0.h, { z0.s, z1.s } + +.arch_extension sme2 +.arch_extension sve-b16b16 +bfclamp { z0.h, z1.h }, z0.h, z0.h +// CHECK: bfclamp { z0.h, z1.h }, z0.h, z0.h \ No newline at end of file diff --git a/llvm/test/MC/AArch64/SVE2p1/bfadd-diagnostics.s b/llvm/test/MC/AArch64/SVE2p1/bfadd-diagnostics.s index 1ead9d28277aa6..b34e57ea22f100 100644 --- a/llvm/test/MC/AArch64/SVE2p1/bfadd-diagnostics.s +++ b/llvm/test/MC/AArch64/SVE2p1/bfadd-diagnostics.s @@ -1,4 +1,4 @@ -// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p1,+b16b16 2>&1 < %s | FileCheck %s +// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p1,+sve-b16b16 2>&1 < %s | FileCheck %s // --------------------------------------------------------------------------// // Invalid predicate register diff --git a/llvm/test/MC/AArch64/SVE2p1/bfadd.s b/llvm/test/MC/AArch64/SVE2p1/bfadd.s index b0d6733647ce81..ae0086e188c887 100644 --- a/llvm/test/MC/AArch64/SVE2p1/bfadd.s +++ b/llvm/test/MC/AArch64/SVE2p1/bfadd.s @@ -1,25 +1,25 @@ -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+sve-b16b16 < %s \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST // RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \ // RUN: | FileCheck %s --check-prefix=CHECK-ERROR -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sve2,+b16b16 - | FileCheck %s --check-prefix=CHECK-INST -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --mattr=-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sve2,+sve-b16b16 - | FileCheck %s --check-prefix=CHECK-INST +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --mattr=-sve-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+sve-b16b16 < %s \ // RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ -// RUN: | llvm-mc -triple=aarch64 -mattr=+sve2,+b16b16 -disassemble -show-encoding \ +// RUN: | llvm-mc -triple=aarch64 -mattr=+sve2,+sve-b16b16 -disassemble -show-encoding \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sve-b16b16 < %s \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sme2,+b16b16 - | FileCheck %s --check-prefix=CHECK-INST -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --mattr=-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sme2,+sve-b16b16 - | FileCheck %s --check-prefix=CHECK-INST +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --mattr=-sve-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sve-b16b16 < %s \ // RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ -// RUN: | llvm-mc -triple=aarch64 -mattr=+sme2,+b16b16 -disassemble -show-encoding \ +// RUN: | llvm-mc -triple=aarch64 -mattr=+sme2,+sve-b16b16 -disassemble -show-encoding \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST movprfx z23.h, p3/m, z31.h @@ -27,7 +27,7 @@ bfadd z23.h, p3/m, z23.h, z13.h // 01100101-00000000-10001101-10110111 // CHECK-INST: movprfx z23.h, p3/m, z31.h // CHECK-INST: bfadd z23.h, p3/m, z23.h, z13.h // CHECK-ENCODING: [0xb7,0x8d,0x00,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65008db7 movprfx z23, z31 @@ -35,53 +35,53 @@ bfadd z23.h, p3/m, z23.h, z13.h // 01100101-00000000-10001101-10110111 // CHECK-INST: movprfx z23, z31 // CHECK-INST: bfadd z23.h, p3/m, z23.h, z13.h // CHECK-ENCODING: [0xb7,0x8d,0x00,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65008db7 bfadd z0.h, p0/m, z0.h, z0.h // 01100101-00000000-10000000-00000000 // CHECK-INST: bfadd z0.h, p0/m, z0.h, z0.h // CHECK-ENCODING: [0x00,0x80,0x00,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65008000 bfadd z21.h, p5/m, z21.h, z10.h // 01100101-00000000-10010101-01010101 // CHECK-INST: bfadd z21.h, p5/m, z21.h, z10.h // CHECK-ENCODING: [0x55,0x95,0x00,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65009555 bfadd z23.h, p3/m, z23.h, z13.h // 01100101-00000000-10001101-10110111 // CHECK-INST: bfadd z23.h, p3/m, z23.h, z13.h // CHECK-ENCODING: [0xb7,0x8d,0x00,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65008db7 bfadd z31.h, p7/m, z31.h, z31.h // 01100101-00000000-10011111-11111111 // CHECK-INST: bfadd z31.h, p7/m, z31.h, z31.h // CHECK-ENCODING: [0xff,0x9f,0x00,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65009fff bfadd z0.h, z0.h, z0.h // 01100101-00000000-00000000-00000000 // CHECK-INST: bfadd z0.h, z0.h, z0.h // CHECK-ENCODING: [0x00,0x00,0x00,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65000000 bfadd z21.h, z10.h, z21.h // 01100101-00010101-00000001-01010101 // CHECK-INST: bfadd z21.h, z10.h, z21.h // CHECK-ENCODING: [0x55,0x01,0x15,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65150155 bfadd z23.h, z13.h, z8.h // 01100101-00001000-00000001-10110111 // CHECK-INST: bfadd z23.h, z13.h, z8.h // CHECK-ENCODING: [0xb7,0x01,0x08,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 650801b7 bfadd z31.h, z31.h, z31.h // 01100101-00011111-00000011-11111111 // CHECK-INST: bfadd z31.h, z31.h, z31.h // CHECK-ENCODING: [0xff,0x03,0x1f,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 651f03ff diff --git a/llvm/test/MC/AArch64/SVE2p1/bfclamp-diagnostics.s b/llvm/test/MC/AArch64/SVE2p1/bfclamp-diagnostics.s index b18108fcdf08ef..db9ce2d8b01043 100644 --- a/llvm/test/MC/AArch64/SVE2p1/bfclamp-diagnostics.s +++ b/llvm/test/MC/AArch64/SVE2p1/bfclamp-diagnostics.s @@ -1,4 +1,4 @@ -// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p1,+b16b16 2>&1 < %s | FileCheck %s +// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p1,+sve-b16b16 2>&1 < %s | FileCheck %s // --------------------------------------------------------------------------// // Invalid vector suffix diff --git a/llvm/test/MC/AArch64/SVE2p1/bfclamp.s b/llvm/test/MC/AArch64/SVE2p1/bfclamp.s index 93b0a3e49a0b75..2a88241d7e8b05 100644 --- a/llvm/test/MC/AArch64/SVE2p1/bfclamp.s +++ b/llvm/test/MC/AArch64/SVE2p1/bfclamp.s @@ -1,25 +1,25 @@ -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+sve-b16b16 < %s \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST // RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \ // RUN: | FileCheck %s --check-prefix=CHECK-ERROR -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sve2,+b16b16 - | FileCheck %s --check-prefix=CHECK-INST -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --mattr=-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sve2,+sve-b16b16 - | FileCheck %s --check-prefix=CHECK-INST +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --mattr=-sve-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+sve-b16b16 < %s \ // RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ -// RUN: | llvm-mc -triple=aarch64 -mattr=+sve2,+b16b16 -disassemble -show-encoding \ +// RUN: | llvm-mc -triple=aarch64 -mattr=+sve2,+sve-b16b16 -disassemble -show-encoding \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sve-b16b16 < %s \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sme2,+b16b16 - | FileCheck %s --check-prefix=CHECK-INST -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --mattr=-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sme2,+sve-b16b16 - | FileCheck %s --check-prefix=CHECK-INST +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --mattr=-sve-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sve-b16b16 < %s \ // RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ -// RUN: | llvm-mc -triple=aarch64 -mattr=+sme2,+b16b16 -disassemble -show-encoding \ +// RUN: | llvm-mc -triple=aarch64 -mattr=+sme2,+sve-b16b16 -disassemble -show-encoding \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST movprfx z23, z31 @@ -27,30 +27,30 @@ bfclamp z23.h, z13.h, z8.h // 01100100-00101000-00100101-10110111 // CHECK-INST: movprfx z23, z31 // CHECK-INST: bfclamp z23.h, z13.h, z8.h // CHECK-ENCODING: [0xb7,0x25,0x28,0x64] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 642825b7 bfclamp z0.h, z0.h, z0.h // 01100100-00100000-00100100-00000000 // CHECK-INST: bfclamp z0.h, z0.h, z0.h // CHECK-ENCODING: [0x00,0x24,0x20,0x64] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 64202400 bfclamp z21.h, z10.h, z21.h // 01100100-00110101-00100101-01010101 // CHECK-INST: bfclamp z21.h, z10.h, z21.h // CHECK-ENCODING: [0x55,0x25,0x35,0x64] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 64352555 bfclamp z23.h, z13.h, z8.h // 01100100-00101000-00100101-10110111 // CHECK-INST: bfclamp z23.h, z13.h, z8.h // CHECK-ENCODING: [0xb7,0x25,0x28,0x64] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 642825b7 bfclamp z31.h, z31.h, z31.h // 01100100-00111111-00100111-11111111 // CHECK-INST: bfclamp z31.h, z31.h, z31.h // CHECK-ENCODING: [0xff,0x27,0x3f,0x64] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 643f27ff diff --git a/llvm/test/MC/AArch64/SVE2p1/bfmax-diagnostics.s b/llvm/test/MC/AArch64/SVE2p1/bfmax-diagnostics.s index f7e30713e7d520..da3e7f89bed0f1 100644 --- a/llvm/test/MC/AArch64/SVE2p1/bfmax-diagnostics.s +++ b/llvm/test/MC/AArch64/SVE2p1/bfmax-diagnostics.s @@ -1,4 +1,4 @@ -// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p1,+b16b16 2>&1 < %s | FileCheck %s +// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p1,+sve-b16b16 2>&1 < %s | FileCheck %s // --------------------------------------------------------------------------// // Invalid predicate register diff --git a/llvm/test/MC/AArch64/SVE2p1/bfmax.s b/llvm/test/MC/AArch64/SVE2p1/bfmax.s index e6089f59c68a5e..607a3c6e1f43e5 100644 --- a/llvm/test/MC/AArch64/SVE2p1/bfmax.s +++ b/llvm/test/MC/AArch64/SVE2p1/bfmax.s @@ -1,25 +1,25 @@ -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+sve-b16b16 < %s \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST // RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \ // RUN: | FileCheck %s --check-prefix=CHECK-ERROR -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sve2,+b16b16 - | FileCheck %s --check-prefix=CHECK-INST -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --mattr=-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sve2,+sve-b16b16 - | FileCheck %s --check-prefix=CHECK-INST +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --mattr=-sve-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+sve-b16b16 < %s \ // RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ -// RUN: | llvm-mc -triple=aarch64 -mattr=+sve2,+b16b16 -disassemble -show-encoding \ +// RUN: | llvm-mc -triple=aarch64 -mattr=+sve2,+sve-b16b16 -disassemble -show-encoding \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sve-b16b16 < %s \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sme2,+b16b16 - | FileCheck %s --check-prefix=CHECK-INST -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --mattr=-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sme2,+sve-b16b16 - | FileCheck %s --check-prefix=CHECK-INST +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --mattr=-sve-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sve-b16b16 < %s \ // RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ -// RUN: | llvm-mc -triple=aarch64 -mattr=+sme2,+b16b16 -disassemble -show-encoding \ +// RUN: | llvm-mc -triple=aarch64 -mattr=+sme2,+sve-b16b16 -disassemble -show-encoding \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST movprfx z23.h, p3/m, z31.h @@ -27,7 +27,7 @@ bfmax z23.h, p3/m, z23.h, z13.h // 01100101-00000110-10001101-10110111 // CHECK-INST: movprfx z23.h, p3/m, z31.h // CHECK-INST: bfmax z23.h, p3/m, z23.h, z13.h // CHECK-ENCODING: [0xb7,0x8d,0x06,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65068db7 movprfx z23, z31 @@ -35,29 +35,29 @@ bfmax z23.h, p3/m, z23.h, z13.h // 01100101-00000110-10001101-10110111 // CHECK-INST: movprfx z23, z31 // CHECK-INST: bfmax z23.h, p3/m, z23.h, z13.h // CHECK-ENCODING: [0xb7,0x8d,0x06,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65068db7 bfmax z0.h, p0/m, z0.h, z0.h // 01100101-00000110-10000000-00000000 // CHECK-INST: bfmax z0.h, p0/m, z0.h, z0.h // CHECK-ENCODING: [0x00,0x80,0x06,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65068000 bfmax z21.h, p5/m, z21.h, z10.h // 01100101-00000110-10010101-01010101 // CHECK-INST: bfmax z21.h, p5/m, z21.h, z10.h // CHECK-ENCODING: [0x55,0x95,0x06,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65069555 bfmax z23.h, p3/m, z23.h, z13.h // 01100101-00000110-10001101-10110111 // CHECK-INST: bfmax z23.h, p3/m, z23.h, z13.h // CHECK-ENCODING: [0xb7,0x8d,0x06,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65068db7 bfmax z31.h, p7/m, z31.h, z31.h // 01100101-00000110-10011111-11111111 // CHECK-INST: bfmax z31.h, p7/m, z31.h, z31.h // CHECK-ENCODING: [0xff,0x9f,0x06,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65069fff diff --git a/llvm/test/MC/AArch64/SVE2p1/bfmaxnm-diagnostics.s b/llvm/test/MC/AArch64/SVE2p1/bfmaxnm-diagnostics.s index 220b66b435ed41..16aff60216fa4c 100644 --- a/llvm/test/MC/AArch64/SVE2p1/bfmaxnm-diagnostics.s +++ b/llvm/test/MC/AArch64/SVE2p1/bfmaxnm-diagnostics.s @@ -1,4 +1,4 @@ -// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p1,+b16b16 2>&1 < %s | FileCheck %s +// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p1,+sve-b16b16 2>&1 < %s | FileCheck %s // --------------------------------------------------------------------------// // Invalid predicate register diff --git a/llvm/test/MC/AArch64/SVE2p1/bfmaxnm.s b/llvm/test/MC/AArch64/SVE2p1/bfmaxnm.s index a4b0e9a3f8c3aa..248f9120cf6a93 100644 --- a/llvm/test/MC/AArch64/SVE2p1/bfmaxnm.s +++ b/llvm/test/MC/AArch64/SVE2p1/bfmaxnm.s @@ -1,25 +1,25 @@ -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+sve-b16b16 < %s \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST // RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \ // RUN: | FileCheck %s --check-prefix=CHECK-ERROR -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sve2,+b16b16 - | FileCheck %s --check-prefix=CHECK-INST -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --mattr=-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sve2,+sve-b16b16 - | FileCheck %s --check-prefix=CHECK-INST +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --mattr=-sve-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+sve-b16b16 < %s \ // RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ -// RUN: | llvm-mc -triple=aarch64 -mattr=+sve2,+b16b16 -disassemble -show-encoding \ +// RUN: | llvm-mc -triple=aarch64 -mattr=+sve2,+sve-b16b16 -disassemble -show-encoding \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sve-b16b16 < %s \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sme2,+b16b16 - | FileCheck %s --check-prefix=CHECK-INST -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --mattr=-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sme2,+sve-b16b16 - | FileCheck %s --check-prefix=CHECK-INST +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --mattr=-sve-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sve-b16b16 < %s \ // RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ -// RUN: | llvm-mc -triple=aarch64 -mattr=+sme2,+b16b16 -disassemble -show-encoding \ +// RUN: | llvm-mc -triple=aarch64 -mattr=+sme2,+sve-b16b16 -disassemble -show-encoding \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST movprfx z23.h, p3/m, z31.h @@ -27,7 +27,7 @@ bfmaxnm z23.h, p3/m, z23.h, z13.h // 01100101-00000100-10001101-10110111 // CHECK-INST: movprfx z23.h, p3/m, z31.h // CHECK-INST: bfmaxnm z23.h, p3/m, z23.h, z13.h // CHECK-ENCODING: [0xb7,0x8d,0x04,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65048db7 movprfx z23, z31 @@ -35,30 +35,30 @@ bfmaxnm z23.h, p3/m, z23.h, z13.h // 01100101-00000100-10001101-10110111 // CHECK-INST: movprfx z23, z31 // CHECK-INST: bfmaxnm z23.h, p3/m, z23.h, z13.h // CHECK-ENCODING: [0xb7,0x8d,0x04,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65048db7 bfmaxnm z0.h, p0/m, z0.h, z0.h // 01100101-00000100-10000000-00000000 // CHECK-INST: bfmaxnm z0.h, p0/m, z0.h, z0.h // CHECK-ENCODING: [0x00,0x80,0x04,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65048000 bfmaxnm z21.h, p5/m, z21.h, z10.h // 01100101-00000100-10010101-01010101 // CHECK-INST: bfmaxnm z21.h, p5/m, z21.h, z10.h // CHECK-ENCODING: [0x55,0x95,0x04,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65049555 bfmaxnm z23.h, p3/m, z23.h, z13.h // 01100101-00000100-10001101-10110111 // CHECK-INST: bfmaxnm z23.h, p3/m, z23.h, z13.h // CHECK-ENCODING: [0xb7,0x8d,0x04,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65048db7 bfmaxnm z31.h, p7/m, z31.h, z31.h // 01100101-00000100-10011111-11111111 // CHECK-INST: bfmaxnm z31.h, p7/m, z31.h, z31.h // CHECK-ENCODING: [0xff,0x9f,0x04,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65049fff diff --git a/llvm/test/MC/AArch64/SVE2p1/bfmin-diagnostics.s b/llvm/test/MC/AArch64/SVE2p1/bfmin-diagnostics.s index a7f8be225fac9e..c681effe71d395 100644 --- a/llvm/test/MC/AArch64/SVE2p1/bfmin-diagnostics.s +++ b/llvm/test/MC/AArch64/SVE2p1/bfmin-diagnostics.s @@ -1,4 +1,4 @@ -// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p1,+b16b16 2>&1 < %s | FileCheck %s +// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p1,+sve-b16b16 2>&1 < %s | FileCheck %s // --------------------------------------------------------------------------// // Invalid predicate register diff --git a/llvm/test/MC/AArch64/SVE2p1/bfmin.s b/llvm/test/MC/AArch64/SVE2p1/bfmin.s index 2475143324ad76..0e536c5d662b63 100644 --- a/llvm/test/MC/AArch64/SVE2p1/bfmin.s +++ b/llvm/test/MC/AArch64/SVE2p1/bfmin.s @@ -1,25 +1,25 @@ -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+sve-b16b16 < %s \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST // RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \ // RUN: | FileCheck %s --check-prefix=CHECK-ERROR -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sve2,+b16b16 - | FileCheck %s --check-prefix=CHECK-INST -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --mattr=-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sve2,+sve-b16b16 - | FileCheck %s --check-prefix=CHECK-INST +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --mattr=-sve-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+sve-b16b16 < %s \ // RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ -// RUN: | llvm-mc -triple=aarch64 -mattr=+sve2,+b16b16 -disassemble -show-encoding \ +// RUN: | llvm-mc -triple=aarch64 -mattr=+sve2,+sve-b16b16 -disassemble -show-encoding \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sve-b16b16 < %s \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sme2,+b16b16 - | FileCheck %s --check-prefix=CHECK-INST -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --mattr=-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sme2,+sve-b16b16 - | FileCheck %s --check-prefix=CHECK-INST +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --mattr=-sve-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sve-b16b16 < %s \ // RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ -// RUN: | llvm-mc -triple=aarch64 -mattr=+sme2,+b16b16 -disassemble -show-encoding \ +// RUN: | llvm-mc -triple=aarch64 -mattr=+sme2,+sve-b16b16 -disassemble -show-encoding \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST movprfx z23.h, p3/m, z31.h @@ -27,7 +27,7 @@ bfmin z23.h, p3/m, z23.h, z13.h // 01100101-00000111-10001101-10110111 // CHECK-INST: movprfx z23.h, p3/m, z31.h // CHECK-INST: bfmin z23.h, p3/m, z23.h, z13.h // CHECK-ENCODING: [0xb7,0x8d,0x07,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65078db7 movprfx z23, z31 @@ -35,30 +35,30 @@ bfmin z23.h, p3/m, z23.h, z13.h // 01100101-00000111-10001101-10110111 // CHECK-INST: movprfx z23, z31 // CHECK-INST: bfmin z23.h, p3/m, z23.h, z13.h // CHECK-ENCODING: [0xb7,0x8d,0x07,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65078db7 bfmin z0.h, p0/m, z0.h, z0.h // 01100101-00000111-10000000-00000000 // CHECK-INST: bfmin z0.h, p0/m, z0.h, z0.h // CHECK-ENCODING: [0x00,0x80,0x07,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65078000 bfmin z21.h, p5/m, z21.h, z10.h // 01100101-00000111-10010101-01010101 // CHECK-INST: bfmin z21.h, p5/m, z21.h, z10.h // CHECK-ENCODING: [0x55,0x95,0x07,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65079555 bfmin z23.h, p3/m, z23.h, z13.h // 01100101-00000111-10001101-10110111 // CHECK-INST: bfmin z23.h, p3/m, z23.h, z13.h // CHECK-ENCODING: [0xb7,0x8d,0x07,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65078db7 bfmin z31.h, p7/m, z31.h, z31.h // 01100101-00000111-10011111-11111111 // CHECK-INST: bfmin z31.h, p7/m, z31.h, z31.h // CHECK-ENCODING: [0xff,0x9f,0x07,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65079fff diff --git a/llvm/test/MC/AArch64/SVE2p1/bfminnm-diagnostics.s b/llvm/test/MC/AArch64/SVE2p1/bfminnm-diagnostics.s index 68c4211afa627a..efce9294882f27 100644 --- a/llvm/test/MC/AArch64/SVE2p1/bfminnm-diagnostics.s +++ b/llvm/test/MC/AArch64/SVE2p1/bfminnm-diagnostics.s @@ -1,4 +1,4 @@ -// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p1,+b16b16 2>&1 < %s | FileCheck %s +// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p1,+sve-b16b16 2>&1 < %s | FileCheck %s // --------------------------------------------------------------------------// // Invalid predicate register diff --git a/llvm/test/MC/AArch64/SVE2p1/bfminnm.s b/llvm/test/MC/AArch64/SVE2p1/bfminnm.s index 6c4c9e473018e4..785559dc998218 100644 --- a/llvm/test/MC/AArch64/SVE2p1/bfminnm.s +++ b/llvm/test/MC/AArch64/SVE2p1/bfminnm.s @@ -1,25 +1,25 @@ -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+sve-b16b16 < %s \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST // RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \ // RUN: | FileCheck %s --check-prefix=CHECK-ERROR -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sve2,+b16b16 - | FileCheck %s --check-prefix=CHECK-INST -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --mattr=-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sve2,+sve-b16b16 - | FileCheck %s --check-prefix=CHECK-INST +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --mattr=-sve-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+sve-b16b16 < %s \ // RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ -// RUN: | llvm-mc -triple=aarch64 -mattr=+sve2,+b16b16 -disassemble -show-encoding \ +// RUN: | llvm-mc -triple=aarch64 -mattr=+sve2,+sve-b16b16 -disassemble -show-encoding \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sve-b16b16 < %s \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sme2,+b16b16 - | FileCheck %s --check-prefix=CHECK-INST -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --mattr=-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sme2,+sve-b16b16 - | FileCheck %s --check-prefix=CHECK-INST +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --mattr=-sve-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sve-b16b16 < %s \ // RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ -// RUN: | llvm-mc -triple=aarch64 -mattr=+sme2,+b16b16 -disassemble -show-encoding \ +// RUN: | llvm-mc -triple=aarch64 -mattr=+sme2,+sve-b16b16 -disassemble -show-encoding \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST movprfx z23.h, p3/m, z31.h @@ -27,7 +27,7 @@ bfminnm z23.h, p3/m, z23.h, z13.h // 01100101-00000101-10001101-10110111 // CHECK-INST: movprfx z23.h, p3/m, z31.h // CHECK-INST: bfminnm z23.h, p3/m, z23.h, z13.h // CHECK-ENCODING: [0xb7,0x8d,0x05,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65058db7 movprfx z23, z31 @@ -35,30 +35,30 @@ bfminnm z23.h, p3/m, z23.h, z13.h // 01100101-00000101-10001101-10110111 // CHECK-INST: movprfx z23, z31 // CHECK-INST: bfminnm z23.h, p3/m, z23.h, z13.h // CHECK-ENCODING: [0xb7,0x8d,0x05,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65058db7 bfminnm z0.h, p0/m, z0.h, z0.h // 01100101-00000101-10000000-00000000 // CHECK-INST: bfminnm z0.h, p0/m, z0.h, z0.h // CHECK-ENCODING: [0x00,0x80,0x05,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65058000 bfminnm z21.h, p5/m, z21.h, z10.h // 01100101-00000101-10010101-01010101 // CHECK-INST: bfminnm z21.h, p5/m, z21.h, z10.h // CHECK-ENCODING: [0x55,0x95,0x05,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65059555 bfminnm z23.h, p3/m, z23.h, z13.h // 01100101-00000101-10001101-10110111 // CHECK-INST: bfminnm z23.h, p3/m, z23.h, z13.h // CHECK-ENCODING: [0xb7,0x8d,0x05,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65058db7 bfminnm z31.h, p7/m, z31.h, z31.h // 01100101-00000101-10011111-11111111 // CHECK-INST: bfminnm z31.h, p7/m, z31.h, z31.h // CHECK-ENCODING: [0xff,0x9f,0x05,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65059fff diff --git a/llvm/test/MC/AArch64/SVE2p1/bfmla-diagnostics.s b/llvm/test/MC/AArch64/SVE2p1/bfmla-diagnostics.s index 035f2898e2b928..a75a05464061ba 100644 --- a/llvm/test/MC/AArch64/SVE2p1/bfmla-diagnostics.s +++ b/llvm/test/MC/AArch64/SVE2p1/bfmla-diagnostics.s @@ -1,4 +1,4 @@ -// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p1,+b16b16 2>&1 < %s | FileCheck %s +// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p1,+sve-b16b16 2>&1 < %s | FileCheck %s // --------------------------------------------------------------------------// // Invalid vector lane index diff --git a/llvm/test/MC/AArch64/SVE2p1/bfmla.s b/llvm/test/MC/AArch64/SVE2p1/bfmla.s index 1d22cbe7add967..ffe3b66373ca47 100644 --- a/llvm/test/MC/AArch64/SVE2p1/bfmla.s +++ b/llvm/test/MC/AArch64/SVE2p1/bfmla.s @@ -1,25 +1,25 @@ -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+sve-b16b16 < %s \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST // RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \ // RUN: | FileCheck %s --check-prefix=CHECK-ERROR -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sve2,+b16b16 - | FileCheck %s --check-prefix=CHECK-INST -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --mattr=-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sve2,+sve-b16b16 - | FileCheck %s --check-prefix=CHECK-INST +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --mattr=-sve-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+sve-b16b16 < %s \ // RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ -// RUN: | llvm-mc -triple=aarch64 -mattr=+sve2,+b16b16 -disassemble -show-encoding \ +// RUN: | llvm-mc -triple=aarch64 -mattr=+sve2,+sve-b16b16 -disassemble -show-encoding \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sve-b16b16 < %s \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sme2,+b16b16 - | FileCheck %s --check-prefix=CHECK-INST -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --mattr=-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sme2,+sve-b16b16 - | FileCheck %s --check-prefix=CHECK-INST +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --mattr=-sve-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sve-b16b16 < %s \ // RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ -// RUN: | llvm-mc -triple=aarch64 -mattr=+sme2,+b16b16 -disassemble -show-encoding \ +// RUN: | llvm-mc -triple=aarch64 -mattr=+sme2,+sve-b16b16 -disassemble -show-encoding \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST movprfx z23, z31 @@ -27,31 +27,31 @@ bfmla z23.h, z13.h, z0.h[5] // 01100100-01101000-00001001-10110111 // CHECK-INST: movprfx z23, z31 // CHECK-INST: bfmla z23.h, z13.h, z0.h[5] // CHECK-ENCODING: [0xb7,0x09,0x68,0x64] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 646809b7 bfmla z0.h, z0.h, z0.h[0] // 01100100-00100000-00001000-00000000 // CHECK-INST: bfmla z0.h, z0.h, z0.h[0] // CHECK-ENCODING: [0x00,0x08,0x20,0x64] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 64200800 bfmla z21.h, z10.h, z5.h[6] // 01100100-01110101-00001001-01010101 // CHECK-INST: bfmla z21.h, z10.h, z5.h[6] // CHECK-ENCODING: [0x55,0x09,0x75,0x64] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 64750955 bfmla z23.h, z13.h, z0.h[5] // 01100100-01101000-00001001-10110111 // CHECK-INST: bfmla z23.h, z13.h, z0.h[5] // CHECK-ENCODING: [0xb7,0x09,0x68,0x64] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 646809b7 bfmla z31.h, z31.h, z7.h[7] // 01100100-01111111-00001011-11111111 // CHECK-INST: bfmla z31.h, z31.h, z7.h[7] // CHECK-ENCODING: [0xff,0x0b,0x7f,0x64] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 647f0bff @@ -60,7 +60,7 @@ bfmla z23.h, p3/m, z13.h, z8.h // 01100101-00101000-00001101-10110111 // CHECK-INST: movprfx z23.h, p3/m, z31.h // CHECK-INST: bfmla z23.h, p3/m, z13.h, z8.h // CHECK-ENCODING: [0xb7,0x0d,0x28,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65280db7 movprfx z23, z31 @@ -68,30 +68,30 @@ bfmla z23.h, p3/m, z13.h, z8.h // 01100101-00101000-00001101-10110111 // CHECK-INST: movprfx z23, z31 // CHECK-INST: bfmla z23.h, p3/m, z13.h, z8.h // CHECK-ENCODING: [0xb7,0x0d,0x28,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65280db7 bfmla z0.h, p0/m, z0.h, z0.h // 01100101-00100000-00000000-00000000 // CHECK-INST: bfmla z0.h, p0/m, z0.h, z0.h // CHECK-ENCODING: [0x00,0x00,0x20,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65200000 bfmla z21.h, p5/m, z10.h, z21.h // 01100101-00110101-00010101-01010101 // CHECK-INST: bfmla z21.h, p5/m, z10.h, z21.h // CHECK-ENCODING: [0x55,0x15,0x35,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65351555 bfmla z23.h, p3/m, z13.h, z8.h // 01100101-00101000-00001101-10110111 // CHECK-INST: bfmla z23.h, p3/m, z13.h, z8.h // CHECK-ENCODING: [0xb7,0x0d,0x28,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65280db7 bfmla z31.h, p7/m, z31.h, z31.h // 01100101-00111111-00011111-11111111 // CHECK-INST: bfmla z31.h, p7/m, z31.h, z31.h // CHECK-ENCODING: [0xff,0x1f,0x3f,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 653f1fff diff --git a/llvm/test/MC/AArch64/SVE2p1/bfmls-diagnostics.s b/llvm/test/MC/AArch64/SVE2p1/bfmls-diagnostics.s index cbc7efe9df7aa9..0c3fddcf7faca6 100644 --- a/llvm/test/MC/AArch64/SVE2p1/bfmls-diagnostics.s +++ b/llvm/test/MC/AArch64/SVE2p1/bfmls-diagnostics.s @@ -1,4 +1,4 @@ -// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p1,+b16b16 2>&1 < %s | FileCheck %s +// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p1,+sve-b16b16 2>&1 < %s | FileCheck %s // --------------------------------------------------------------------------// // Invalid vector lane index diff --git a/llvm/test/MC/AArch64/SVE2p1/bfmls.s b/llvm/test/MC/AArch64/SVE2p1/bfmls.s index 7a27e3dc46af28..52af1a862e8c23 100644 --- a/llvm/test/MC/AArch64/SVE2p1/bfmls.s +++ b/llvm/test/MC/AArch64/SVE2p1/bfmls.s @@ -1,25 +1,25 @@ -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+sve-b16b16 < %s \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST // RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \ // RUN: | FileCheck %s --check-prefix=CHECK-ERROR -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sve2,+b16b16 - | FileCheck %s --check-prefix=CHECK-INST -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --mattr=-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sve2,+sve-b16b16 - | FileCheck %s --check-prefix=CHECK-INST +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --mattr=-sve-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+sve-b16b16 < %s \ // RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ -// RUN: | llvm-mc -triple=aarch64 -mattr=+sve2,+b16b16 -disassemble -show-encoding \ +// RUN: | llvm-mc -triple=aarch64 -mattr=+sve2,+sve-b16b16 -disassemble -show-encoding \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sve-b16b16 < %s \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sme2,+b16b16 - | FileCheck %s --check-prefix=CHECK-INST -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --mattr=-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sme2,+sve-b16b16 - | FileCheck %s --check-prefix=CHECK-INST +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --mattr=-sve-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sve-b16b16 < %s \ // RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ -// RUN: | llvm-mc -triple=aarch64 -mattr=+sme2,+b16b16 -disassemble -show-encoding \ +// RUN: | llvm-mc -triple=aarch64 -mattr=+sme2,+sve-b16b16 -disassemble -show-encoding \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST @@ -28,31 +28,31 @@ bfmls z23.h, z13.h, z0.h[5] // 01100100-01101000-00001101-10110111 // CHECK-INST: movprfx z23, z31 // CHECK-INST: bfmls z23.h, z13.h, z0.h[5] // CHECK-ENCODING: [0xb7,0x0d,0x68,0x64] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 64680db7 bfmls z0.h, z0.h, z0.h[0] // 01100100-00100000-00001100-00000000 // CHECK-INST: bfmls z0.h, z0.h, z0.h[0] // CHECK-ENCODING: [0x00,0x0c,0x20,0x64] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 64200c00 bfmls z21.h, z10.h, z5.h[6] // 01100100-01110101-00001101-01010101 // CHECK-INST: bfmls z21.h, z10.h, z5.h[6] // CHECK-ENCODING: [0x55,0x0d,0x75,0x64] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 64750d55 bfmls z23.h, z13.h, z0.h[5] // 01100100-01101000-00001101-10110111 // CHECK-INST: bfmls z23.h, z13.h, z0.h[5] // CHECK-ENCODING: [0xb7,0x0d,0x68,0x64] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 64680db7 bfmls z31.h, z31.h, z7.h[7] // 01100100-01111111-00001111-11111111 // CHECK-INST: bfmls z31.h, z31.h, z7.h[7] // CHECK-ENCODING: [0xff,0x0f,0x7f,0x64] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 647f0fff @@ -61,7 +61,7 @@ bfmls z23.h, p3/m, z13.h, z8.h // 01100101-00101000-00101101-10110111 // CHECK-INST: movprfx z23.h, p3/m, z31.h // CHECK-INST: bfmls z23.h, p3/m, z13.h, z8.h // CHECK-ENCODING: [0xb7,0x2d,0x28,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65282db7 movprfx z23, z31 @@ -69,30 +69,30 @@ bfmls z23.h, p3/m, z13.h, z8.h // 01100101-00101000-00101101-10110111 // CHECK-INST: movprfx z23, z31 // CHECK-INST: bfmls z23.h, p3/m, z13.h, z8.h // CHECK-ENCODING: [0xb7,0x2d,0x28,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65282db7 bfmls z0.h, p0/m, z0.h, z0.h // 01100101-00100000-00100000-00000000 // CHECK-INST: bfmls z0.h, p0/m, z0.h, z0.h // CHECK-ENCODING: [0x00,0x20,0x20,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65202000 bfmls z21.h, p5/m, z10.h, z21.h // 01100101-00110101-00110101-01010101 // CHECK-INST: bfmls z21.h, p5/m, z10.h, z21.h // CHECK-ENCODING: [0x55,0x35,0x35,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65353555 bfmls z23.h, p3/m, z13.h, z8.h // 01100101-00101000-00101101-10110111 // CHECK-INST: bfmls z23.h, p3/m, z13.h, z8.h // CHECK-ENCODING: [0xb7,0x2d,0x28,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65282db7 bfmls z31.h, p7/m, z31.h, z31.h // 01100101-00111111-00111111-11111111 // CHECK-INST: bfmls z31.h, p7/m, z31.h, z31.h // CHECK-ENCODING: [0xff,0x3f,0x3f,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 653f3fff diff --git a/llvm/test/MC/AArch64/SVE2p1/bfmul-diagnostics.s b/llvm/test/MC/AArch64/SVE2p1/bfmul-diagnostics.s index 51adae06896030..ce4c7c87ec3e58 100644 --- a/llvm/test/MC/AArch64/SVE2p1/bfmul-diagnostics.s +++ b/llvm/test/MC/AArch64/SVE2p1/bfmul-diagnostics.s @@ -1,4 +1,4 @@ -// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p1,+b16b16 2>&1 < %s | FileCheck %s +// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p1,+sve-b16b16 2>&1 < %s | FileCheck %s // --------------------------------------------------------------------------// // Invalid predicate register diff --git a/llvm/test/MC/AArch64/SVE2p1/bfmul.s b/llvm/test/MC/AArch64/SVE2p1/bfmul.s index 593eb4aad2e786..61aaa9dc310e5b 100644 --- a/llvm/test/MC/AArch64/SVE2p1/bfmul.s +++ b/llvm/test/MC/AArch64/SVE2p1/bfmul.s @@ -1,49 +1,49 @@ -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+sve-b16b16 < %s \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST // RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \ // RUN: | FileCheck %s --check-prefix=CHECK-ERROR -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sve2,+b16b16 - | FileCheck %s --check-prefix=CHECK-INST -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --mattr=-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sve2,+sve-b16b16 - | FileCheck %s --check-prefix=CHECK-INST +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --mattr=-sve-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+sve-b16b16 < %s \ // RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ -// RUN: | llvm-mc -triple=aarch64 -mattr=+sve2,+b16b16 -disassemble -show-encoding \ +// RUN: | llvm-mc -triple=aarch64 -mattr=+sve2,+sve-b16b16 -disassemble -show-encoding \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sve-b16b16 < %s \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sme2,+b16b16 - | FileCheck %s --check-prefix=CHECK-INST -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --mattr=-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sme2,+sve-b16b16 - | FileCheck %s --check-prefix=CHECK-INST +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --mattr=-sve-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sve-b16b16 < %s \ // RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ -// RUN: | llvm-mc -triple=aarch64 -mattr=+sme2,+b16b16 -disassemble -show-encoding \ +// RUN: | llvm-mc -triple=aarch64 -mattr=+sme2,+sve-b16b16 -disassemble -show-encoding \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST bfmul z0.h, z0.h, z0.h[0] // 01100100-00100000-00101000-00000000 // CHECK-INST: bfmul z0.h, z0.h, z0.h[0] // CHECK-ENCODING: [0x00,0x28,0x20,0x64] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 64202800 bfmul z21.h, z10.h, z5.h[6] // 01100100-01110101-00101001-01010101 // CHECK-INST: bfmul z21.h, z10.h, z5.h[6] // CHECK-ENCODING: [0x55,0x29,0x75,0x64] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 64752955 bfmul z23.h, z13.h, z0.h[5] // 01100100-01101000-00101001-10110111 // CHECK-INST: bfmul z23.h, z13.h, z0.h[5] // CHECK-ENCODING: [0xb7,0x29,0x68,0x64] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 646829b7 bfmul z31.h, z31.h, z7.h[7] // 01100100-01111111-00101011-11111111 // CHECK-INST: bfmul z31.h, z31.h, z7.h[7] // CHECK-ENCODING: [0xff,0x2b,0x7f,0x64] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 647f2bff movprfx z23.h, p3/m, z31.h @@ -51,7 +51,7 @@ bfmul z23.h, p3/m, z23.h, z13.h // 01100101-00000010-10001101-10110111 // CHECK-INST: movprfx z23.h, p3/m, z31.h // CHECK-INST: bfmul z23.h, p3/m, z23.h, z13.h // CHECK-ENCODING: [0xb7,0x8d,0x02,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65028db7 movprfx z23, z31 @@ -59,54 +59,54 @@ bfmul z23.h, p3/m, z23.h, z13.h // 01100101-00000010-10001101-10110111 // CHECK-INST: movprfx z23, z31 // CHECK-INST: bfmul z23.h, p3/m, z23.h, z13.h // CHECK-ENCODING: [0xb7,0x8d,0x02,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65028db7 bfmul z0.h, p0/m, z0.h, z0.h // 01100101-00000010-10000000-00000000 // CHECK-INST: bfmul z0.h, p0/m, z0.h, z0.h // CHECK-ENCODING: [0x00,0x80,0x02,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65028000 bfmul z21.h, p5/m, z21.h, z10.h // 01100101-00000010-10010101-01010101 // CHECK-INST: bfmul z21.h, p5/m, z21.h, z10.h // CHECK-ENCODING: [0x55,0x95,0x02,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65029555 bfmul z23.h, p3/m, z23.h, z13.h // 01100101-00000010-10001101-10110111 // CHECK-INST: bfmul z23.h, p3/m, z23.h, z13.h // CHECK-ENCODING: [0xb7,0x8d,0x02,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65028db7 bfmul z31.h, p7/m, z31.h, z31.h // 01100101-00000010-10011111-11111111 // CHECK-INST: bfmul z31.h, p7/m, z31.h, z31.h // CHECK-ENCODING: [0xff,0x9f,0x02,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65029fff bfmul z0.h, z0.h, z0.h // 01100101-00000000-00001000-00000000 // CHECK-INST: bfmul z0.h, z0.h, z0.h // CHECK-ENCODING: [0x00,0x08,0x00,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65000800 bfmul z21.h, z10.h, z21.h // 01100101-00010101-00001001-01010101 // CHECK-INST: bfmul z21.h, z10.h, z21.h // CHECK-ENCODING: [0x55,0x09,0x15,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65150955 bfmul z23.h, z13.h, z8.h // 01100101-00001000-00001001-10110111 // CHECK-INST: bfmul z23.h, z13.h, z8.h // CHECK-ENCODING: [0xb7,0x09,0x08,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 650809b7 bfmul z31.h, z31.h, z31.h // 01100101-00011111-00001011-11111111 // CHECK-INST: bfmul z31.h, z31.h, z31.h // CHECK-ENCODING: [0xff,0x0b,0x1f,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 651f0bff diff --git a/llvm/test/MC/AArch64/SVE2p1/bfsub-diagnostics.s b/llvm/test/MC/AArch64/SVE2p1/bfsub-diagnostics.s index 86cb32075f5010..dff7cdead02cf2 100644 --- a/llvm/test/MC/AArch64/SVE2p1/bfsub-diagnostics.s +++ b/llvm/test/MC/AArch64/SVE2p1/bfsub-diagnostics.s @@ -1,4 +1,4 @@ -// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p1,+b16b16 2>&1 < %s | FileCheck %s +// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2p1,+sve-b16b16 2>&1 < %s | FileCheck %s // --------------------------------------------------------------------------// // Invalid predicate register diff --git a/llvm/test/MC/AArch64/SVE2p1/bfsub.s b/llvm/test/MC/AArch64/SVE2p1/bfsub.s index 5eae056ca46e7e..2ff84f8a15fa44 100644 --- a/llvm/test/MC/AArch64/SVE2p1/bfsub.s +++ b/llvm/test/MC/AArch64/SVE2p1/bfsub.s @@ -1,25 +1,25 @@ -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+sve-b16b16 < %s \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST // RUN: not llvm-mc -triple=aarch64 -show-encoding < %s 2>&1 \ // RUN: | FileCheck %s --check-prefix=CHECK-ERROR -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sve2,+b16b16 - | FileCheck %s --check-prefix=CHECK-INST -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --mattr=-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sve2,+sve-b16b16 - | FileCheck %s --check-prefix=CHECK-INST +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sve2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --mattr=-sve-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sve2,+sve-b16b16 < %s \ // RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ -// RUN: | llvm-mc -triple=aarch64 -mattr=+sve2,+b16b16 -disassemble -show-encoding \ +// RUN: | llvm-mc -triple=aarch64 -mattr=+sve2,+sve-b16b16 -disassemble -show-encoding \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sve-b16b16 < %s \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sme2,+b16b16 - | FileCheck %s --check-prefix=CHECK-INST -// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+b16b16 < %s \ -// RUN: | llvm-objdump -d --mattr=-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN -// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+b16b16 < %s \ +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --no-print-imm-hex --mattr=+sme2,+sve-b16b16 - | FileCheck %s --check-prefix=CHECK-INST +// RUN: llvm-mc -triple=aarch64 -filetype=obj -mattr=+sme2,+sve-b16b16 < %s \ +// RUN: | llvm-objdump -d --mattr=-sve-b16b16 - | FileCheck %s --check-prefix=CHECK-UNKNOWN +// RUN: llvm-mc -triple=aarch64 -show-encoding -mattr=+sme2,+sve-b16b16 < %s \ // RUN: | sed '/.text/d' | sed 's/.*encoding: //g' \ -// RUN: | llvm-mc -triple=aarch64 -mattr=+sme2,+b16b16 -disassemble -show-encoding \ +// RUN: | llvm-mc -triple=aarch64 -mattr=+sme2,+sve-b16b16 -disassemble -show-encoding \ // RUN: | FileCheck %s --check-prefixes=CHECK-ENCODING,CHECK-INST movprfx z23.h, p3/m, z31.h @@ -27,7 +27,7 @@ bfsub z23.h, p3/m, z23.h, z13.h // 01100101-00000001-10001101-10110111 // CHECK-INST: movprfx z23.h, p3/m, z31.h // CHECK-INST: bfsub z23.h, p3/m, z23.h, z13.h // CHECK-ENCODING: [0xb7,0x8d,0x01,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65018db7 movprfx z23, z31 @@ -35,53 +35,53 @@ bfsub z23.h, p3/m, z23.h, z13.h // 01100101-00000001-10001101-10110111 // CHECK-INST: movprfx z23, z31 // CHECK-INST: bfsub z23.h, p3/m, z23.h, z13.h // CHECK-ENCODING: [0xb7,0x8d,0x01,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65018db7 bfsub z0.h, p0/m, z0.h, z0.h // 01100101-00000001-10000000-00000000 // CHECK-INST: bfsub z0.h, p0/m, z0.h, z0.h // CHECK-ENCODING: [0x00,0x80,0x01,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65018000 bfsub z21.h, p5/m, z21.h, z10.h // 01100101-00000001-10010101-01010101 // CHECK-INST: bfsub z21.h, p5/m, z21.h, z10.h // CHECK-ENCODING: [0x55,0x95,0x01,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65019555 bfsub z23.h, p3/m, z23.h, z13.h // 01100101-00000001-10001101-10110111 // CHECK-INST: bfsub z23.h, p3/m, z23.h, z13.h // CHECK-ENCODING: [0xb7,0x8d,0x01,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65018db7 bfsub z31.h, p7/m, z31.h, z31.h // 01100101-00000001-10011111-11111111 // CHECK-INST: bfsub z31.h, p7/m, z31.h, z31.h // CHECK-ENCODING: [0xff,0x9f,0x01,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65019fff bfsub z0.h, z0.h, z0.h // 01100101-00000000-00000100-00000000 // CHECK-INST: bfsub z0.h, z0.h, z0.h // CHECK-ENCODING: [0x00,0x04,0x00,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65000400 bfsub z21.h, z10.h, z21.h // 01100101-00010101-00000101-01010101 // CHECK-INST: bfsub z21.h, z10.h, z21.h // CHECK-ENCODING: [0x55,0x05,0x15,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 65150555 bfsub z23.h, z13.h, z8.h // 01100101-00001000-00000101-10110111 // CHECK-INST: bfsub z23.h, z13.h, z8.h // CHECK-ENCODING: [0xb7,0x05,0x08,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 650805b7 bfsub z31.h, z31.h, z31.h // 01100101-00011111-00000111-11111111 // CHECK-INST: bfsub z31.h, z31.h, z31.h // CHECK-ENCODING: [0xff,0x07,0x1f,0x65] -// CHECK-ERROR: instruction requires: b16b16 sve2 or sme2 +// CHECK-ERROR: instruction requires: sve2 or sme2 sve-b16b16 // CHECK-UNKNOWN: 651f07ff diff --git a/llvm/test/MC/AArch64/SVE2p1/directive-arch-negative.s b/llvm/test/MC/AArch64/SVE2p1/directive-arch-negative.s index 7f1fa8f9342a5c..8e8ec9238049e2 100644 --- a/llvm/test/MC/AArch64/SVE2p1/directive-arch-negative.s +++ b/llvm/test/MC/AArch64/SVE2p1/directive-arch-negative.s @@ -5,3 +5,9 @@ sclamp z0.s, z1.s, z2.s // CHECK: error: instruction requires: sme or sve2p1 // CHECK: sclamp z0.s, z1.s, z2.s + +.arch armv9-a+sve2p1+sve-b16b16 +.arch armv9-a+sve2p1+nosve-b16b16 +bfadd z23.h, p3/m, z23.h, z13.h +// CHECK: error: instruction requires: sve-b16b16 +// CHECK: bfadd z23.h, p3/m, z23.h, z13.h diff --git a/llvm/test/MC/AArch64/SVE2p1/directive-arch.s b/llvm/test/MC/AArch64/SVE2p1/directive-arch.s index c52f271a151ded..b8f25e59a5df9f 100644 --- a/llvm/test/MC/AArch64/SVE2p1/directive-arch.s +++ b/llvm/test/MC/AArch64/SVE2p1/directive-arch.s @@ -3,3 +3,7 @@ .arch armv9-a+sve2p1 sclamp z0.s, z1.s, z2.s // CHECK: sclamp z0.s, z1.s, z2.s + +.arch armv9-a+sve2p1+sve-b16b16 +bfadd z23.h, p3/m, z23.h, z13.h +// CHECK: bfadd z23.h, p3/m, z23.h, z13.h \ No newline at end of file diff --git a/llvm/test/MC/AArch64/SVE2p1/directive-arch_extension-negative.s b/llvm/test/MC/AArch64/SVE2p1/directive-arch_extension-negative.s index 29de56c5d0f188..97c2c1fa3f06fa 100644 --- a/llvm/test/MC/AArch64/SVE2p1/directive-arch_extension-negative.s +++ b/llvm/test/MC/AArch64/SVE2p1/directive-arch_extension-negative.s @@ -5,3 +5,10 @@ sclamp z0.s, z1.s, z2.s // CHECK: error: instruction requires: sme or sve2p1 // CHECK: sclamp z0.s, z1.s, z2.s + +.arch_extension sve2p1 +.arch_extension sve-b16b16 +.arch_extension nosve-b16b16 +bfadd z23.h, p3/m, z23.h, z13.h +// CHECK: error: instruction requires: sve-b16b16 +// CHECK: bfadd z23.h, p3/m, z23.h, z13.h \ No newline at end of file diff --git a/llvm/test/MC/AArch64/SVE2p1/directive-arch_extension.s b/llvm/test/MC/AArch64/SVE2p1/directive-arch_extension.s index 3eb39c0ed98869..867cf8829d31c1 100644 --- a/llvm/test/MC/AArch64/SVE2p1/directive-arch_extension.s +++ b/llvm/test/MC/AArch64/SVE2p1/directive-arch_extension.s @@ -3,3 +3,8 @@ .arch_extension sve2p1 sclamp z0.s, z1.s, z2.s // CHECK: sclamp z0.s, z1.s, z2.s + +.arch_extension sve2p1 +.arch_extension sve-b16b16 +bfadd z23.h, p3/m, z23.h, z13.h +// CHECK: bfadd z23.h, p3/m, z23.h, z13.h \ No newline at end of file diff --git a/llvm/unittests/TargetParser/TargetParserTest.cpp b/llvm/unittests/TargetParser/TargetParserTest.cpp index c6ea0b9900028b..9efebeba067772 100644 --- a/llvm/unittests/TargetParser/TargetParserTest.cpp +++ b/llvm/unittests/TargetParser/TargetParserTest.cpp @@ -2008,7 +2008,7 @@ TEST(TargetParserTest, AArch64ExtensionFeatures) { AArch64::AEK_CPA, AArch64::AEK_PAUTHLR, AArch64::AEK_TLBIW, AArch64::AEK_JSCVT, AArch64::AEK_FCMA, AArch64::AEK_FP8, - + AArch64::AEK_SVEB16B16, }; std::vector Features; @@ -2040,6 +2040,7 @@ TEST(TargetParserTest, AArch64ExtensionFeatures) { EXPECT_TRUE(llvm::is_contained(Features, "+spe")); EXPECT_TRUE(llvm::is_contained(Features, "+ras")); EXPECT_TRUE(llvm::is_contained(Features, "+sve")); + EXPECT_TRUE(llvm::is_contained(Features, "+sve-b16b16")); EXPECT_TRUE(llvm::is_contained(Features, "+sve2")); EXPECT_TRUE(llvm::is_contained(Features, "+sve2-aes")); EXPECT_TRUE(llvm::is_contained(Features, "+sve2-sm4")); @@ -2191,6 +2192,7 @@ TEST(TargetParserTest, AArch64ArchExtFeature) { {"lse", "nolse", "+lse", "-lse"}, {"rdm", "nordm", "+rdm", "-rdm"}, {"sve", "nosve", "+sve", "-sve"}, + {"sve-b16b16", "nosve-b16b16", "+sve-b16b16", "-sve-b16b16"}, {"sve2", "nosve2", "+sve2", "-sve2"}, {"sve2-aes", "nosve2-aes", "+sve2-aes", "-sve2-aes"}, {"sve2-sm4", "nosve2-sm4", "+sve2-sm4", "-sve2-sm4"},