diff --git a/clang/include/clang/Basic/BuiltinsAArch64.def b/clang/include/clang/Basic/BuiltinsAArch64.def index a144979acca6..7701ad98f483 100644 --- a/clang/include/clang/Basic/BuiltinsAArch64.def +++ b/clang/include/clang/Basic/BuiltinsAArch64.def @@ -91,12 +91,6 @@ LANGBUILTIN(__sevl, "v", "", ALL_MS_LANGUAGES) // Misc BUILTIN(__builtin_sponentry, "v*", "c") -// Transactional Memory Extension -BUILTIN(__builtin_arm_tstart, "WUi", "nj") -BUILTIN(__builtin_arm_tcommit, "v", "n") -BUILTIN(__builtin_arm_tcancel, "vWUIi", "nr") -BUILTIN(__builtin_arm_ttest, "WUi", "nc") - TARGET_HEADER_BUILTIN(_BitScanForward, "UcUNi*UNi", "nh", "intrin.h", ALL_MS_LANGUAGES, "") TARGET_HEADER_BUILTIN(_BitScanReverse, "UcUNi*UNi", "nh", "intrin.h", ALL_MS_LANGUAGES, "") TARGET_HEADER_BUILTIN(_BitScanForward64, "UcUNi*ULLi", "nh", "intrin.h", ALL_MS_LANGUAGES, "") diff --git a/clang/lib/Basic/Targets/AArch64.cpp b/clang/lib/Basic/Targets/AArch64.cpp index 2abca0a660ae..74ac69ab8946 100644 --- a/clang/lib/Basic/Targets/AArch64.cpp +++ b/clang/lib/Basic/Targets/AArch64.cpp @@ -219,9 +219,6 @@ void AArch64TargetInfo::getTargetDefines(const LangOptions &Opts, if (HasMTE) Builder.defineMacro("__ARM_FEATURE_MEMORY_TAGGING", "1"); - if (HasTME) - Builder.defineMacro("__ARM_FEATURE_TME", "1"); - if ((FPU & NeonMode) && HasFP16FML) Builder.defineMacro("__ARM_FEATURE_FP16FML", "1"); @@ -273,7 +270,6 @@ bool AArch64TargetInfo::handleTargetFeatures(std::vector &Features, HasDotProd = false; HasFP16FML = false; HasMTE = false; - HasTME = false; ArchKind = llvm::AArch64::ArchKind::ARMV8A; for (const auto &Feature : Features) { @@ -305,8 +301,6 @@ bool AArch64TargetInfo::handleTargetFeatures(std::vector &Features, HasFP16FML = true; if (Feature == "+mte") HasMTE = true; - if (Feature == "+tme") - HasTME = true; } setDataLayout(); diff --git a/clang/lib/Basic/Targets/AArch64.h b/clang/lib/Basic/Targets/AArch64.h index b6aa07780edd..5833c146003b 100644 --- a/clang/lib/Basic/Targets/AArch64.h +++ b/clang/lib/Basic/Targets/AArch64.h @@ -35,7 +35,6 @@ class LLVM_LIBRARY_VISIBILITY AArch64TargetInfo : public TargetInfo { bool HasDotProd; bool HasFP16FML; bool HasMTE; - bool HasTME; llvm::AArch64::ArchKind ArchKind; diff --git a/clang/lib/Headers/arm_acle.h b/clang/lib/Headers/arm_acle.h index 0510e6fd809f..096cc261af2c 100644 --- a/clang/lib/Headers/arm_acle.h +++ b/clang/lib/Headers/arm_acle.h @@ -613,7 +613,7 @@ __jcvt(double __a) { #define __arm_wsr64(sysreg, v) __builtin_arm_wsr64(sysreg, v) #define __arm_wsrp(sysreg, v) __builtin_arm_wsrp(sysreg, v) -/* Memory Tagging Extensions (MTE) Intrinsics */ +// Memory Tagging Extensions (MTE) Intrinsics #if __ARM_FEATURE_MEMORY_TAGGING #define __arm_mte_create_random_tag(__ptr, __mask) __builtin_arm_irg(__ptr, __mask) #define __arm_mte_increment_tag(__ptr, __tag_offset) __builtin_arm_addg(__ptr, __tag_offset) @@ -623,28 +623,6 @@ __jcvt(double __a) { #define __arm_mte_ptrdiff(__ptra, __ptrb) __builtin_arm_subp(__ptra, __ptrb) #endif -/* Transactional Memory Extension (TME) Intrinsics */ -#if __ARM_FEATURE_TME - -#define _TMFAILURE_REASON 0x00007fffu -#define _TMFAILURE_RTRY 0x00008000u -#define _TMFAILURE_CNCL 0x00010000u -#define _TMFAILURE_MEM 0x00020000u -#define _TMFAILURE_IMP 0x00040000u -#define _TMFAILURE_ERR 0x00080000u -#define _TMFAILURE_SIZE 0x00100000u -#define _TMFAILURE_NEST 0x00200000u -#define _TMFAILURE_DBG 0x00400000u -#define _TMFAILURE_INT 0x00800000u -#define _TMFAILURE_TRIVIAL 0x01000000u - -#define __tstart() __builtin_arm_tstart() -#define __tcommit() __builtin_arm_tcommit() -#define __tcancel(__arg) __builtin_arm_tcancel(__arg) -#define __ttest() __builtin_arm_ttest() - -#endif /* __ARM_FEATURE_TME */ - #if defined(__cplusplus) } #endif diff --git a/clang/lib/Sema/SemaChecking.cpp b/clang/lib/Sema/SemaChecking.cpp index 442cbcf1429b..f9f82cdeef43 100644 --- a/clang/lib/Sema/SemaChecking.cpp +++ b/clang/lib/Sema/SemaChecking.cpp @@ -1928,7 +1928,6 @@ bool Sema::CheckAArch64BuiltinFunctionCall(unsigned BuiltinID, case AArch64::BI__builtin_arm_dmb: case AArch64::BI__builtin_arm_dsb: case AArch64::BI__builtin_arm_isb: l = 0; u = 15; break; - case AArch64::BI__builtin_arm_tcancel: l = 0; u = 65535; break; } return SemaBuiltinConstantArgRange(TheCall, i, l, u + l); diff --git a/clang/test/CodeGen/aarch64-tme-tcancel-arg.cpp b/clang/test/CodeGen/aarch64-tme-tcancel-arg.cpp deleted file mode 100644 index ae6694703c83..000000000000 --- a/clang/test/CodeGen/aarch64-tme-tcancel-arg.cpp +++ /dev/null @@ -1,10 +0,0 @@ -// RUN: %clang_cc1 -triple aarch64-eabi -target-feature +tme -S -emit-llvm %s -o - | FileCheck %s - -#define A -1 -constexpr int f() { return 65536; } - -void t_cancel() { - __builtin_arm_tcancel(f() + A); -} - -// CHECK: call void @llvm.aarch64.tcancel(i64 65535) diff --git a/clang/test/CodeGen/aarch64-tme.c b/clang/test/CodeGen/aarch64-tme.c deleted file mode 100644 index 8f90fb8eb829..000000000000 --- a/clang/test/CodeGen/aarch64-tme.c +++ /dev/null @@ -1,36 +0,0 @@ -// RUN: %clang_cc1 -triple aarch64-eabi -target-feature +tme -S -emit-llvm %s -o - | FileCheck %s -// RUN: %clang_cc1 -DUSE_ACLE -triple aarch64-eabi -target-feature +tme -S -emit-llvm %s -o - | FileCheck %s - -#ifdef USE_ACLE -#include "arm_acle.h" -void test_tme_funcs() { - __tstart(); - (void)__ttest(); - __tcommit(); - __tcancel(0x789a); -} -#else -void test_tme_funcs() { - __builtin_arm_tstart(); - (void)__builtin_arm_ttest(); - __builtin_arm_tcommit(); - __builtin_arm_tcancel(0x789a); -} -#endif -// CHECK: call i64 @llvm.aarch64.tstart() -// CHECK: call i64 @llvm.aarch64.ttest() -// CHECK: call void @llvm.aarch64.tcommit() -// CHECK: call void @llvm.aarch64.tcancel(i64 30874) - -// CHECK: declare i64 @llvm.aarch64.tstart() #1 -// CHECK: declare i64 @llvm.aarch64.ttest() #1 -// CHECK: declare void @llvm.aarch64.tcommit() #1 -// CHECK: declare void @llvm.aarch64.tcancel(i64 immarg) #2 - -#ifdef __ARM_FEATURE_TME -void arm_feature_tme_defined() {} -#endif -// CHECK: define void @arm_feature_tme_defined() - -// CHECK: attributes #1 = { nounwind } -// CHECK: attributes #2 = { noreturn nounwind } diff --git a/clang/test/Sema/aarch64-tme-errors.c b/clang/test/Sema/aarch64-tme-errors.c deleted file mode 100644 index 0e9c2a6beec0..000000000000 --- a/clang/test/Sema/aarch64-tme-errors.c +++ /dev/null @@ -1,8 +0,0 @@ -// RUN: %clang_cc1 -triple aarch64-eabi -verify %s - -#include "arm_acle.h" - -void test_no_tme_funcs() { - __tstart(); // expected-warning{{implicit declaration of function '__tstart'}} - __builtin_tstart(); // expected-error{{use of unknown builtin '__builtin_tstart'}} -} diff --git a/clang/test/Sema/aarch64-tme-tcancel-const-error.c b/clang/test/Sema/aarch64-tme-tcancel-const-error.c deleted file mode 100644 index f97ece59b660..000000000000 --- a/clang/test/Sema/aarch64-tme-tcancel-const-error.c +++ /dev/null @@ -1,4 +0,0 @@ -// RUN: %clang_cc1 -triple aarch64-eabi -target-feature +tme -verify %s -void t_cancel(unsigned short u) { - __builtin_arm_tcancel(u); // expected-error{{argument to '__builtin_arm_tcancel' must be a constant integer}} -} diff --git a/clang/test/Sema/aarch64-tme-tcancel-range-error.c b/clang/test/Sema/aarch64-tme-tcancel-range-error.c deleted file mode 100644 index c61ec90dfa50..000000000000 --- a/clang/test/Sema/aarch64-tme-tcancel-range-error.c +++ /dev/null @@ -1,4 +0,0 @@ -// RUN: %clang_cc1 -triple aarch64-eabi -target-feature +tme -verify %s -void t_cancel() { - __builtin_arm_tcancel(0x12345u); // expected-error{{argument value 74565 is outside the valid range [0, 65535]}} -} diff --git a/llvm/include/llvm/IR/IntrinsicsAArch64.td b/llvm/include/llvm/IR/IntrinsicsAArch64.td index ceec212b6630..7616d6a90c1b 100644 --- a/llvm/include/llvm/IR/IntrinsicsAArch64.td +++ b/llvm/include/llvm/IR/IntrinsicsAArch64.td @@ -703,20 +703,3 @@ def int_aarch64_stg : Intrinsic<[], [llvm_ptr_ty, llvm_ptr_ty], def int_aarch64_subp : Intrinsic<[llvm_i64_ty], [llvm_ptr_ty, llvm_ptr_ty], [IntrNoMem]>; } - -// Transactional Memory Extension (TME) Intrinsics -let TargetPrefix = "aarch64" in { -def int_aarch64_tstart : GCCBuiltin<"__builtin_arm_tstart">, - Intrinsic<[llvm_i64_ty]>; - -def int_aarch64_tcommit : GCCBuiltin<"__builtin_arm_tcommit">, Intrinsic<[]>; - -def int_aarch64_tcancel : GCCBuiltin<"__builtin_arm_tcancel">, - Intrinsic<[], [llvm_i64_ty], - [ImmArg<0>, IntrNoMem, IntrHasSideEffects, - IntrNoReturn]>; - -def int_aarch64_ttest : GCCBuiltin<"__builtin_arm_ttest">, - Intrinsic<[llvm_i64_ty], [], - [IntrNoMem, IntrHasSideEffects]>; -} diff --git a/llvm/include/llvm/Support/AArch64TargetParser.def b/llvm/include/llvm/Support/AArch64TargetParser.def index fd21e3615b71..e152f383b3ec 100644 --- a/llvm/include/llvm/Support/AArch64TargetParser.def +++ b/llvm/include/llvm/Support/AArch64TargetParser.def @@ -79,7 +79,6 @@ AARCH64_ARCH_EXT_NAME("memtag", AArch64::AEK_MTE, "+mte", "-mte") AARCH64_ARCH_EXT_NAME("ssbs", AArch64::AEK_SSBS, "+ssbs", "-ssbs") AARCH64_ARCH_EXT_NAME("sb", AArch64::AEK_SB, "+sb", "-sb") AARCH64_ARCH_EXT_NAME("predres", AArch64::AEK_PREDRES, "+predres", "-predres") -AARCH64_ARCH_EXT_NAME("tme", AArch64::AEK_TME, "+tme", "-tme") #undef AARCH64_ARCH_EXT_NAME #ifndef AARCH64_CPU_NAME diff --git a/llvm/include/llvm/Support/AArch64TargetParser.h b/llvm/include/llvm/Support/AArch64TargetParser.h index 564f831b0706..965d38535e74 100644 --- a/llvm/include/llvm/Support/AArch64TargetParser.h +++ b/llvm/include/llvm/Support/AArch64TargetParser.h @@ -54,7 +54,6 @@ enum ArchExtKind : unsigned { AEK_SVE2SM4 = 1 << 25, AEK_SVE2SHA3 = 1 << 26, AEK_BITPERM = 1 << 27, - AEK_TME = 1 << 28, }; enum class ArchKind { diff --git a/llvm/lib/Target/AArch64/AArch64.td b/llvm/lib/Target/AArch64/AArch64.td index fcd5818727f1..e39c6995e367 100644 --- a/llvm/lib/Target/AArch64/AArch64.td +++ b/llvm/lib/Target/AArch64/AArch64.td @@ -345,9 +345,6 @@ def FeatureRandGen : SubtargetFeature<"rand", "HasRandGen", def FeatureMTE : SubtargetFeature<"mte", "HasMTE", "true", "Enable Memory Tagging Extension" >; -def FeatureTME : SubtargetFeature<"tme", "HasTME", - "true", "Enable Transactional Memory Extension" >; - //===----------------------------------------------------------------------===// // Architectures. // diff --git a/llvm/lib/Target/AArch64/AArch64InstrFormats.td b/llvm/lib/Target/AArch64/AArch64InstrFormats.td index 2af5726fc4f5..74fa5ef713d9 100644 --- a/llvm/lib/Target/AArch64/AArch64InstrFormats.td +++ b/llvm/lib/Target/AArch64/AArch64InstrFormats.td @@ -714,15 +714,12 @@ def logical_imm64_not : Operand { let ParserMatchClass = LogicalImm64NotOperand; } -// iXX_imm0_65535 predicates - True if the immediate is in the range [0,65535]. -let ParserMatchClass = AsmImmRange<0, 65535>, PrintMethod = "printImmHex" in { -def i32_imm0_65535 : Operand, ImmLeaf, ImmLeaf; - -def i64_imm0_65535 : Operand, ImmLeaf; +}]> { + let ParserMatchClass = AsmImmRange<0, 65535>; + let PrintMethod = "printImmHex"; } // imm0_255 predicate - True if the immediate is in the range [0,255]. @@ -1085,46 +1082,6 @@ class RtSystemI let Inst{4-0} = Rt; } -// System instructions for transactional memory extension -class TMBaseSystemI CRm, bits<3> op2, dag oops, dag iops, - string asm, string operands, list pattern> - : BaseSystemI, - Sched<[WriteSys]> { - let Inst{20-12} = 0b000110011; - let Inst{11-8} = CRm; - let Inst{7-5} = op2; - let DecoderMethod = ""; - - let mayLoad = 1; - let mayStore = 1; -} - -// System instructions for transactional memory - single input operand -class TMSystemI CRm, string asm, list pattern> - : TMBaseSystemI<0b1, CRm, 0b011, - (outs GPR64:$Rt), (ins), asm, "\t$Rt", pattern> { - bits<5> Rt; - let Inst{4-0} = Rt; -} - -// System instructions for transactional memory - no operand -class TMSystemINoOperand CRm, string asm, list pattern> - : TMBaseSystemI<0b0, CRm, 0b011, (outs), (ins), asm, "", pattern> { - let Inst{4-0} = 0b11111; -} - -// System instructions for exit from transactions -let mayLoad = 0, mayStore = 0, hasSideEffects = 1 in -class TMSystemException op1, string asm, list pattern> - : I<(outs), (ins i64_imm0_65535:$imm), asm, "\t$imm", "", pattern>, - Sched<[WriteSys]> { - bits<16> imm; - let Inst{31-24} = 0b11010100; - let Inst{23-21} = op1; - let Inst{20-5} = imm; - let Inst{4-0} = 0b00000; -} - // Hint instructions that take both a CRm and a 3-bit immediate. // NOTE: ideally, this would have mayStore = 0, mayLoad = 0, but we cannot // model patterns with sufficiently fine granularity @@ -4129,7 +4086,7 @@ multiclass MemTagStore opc1, string insn> { let mayLoad = 0, mayStore = 0, hasSideEffects = 1 in class ExceptionGeneration op1, bits<2> ll, string asm> - : I<(outs), (ins i32_imm0_65535:$imm), asm, "\t$imm", "", []>, + : I<(outs), (ins imm0_65535:$imm), asm, "\t$imm", "", []>, Sched<[WriteSys]> { bits<16> imm; let Inst{31-24} = 0b11010100; diff --git a/llvm/lib/Target/AArch64/AArch64InstrInfo.td b/llvm/lib/Target/AArch64/AArch64InstrInfo.td index 74f07f569a51..897b3ebb3847 100644 --- a/llvm/lib/Target/AArch64/AArch64InstrInfo.td +++ b/llvm/lib/Target/AArch64/AArch64InstrInfo.td @@ -133,8 +133,6 @@ def HasBTI : Predicate<"Subtarget->hasBTI()">, AssemblerPredicate<"FeatureBranchTargetId", "bti">; def HasMTE : Predicate<"Subtarget->hasMTE()">, AssemblerPredicate<"FeatureMTE", "mte">; -def HasTME : Predicate<"Subtarget->hasTME()">, - AssemblerPredicate<"FeatureTME", "tme">; def IsLE : Predicate<"Subtarget->isLittleEndian()">; def IsBE : Predicate<"!Subtarget->isLittleEndian()">; def IsWindows : Predicate<"Subtarget->isTargetWindows()">; @@ -800,21 +798,6 @@ def : InstAlias<"sys $op1, $Cn, $Cm, $op2", (SYSxt imm0_7:$op1, sys_cr_op:$Cn, sys_cr_op:$Cm, imm0_7:$op2, XZR)>; - -let Predicates = [HasTME] in { - -def TSTART : TMSystemI<0b0000, "tstart", [(set GPR64:$Rt, (int_aarch64_tstart))]>; - -def TCOMMIT : TMSystemINoOperand<0b0000, "tcommit", [(int_aarch64_tcommit)]>; - -let mayLoad = 0, mayStore = 0 in { -def TTEST : TMSystemI<0b0001, "ttest", [(set GPR64:$Rt, (int_aarch64_ttest))]>; -def TCANCEL : TMSystemException<0b011, "tcancel", [(int_aarch64_tcancel i64_imm0_65535:$imm)]> { - let isBarrier = 1; -} -} -} // HasTME - //===----------------------------------------------------------------------===// // Move immediate instructions. //===----------------------------------------------------------------------===// @@ -826,12 +809,12 @@ let PostEncoderMethod = "fixMOVZ" in defm MOVZ : MoveImmediate<0b10, "movz">; // First group of aliases covers an implicit "lsl #0". -def : InstAlias<"movk $dst, $imm", (MOVKWi GPR32:$dst, i32_imm0_65535:$imm, 0), 0>; -def : InstAlias<"movk $dst, $imm", (MOVKXi GPR64:$dst, i32_imm0_65535:$imm, 0), 0>; -def : InstAlias<"movn $dst, $imm", (MOVNWi GPR32:$dst, i32_imm0_65535:$imm, 0)>; -def : InstAlias<"movn $dst, $imm", (MOVNXi GPR64:$dst, i32_imm0_65535:$imm, 0)>; -def : InstAlias<"movz $dst, $imm", (MOVZWi GPR32:$dst, i32_imm0_65535:$imm, 0)>; -def : InstAlias<"movz $dst, $imm", (MOVZXi GPR64:$dst, i32_imm0_65535:$imm, 0)>; +def : InstAlias<"movk $dst, $imm", (MOVKWi GPR32:$dst, imm0_65535:$imm, 0), 0>; +def : InstAlias<"movk $dst, $imm", (MOVKXi GPR64:$dst, imm0_65535:$imm, 0), 0>; +def : InstAlias<"movn $dst, $imm", (MOVNWi GPR32:$dst, imm0_65535:$imm, 0)>; +def : InstAlias<"movn $dst, $imm", (MOVNXi GPR64:$dst, imm0_65535:$imm, 0)>; +def : InstAlias<"movz $dst, $imm", (MOVZWi GPR32:$dst, imm0_65535:$imm, 0)>; +def : InstAlias<"movz $dst, $imm", (MOVZXi GPR64:$dst, imm0_65535:$imm, 0)>; // Next, we have various ELF relocations with the ":XYZ_g0:sym" syntax. def : InstAlias<"movz $Rd, $sym", (MOVZXi GPR64:$Rd, movz_symbol_g3:$sym, 48)>; diff --git a/llvm/lib/Target/AArch64/AArch64Subtarget.h b/llvm/lib/Target/AArch64/AArch64Subtarget.h index ce829795309c..0c84cfb8329a 100644 --- a/llvm/lib/Target/AArch64/AArch64Subtarget.h +++ b/llvm/lib/Target/AArch64/AArch64Subtarget.h @@ -134,7 +134,6 @@ protected: bool HasBTI = false; bool HasRandGen = false; bool HasMTE = false; - bool HasTME = false; // Arm SVE2 extensions bool HasSVE2AES = false; @@ -381,7 +380,6 @@ public: bool hasBTI() const { return HasBTI; } bool hasRandGen() const { return HasRandGen; } bool hasMTE() const { return HasMTE; } - bool hasTME() const { return HasTME; } // Arm SVE2 extensions bool hasSVE2AES() const { return HasSVE2AES; } bool hasSVE2SM4() const { return HasSVE2SM4; } diff --git a/llvm/test/CodeGen/AArch64/tme-tcancel.ll b/llvm/test/CodeGen/AArch64/tme-tcancel.ll deleted file mode 100644 index f4fb7b665de1..000000000000 --- a/llvm/test/CodeGen/AArch64/tme-tcancel.ll +++ /dev/null @@ -1,16 +0,0 @@ -; RUN: llc %s -o - | FileCheck %s - -target triple = "aarch64-unknown-unknown-eabi" - -define void @test_tcancel() #0 { - tail call void @llvm.aarch64.tcancel(i64 0) #1 - unreachable -} - -declare void @llvm.aarch64.tcancel(i64 immarg) #1 - -attributes #0 = { "target-features"="+tme" } -attributes #1 = { nounwind noreturn } - -; CHECK-LABEL: test_tcancel -; CHECK: tcancel diff --git a/llvm/test/CodeGen/AArch64/tme-tcommit.ll b/llvm/test/CodeGen/AArch64/tme-tcommit.ll deleted file mode 100644 index cd85a3e5bd8e..000000000000 --- a/llvm/test/CodeGen/AArch64/tme-tcommit.ll +++ /dev/null @@ -1,16 +0,0 @@ -; RUN: llc %s -o - | FileCheck %s - -target triple = "aarch64-unknown-unknown-eabi" - -define void @test_tcommit() #0 { - tail call void @llvm.aarch64.tcommit() - ret void -} - -declare void @llvm.aarch64.tcommit() #1 - -attributes #0 = { "target-features"="+tme" } -attributes #1 = { nounwind } - -; CHECK-LABEL: test_tcommit -; CHECK: tcommit diff --git a/llvm/test/CodeGen/AArch64/tme-tstart.ll b/llvm/test/CodeGen/AArch64/tme-tstart.ll deleted file mode 100644 index c761842e7980..000000000000 --- a/llvm/test/CodeGen/AArch64/tme-tstart.ll +++ /dev/null @@ -1,16 +0,0 @@ -; RUN: llc %s -o - | FileCheck %s - -target triple = "aarch64-unknown-unknown-eabi" - -define i64 @test_tstart() #0 { - %r = tail call i64 @llvm.aarch64.tstart() - ret i64 %r -} - -declare i64 @llvm.aarch64.tstart() #1 - -attributes #0 = { "target-features"="+tme" } -attributes #1 = { nounwind } - -; CHECK-LABEL: test_tstart -; CHECK: tstart x diff --git a/llvm/test/CodeGen/AArch64/tme-ttest.ll b/llvm/test/CodeGen/AArch64/tme-ttest.ll deleted file mode 100644 index 597821081354..000000000000 --- a/llvm/test/CodeGen/AArch64/tme-ttest.ll +++ /dev/null @@ -1,16 +0,0 @@ -; RUN: llc %s -o - | FileCheck %s - -target triple = "aarch64-unknown-unknown-eabi" - -define i64 @test_ttest() #0 { - %r = tail call i64 @llvm.aarch64.ttest() - ret i64 %r -} - -declare i64 @llvm.aarch64.ttest() #1 - -attributes #0 = { "target-features"="+tme" } -attributes #1 = { nounwind } - -; CHECK-LABEL: test_ttest -; CHECK: ttest x diff --git a/llvm/test/MC/AArch64/tme-error.s b/llvm/test/MC/AArch64/tme-error.s deleted file mode 100644 index f91f58fa3ef2..000000000000 --- a/llvm/test/MC/AArch64/tme-error.s +++ /dev/null @@ -1,47 +0,0 @@ -// Tests for transactional memory extension instructions -// RUN: not llvm-mc -triple aarch64 -show-encoding -mattr=+tme < %s 2>&1 | FileCheck %s - -tstart -// CHECK: error: too few operands for instruction -// CHECK-NEXT: tstart -tstart x4, x5 -// CHECK: error: invalid operand for instruction -// CHECK-NEXT: tstart x4, x5 -tstart x4, #1 -// CHECK: error: invalid operand for instruction -// CHECK-NEXT: tstart x4, #1 -tstart sp -// CHECK: error: invalid operand for instruction -// CHECK-NEXT: tstart sp - -ttest -// CHECK: error: too few operands for instruction -// CHECK-NEXT: ttest -ttest x4, x5 -// CHECK: error: invalid operand for instruction -// CHECK-NEXT: ttest x4, x5 -ttest x4, #1 -// CHECK: error: invalid operand for instruction -// CHECK-NEXT: ttest x4, #1 -ttest sp -// CHECK: error: invalid operand for instruction -// CHECK-NEXT: ttest sp - -tcommit x4 -// CHECK: error: invalid operand for instruction -// CHECK-NEXT: tcommit x4 -tcommit sp -// CHECK: error: invalid operand for instruction -// CHECK-NEXT: tcommit sp - - -tcancel -// CHECK: error: too few operands for instruction -// CHECK-NEXT tcancel -tcancel x0 -// CHECK: error: immediate must be an integer in range [0, 65535] -// CHECK-NEXT tcancel -tcancel #65536 -// CHECK: error: immediate must be an integer in range [0, 65535] -// CHECK-NEXT: tcancel #65536 - diff --git a/llvm/test/MC/AArch64/tme.s b/llvm/test/MC/AArch64/tme.s deleted file mode 100644 index cd4727412764..000000000000 --- a/llvm/test/MC/AArch64/tme.s +++ /dev/null @@ -1,24 +0,0 @@ -// Tests for transaction memory extension instructions -// -// RUN: llvm-mc -triple aarch64 -show-encoding -mattr=+tme < %s | FileCheck %s -// RUN: not llvm-mc -triple aarch64 -show-encoding -mattr=-tme < %s 2>&1 | FileCheck %s --check-prefix=NOTME - -tstart x3 -ttest x4 -tcommit -tcancel #0x1234 - -// CHECK: tstart x3 // encoding: [0x63,0x30,0x23,0xd5] -// CHECK: ttest x4 // encoding: [0x64,0x31,0x23,0xd5] -// CHECK: tcommit // encoding: [0x7f,0x30,0x03,0xd5] -// CHECK: tcancel #0x1234 // encoding: [0x80,0x46,0x62,0xd4] - - -// NOTME: instruction requires: tme -// NOTME-NEXT: tstart x3 -// NOTME: instruction requires: tme -// NOTME-NEXT: ttest x4 -// NOTME: instruction requires: tme -// NOTME-NEXT: tcommit -// NOTME: instruction requires: tme -// NOTME-NEXT: tcancel #0x1234 diff --git a/llvm/test/MC/Disassembler/AArch64/tme.txt b/llvm/test/MC/Disassembler/AArch64/tme.txt deleted file mode 100644 index f250b33e0e1d..000000000000 --- a/llvm/test/MC/Disassembler/AArch64/tme.txt +++ /dev/null @@ -1,19 +0,0 @@ -# Tests for transaction memory extension instructions -# RUN: llvm-mc -triple=aarch64 -mattr=+tme -disassemble < %s | FileCheck %s -# RUN: not llvm-mc -triple=aarch64 -mattr=-tme -disassemble < %s 2>&1 | FileCheck %s --check-prefix=NOTME - -[0x63,0x30,0x23,0xd5] -[0x64,0x31,0x23,0xd5] -[0x7f,0x30,0x03,0xd5] -[0x80,0x46,0x62,0xd4] - -# CHECK: tstart x3 -# CHECK: ttest x4 -# CHECK: tcommit -# CHECK: tcancel #0x1234 - -# NOTEME: mrs -# NOTEME-NEXT: mrs -# NOTEME-NEXT: msr -# NOTME: warning: invalid instruction encoding -# NOTME-NEXT: [0x80,0x46,0x62,0xd4] diff --git a/llvm/unittests/Support/TargetParserTest.cpp b/llvm/unittests/Support/TargetParserTest.cpp index 5ef8f2e4b550..34c7a8a4fd1c 100644 --- a/llvm/unittests/Support/TargetParserTest.cpp +++ b/llvm/unittests/Support/TargetParserTest.cpp @@ -1119,7 +1119,6 @@ TEST(TargetParserTest, AArch64ArchExtFeature) { {"rcpc", "norcpc", "+rcpc", "-rcpc" }, {"rng", "norng", "+rand", "-rand"}, {"memtag", "nomemtag", "+mte", "-mte"}, - {"tme", "notme", "+tme", "-tme"}, {"ssbs", "nossbs", "+ssbs", "-ssbs"}, {"sb", "nosb", "+sb", "-sb"}, {"predres", "nopredres", "+predres", "-predres"}