Skip to content

Commit 0cde152

Browse files
committed
Test for external non-bitcode libcall
1 parent 165cd3b commit 0cde152

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
; RUN: opt %s -o %t -module-summary -mtriple x86_64-unknown-linux-musl
2+
; RUN: llvm-lto2 run -o %t2 \
3+
; RUN: -r %t,foo,plx \
4+
; RUN: -r %t,memcmp,x \
5+
; RUN: -r %t,bcmp,pl %t -save-temps
6+
; RUN: llvm-dis %t2.1.4.opt.bc -o - | FileCheck %s
7+
8+
define i1 @foo(ptr %0, ptr %1, i64 %2) {
9+
; CHECK-LABEL: define{{.*}}i1 @foo
10+
; CHECK-NEXT: %bcmp = {{.*}}call i32 @bcmp
11+
; CHECK-NEXT: %eq = icmp eq i32 %bcmp, 0
12+
; CHECK-NEXT: ret i1 %eq
13+
14+
%cmp = call i32 @memcmp(ptr %0, ptr %1, i64 %2)
15+
%eq = icmp eq i32 %cmp, 0
16+
ret i1 %eq
17+
}
18+
19+
declare i32 @memcmp(ptr, ptr, i64)
20+
declare i32 @bcmp(ptr, ptr, i64)

llvm/test/LTO/Resolution/X86/bcmp-libcall.ll renamed to llvm/test/LTO/Resolution/X86/libcall-in-tu.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ define i1 @foo(ptr %0, ptr %1, i64 %2) {
2323
}
2424

2525
declare i32 @memcmp(ptr, ptr, i64)
26-
declare i32 @bcmp_impl(ptr, ptr, i64);
26+
declare i32 @bcmp_impl(ptr, ptr, i64)
2727

2828
;; Ensure bcmp is not removed from module because it is external.
2929
; CHECK: define dso_local i32 @bcmp

0 commit comments

Comments
 (0)