; RUN: llc < %s -relocation-model=pic | FileCheck %s
; PR2137

; ModuleID = '1.c'
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32"
target triple = "i386-pc-linux-gnu"
	%struct.__res_state = type { i32 }
@__resp = thread_local global %struct.__res_state* @_res		; <%struct.__res_state**> [#uses=1]
@_res = global %struct.__res_state zeroinitializer, section ".bss"		; <%struct.__res_state*> [#uses=1]

@__libc_resp = hidden thread_local alias %struct.__res_state*, %struct.__res_state** @__resp		; <%struct.__res_state**> [#uses=2]

define i32 @foo() {
; CHECK-LABEL: foo:
; CHECK: leal    __libc_resp@TLSLD
entry:
	%retval = alloca i32		; <i32*> [#uses=1]
	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
	%tmp = load %struct.__res_state*, %struct.__res_state** @__libc_resp, align 4		; <%struct.__res_state*> [#uses=1]
	%tmp1 = getelementptr %struct.__res_state, %struct.__res_state* %tmp, i32 0, i32 0		; <i32*> [#uses=1]
	store i32 0, i32* %tmp1, align 4
	br label %return
return:		; preds = %entry
	%retval2 = load i32, i32* %retval		; <i32> [#uses=1]
	ret i32 %retval2
}

define i32 @bar() {
; CHECK-LABEL: bar:
; CHECK: leal    __libc_resp@TLSLD
entry:
	%retval = alloca i32		; <i32*> [#uses=1]
	%"alloca point" = bitcast i32 0 to i32		; <i32> [#uses=0]
	%tmp = load %struct.__res_state*, %struct.__res_state** @__libc_resp, align 4		; <%struct.__res_state*> [#uses=1]
	%tmp1 = getelementptr %struct.__res_state, %struct.__res_state* %tmp, i32 0, i32 0		; <i32*> [#uses=1]
	store i32 1, i32* %tmp1, align 4
	br label %return
return:		; preds = %entry
	%retval2 = load i32, i32* %retval		; <i32> [#uses=1]
	ret i32 %retval2
}
