Home | History | Annotate | Download | only in X86
      1 ; RUN: llvm-as < %s >%t1
      2 ; RUN: llvm-lto -o %t2 -dso-symbol=foo1 -dso-symbol=foo2 -dso-symbol=foo3 \
      3 ; RUN:     -dso-symbol=foo4 -dso-symbol=v1 -dso-symbol=v2 %t1 -O0
      4 ; RUN: llvm-nm %t2 | FileCheck %s
      5 
      6 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
      7 target triple = "x86_64-unknown-linux-gnu"
      8 
      9 ; CHECK: t foo1
     10 define linkonce_odr void @foo1() noinline {
     11   ret void
     12 }
     13 
     14 ; CHECK: W foo2
     15 define linkonce_odr void @foo2() noinline {
     16   ret void
     17 }
     18 
     19 ; CHECK: t foo3
     20 define linkonce_odr void @foo3() noinline {
     21   ret void
     22 }
     23 
     24 ; CHECK: W foo4
     25 define linkonce_odr void @foo4() noinline {
     26   ret void
     27 }
     28 
     29 ; CHECK: r v1
     30 @v1 = linkonce_odr constant i32 32
     31 
     32 define i32 @useV1() {
     33   %x = load i32, i32* @v1
     34   ret i32 %x
     35 }
     36 
     37 ; CHECK: V v2
     38 @v2 = linkonce_odr global i32 32
     39 
     40 define i32 @useV2() {
     41   %x = load i32, i32* @v2
     42   ret i32 %x
     43 }
     44 
     45 declare void @f(void()*)
     46 
     47 declare void @p()
     48 
     49 define void @bar() personality void()* @p {
     50 bb0:
     51   call void @foo1()
     52   call void @f(void()* @foo2)
     53   invoke void @foo3() to label %bb1 unwind label %clean
     54 bb1:
     55   invoke void @f(void()* @foo4) to label %bb2 unwind label %clean
     56 bb2:
     57   ret void
     58 clean:
     59   landingpad {i32, i32} cleanup
     60   ret void
     61 }
     62