From: Simon Dardis Date: Wed, 11 Oct 2017 11:45:06 +0000 (+0000) Subject: [mips] Add missing tests from rL315451 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4dacf84570e5d0ca46140ad804794b8b1e72fcc5;p=llvm [mips] Add missing tests from rL315451 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@315454 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/CodeGen/Mips/mirparser/target-flags-pic-mxgot-tls.mir b/test/CodeGen/Mips/mirparser/target-flags-pic-mxgot-tls.mir new file mode 100644 index 00000000000..05923377ec6 --- /dev/null +++ b/test/CodeGen/Mips/mirparser/target-flags-pic-mxgot-tls.mir @@ -0,0 +1,275 @@ +# RUN: llc -march=mips64 -target-abi n64 -start-before=expand-isel-pseudos \ +# RUN: -stop-after=expand-isel-pseudos -relocation-model=pic -mxgot \ +# RUN: -o /dev/null %s + +# A simple test to show that we can parse the target specific flags: gpoff-hi, +# gpoff-lo, tlsgd, tlsldm, dtprel-hi, dtprel-lo, got-hi, got-lo, call-hi, +# call-lo. + +--- | + @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 extern_weak void @_ZTH1j() + + declare i32 @_Z1gi(i32 signext) + + 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 + + ;