Skip to content

Commit dd0edc8

Browse files
author
Chen Zheng
committed
[PowerPC][NFC] add an option to keep the test point
Passes before hardware loop insertion change the loop to a form which is not a hardware loop candidate (return early before checking the ctr clobbers). And the PHI in the loop exit block is also optimized away. This breaks the previous test point when the case was committed. Fixing this by running this case just before hardware loop insertion pass. Reviewed By: nemanjai Differential revision: https://reviews.llvm.org/D140366
1 parent 8d798ea commit dd0edc8

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

llvm/test/CodeGen/PowerPC/pr48527.ll

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2-
; RUN: llc -relocation-model=pic -verify-machineinstrs < %s \
2+
; RUN: llc -relocation-model=pic -verify-machineinstrs -start-before=hardware-loops < %s \
33
; RUN: -mtriple=powerpc64le-unknown-linux-gnu -mcpu=pwr8 | FileCheck %s
4+
5+
; NOTE: this needs to run starting at HW loops to ensure that the original loop
6+
; does not end up producing a HW loop. If other passes are run prior, the loop
7+
; will be transformed.
8+
49
%struct.e.0.12.28.44.104.108.112.188 = type { i32 }
510
%struct.t.1.13.29.45.105.109.113.189 = type { i64, i64 }
611

@@ -11,13 +16,15 @@ define void @_ZNK1q1rEv() local_unnamed_addr #0 align 2 {
1116
; CHECK-LABEL: _ZNK1q1rEv:
1217
; CHECK: # %bb.0: # %entry
1318
; CHECK-NEXT: mflr 0
19+
; CHECK-NEXT: std 28, -32(1) # 8-byte Folded Spill
1420
; CHECK-NEXT: std 29, -24(1) # 8-byte Folded Spill
1521
; CHECK-NEXT: std 30, -16(1) # 8-byte Folded Spill
1622
; CHECK-NEXT: stdu 1, -64(1)
1723
; CHECK-NEXT: std 0, 80(1)
24+
; CHECK-NEXT: li 29, 0
1825
; CHECK-NEXT: lwz 30, 0(3)
1926
; CHECK-NEXT: addis 3, 2, .LC0@toc@ha
20-
; CHECK-NEXT: ld 29, .LC0@toc@l(3)
27+
; CHECK-NEXT: ld 28, .LC0@toc@l(3)
2128
; CHECK-NEXT: addis 3, 2, aj@got@tlsgd@ha
2229
; CHECK-NEXT: addi 3, 3, aj@got@tlsgd@l
2330
; CHECK-NEXT: bl __tls_get_addr(aj@tlsgd)
@@ -26,13 +33,13 @@ define void @_ZNK1q1rEv() local_unnamed_addr #0 align 2 {
2633
; CHECK-NEXT: .p2align 5
2734
; CHECK-NEXT: .LBB0_1: # %monotonic.i
2835
; CHECK-NEXT: #
29-
; CHECK-NEXT: lwz 5, 0(29)
36+
; CHECK-NEXT: lwz 5, 0(28)
3037
; CHECK-NEXT: andi. 5, 5, 255
3138
; CHECK-NEXT: bne 0, .LBB0_4
3239
; CHECK-NEXT: # %bb.2: # %for.cond.i
3340
; CHECK-NEXT: #
34-
; CHECK-NEXT: addi 30, 30, -1
35-
; CHECK-NEXT: cmplwi 30, 0
41+
; CHECK-NEXT: addi 29, 29, 1
42+
; CHECK-NEXT: cmplw 29, 30
3643
; CHECK-NEXT: bne 0, .LBB0_1
3744
; CHECK-NEXT: # %bb.3:
3845
; CHECK-NEXT: mr 4, 3
@@ -43,6 +50,7 @@ define void @_ZNK1q1rEv() local_unnamed_addr #0 align 2 {
4350
; CHECK-NEXT: ld 0, 16(1)
4451
; CHECK-NEXT: ld 30, -16(1) # 8-byte Folded Reload
4552
; CHECK-NEXT: ld 29, -24(1) # 8-byte Folded Reload
53+
; CHECK-NEXT: ld 28, -32(1) # 8-byte Folded Reload
4654
; CHECK-NEXT: mtlr 0
4755
; CHECK-NEXT: blr
4856
entry:

0 commit comments

Comments
 (0)