1
+ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
1
2
; RUN: llc -verify-machineinstrs < %s -mcpu=ppc | FileCheck %s
2
3
3
4
target datalayout = "E-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v128:128:128-n32"
4
5
target triple = "powerpc-unknown-linux-gnu"
5
6
6
7
define ppc_fp128 @foo (ptr nocapture %n , ppc_fp128 %d ) nounwind readonly {
8
+ ; CHECK-LABEL: foo:
9
+ ; CHECK-NOT: mtctr
10
+ ; CHECK: # %bb.0: # %entry
11
+ ; CHECK-NEXT: mflr 0
12
+ ; CHECK-NEXT: stwu 1, -176(1)
13
+ ; CHECK-NEXT: stw 0, 180(1)
14
+ ; CHECK-NEXT: stfd 2, 128(1)
15
+ ; CHECK-NEXT: lwz 3, 132(1)
16
+ ; CHECK-NEXT: stfd 1, 136(1)
17
+ ; CHECK-NEXT: stw 3, 148(1)
18
+ ; CHECK-NEXT: lwz 3, 128(1)
19
+ ; CHECK-NEXT: stfd 31, 168(1) # 8-byte Folded Spill
20
+ ; CHECK-NEXT: stw 3, 144(1)
21
+ ; CHECK-NEXT: lwz 3, 140(1)
22
+ ; CHECK-NEXT: lfd 0, 144(1)
23
+ ; CHECK-NEXT: stw 3, 156(1)
24
+ ; CHECK-NEXT: lwz 3, 136(1)
25
+ ; CHECK-NEXT: stw 30, 160(1) # 4-byte Folded Spill
26
+ ; CHECK-NEXT: li 30, 2048
27
+ ; CHECK-NEXT: stw 3, 152(1)
28
+ ; CHECK-NEXT: lfd 31, 152(1)
29
+ ; CHECK-NEXT: fmr 1, 31
30
+ ; CHECK-NEXT: .LBB0_1: # %for.body
31
+ ; CHECK-NEXT: #
32
+ ; CHECK-NEXT: stfd 1, 64(1)
33
+ ; CHECK-NEXT: lwz 3, 68(1)
34
+ ; CHECK-NEXT: stfd 31, 88(1)
35
+ ; CHECK-NEXT: stw 3, 84(1)
36
+ ; CHECK-NEXT: lwz 3, 64(1)
37
+ ; CHECK-NEXT: stfd 0, 56(1)
38
+ ; CHECK-NEXT: stw 3, 80(1)
39
+ ; CHECK-NEXT: lwz 3, 92(1)
40
+ ; CHECK-NEXT: lfd 4, 96(1)
41
+ ; CHECK-NEXT: stw 3, 108(1)
42
+ ; CHECK-NEXT: lwz 3, 88(1)
43
+ ; CHECK-NEXT: lfd 1, 80(1)
44
+ ; CHECK-NEXT: stw 3, 104(1)
45
+ ; CHECK-NEXT: lwz 3, 60(1)
46
+ ; CHECK-NEXT: lfd 3, 104(1)
47
+ ; CHECK-NEXT: stw 3, 76(1)
48
+ ; CHECK-NEXT: lwz 3, 56(1)
49
+ ; CHECK-NEXT: stw 3, 72(1)
50
+ ; CHECK-NEXT: lfd 2, 72(1)
51
+ ; CHECK-NEXT: bl copysignl
52
+ ; CHECK-NEXT: stfd 2, 48(1)
53
+ ; CHECK-NEXT: addi 30, 30, -1
54
+ ; CHECK-NEXT: lwz 3, 52(1)
55
+ ; CHECK-NEXT: cmplwi 30, 0
56
+ ; CHECK-NEXT: stfd 1, 40(1)
57
+ ; CHECK-NEXT: stw 3, 116(1)
58
+ ; CHECK-NEXT: lwz 3, 48(1)
59
+ ; CHECK-NEXT: stw 3, 112(1)
60
+ ; CHECK-NEXT: lwz 3, 44(1)
61
+ ; CHECK-NEXT: lfd 0, 112(1)
62
+ ; CHECK-NEXT: stw 3, 124(1)
63
+ ; CHECK-NEXT: lwz 3, 40(1)
64
+ ; CHECK-NEXT: stw 3, 120(1)
65
+ ; CHECK-NEXT: lfd 1, 120(1)
66
+ ; CHECK-NEXT: bc 12, 1, .LBB0_1
67
+ ; CHECK-NEXT: # %bb.2: # %for.end
68
+ ; CHECK-NEXT: stfd 1, 16(1)
69
+ ; CHECK-NEXT: lwz 3, 20(1)
70
+ ; CHECK-NEXT: stfd 0, 8(1)
71
+ ; CHECK-NEXT: stw 3, 36(1)
72
+ ; CHECK-NEXT: lwz 3, 16(1)
73
+ ; CHECK-NEXT: lfd 31, 168(1) # 8-byte Folded Reload
74
+ ; CHECK-NEXT: stw 3, 32(1)
75
+ ; CHECK-NEXT: lwz 3, 12(1)
76
+ ; CHECK-NEXT: lfd 1, 32(1)
77
+ ; CHECK-NEXT: stw 3, 28(1)
78
+ ; CHECK-NEXT: lwz 3, 8(1)
79
+ ; CHECK-NEXT: lwz 30, 160(1) # 4-byte Folded Reload
80
+ ; CHECK-NEXT: stw 3, 24(1)
81
+ ; CHECK-NEXT: lfd 2, 24(1)
82
+ ; CHECK-NEXT: lwz 0, 180(1)
83
+ ; CHECK-NEXT: addi 1, 1, 176
84
+ ; CHECK-NEXT: mtlr 0
85
+ ; CHECK-NEXT: blr
7
86
entry:
8
87
br label %for.body
9
88
@@ -23,6 +102,5 @@ for.end: ; preds = %for.body
23
102
24
103
declare ppc_fp128 @copysignl (ppc_fp128 , ppc_fp128 ) #0
25
104
26
- ; CHECK: @foo
27
105
; CHECK-NOT: mtctr
28
106
0 commit comments