78 lines · plain
1; RUN: llc < %s -mtriple=i686-pc-linux-gnu -asm-verbose=false \2; RUN: -relocation-model=pic | FileCheck %s3 4@thread_var = thread_local global i32 42, align 45@thread_alias = thread_local(localdynamic) alias i32, ptr @thread_var6 7; CHECK-LABEL: get_thread_var8define ptr @get_thread_var() {9; CHECK: leal thread_var@TLSGD10 ret ptr @thread_var11}12 13; CHECK-LABEL: get_thread_alias14define ptr @get_thread_alias() {15; CHECK: leal thread_alias@TLSLD16 ret ptr @thread_alias17}18 19@bar = global i32 4220 21; CHECK-DAG: .globl foo122@foo1 = alias i32, ptr @bar23 24; CHECK-DAG: .globl foo225@foo2 = alias i32, ptr @bar26 27%FunTy = type i32()28 29define i32 @foo_f() {30 ret i32 031}32; CHECK-DAG: .weak bar_f33@bar_f = weak alias %FunTy, ptr @foo_f34 35@bar_l = linkonce_odr alias i32, ptr @bar36; CHECK-DAG: .weak bar_l37 38@bar_i = internal alias i32, ptr @bar39 40; CHECK-DAG: .globl A41@A = alias i64, ptr @bar42 43; CHECK-DAG: .globl bar_h44; CHECK-DAG: .hidden bar_h45@bar_h = hidden alias i32, ptr @bar46 47; CHECK-DAG: .globl bar_p48; CHECK-DAG: .protected bar_p49@bar_p = protected alias i32, ptr @bar50 51; CHECK-DAG: test2 = bar+452@test2 = alias i32, getelementptr(i32, ptr @bar, i32 1)53 54; CHECK-DAG: test3 = 4255@test3 = alias i32, inttoptr(i32 42 to ptr)56 57; CHECK-DAG: test4 = bar58@test4 = alias i32, inttoptr(i64 ptrtoint (ptr @bar to i64) to ptr)59 60; CHECK-DAG: test5 = test2-bar61@test5 = alias i32, inttoptr(i32 sub (i32 ptrtoint (ptr @test2 to i32),62 i32 ptrtoint (ptr @bar to i32)) to ptr)63 64; CHECK-DAG: .globl test65define i32 @test() {66entry:67 %tmp = load i32, ptr @foo168 %tmp1 = load i32, ptr @foo269 %tmp0 = load i32, ptr @bar_i70 %tmp2 = call i32 @foo_f()71 %tmp3 = add i32 %tmp, %tmp272 %tmp4 = call i32 @bar_f()73 %tmp5 = add i32 %tmp3, %tmp474 %tmp6 = add i32 %tmp1, %tmp575 %tmp7 = add i32 %tmp6, %tmp076 ret i32 %tmp777}78