Skip to content

Commit 69b056d

Browse files
committed
[PowerPC] Implement SchedModel for Power7
Reviewed By: shchenz Differential Revision: https://reviews.llvm.org/D158704
1 parent 231aa0f commit 69b056d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+4607
-4802
lines changed

llvm/lib/Target/PowerPC/PPCScheduleP7.td

Lines changed: 286 additions & 375 deletions
Large diffs are not rendered by default.

llvm/test/CodeGen/PowerPC/PR35812-neg-cmpxchg.ll

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -69,22 +69,22 @@ define signext i32 @main() nounwind {
6969
; CHECK-P7-NEXT: mflr 0
7070
; CHECK-P7-NEXT: stdu 1, -48(1)
7171
; CHECK-P7-NEXT: li 3, -32477
72-
; CHECK-P7-NEXT: lis 5, 0
73-
; CHECK-P7-NEXT: addi 4, 1, 46
74-
; CHECK-P7-NEXT: li 7, 0
7572
; CHECK-P7-NEXT: std 0, 64(1)
76-
; CHECK-P7-NEXT: sth 3, 46(1)
73+
; CHECK-P7-NEXT: addi 4, 1, 46
7774
; CHECK-P7-NEXT: li 6, 234
78-
; CHECK-P7-NEXT: rlwinm 3, 4, 3, 27, 27
79-
; CHECK-P7-NEXT: ori 5, 5, 33059
80-
; CHECK-P7-NEXT: ori 7, 7, 65535
75+
; CHECK-P7-NEXT: sth 3, 46(1)
76+
; CHECK-P7-NEXT: lis 3, 0
8177
; CHECK-P7-NEXT: sync
82-
; CHECK-P7-NEXT: slw 6, 6, 3
83-
; CHECK-P7-NEXT: slw 8, 5, 3
84-
; CHECK-P7-NEXT: slw 5, 7, 3
78+
; CHECK-P7-NEXT: ori 5, 3, 33059
79+
; CHECK-P7-NEXT: rlwinm 3, 4, 3, 27, 27
8580
; CHECK-P7-NEXT: rldicr 4, 4, 0, 61
81+
; CHECK-P7-NEXT: slw 7, 5, 3
82+
; CHECK-P7-NEXT: li 5, 0
83+
; CHECK-P7-NEXT: slw 6, 6, 3
84+
; CHECK-P7-NEXT: ori 5, 5, 65535
85+
; CHECK-P7-NEXT: slw 5, 5, 3
8686
; CHECK-P7-NEXT: and 6, 6, 5
87-
; CHECK-P7-NEXT: and 7, 8, 5
87+
; CHECK-P7-NEXT: and 7, 7, 5
8888
; CHECK-P7-NEXT: .LBB0_1: # %L.entry
8989
; CHECK-P7-NEXT: #
9090
; CHECK-P7-NEXT: lwarx 9, 0, 4

llvm/test/CodeGen/PowerPC/aix-lower-jump-table-mir.ll

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ define i32 @jump_table(i32 %a) {
2929
; 32SMALL-MIR-NEXT: successors: %bb.2(0x20000000), %bb.3(0x20000000), %bb.4(0x20000000), %bb.5(0x20000000)
3030
; 32SMALL-MIR-NEXT: liveins: $r3
3131
; 32SMALL-MIR-NEXT: {{ $}}
32-
; 32SMALL-MIR-NEXT: renamable $r4 = LWZtoc %jump-table.0, $r2 :: (load (s32) from got)
3332
; 32SMALL-MIR-NEXT: renamable $r3 = RLWINM killed renamable $r3, 2, 0, 29
33+
; 32SMALL-MIR-NEXT: renamable $r4 = LWZtoc %jump-table.0, $r2 :: (load (s32) from got)
3434
; 32SMALL-MIR-NEXT: renamable $r3 = LWZX killed renamable $r3, renamable $r4 :: (load (s32) from jump-table)
3535
; 32SMALL-MIR-NEXT: renamable $r3 = ADD4 killed renamable $r3, killed renamable $r4
3636
; 32SMALL-MIR-NEXT: MTCTR killed renamable $r3, implicit-def $ctr
@@ -76,9 +76,9 @@ define i32 @jump_table(i32 %a) {
7676
; 32LARGE-MIR-NEXT: successors: %bb.2(0x20000000), %bb.3(0x20000000), %bb.4(0x20000000), %bb.5(0x20000000)
7777
; 32LARGE-MIR-NEXT: liveins: $r3
7878
; 32LARGE-MIR-NEXT: {{ $}}
79+
; 32LARGE-MIR-NEXT: renamable $r3 = RLWINM killed renamable $r3, 2, 0, 29
7980
; 32LARGE-MIR-NEXT: renamable $r4 = ADDIStocHA $r2, %jump-table.0
8081
; 32LARGE-MIR-NEXT: renamable $r4 = LWZtocL %jump-table.0, killed renamable $r4, implicit $r2 :: (load (s32) from got)
81-
; 32LARGE-MIR-NEXT: renamable $r3 = RLWINM killed renamable $r3, 2, 0, 29
8282
; 32LARGE-MIR-NEXT: renamable $r3 = LWZX killed renamable $r3, renamable $r4 :: (load (s32) from jump-table)
8383
; 32LARGE-MIR-NEXT: renamable $r3 = ADD4 killed renamable $r3, killed renamable $r4
8484
; 32LARGE-MIR-NEXT: MTCTR killed renamable $r3, implicit-def $ctr
@@ -124,8 +124,8 @@ define i32 @jump_table(i32 %a) {
124124
; 64SMALL-MIR-NEXT: successors: %bb.2(0x20000000), %bb.3(0x20000000), %bb.4(0x20000000), %bb.5(0x20000000)
125125
; 64SMALL-MIR-NEXT: liveins: $x3
126126
; 64SMALL-MIR-NEXT: {{ $}}
127-
; 64SMALL-MIR-NEXT: renamable $x4 = LDtocJTI %jump-table.0, $x2 :: (load (s64) from got)
128127
; 64SMALL-MIR-NEXT: renamable $x3 = RLDIC killed renamable $x3, 2, 30
128+
; 64SMALL-MIR-NEXT: renamable $x4 = LDtocJTI %jump-table.0, $x2 :: (load (s64) from got)
129129
; 64SMALL-MIR-NEXT: renamable $x3 = LWAX killed renamable $x3, renamable $x4 :: (load (s32) from jump-table)
130130
; 64SMALL-MIR-NEXT: renamable $x3 = ADD8 killed renamable $x3, killed renamable $x4
131131
; 64SMALL-MIR-NEXT: MTCTR8 killed renamable $x3, implicit-def $ctr8
@@ -171,9 +171,9 @@ define i32 @jump_table(i32 %a) {
171171
; 64LARGE-MIR-NEXT: successors: %bb.2(0x20000000), %bb.3(0x20000000), %bb.4(0x20000000), %bb.5(0x20000000)
172172
; 64LARGE-MIR-NEXT: liveins: $x3
173173
; 64LARGE-MIR-NEXT: {{ $}}
174+
; 64LARGE-MIR-NEXT: renamable $x3 = RLDIC killed renamable $x3, 2, 30
174175
; 64LARGE-MIR-NEXT: renamable $x4 = ADDIStocHA8 $x2, %jump-table.0
175176
; 64LARGE-MIR-NEXT: renamable $x4 = LDtocL %jump-table.0, killed renamable $x4, implicit $x2 :: (load (s64) from got)
176-
; 64LARGE-MIR-NEXT: renamable $x3 = RLDIC killed renamable $x3, 2, 30
177177
; 64LARGE-MIR-NEXT: renamable $x3 = LWAX killed renamable $x3, renamable $x4 :: (load (s32) from jump-table)
178178
; 64LARGE-MIR-NEXT: renamable $x3 = ADD8 killed renamable $x3, killed renamable $x4
179179
; 64LARGE-MIR-NEXT: MTCTR8 killed renamable $x3, implicit-def $ctr8

llvm/test/CodeGen/PowerPC/aix-small-local-exec-tls-char.ll

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -82,20 +82,20 @@ entry:
8282
define zeroext i8 @loadITLInit2() {
8383
; SMALL-LOCAL-EXEC-SMALLCM64-LABEL: loadITLInit2:
8484
; SMALL-LOCAL-EXEC-SMALLCM64: # %bb.0: # %entry
85-
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: ld r3, L..C0(r2) # @VarInit
86-
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: lbz r4, IThreadLocalVarInit[TL]@le(r13)
87-
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: lbz r3, 0(r3)
88-
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: add r3, r3, r4
85+
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: ld r4, L..C0(r2) # @VarInit
86+
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: lbz r3, IThreadLocalVarInit[TL]@le(r13)
87+
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: lbz r4, 0(r4)
88+
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: add r3, r4, r3
8989
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: clrldi r3, r3, 56
9090
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: blr
9191
;
9292
; SMALL-LOCAL-EXEC-LARGECM64-LABEL: loadITLInit2:
9393
; SMALL-LOCAL-EXEC-LARGECM64: # %bb.0: # %entry
94-
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: addis r3, L..C0@u(r2)
95-
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: lbz r4, IThreadLocalVarInit[TL]@le(r13)
96-
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: ld r3, L..C0@l(r3)
97-
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: lbz r3, 0(r3)
98-
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: add r3, r3, r4
94+
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: addis r4, L..C0@u(r2)
95+
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: lbz r3, IThreadLocalVarInit[TL]@le(r13)
96+
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: ld r4, L..C0@l(r4)
97+
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: lbz r4, 0(r4)
98+
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: add r3, r4, r3
9999
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: clrldi r3, r3, 56
100100
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: blr
101101
entry:
@@ -125,20 +125,20 @@ entry:
125125
define zeroext i8 @loadTLInit2() {
126126
; SMALL-LOCAL-EXEC-SMALLCM64-LABEL: loadTLInit2:
127127
; SMALL-LOCAL-EXEC-SMALLCM64: # %bb.0: # %entry
128-
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: ld r3, L..C0(r2) # @VarInit
129-
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: lbz r4, ThreadLocalVarInit[TL]@le(r13)
130-
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: lbz r3, 0(r3)
131-
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: add r3, r3, r4
128+
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: ld r4, L..C0(r2) # @VarInit
129+
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: lbz r3, ThreadLocalVarInit[TL]@le(r13)
130+
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: lbz r4, 0(r4)
131+
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: add r3, r4, r3
132132
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: clrldi r3, r3, 56
133133
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: blr
134134
;
135135
; SMALL-LOCAL-EXEC-LARGECM64-LABEL: loadTLInit2:
136136
; SMALL-LOCAL-EXEC-LARGECM64: # %bb.0: # %entry
137-
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: addis r3, L..C0@u(r2)
138-
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: lbz r4, ThreadLocalVarInit[TL]@le(r13)
139-
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: ld r3, L..C0@l(r3)
140-
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: lbz r3, 0(r3)
141-
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: add r3, r3, r4
137+
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: addis r4, L..C0@u(r2)
138+
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: lbz r3, ThreadLocalVarInit[TL]@le(r13)
139+
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: ld r4, L..C0@l(r4)
140+
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: lbz r4, 0(r4)
141+
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: add r3, r4, r3
142142
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: clrldi r3, r3, 56
143143
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: blr
144144
entry:

llvm/test/CodeGen/PowerPC/aix-small-local-exec-tls-double.ll

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -151,9 +151,9 @@ define void @loadStore1(double noundef %x) {
151151
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: vspltisw v2, 1
152152
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: lfd f1, IThreadLocalVarInit[TL]@le(r13)
153153
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: xvcvsxwdp vs0, vs34
154-
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: vspltisw v2, 8
154+
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: vspltisw v3, 8
155155
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: xsadddp f0, f1, f0
156-
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: xvcvsxwdp vs1, vs34
156+
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: xvcvsxwdp vs1, vs35
157157
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: xsadddp f0, f0, f1
158158
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: stfd f0, IThreadLocalVarInit[TL]@le(r13)
159159
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: blr
@@ -163,9 +163,9 @@ define void @loadStore1(double noundef %x) {
163163
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: vspltisw v2, 1
164164
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: lfd f1, IThreadLocalVarInit[TL]@le(r13)
165165
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: xvcvsxwdp vs0, vs34
166-
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: vspltisw v2, 8
166+
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: vspltisw v3, 8
167167
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: xsadddp f0, f1, f0
168-
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: xvcvsxwdp vs1, vs34
168+
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: xvcvsxwdp vs1, vs35
169169
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: xsadddp f0, f0, f1
170170
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: stfd f0, IThreadLocalVarInit[TL]@le(r13)
171171
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: blr

llvm/test/CodeGen/PowerPC/aix-small-local-exec-tls-float.ll

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -151,10 +151,10 @@ define void @loadStore1(float noundef %x) {
151151
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: vspltisw v2, 1
152152
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: lfs f1, IThreadLocalVarInit[TL]@le(r13)
153153
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: xvcvsxwdp vs0, vs34
154-
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: vspltisw v2, 8
155-
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: xvcvsxwdp vs2, vs34
154+
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: vspltisw v3, 8
156155
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: fadds f0, f1, f0
157-
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: fadds f0, f0, f2
156+
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: xvcvsxwdp vs1, vs35
157+
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: fadds f0, f0, f1
158158
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: stfs f0, IThreadLocalVarInit[TL]@le(r13)
159159
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: blr
160160
;
@@ -163,10 +163,10 @@ define void @loadStore1(float noundef %x) {
163163
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: vspltisw v2, 1
164164
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: lfs f1, IThreadLocalVarInit[TL]@le(r13)
165165
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: xvcvsxwdp vs0, vs34
166-
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: vspltisw v2, 8
167-
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: xvcvsxwdp vs2, vs34
166+
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: vspltisw v3, 8
168167
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: fadds f0, f1, f0
169-
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: fadds f0, f0, f2
168+
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: xvcvsxwdp vs1, vs35
169+
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: fadds f0, f0, f1
170170
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: stfs f0, IThreadLocalVarInit[TL]@le(r13)
171171
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: blr
172172
entry:

llvm/test/CodeGen/PowerPC/aix-small-local-exec-tls-int.ll

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -103,20 +103,20 @@ entry:
103103
define signext i32 @loadITLInit2() {
104104
; SMALL-LOCAL-EXEC-SMALLCM64-LABEL: loadITLInit2:
105105
; SMALL-LOCAL-EXEC-SMALLCM64: # %bb.0: # %entry
106-
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: ld r3, L..C0(r2) # @VarInit
107-
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: lwz r4, IThreadLocalVarInit[TL]@le(r13)
108-
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: lwz r3, 0(r3)
109-
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: add r3, r3, r4
106+
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: ld r4, L..C0(r2) # @VarInit
107+
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: lwz r3, IThreadLocalVarInit[TL]@le(r13)
108+
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: lwz r4, 0(r4)
109+
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: add r3, r4, r3
110110
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: extsw r3, r3
111111
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: blr
112112
;
113113
; SMALL-LOCAL-EXEC-LARGECM64-LABEL: loadITLInit2:
114114
; SMALL-LOCAL-EXEC-LARGECM64: # %bb.0: # %entry
115-
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: addis r3, L..C0@u(r2)
116-
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: lwz r4, IThreadLocalVarInit[TL]@le(r13)
117-
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: ld r3, L..C0@l(r3)
118-
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: lwz r3, 0(r3)
119-
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: add r3, r3, r4
115+
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: addis r4, L..C0@u(r2)
116+
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: lwz r3, IThreadLocalVarInit[TL]@le(r13)
117+
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: ld r4, L..C0@l(r4)
118+
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: lwz r4, 0(r4)
119+
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: add r3, r4, r3
120120
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: extsw r3, r3
121121
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: blr
122122
entry:
@@ -146,20 +146,20 @@ entry:
146146
define signext i32 @loadTLInit2() {
147147
; SMALL-LOCAL-EXEC-SMALLCM64-LABEL: loadTLInit2:
148148
; SMALL-LOCAL-EXEC-SMALLCM64: # %bb.0: # %entry
149-
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: ld r3, L..C0(r2) # @VarInit
150-
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: lwz r4, ThreadLocalVarInit[TL]@le(r13)
151-
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: lwz r3, 0(r3)
152-
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: add r3, r3, r4
149+
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: ld r4, L..C0(r2) # @VarInit
150+
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: lwz r3, ThreadLocalVarInit[TL]@le(r13)
151+
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: lwz r4, 0(r4)
152+
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: add r3, r4, r3
153153
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: extsw r3, r3
154154
; SMALL-LOCAL-EXEC-SMALLCM64-NEXT: blr
155155
;
156156
; SMALL-LOCAL-EXEC-LARGECM64-LABEL: loadTLInit2:
157157
; SMALL-LOCAL-EXEC-LARGECM64: # %bb.0: # %entry
158-
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: addis r3, L..C0@u(r2)
159-
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: lwz r4, ThreadLocalVarInit[TL]@le(r13)
160-
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: ld r3, L..C0@l(r3)
161-
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: lwz r3, 0(r3)
162-
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: add r3, r3, r4
158+
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: addis r4, L..C0@u(r2)
159+
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: lwz r3, ThreadLocalVarInit[TL]@le(r13)
160+
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: ld r4, L..C0@l(r4)
161+
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: lwz r4, 0(r4)
162+
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: add r3, r4, r3
163163
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: extsw r3, r3
164164
; SMALL-LOCAL-EXEC-LARGECM64-NEXT: blr
165165
entry:

0 commit comments

Comments
 (0)