[AArch64] Fix bug in prolog clobbering live reg when shrink wrapping.
[oota-llvm.git] / test / CodeGen / AArch64 / hints.ll
1 ; RUN: llc -mtriple aarch64-eabi -o - %s | FileCheck %s
2
3 declare void @llvm.aarch64.hint(i32) nounwind
4
5 define void @hint_nop() {
6 entry:
7   tail call void @llvm.aarch64.hint(i32 0) nounwind
8   ret void
9 }
10
11 ; CHECK-LABEL: hint_nop
12 ; CHECK: nop
13
14 define void @hint_yield() {
15 entry:
16   tail call void @llvm.aarch64.hint(i32 1) nounwind
17   ret void
18 }
19
20 ; CHECK-LABEL: hint_yield
21 ; CHECK: yield
22
23 define void @hint_wfe() {
24 entry:
25   tail call void @llvm.aarch64.hint(i32 2) nounwind
26   ret void
27 }
28
29 ; CHECK-LABEL: hint_wfe
30 ; CHECK: wfe
31
32 define void @hint_wfi() {
33 entry:
34   tail call void @llvm.aarch64.hint(i32 3) nounwind
35   ret void
36 }
37
38 ; CHECK-LABEL: hint_wfi
39 ; CHECK: wfi
40
41 define void @hint_sev() {
42 entry:
43   tail call void @llvm.aarch64.hint(i32 4) nounwind
44   ret void
45 }
46
47 ; CHECK-LABEL: hint_sev
48 ; CHECK: sev
49
50 define void @hint_sevl() {
51 entry:
52   tail call void @llvm.aarch64.hint(i32 5) nounwind
53   ret void
54 }
55
56 ; CHECK-LABEL: hint_sevl
57 ; CHECK: sevl
58
59 define void @hint_undefined() {
60 entry:
61   tail call void @llvm.aarch64.hint(i32 8) nounwind
62   ret void
63 }
64
65 ; CHECK-LABEL: hint_undefined
66 ; CHECK: hint #0x8
67