xref: /llvm-project/llvm/test/CodeGen/AArch64/tme.ll (revision 54c79fa53c17a93d3d784738cae52d847102d279)
1; RUN: llc %s -verify-machineinstrs -o - | FileCheck %s
2
3target triple = "aarch64"
4
5define i64 @test_tstart() #0 {
6  %r = tail call i64 @llvm.aarch64.tstart()
7  ret i64 %r
8}
9declare i64 @llvm.aarch64.tstart() #1
10; CHECK-LABEL: test_tstart
11; CHECK: tstart x
12
13define i64 @test_ttest() #0 {
14  %r = tail call i64 @llvm.aarch64.ttest()
15  ret i64 %r
16}
17declare i64 @llvm.aarch64.ttest() #1
18; CHECK-LABEL: test_ttest
19; CHECK: ttest x
20
21define void @test_tcommit() #0 {
22  tail call void @llvm.aarch64.tcommit()
23  ret void
24}
25declare void @llvm.aarch64.tcommit() #1
26; CHECK-LABEL: test_tcommit
27; CHECK: tcommit
28
29define void @test_tcancel() #0 {
30  tail call void @llvm.aarch64.tcancel(i64 0) #1
31  tail call void @llvm.aarch64.tcancel(i64 1) #1
32  tail call void @llvm.aarch64.tcancel(i64 65534) #1
33  tail call void @llvm.aarch64.tcancel(i64 65535) #1
34  ret void
35}
36declare void @llvm.aarch64.tcancel(i64 immarg) #1
37; CHECK-LABEL: test_tcancel
38; CHECK: tcancel #0
39; CHECK: tcancel #0x1
40; CHECK: tcancel #0xfffe
41; CHECK: tcancel #0xffff
42
43attributes #0 = { "target-features"="+tme" }
44attributes #1 = { nounwind }
45