| ; REQUIRES: x86 |
| |
| ; Check that we RAUW llvm.public.type.test with either llvm.type.test when --lto-whole-program-visibility is specified, or with true otherwise. |
| |
| ; RUN: opt --thinlto-bc -o %t.o %s |
| ; RUN: ld.lld %t.o -o %t2.o --save-temps |
| ; RUN: llvm-dis %t.o.3.import.bc -o - | FileCheck %s --check-prefix=PUB |
| ; RUN: ld.lld %t.o -o %t3.o --save-temps --lto-whole-program-visibility |
| ; RUN: llvm-dis %t.o.3.import.bc -o - | FileCheck %s --check-prefix=WPV |
| |
| target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" |
| target triple = "x86_64-grtev4-linux-gnu" |
| |
| declare i1 @llvm.public.type.test(ptr, metadata) |
| declare void @llvm.assume(i1) |
| |
| ; PUB-NOT: call {{.*}}@llvm.public.type.test |
| ; PUB-NOT: call {{.*}}@llvm.type.test |
| ; PUB: call {{.*}}@llvm.assume(i1 true) |
| ; WPV: call {{.*}}@llvm.type.test |
| ; WPV: call {{.*}}@llvm.assume |
| |
| define void @f(ptr %a) { |
| %i = call i1 @llvm.public.type.test(ptr %a, metadata !"_ZTS1A") |
| call void @llvm.assume(i1 %i) |
| ret void |
| } |