1
1
; RUN: llc -mtriple=powerpc %s -o - | FileCheck %s --check-prefixes=CHECK,PPC32
2
2
; RUN: llc -mtriple=powerpc64 %s -o - | FileCheck %s --check-prefixes=CHECK,PPC64
3
+ ; RUN: llc -mtriple=powerpc64le %s -o - | FileCheck %s --check-prefix=PPC64LE
3
4
4
5
@a = global i32 0 , align 4
5
6
@@ -9,6 +10,12 @@ define void @f0() {
9
10
; CHECK: # %bb.0:
10
11
; CHECK-NEXT: blr
11
12
; CHECK-NOT: .section __patchable_function_entries
13
+ ;
14
+ ; PPC64LE-LABEL: f0:
15
+ ; PPC64LE-NOT: nop
16
+ ; PPC64LE: # %bb.0:
17
+ ; PPC64LE-NEXT: blr
18
+ ; PPC64LE-NOT: .section __patchable_function_entries
12
19
ret void
13
20
}
14
21
@@ -18,6 +25,22 @@ define void @f1() "patchable-function-entry"="0" {
18
25
; CHECK: # %bb.0:
19
26
; CHECK-NEXT: blr
20
27
; CHECK-NOT: .section __patchable_function_entries
28
+ ;
29
+ ; PPC64LE-LABEL: f1:
30
+ ; PPC64LE: # %bb.0:
31
+ ; PPC64LE-NEXT: .Ltmp0:
32
+ ; PPC64LE-NEXT: b .Ltmp1
33
+ ; PPC64LE-NEXT: nop
34
+ ; PPC64LE-NEXT: std 0, -8(1)
35
+ ; PPC64LE-NEXT: mflr 0
36
+ ; PPC64LE-NEXT: bl __xray_FunctionEntry
37
+ ; PPC64LE-NEXT: nop
38
+ ; PPC64LE-NEXT: mtlr 0
39
+ ; PPC64LE-NEXT: .Ltmp1:
40
+ ; PPC64LE-NEXT: blr
41
+ ; PPC64LE-NOT: .section __patchable_function_entries
42
+ ; PPC64LE: .section xray_instr_map
43
+ ; PPC64LE: .section xray_fn_idx
21
44
ret void
22
45
}
23
46
@@ -32,6 +55,17 @@ define void @f2() "patchable-function-entry"="1" {
32
55
; PPC64: .p2align 3, 0x0
33
56
; PPC32-NEXT: .long .Lfunc_begin2
34
57
; PPC64-NEXT: .quad .Lfunc_begin2
58
+ ;
59
+ ; PPC64LE-LABEL: f2:
60
+ ; PPC64LE-LABEL-NEXT: .Lfunc_begin2:
61
+ ; PPC64LE: # %bb.0:
62
+ ; PPC64LE-NEXT: nop
63
+ ; PPC64LE-NEXT: blr
64
+ ; PPC64LE: .section __patchable_function_entries
65
+ ; PPC64LE: .p2align 3, 0x0
66
+ ; PPC64LE-NEXT: .quad .Lfunc_begin2
67
+ ; PPC64LE-NOT: .section xray_instr_map
68
+ ; PPC64LE-NOT: .section xray_fn_idx
35
69
ret void
36
70
}
37
71
@@ -52,6 +86,21 @@ define i32 @f3() "patchable-function-entry"="1" "patchable-function-prefix"="2"
52
86
; PPC64: .p2align 3, 0x0
53
87
; PPC32-NEXT: .long .Ltmp0
54
88
; PPC64-NEXT: .quad .Ltmp0
89
+ ;
90
+ ; PC64LE-LABEL: .Ltmp3:
91
+ ; PC64LE-COUNT-2: nop
92
+ ; PC64LE-LABEL: f3:
93
+ ; PC64LE: # %bb.0:
94
+ ; PC64LE-NEXT: nop
95
+ ; PC64LE: addis 3, 2, .LC0@toc@ha
96
+ ; PC64LE-NEXT: ld 3, .LC0@toc@l(3)
97
+ ; PC64LE-NEXT: lwz 3, 0(3)
98
+ ; PC64LE: blr
99
+ ; PC64LE: .section __patchable_function_entries
100
+ ; PPC64LE: .p2align 3, 0x0
101
+ ; PPC64LE-NEXT: .quad .Ltmp3
102
+ ; PC64LE-NOT: .section xray_instr_map
103
+ ; PC64LE-NOT: .section xray_fn_idx
55
104
entry:
56
105
%0 = load i32 , ptr @a , align 4
57
106
ret i32 %0
0 commit comments