[llvm] [PowerPC] using milicode call for strcpy instead of lib call (PR #174782)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Thu Jan 8 07:53:48 PST 2026
================
@@ -195,7 +195,47 @@ entry:
%0 = load ptr, ptr %dest.addr, align 8
%1 = load ptr, ptr %src.addr, align 8
%call = call ptr @strcpy(ptr noundef %0, ptr noundef %1)
- ret void
+ ret ptr %call
}
declare ptr @strcpy(ptr noundef, ptr noundef)
+
+define ptr @stpcpy_test(ptr noundef %dest, ptr noundef %src) nounwind {
+; CHECK-AIX-32-P9-LABEL: stpcpy_test:
+; CHECK-AIX-32-P9: # %bb.0: # %entry
+; CHECK-AIX-32-P9-NEXT: mflr r0
+; CHECK-AIX-32-P9-NEXT: stwu r1, -80(r1)
+; CHECK-AIX-32-P9-NEXT: stw r0, 88(r1)
+; CHECK-AIX-32-P9-NEXT: stw r3, 72(r1)
+; CHECK-AIX-32-P9-NEXT: stw r4, 64(r1)
+; CHECK-AIX-32-P9-NEXT: bl .stpcpy[PR]
+; CHECK-AIX-32-P9-NEXT: nop
+; CHECK-AIX-32-P9-NEXT: addi r1, r1, 80
+; CHECK-AIX-32-P9-NEXT: lwz r0, 8(r1)
+; CHECK-AIX-32-P9-NEXT: mtlr r0
+; CHECK-AIX-32-P9-NEXT: blr
+;
+; CHECK-LINUX32-P9-LABEL: stpcpy_test:
+; CHECK-LINUX32-P9: # %bb.0: # %entry
+; CHECK-LINUX32-P9-NEXT: mflr r0
+; CHECK-LINUX32-P9-NEXT: stwu r1, -32(r1)
+; CHECK-LINUX32-P9-NEXT: stw r0, 36(r1)
+; CHECK-LINUX32-P9-NEXT: stw r3, 24(r1)
+; CHECK-LINUX32-P9-NEXT: stw r4, 16(r1)
+; CHECK-LINUX32-P9-NEXT: bl stpcpy
+; CHECK-LINUX32-P9-NEXT: lwz r0, 36(r1)
+; CHECK-LINUX32-P9-NEXT: addi r1, r1, 32
+; CHECK-LINUX32-P9-NEXT: mtlr r0
+; CHECK-LINUX32-P9-NEXT: blr
+entry:
+ %dest.addr = alloca ptr, align 8
+ %src.addr = alloca ptr, align 8
+ store ptr %dest, ptr %dest.addr, align 8
+ store ptr %src, ptr %src.addr, align 8
+ %0 = load ptr, ptr %dest.addr, align 8
+ %1 = load ptr, ptr %src.addr, align 8
----------------
arsenm wrote:
Don't need all of this
https://github.com/llvm/llvm-project/pull/174782
More information about the llvm-commits
mailing list