Skip to content

[PowerPC] Pre-commit tests for PR130742. NFC. #135606

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Apr 17, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 8 additions & 7 deletions llvm/test/CodeGen/PowerPC/loop-instr-form-non-inc.ll
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,22 @@
; RUN: llc -verify-machineinstrs -mtriple=powerpc-unknown-linux-gnu \
; RUN: -mcpu=pwr9 < %s | FileCheck %s

define dso_local void @test_no_inc(i32 signext %a) local_unnamed_addr nounwind align 2 {
define dso_local void @test_no_inc(i32 signext %a, ptr %p) local_unnamed_addr nounwind align 2 {
; CHECK-LABEL: test_no_inc:
; CHECK: # %bb.0: # %entry
; CHECK-NEXT: srawi 4, 3, 31
; CHECK-NEXT: srawi 5, 3, 31
; CHECK-NEXT: cmpwi 3, 0
; CHECK-NEXT: li 6, 1
; CHECK-NEXT: li 7, 0
; CHECK-NEXT: andc 4, 3, 4
; CHECK-NEXT: addi 5, 4, 1
; CHECK-NEXT: andc 5, 3, 5
; CHECK-NEXT: add 4, 5, 4
; CHECK-NEXT: addi 4, 4, 1
; CHECK-NEXT: b .LBB0_2
; CHECK-NEXT: .p2align 5
; CHECK-NEXT: .LBB0_1: # %for.cond.cleanup
; CHECK-NEXT: #
; CHECK-NEXT: stb 7, 0(5)
; CHECK-NEXT: add 5, 5, 4
; CHECK-NEXT: stb 7, 0(4)
; CHECK-NEXT: add 4, 4, 5
; CHECK-NEXT: .LBB0_2: # %for.cond
; CHECK-NEXT: #
; CHECK-NEXT: bc 4, 1, .LBB0_1
Expand All @@ -38,7 +39,7 @@ for.body.preheader: ; preds = %for.cond

for.cond.cleanup: ; preds = %for.body.preheader, %for.cond
%g.1.lcssa = phi i32 [ %g.0, %for.cond ], [ %0, %for.body.preheader ]
%arrayidx5 = getelementptr inbounds i8, ptr null, i32 %g.1.lcssa
%arrayidx5 = getelementptr inbounds i8, ptr %p, i32 %g.1.lcssa
store i8 0, ptr %arrayidx5, align 1
br label %for.cond
}
80 changes: 44 additions & 36 deletions llvm/test/CodeGen/PowerPC/p10-spill-crgt.ll
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
; bit of any CR field is spilled. We need to test the spilling of a CR bit
; other than the LT bit. Hence this test case is rather complex.

define dso_local fastcc void @P10_Spill_CR_GT() unnamed_addr {
define dso_local fastcc void @P10_Spill_CR_GT(ptr %p) unnamed_addr {
; CHECK-LABEL: P10_Spill_CR_GT:
; CHECK: # %bb.0: # %bb
; CHECK-NEXT: mfcr r12
Expand All @@ -25,32 +25,35 @@ define dso_local fastcc void @P10_Spill_CR_GT() unnamed_addr {
; CHECK-NEXT: stdu r1, -64(r1)
; CHECK-NEXT: .cfi_def_cfa_offset 64
; CHECK-NEXT: .cfi_offset lr, 16
; CHECK-NEXT: .cfi_offset r28, -32
; CHECK-NEXT: .cfi_offset r29, -24
; CHECK-NEXT: .cfi_offset r30, -16
; CHECK-NEXT: .cfi_offset cr2, 8
; CHECK-NEXT: .cfi_offset cr3, 8
; CHECK-NEXT: .cfi_offset cr4, 8
; CHECK-NEXT: lwz r3, 0(r3)
; CHECK-NEXT: std r29, 40(r1) # 8-byte Folded Spill
; CHECK-NEXT: lwz r4, 0(r3)
; CHECK-NEXT: std r30, 48(r1) # 8-byte Folded Spill
; CHECK-NEXT: addi r30, r3, -1
; CHECK-NEXT: li r3, 0
; CHECK-NEXT: std r28, 32(r1) # 8-byte Folded Spill
; CHECK-NEXT: std r29, 40(r1) # 8-byte Folded Spill
; CHECK-NEXT: crxor 4*cr2+eq, 4*cr2+eq, 4*cr2+eq
; CHECK-NEXT: paddi r29, 0, .LJTI0_0@PCREL, 1
; CHECK-NEXT: srwi r4, r3, 4
; CHECK-NEXT: srwi r3, r3, 5
; CHECK-NEXT: paddi r28, 0, .LJTI0_0@PCREL, 1
; CHECK-NEXT: sldi r29, r3, 2
; CHECK-NEXT: srwi r5, r4, 4
; CHECK-NEXT: srwi r4, r4, 5
; CHECK-NEXT: andi. r5, r5, 1
; CHECK-NEXT: crmove 4*cr2+gt, gt
; CHECK-NEXT: andi. r4, r4, 1
; CHECK-NEXT: li r4, 0
; CHECK-NEXT: crmove 4*cr2+gt, gt
; CHECK-NEXT: andi. r3, r3, 1
; CHECK-NEXT: li r3, 0
; CHECK-NEXT: crmove 4*cr2+lt, gt
; CHECK-NEXT: sldi r30, r3, 2
; CHECK-NEXT: b .LBB0_2
; CHECK-NEXT: .LBB0_1: # %bb43
; CHECK-NEXT: #
; CHECK-NEXT: bl call_1@notoc
; CHECK-NEXT: setnbc r3, 4*cr3+eq
; CHECK-NEXT: li r4, 0
; CHECK-NEXT: stb r4, 0(r3)
; CHECK-NEXT: li r3, 0
; CHECK-NEXT: isel r4, r30, r3, 4*cr3+eq
; CHECK-NEXT: stb r3, 0(r4)
; CHECK-NEXT: li r4, 0
; CHECK-NEXT: .p2align 4
; CHECK-NEXT: .LBB0_2: # %bb5
Expand All @@ -65,8 +68,8 @@ define dso_local fastcc void @P10_Spill_CR_GT() unnamed_addr {
; CHECK-NEXT: lwz r5, 0(r3)
; CHECK-NEXT: rlwinm r4, r5, 0, 21, 22
; CHECK-NEXT: cmpwi cr3, r4, 512
; CHECK-NEXT: lwax r4, r29, r30
; CHECK-NEXT: add r4, r29, r4
; CHECK-NEXT: lwax r4, r28, r29
; CHECK-NEXT: add r4, r28, r4
; CHECK-NEXT: mtctr r4
; CHECK-NEXT: li r4, 0
; CHECK-NEXT: bctr
Expand Down Expand Up @@ -177,6 +180,7 @@ define dso_local fastcc void @P10_Spill_CR_GT() unnamed_addr {
; CHECK-NEXT: .LBB0_31: # %bb9
; CHECK-NEXT: ld r30, 48(r1) # 8-byte Folded Reload
; CHECK-NEXT: ld r29, 40(r1) # 8-byte Folded Reload
; CHECK-NEXT: ld r28, 32(r1) # 8-byte Folded Reload
; CHECK-NEXT: addi r1, r1, 64
; CHECK-NEXT: ld r0, 16(r1)
; CHECK-NEXT: lwz r12, 8(r1)
Expand All @@ -187,10 +191,10 @@ define dso_local fastcc void @P10_Spill_CR_GT() unnamed_addr {
; CHECK-NEXT: blr
; CHECK-NEXT: .LBB0_32: # %bb29
; CHECK-NEXT: crmove eq, 4*cr3+eq
; CHECK-NEXT: li r29, 0
; CHECK-NEXT: cmpwi cr3, r5, 366
; CHECK-NEXT: cmpwi cr4, r3, 0
; CHECK-NEXT: li r29, 0
; CHECK-NEXT: setnbc r30, eq
; CHECK-NEXT: iseleq r30, r30, r29
; CHECK-NEXT: bc 12, 4*cr2+lt, .LBB0_36
; CHECK-NEXT: .p2align 5
; CHECK-NEXT: .LBB0_33: # %bb36
Expand All @@ -216,34 +220,37 @@ define dso_local fastcc void @P10_Spill_CR_GT() unnamed_addr {
; CHECK-BE-NEXT: stdu r1, -144(r1)
; CHECK-BE-NEXT: .cfi_def_cfa_offset 144
; CHECK-BE-NEXT: .cfi_offset lr, 16
; CHECK-BE-NEXT: .cfi_offset r28, -32
; CHECK-BE-NEXT: .cfi_offset r29, -24
; CHECK-BE-NEXT: .cfi_offset r30, -16
; CHECK-BE-NEXT: .cfi_offset cr2, 8
; CHECK-BE-NEXT: .cfi_offset cr2, 8
; CHECK-BE-NEXT: .cfi_offset cr2, 8
; CHECK-BE-NEXT: lwz r3, 0(r3)
; CHECK-BE-NEXT: std r29, 120(r1) # 8-byte Folded Spill
; CHECK-BE-NEXT: lwz r4, 0(r3)
; CHECK-BE-NEXT: std r30, 128(r1) # 8-byte Folded Spill
; CHECK-BE-NEXT: addi r30, r3, -1
; CHECK-BE-NEXT: li r3, 0
; CHECK-BE-NEXT: std r28, 112(r1) # 8-byte Folded Spill
; CHECK-BE-NEXT: std r29, 120(r1) # 8-byte Folded Spill
; CHECK-BE-NEXT: crxor 4*cr2+eq, 4*cr2+eq, 4*cr2+eq
; CHECK-BE-NEXT: srwi r4, r3, 4
; CHECK-BE-NEXT: srwi r3, r3, 5
; CHECK-BE-NEXT: sldi r29, r3, 2
; CHECK-BE-NEXT: addis r3, r2, .LC0@toc@ha
; CHECK-BE-NEXT: ld r28, .LC0@toc@l(r3)
; CHECK-BE-NEXT: srwi r5, r4, 4
; CHECK-BE-NEXT: srwi r4, r4, 5
; CHECK-BE-NEXT: andi. r5, r5, 1
; CHECK-BE-NEXT: crmove 4*cr2+gt, gt
; CHECK-BE-NEXT: andi. r4, r4, 1
; CHECK-BE-NEXT: li r4, 0
; CHECK-BE-NEXT: crmove 4*cr2+gt, gt
; CHECK-BE-NEXT: andi. r3, r3, 1
; CHECK-BE-NEXT: li r3, 0
; CHECK-BE-NEXT: crmove 4*cr2+lt, gt
; CHECK-BE-NEXT: sldi r30, r3, 2
; CHECK-BE-NEXT: addis r3, r2, .LC0@toc@ha
; CHECK-BE-NEXT: ld r29, .LC0@toc@l(r3)
; CHECK-BE-NEXT: b .LBB0_2
; CHECK-BE-NEXT: .LBB0_1: # %bb43
; CHECK-BE-NEXT: #
; CHECK-BE-NEXT: bl call_1
; CHECK-BE-NEXT: nop
; CHECK-BE-NEXT: setnbc r3, 4*cr3+eq
; CHECK-BE-NEXT: li r4, 0
; CHECK-BE-NEXT: stb r4, 0(r3)
; CHECK-BE-NEXT: li r3, 0
; CHECK-BE-NEXT: isel r4, r30, r3, 4*cr3+eq
; CHECK-BE-NEXT: stb r3, 0(r4)
; CHECK-BE-NEXT: li r4, 0
; CHECK-BE-NEXT: .p2align 4
; CHECK-BE-NEXT: .LBB0_2: # %bb5
Expand All @@ -258,8 +265,8 @@ define dso_local fastcc void @P10_Spill_CR_GT() unnamed_addr {
; CHECK-BE-NEXT: lwz r5, 0(r3)
; CHECK-BE-NEXT: rlwinm r4, r5, 0, 21, 22
; CHECK-BE-NEXT: cmpwi cr3, r4, 512
; CHECK-BE-NEXT: lwax r4, r29, r30
; CHECK-BE-NEXT: add r4, r29, r4
; CHECK-BE-NEXT: lwax r4, r28, r29
; CHECK-BE-NEXT: add r4, r28, r4
; CHECK-BE-NEXT: mtctr r4
; CHECK-BE-NEXT: li r4, 0
; CHECK-BE-NEXT: bctr
Expand Down Expand Up @@ -370,6 +377,7 @@ define dso_local fastcc void @P10_Spill_CR_GT() unnamed_addr {
; CHECK-BE-NEXT: .LBB0_31: # %bb9
; CHECK-BE-NEXT: ld r30, 128(r1) # 8-byte Folded Reload
; CHECK-BE-NEXT: ld r29, 120(r1) # 8-byte Folded Reload
; CHECK-BE-NEXT: ld r28, 112(r1) # 8-byte Folded Reload
; CHECK-BE-NEXT: addi r1, r1, 144
; CHECK-BE-NEXT: ld r0, 16(r1)
; CHECK-BE-NEXT: lwz r12, 8(r1)
Expand All @@ -380,10 +388,10 @@ define dso_local fastcc void @P10_Spill_CR_GT() unnamed_addr {
; CHECK-BE-NEXT: blr
; CHECK-BE-NEXT: .LBB0_32: # %bb29
; CHECK-BE-NEXT: crmove eq, 4*cr3+eq
; CHECK-BE-NEXT: li r29, 0
; CHECK-BE-NEXT: cmpwi cr3, r5, 366
; CHECK-BE-NEXT: cmpwi cr4, r3, 0
; CHECK-BE-NEXT: li r29, 0
; CHECK-BE-NEXT: setnbc r30, eq
; CHECK-BE-NEXT: iseleq r30, r30, r29
; CHECK-BE-NEXT: bc 12, 4*cr2+lt, .LBB0_36
; CHECK-BE-NEXT: .p2align 4
; CHECK-BE-NEXT: .LBB0_33: # %bb36
Expand Down Expand Up @@ -528,7 +536,7 @@ bb32: ; preds = %bb40, %bb29
br i1 %tmp7, label %bb33, label %bb36

bb33: ; preds = %bb32
%tmp34 = getelementptr inbounds i8, ptr null, i64 -1
%tmp34 = getelementptr inbounds i8, ptr %p, i64 -1
%tmp35 = select i1 %tmp12, ptr %tmp34, ptr null
store i8 0, ptr %tmp35, align 1
br label %bb36
Expand Down Expand Up @@ -558,7 +566,7 @@ bb42: ; preds = %bb42, %bb41

bb43: ; preds = %bb10, %bb10
call void @call_1()
%tmp44 = getelementptr inbounds i8, ptr null, i64 -1
%tmp44 = getelementptr inbounds i8, ptr %p, i64 -1
%tmp45 = select i1 %tmp12, ptr %tmp44, ptr null
store i8 0, ptr %tmp45, align 1
br label %bb63
Expand Down
107 changes: 53 additions & 54 deletions llvm/test/CodeGen/PowerPC/sms-cpy-1.ll
Original file line number Diff line number Diff line change
Expand Up @@ -4,78 +4,77 @@

@.str.28 = external unnamed_addr constant [69 x i8], align 1

define void @print_res() nounwind {
define void @print_res(ptr %p) nounwind {
; CHECK-LABEL: print_res:
; CHECK: # %bb.0:
; CHECK-NEXT: lwz 3, 0(3)
; CHECK-NEXT: mflr 0
; CHECK-NEXT: addi 3, 3, -1
; CHECK-NEXT: clrldi 4, 3, 32
; CHECK-NEXT: cmplwi 3, 3
; CHECK-NEXT: li 3, 3
; CHECK-NEXT: isellt 3, 4, 3
; CHECK-NEXT: li 4, 1
; CHECK-NEXT: cmpldi 3, 1
; CHECK-NEXT: iselgt 3, 3, 4
; CHECK-NEXT: li 4, 0
; CHECK-NEXT: mtctr 3
; CHECK-NEXT: stdu 1, -128(1)
; CHECK-NEXT: lwz 4, 0(3)
; CHECK-NEXT: addi 4, 4, -1
; CHECK-NEXT: clrldi 5, 4, 32
; CHECK-NEXT: cmplwi 4, 3
; CHECK-NEXT: li 4, 3
; CHECK-NEXT: isellt 4, 5, 4
; CHECK-NEXT: li 5, 1
; CHECK-NEXT: cmpldi 4, 1
; CHECK-NEXT: iselgt 4, 4, 5
; CHECK-NEXT: li 5, 0
; CHECK-NEXT: std 0, 144(1)
; CHECK-NEXT: li 3, 1
; CHECK-NEXT: li 7, -1
; CHECK-NEXT: lbz 5, 0(5)
; CHECK-NEXT: mtctr 4
; CHECK-NEXT: li 8, -1
; CHECK-NEXT: lbz 6, 0(3)
; CHECK-NEXT: li 4, 1
; CHECK-NEXT: bdz .LBB0_6
; CHECK-NEXT: # %bb.1:
; CHECK-NEXT: xori 6, 5, 84
; CHECK-NEXT: clrldi 5, 7, 32
; CHECK-NEXT: addi 3, 3, 1
; CHECK-NEXT: addi 8, 7, -1
; CHECK-NEXT: lbz 5, 0(5)
; CHECK-NEXT: xori 7, 6, 84
; CHECK-NEXT: clrldi 6, 8, 32
; CHECK-NEXT: addi 4, 4, 1
; CHECK-NEXT: addi 9, 8, -1
; CHECK-NEXT: lbzx 6, 3, 6
; CHECK-NEXT: bdz .LBB0_5
; CHECK-NEXT: # %bb.2:
; CHECK-NEXT: cntlzw 6, 6
; CHECK-NEXT: addi 3, 3, 1
; CHECK-NEXT: srwi 7, 6, 5
; CHECK-NEXT: xori 6, 5, 84
; CHECK-NEXT: clrldi 5, 8, 32
; CHECK-NEXT: addi 8, 8, -1
; CHECK-NEXT: lbz 5, 0(5)
; CHECK-NEXT: cntlzw 7, 7
; CHECK-NEXT: addi 4, 4, 1
; CHECK-NEXT: srwi 8, 7, 5
; CHECK-NEXT: xori 7, 6, 84
; CHECK-NEXT: clrldi 6, 9, 32
; CHECK-NEXT: addi 9, 9, -1
; CHECK-NEXT: lbzx 6, 3, 6
; CHECK-NEXT: bdz .LBB0_4
; CHECK-NEXT: .p2align 4
; CHECK-NEXT: .LBB0_3:
; CHECK-NEXT: clrldi 10, 8, 32
; CHECK-NEXT: cntlzw 9, 6
; CHECK-NEXT: xori 6, 5, 84
; CHECK-NEXT: addi 8, 8, -1
; CHECK-NEXT: lbz 5, 0(10)
; CHECK-NEXT: addi 3, 3, 1
; CHECK-NEXT: add 4, 4, 7
; CHECK-NEXT: srwi 7, 9, 5
; CHECK-NEXT: clrldi 11, 9, 32
; CHECK-NEXT: cntlzw 10, 7
; CHECK-NEXT: xori 7, 6, 84
; CHECK-NEXT: addi 9, 9, -1
; CHECK-NEXT: lbzx 6, 3, 11
; CHECK-NEXT: addi 4, 4, 1
; CHECK-NEXT: add 5, 5, 8
; CHECK-NEXT: srwi 8, 10, 5
; CHECK-NEXT: bdnz .LBB0_3
; CHECK-NEXT: .LBB0_4:
; CHECK-NEXT: add 4, 4, 7
; CHECK-NEXT: add 5, 5, 8
; CHECK-NEXT: .LBB0_5:
; CHECK-NEXT: cntlzw 6, 6
; CHECK-NEXT: srwi 6, 6, 5
; CHECK-NEXT: add 4, 4, 6
; CHECK-NEXT: cntlzw 3, 7
; CHECK-NEXT: srwi 3, 3, 5
; CHECK-NEXT: add 5, 5, 3
; CHECK-NEXT: .LBB0_6:
; CHECK-NEXT: xori 5, 5, 84
; CHECK-NEXT: clrldi 3, 3, 32
; CHECK-NEXT: li 7, 0
; CHECK-NEXT: li 8, 3
; CHECK-NEXT: std 3, 104(1)
; CHECK-NEXT: cntlzw 5, 5
; CHECK-NEXT: xori 3, 6, 84
; CHECK-NEXT: mflr 0
; CHECK-NEXT: cntlzw 3, 3
; CHECK-NEXT: srwi 3, 3, 5
; CHECK-NEXT: add 3, 5, 3
; CHECK-NEXT: stdu 1, -128(1)
; CHECK-NEXT: clrldi 6, 3, 32
; CHECK-NEXT: addis 3, 2, .LC0@toc@ha
; CHECK-NEXT: li 10, 0
; CHECK-NEXT: ld 3, .LC0@toc@l(3)
; CHECK-NEXT: srwi 5, 5, 5
; CHECK-NEXT: add 4, 4, 5
; CHECK-NEXT: li 5, 0
; CHECK-NEXT: std 0, 144(1)
; CHECK-NEXT: ld 3, .LC0@toc@l(3)
; CHECK-NEXT: std 5, 120(1)
; CHECK-NEXT: li 5, 3
; CHECK-NEXT: clrldi 6, 4, 32
; CHECK-NEXT: clrldi 4, 4, 32
; CHECK-NEXT: std 4, 104(1)
; CHECK-NEXT: li 4, 3
; CHECK-NEXT: li 7, 0
; CHECK-NEXT: li 8, 3
; CHECK-NEXT: li 10, 0
; CHECK-NEXT: std 5, 96(1)
; CHECK-NEXT: li 5, 0
; CHECK-NEXT: bl printf
Expand All @@ -92,7 +91,7 @@ define void @print_res() nounwind {
%8 = trunc i64 %6 to i32
%9 = sub i32 0, %8
%10 = zext i32 %9 to i64
%11 = getelementptr inbounds i8, ptr null, i64 %10
%11 = getelementptr inbounds i8, ptr %p, i64 %10
%12 = load i8, ptr %11, align 1
%13 = icmp eq i8 %12, 84
%14 = zext i1 %13 to i32
Expand Down
4 changes: 2 additions & 2 deletions llvm/test/CodeGen/PowerPC/sms-phi.ll
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
; RUN: llc < %s -mtriple=powerpc64le-unknown-linux-gnu -verify-machineinstrs\
; RUN: -mcpu=pwr9 --ppc-enable-pipeliner -debug-only=pipeliner 2>&1 \
; RUN: >/dev/null | FileCheck %s
define dso_local void @sha512() #0 {
define dso_local void @sha512(ptr %p) #0 {
;CHECK: prolog:
;CHECK: %{{[0-9]+}}:g8rc = ADD8 %{{[0-9]+}}:g8rc, %{{[0-9]+}}:g8rc
;CHECK: epilog:
Expand All @@ -15,7 +15,7 @@ define dso_local void @sha512() #0 {
%2 = phi i64 [ 0, %0 ], [ %12, %1 ]
%3 = phi i64 [ undef, %0 ], [ %11, %1 ]
%4 = phi i64 [ undef, %0 ], [ %3, %1 ]
%5 = getelementptr inbounds [80 x i64], ptr null, i64 0, i64 %2
%5 = getelementptr inbounds [80 x i64], ptr %p, i64 0, i64 %2
%6 = load i64, ptr %5, align 8
%7 = add i64 0, %6
%8 = and i64 %3, %4
Expand Down
Loading
Loading