xref: /llvm-project/llvm/test/CodeGen/ARM/hints.ll (revision 7e7c2f9ca69b87a1ff1b0030dfddf1e782c2c31d)
1*7e7c2f9cSSaleem Abdulrasool; RUN: llc -mtriple armv7-eabi -o - %s | FileCheck %s
2*7e7c2f9cSSaleem Abdulrasool; RUN: llc -mtriple thumbv6m-eabi -o - %s | FileCheck %s
3*7e7c2f9cSSaleem Abdulrasool; RUN: llc -mtriple thumbv7-eabi -o - %s | FileCheck %s
4*7e7c2f9cSSaleem Abdulrasool
5*7e7c2f9cSSaleem Abdulrasooldeclare void @llvm.arm.hint(i32) nounwind
6*7e7c2f9cSSaleem Abdulrasool
7*7e7c2f9cSSaleem Abdulrasooldefine void @hint_nop() {
8*7e7c2f9cSSaleem Abdulrasoolentry:
9*7e7c2f9cSSaleem Abdulrasool  tail call void @llvm.arm.hint(i32 0) nounwind
10*7e7c2f9cSSaleem Abdulrasool  ret void
11*7e7c2f9cSSaleem Abdulrasool}
12*7e7c2f9cSSaleem Abdulrasool
13*7e7c2f9cSSaleem Abdulrasool; CHECK-LABEL: hint_nop
14*7e7c2f9cSSaleem Abdulrasool; CHECK: nop
15*7e7c2f9cSSaleem Abdulrasool
16*7e7c2f9cSSaleem Abdulrasooldefine void @hint_yield() {
17*7e7c2f9cSSaleem Abdulrasoolentry:
18*7e7c2f9cSSaleem Abdulrasool  tail call void @llvm.arm.hint(i32 1) nounwind
19*7e7c2f9cSSaleem Abdulrasool  ret void
20*7e7c2f9cSSaleem Abdulrasool}
21*7e7c2f9cSSaleem Abdulrasool
22*7e7c2f9cSSaleem Abdulrasool; CHECK-LABEL: hint_yield
23*7e7c2f9cSSaleem Abdulrasool; CHECK: yield
24*7e7c2f9cSSaleem Abdulrasool
25*7e7c2f9cSSaleem Abdulrasooldefine void @hint_wfe() {
26*7e7c2f9cSSaleem Abdulrasoolentry:
27*7e7c2f9cSSaleem Abdulrasool  tail call void @llvm.arm.hint(i32 2) nounwind
28*7e7c2f9cSSaleem Abdulrasool  ret void
29*7e7c2f9cSSaleem Abdulrasool}
30*7e7c2f9cSSaleem Abdulrasool
31*7e7c2f9cSSaleem Abdulrasool; CHECK-LABEL: hint_wfe
32*7e7c2f9cSSaleem Abdulrasool; CHECK: wfe
33*7e7c2f9cSSaleem Abdulrasool
34*7e7c2f9cSSaleem Abdulrasooldefine void @hint_wfi() {
35*7e7c2f9cSSaleem Abdulrasoolentry:
36*7e7c2f9cSSaleem Abdulrasool  tail call void @llvm.arm.hint(i32 3) nounwind
37*7e7c2f9cSSaleem Abdulrasool  ret void
38*7e7c2f9cSSaleem Abdulrasool}
39*7e7c2f9cSSaleem Abdulrasool
40*7e7c2f9cSSaleem Abdulrasool; CHECK-LABEL: hint_wfi
41*7e7c2f9cSSaleem Abdulrasool; CHECK: wfi
42*7e7c2f9cSSaleem Abdulrasool
43*7e7c2f9cSSaleem Abdulrasooldefine void @hint_sev() {
44*7e7c2f9cSSaleem Abdulrasoolentry:
45*7e7c2f9cSSaleem Abdulrasool  tail call void @llvm.arm.hint(i32 4) nounwind
46*7e7c2f9cSSaleem Abdulrasool  ret void
47*7e7c2f9cSSaleem Abdulrasool}
48*7e7c2f9cSSaleem Abdulrasool
49*7e7c2f9cSSaleem Abdulrasool; CHECK-LABEL: hint_sev
50*7e7c2f9cSSaleem Abdulrasool; CHECK: sev
51*7e7c2f9cSSaleem Abdulrasool
52*7e7c2f9cSSaleem Abdulrasooldefine void @hint_sevl() {
53*7e7c2f9cSSaleem Abdulrasoolentry:
54*7e7c2f9cSSaleem Abdulrasool  tail call void @llvm.arm.hint(i32 5) nounwind
55*7e7c2f9cSSaleem Abdulrasool  ret void
56*7e7c2f9cSSaleem Abdulrasool}
57*7e7c2f9cSSaleem Abdulrasool
58*7e7c2f9cSSaleem Abdulrasool; CHECK-LABEL: hint_sevl
59*7e7c2f9cSSaleem Abdulrasool; CHECK: hint #5
60*7e7c2f9cSSaleem Abdulrasool
61*7e7c2f9cSSaleem Abdulrasooldefine void @hint_undefined() {
62*7e7c2f9cSSaleem Abdulrasoolentry:
63*7e7c2f9cSSaleem Abdulrasool  tail call void @llvm.arm.hint(i32 8) nounwind
64*7e7c2f9cSSaleem Abdulrasool  ret void
65*7e7c2f9cSSaleem Abdulrasool}
66*7e7c2f9cSSaleem Abdulrasool
67*7e7c2f9cSSaleem Abdulrasool; CHECK-LABEL: hint_undefined
68*7e7c2f9cSSaleem Abdulrasool; CHECK: hint #8
69*7e7c2f9cSSaleem Abdulrasool
70