Skip to content

Commit 4936fc5

Browse files
authored
[PowerPC][NFC] Pre-commit test case: use millicode for strlen instead of libcal (llvm#153466)
add test case to test lib call are used for the strlen.
1 parent 9400490 commit 4936fc5

File tree

2 files changed

+80
-1
lines changed

2 files changed

+80
-1
lines changed

llvm/test/CodeGen/PowerPC/memintr32.ll renamed to llvm/test/CodeGen/PowerPC/milicode32.ll

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,5 +35,37 @@ entry:
3535

3636
declare i32 @memcmp(ptr noundef captures(none), ptr noundef captures(none), i32 noundef) nounwind
3737

38+
define i32 @strlen_test(ptr noundef %str) nounwind {
39+
; CHECK-AIX-32-P9-LABEL: strlen_test:
40+
; CHECK-AIX-32-P9: # %bb.0: # %entry
41+
; CHECK-AIX-32-P9-NEXT: mflr r0
42+
; CHECK-AIX-32-P9-NEXT: stwu r1, -64(r1)
43+
; CHECK-AIX-32-P9-NEXT: stw r0, 72(r1)
44+
; CHECK-AIX-32-P9-NEXT: stw r3, 60(r1)
45+
; CHECK-AIX-32-P9-NEXT: bl .strlen[PR]
46+
; CHECK-AIX-32-P9-NEXT: nop
47+
; CHECK-AIX-32-P9-NEXT: addi r1, r1, 64
48+
; CHECK-AIX-32-P9-NEXT: lwz r0, 8(r1)
49+
; CHECK-AIX-32-P9-NEXT: mtlr r0
50+
; CHECK-AIX-32-P9-NEXT: blr
51+
;
52+
; CHECK-LINUX32-P9-LABEL: strlen_test:
53+
; CHECK-LINUX32-P9: # %bb.0: # %entry
54+
; CHECK-LINUX32-P9-NEXT: mflr r0
55+
; CHECK-LINUX32-P9-NEXT: stwu r1, -16(r1)
56+
; CHECK-LINUX32-P9-NEXT: stw r0, 20(r1)
57+
; CHECK-LINUX32-P9-NEXT: stw r3, 12(r1)
58+
; CHECK-LINUX32-P9-NEXT: bl strlen
59+
; CHECK-LINUX32-P9-NEXT: lwz r0, 20(r1)
60+
; CHECK-LINUX32-P9-NEXT: addi r1, r1, 16
61+
; CHECK-LINUX32-P9-NEXT: mtlr r0
62+
; CHECK-LINUX32-P9-NEXT: blr
63+
entry:
64+
%str.addr = alloca ptr, align 4
65+
store ptr %str, ptr %str.addr, align 4
66+
%0 = load ptr, ptr %str.addr, align 4
67+
%call = call i32 @strlen(ptr noundef %0)
68+
ret i32 %call
69+
}
3870

39-
71+
declare i32 @strlen(ptr noundef) nounwind

llvm/test/CodeGen/PowerPC/memintr64.ll renamed to llvm/test/CodeGen/PowerPC/milicode64.ll

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,4 +52,51 @@ entry:
5252

5353
declare i32 @memcmp(ptr noundef captures(none), ptr noundef captures(none), i64 noundef) nounwind
5454

55+
define i64 @strlen_test(ptr noundef %str) nounwind {
56+
; CHECK-LE-P9-LABEL: strlen_test:
57+
; CHECK-LE-P9: # %bb.0: # %entry
58+
; CHECK-LE-P9-NEXT: mflr r0
59+
; CHECK-LE-P9-NEXT: stdu r1, -48(r1)
60+
; CHECK-LE-P9-NEXT: std r0, 64(r1)
61+
; CHECK-LE-P9-NEXT: std r3, 40(r1)
62+
; CHECK-LE-P9-NEXT: bl strlen
63+
; CHECK-LE-P9-NEXT: nop
64+
; CHECK-LE-P9-NEXT: addi r1, r1, 48
65+
; CHECK-LE-P9-NEXT: ld r0, 16(r1)
66+
; CHECK-LE-P9-NEXT: mtlr r0
67+
; CHECK-LE-P9-NEXT: blr
68+
;
69+
; CHECK-BE-P9-LABEL: strlen_test:
70+
; CHECK-BE-P9: # %bb.0: # %entry
71+
; CHECK-BE-P9-NEXT: mflr r0
72+
; CHECK-BE-P9-NEXT: stdu r1, -128(r1)
73+
; CHECK-BE-P9-NEXT: std r0, 144(r1)
74+
; CHECK-BE-P9-NEXT: std r3, 120(r1)
75+
; CHECK-BE-P9-NEXT: bl strlen
76+
; CHECK-BE-P9-NEXT: nop
77+
; CHECK-BE-P9-NEXT: addi r1, r1, 128
78+
; CHECK-BE-P9-NEXT: ld r0, 16(r1)
79+
; CHECK-BE-P9-NEXT: mtlr r0
80+
; CHECK-BE-P9-NEXT: blr
81+
;
82+
; CHECK-AIX-64-P9-LABEL: strlen_test:
83+
; CHECK-AIX-64-P9: # %bb.0: # %entry
84+
; CHECK-AIX-64-P9-NEXT: mflr r0
85+
; CHECK-AIX-64-P9-NEXT: stdu r1, -128(r1)
86+
; CHECK-AIX-64-P9-NEXT: std r0, 144(r1)
87+
; CHECK-AIX-64-P9-NEXT: std r3, 120(r1)
88+
; CHECK-AIX-64-P9-NEXT: bl .strlen[PR]
89+
; CHECK-AIX-64-P9-NEXT: nop
90+
; CHECK-AIX-64-P9-NEXT: addi r1, r1, 128
91+
; CHECK-AIX-64-P9-NEXT: ld r0, 16(r1)
92+
; CHECK-AIX-64-P9-NEXT: mtlr r0
93+
; CHECK-AIX-64-P9-NEXT: blr
94+
entry:
95+
%str.addr = alloca ptr, align 8
96+
store ptr %str, ptr %str.addr, align 8
97+
%0 = load ptr, ptr %str.addr, align 8
98+
%call = call i64 @strlen(ptr noundef %0)
99+
ret i64 %call
100+
}
55101

102+
declare i64 @strlen(ptr noundef) nounwind

0 commit comments

Comments
 (0)