From c6a4f5e819217e1e12c458aed8e7b122e23a3a58 Mon Sep 17 00:00:00 2001 From: Stephen Hines Date: Mon, 21 Jul 2014 00:45:20 -0700 Subject: Update LLVM for rebase to r212749. Includes a cherry-pick of: r212948 - fixes a small issue with atomic calls Change-Id: Ib97bd980b59f18142a69506400911a6009d9df18 --- test/Feature/alias2.ll | 25 +++++++++++++++++-------- test/Feature/aliases.ll | 11 ++++++++++- test/Feature/comdat.ll | 18 ++++++++++++++++++ test/Feature/globalvars.ll | 2 ++ 4 files changed, 47 insertions(+), 9 deletions(-) create mode 100644 test/Feature/comdat.ll (limited to 'test/Feature') diff --git a/test/Feature/alias2.ll b/test/Feature/alias2.ll index 693ef7c..73c874f 100644 --- a/test/Feature/alias2.ll +++ b/test/Feature/alias2.ll @@ -6,14 +6,23 @@ @v2 = global [1 x i32] zeroinitializer ; CHECK: @v2 = global [1 x i32] zeroinitializer -@v3 = alias i16, i32* @v1 -; CHECK: @v3 = alias i16, i32* @v1 +@v3 = global [2 x i16] zeroinitializer +; CHECK: @v3 = global [2 x i16] zeroinitializer -@v4 = alias i32, [1 x i32]* @v2 -; CHECK: @v4 = alias i32, [1 x i32]* @v2 +@a1 = alias bitcast (i32* @v1 to i16*) +; CHECK: @a1 = alias bitcast (i32* @v1 to i16*) -@v5 = alias addrspace(2) i32, i32* @v1 -; CHECK: @v5 = alias addrspace(2) i32, i32* @v1 +@a2 = alias bitcast([1 x i32]* @v2 to i32*) +; CHECK: @a2 = alias getelementptr inbounds ([1 x i32]* @v2, i32 0, i32 0) -@v6 = alias i16, i32* @v1 -; CHECK: @v6 = alias i16, i32* @v1 +@a3 = alias addrspacecast (i32* @v1 to i32 addrspace(2)*) +; CHECK: @a3 = alias addrspacecast (i32* @v1 to i32 addrspace(2)*) + +@a4 = alias bitcast (i32* @v1 to i16*) +; CHECK: @a4 = alias bitcast (i32* @v1 to i16*) + +@a5 = thread_local(localdynamic) alias i32* @v1 +; CHECK: @a5 = thread_local(localdynamic) alias i32* @v1 + +@a6 = alias getelementptr ([2 x i16]* @v3, i32 1, i32 1) +; CHECK: @a6 = alias getelementptr ([2 x i16]* @v3, i32 1, i32 1) diff --git a/test/Feature/aliases.ll b/test/Feature/aliases.ll index b2ce82a..ad1d1b0 100644 --- a/test/Feature/aliases.ll +++ b/test/Feature/aliases.ll @@ -7,6 +7,14 @@ @bar = global i32 0 @foo1 = alias i32* @bar @foo2 = alias i32* @bar +@foo3 = alias i32* @foo2 +@foo4 = unnamed_addr alias i32* @foo2 + +; Make sure the verifier does not complain about references to a global +; declaration from an initializer. +@decl = external global i32 +@ptr = global i32* @decl +@ptr_a = alias i32** @ptr %FunTy = type i32() @@ -14,10 +22,11 @@ define i32 @foo_f() { ret i32 0 } @bar_f = alias weak_odr %FunTy* @foo_f +@bar_ff = alias i32()* @bar_f @bar_i = alias internal i32* @bar -@A = alias i64, i32* @bar +@A = alias bitcast (i32* @bar to i64*) define i32 @test() { entry: diff --git a/test/Feature/comdat.ll b/test/Feature/comdat.ll new file mode 100644 index 0000000..05fb87c --- /dev/null +++ b/test/Feature/comdat.ll @@ -0,0 +1,18 @@ +; RUN: llvm-as < %s | llvm-dis | FileCheck %s + +$f = comdat any +; CHECK: $f = comdat any + +$f2 = comdat any +; CHECK-NOT: f2 + +@v = global i32 0, comdat $f +; CHECK: @v = global i32 0, comdat $f + +@a = alias i32* @v +; CHECK: @a = alias i32* @v{{$}} + +define void @f() comdat $f { + ret void +} +; CHECK: define void @f() comdat $f diff --git a/test/Feature/globalvars.ll b/test/Feature/globalvars.ll index dad1cf3..84b4bdf 100644 --- a/test/Feature/globalvars.ll +++ b/test/Feature/globalvars.ll @@ -16,3 +16,5 @@ define i32 @foo(i32 %blah) { ret i32 %blah } +hidden dllexport global i32 42 +dllexport global i32 42 -- cgit v1.1