# RUN: llc -march=mips64 -target-abi n64 -start-before=finalize-isel \ # RUN: -stop-after=finalize-isel -relocation-model=static -o /dev/null %s # A simple test to show that we can parse the target specific flags: highest, # higher, hi, lo, tprel-lo, tprel-hi, gpoff-hi, gpoff-lo, gottprel. --- | @v = global i32 0, align 4 @k = thread_local global i32 0, align 4 @j = external thread_local global i32, align 4 @__tls_guard = internal thread_local global i1 false, align 1 declare i32 @_Z1gi(i32 signext) declare extern_weak void @_ZTH1j() define i32 @_Z2k1i(i32 signext %asd) { entry: %call = tail call i32 @_Z1gi(i32 signext %asd) %add = add nsw i32 %call, %asd %0 = load i32, i32* @v, align 4 %add1 = add nsw i32 %add, %0 %.b.i.i = load i1, i1* @__tls_guard, align 1 br i1 %.b.i.i, label %entry._ZTW1k.exit_crit_edge, label %init.i.i entry._ZTW1k.exit_crit_edge: %.pre = load i32, i32* @k, align 4 br label %_ZTW1k.exit init.i.i: store i1 true, i1* @__tls_guard, align 1 %call.i.i.i = tail call i32 @_Z1gi(i32 signext 3) store i32 %call.i.i.i, i32* @k, align 4 br label %_ZTW1k.exit _ZTW1k.exit: %1 = phi i32 [ %.pre, %entry._ZTW1k.exit_crit_edge ], [ %call.i.i.i, %init.i.i ] %add2 = add nsw i32 %add1, %1 br i1 icmp ne (void ()* @_ZTH1j, void ()* null), label %2, label %_ZTW1j.exit ;