58 lines · plain
1; RUN: split-file %s %t2; RUN: llvm-as -o %t1.bc %t/f01.ll3; RUN: llvm-as -o %t2.bc %t/f02.ll4; RUN: llvm-link %t1.bc %t2.bc -o %t3.bc5; RUN: llvm-dis -o - %t3.bc | FileCheck %s6 7; Make sure we can link files with clashing intrinsic names using unnamed types.8 9;--- f01.ll10%1 = type { i32 }11%0 = type { i64 }12 13; CHECK-LABEL: @test01(14; CHECK: %c1 = call %0 @llvm.ssa.copy.s_s.0(%0 %arg)15; CHECK-NEXT: %c2 = call %1 @llvm.ssa.copy.s_s.1(%1 %tmp)16 17define void @test01(%0 %arg, %1 %tmp) {18bb:19 %c1 = call %0 @llvm.ssa.copy.s_s.0(%0 %arg)20 %c2 = call %1 @llvm.ssa.copy.s_s.1(%1 %tmp)21 ret void22}23 24declare %0 @llvm.ssa.copy.s_s.0(%0 returned)25 26declare %1 @llvm.ssa.copy.s_s.1(%1 returned)27 28; now with recycling of previous declarations:29; CHECK-LABEL: @test02(30; CHECK: %c1 = call %0 @llvm.ssa.copy.s_s.0(%0 %arg)31; CHECK-NEXT: %c2 = call %1 @llvm.ssa.copy.s_s.1(%1 %tmp)32 33define void @test02(%0 %arg, %1 %tmp) {34bb:35 %c1 = call %0 @llvm.ssa.copy.s_s.0(%0 %arg)36 %c2 = call %1 @llvm.ssa.copy.s_s.1(%1 %tmp)37 ret void38}39 40;--- f02.ll41%1 = type { i8 }42%2 = type { i16 }43 44; CHECK-LABEL: @test03(45; CHECK: %c1 = call %3 @llvm.ssa.copy.s_s.2(%3 %arg)46; CHECK-NEXT: %c2 = call %2 @llvm.ssa.copy.s_s.3(%2 %tmp)47 48define void @test03(%1 %tmp, %2 %arg) {49bb:50 %c1 = call %2 @llvm.ssa.copy.s_s.0(%2 %arg)51 %c2 = call %1 @llvm.ssa.copy.s_s.1(%1 %tmp)52 ret void53}54 55declare %2 @llvm.ssa.copy.s_s.0(%2 returned)56 57declare %1 @llvm.ssa.copy.s_s.1(%1 returned)58