[PATCH] D140366: [PowerPC][NFC] adding an option to keep the test point

ChenZheng via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 19 19:46:11 PST 2022


shchenz created this revision.
shchenz added reviewers: nemanjai, PowerPC.
Herald added a project: All.
shchenz requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

  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.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D140366

Files:
  llvm/test/CodeGen/PowerPC/pr48527.ll


Index: llvm/test/CodeGen/PowerPC/pr48527.ll
===================================================================
--- llvm/test/CodeGen/PowerPC/pr48527.ll
+++ llvm/test/CodeGen/PowerPC/pr48527.ll
@@ -1,5 +1,5 @@
 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
-; RUN: llc -relocation-model=pic -verify-machineinstrs < %s \
+; RUN: llc -relocation-model=pic -verify-machineinstrs -start-before=hardware-loops < %s \
 ; RUN:   -mtriple=powerpc64le-unknown-linux-gnu -mcpu=pwr8 | FileCheck %s
 %struct.e.0.12.28.44.104.108.112.188 = type { i32 }
 %struct.t.1.13.29.45.105.109.113.189 = type { i64, i64 }
@@ -11,36 +11,41 @@
 ; CHECK-LABEL: _ZNK1q1rEv:
 ; CHECK:       # %bb.0: # %entry
 ; CHECK-NEXT:    mflr 0
+; CHECK-NEXT:    std 28, -32(1) # 8-byte Folded Spill
+; CHECK-NEXT:    std 29, -24(1) # 8-byte Folded Spill
 ; CHECK-NEXT:    std 30, -16(1) # 8-byte Folded Spill
-; CHECK-NEXT:    stdu 1, -48(1)
-; CHECK-NEXT:    std 0, 64(1)
-; CHECK-NEXT:    addis 4, 2, .LC0 at toc@ha
-; CHECK-NEXT:    lwz 3, 0(3)
-; CHECK-NEXT:    ld 4, .LC0 at toc@l(4)
-; CHECK-NEXT:    addi 3, 3, -1
-; CHECK-NEXT:    .p2align 5
-; CHECK-NEXT:  .LBB0_1: # %monotonic.i
-; CHECK-NEXT:    #
-; CHECK-NEXT:    lwz 5, 0(4)
-; CHECK-NEXT:    cmpwi 1, 3, 0
-; CHECK-NEXT:    addi 3, 3, -1
-; CHECK-NEXT:    andi. 5, 5, 255
-; CHECK-NEXT:    crorc 20, 6, 2
-; CHECK-NEXT:    bc 4, 20, .LBB0_1
-; CHECK-NEXT:  # %bb.2: # %if.end
-; CHECK-NEXT:    crnot 20, 2
-; CHECK-NEXT:    li 3, 0
-; CHECK-NEXT:    li 4, 8
-; CHECK-NEXT:    isel 30, 4, 3, 20
+; CHECK-NEXT:    stdu 1, -64(1)
+; CHECK-NEXT:    std 0, 80(1)
+; CHECK-NEXT:    li 29, 0
+; CHECK-NEXT:    lwz 30, 0(3)
+; CHECK-NEXT:    addis 3, 2, .LC0 at toc@ha
+; CHECK-NEXT:    ld 28, .LC0 at toc@l(3)
 ; CHECK-NEXT:    addis 3, 2, aj at got@tlsgd at ha
 ; CHECK-NEXT:    addi 3, 3, aj at got@tlsgd at l
 ; CHECK-NEXT:    bl __tls_get_addr(aj at tlsgd)
 ; CHECK-NEXT:    nop
-; CHECK-NEXT:    li 4, 1
-; CHECK-NEXT:    stdx 4, 3, 30
-; CHECK-NEXT:    addi 1, 1, 48
+; CHECK-NEXT:    addi 4, 3, 8
+; CHECK-NEXT:    .p2align 5
+; CHECK-NEXT:  .LBB0_1: # %monotonic.i
+; CHECK-NEXT:    #
+; CHECK-NEXT:    lwz 5, 0(28)
+; CHECK-NEXT:    andi. 5, 5, 255
+; CHECK-NEXT:    bne 0, .LBB0_4
+; CHECK-NEXT:  # %bb.2: # %for.cond.i
+; CHECK-NEXT:    #
+; CHECK-NEXT:    addi 29, 29, 1
+; CHECK-NEXT:    cmplw 29, 30
+; CHECK-NEXT:    bne 0, .LBB0_1
+; CHECK-NEXT:  # %bb.3:
+; CHECK-NEXT:    mr 4, 3
+; CHECK-NEXT:  .LBB0_4: # %if.end
+; CHECK-NEXT:    li 3, 1
+; CHECK-NEXT:    std 3, 0(4)
+; CHECK-NEXT:    addi 1, 1, 64
 ; CHECK-NEXT:    ld 0, 16(1)
 ; CHECK-NEXT:    ld 30, -16(1) # 8-byte Folded Reload
+; CHECK-NEXT:    ld 29, -24(1) # 8-byte Folded Reload
+; CHECK-NEXT:    ld 28, -32(1) # 8-byte Folded Reload
 ; CHECK-NEXT:    mtlr 0
 ; CHECK-NEXT:    blr
 entry:


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D140366.484157.patch
Type: text/x-patch
Size: 2796 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20221220/c6cb1fe5/attachment.bin>


More information about the llvm-commits mailing list