CXX_FAST_TLS calling convention: performance improvement for AArch64.
[oota-llvm.git] / test / Linker / 2004-05-07-TypeResolution1.ll
index 1c90079eae96ab9dd43f4f5dbdec8b95e4e932b4..b8ce2d9baedb5bde74c535b3970368582b2c6537 100644 (file)
@@ -1,45 +1,35 @@
-; RUN: llvm-upgrade < %s | llvm-as -f -o %t1.bc
-; RUN: llvm-upgrade < %p/2004-05-07-TypeResolution2.ll | \
-; RUN:    llvm-as -o %t2.bc -f
-; RUN: llvm-link -f -o %t3.bc %t1.bc %t2.bc
+; RUN: llvm-as %s -o %t1.bc
+; RUN: llvm-as < %p/2004-05-07-TypeResolution2.ll -o %t2.bc
+; RUN: llvm-link -o %t3.bc %t1.bc %t2.bc
 
-target endian = little
-target pointersize = 32
-
-  %myint = type opaque
+target datalayout = "e-p:32:32"
+       %myint = type opaque
+       %struct1 = type { i32, void (%struct2*)*, %myint*, i32 (i32*)* }
        %struct2 = type { %struct1 }
-
-       %struct1 = type { int, void (%struct2*)*,  %myint *, int (uint *)* }
-
-
-%driver1 = global %struct1 zeroinitializer             ; <%struct1*> [#uses=1]
-
-%m1 = external global [1 x sbyte] *    ; <%struct.task_struct**> [#uses=0]
-;%m1 = external global uint    ; <%struct.task_struct**> [#uses=0]
-%str1 = constant [1 x ubyte] zeroinitializer
-%str2 = constant [2 x ubyte] zeroinitializer
-%str3 = constant [3 x ubyte] zeroinitializer
-%str4 = constant [4 x ubyte] zeroinitializer
-%str5 = constant [5 x ubyte] zeroinitializer
-%str6 = constant [6 x ubyte] zeroinitializer
-%str7 = constant [7 x ubyte] zeroinitializer
-%str8 = constant [8 x ubyte] zeroinitializer
-%str9 = constant [9 x ubyte] zeroinitializer
-%stra = constant [10 x ubyte] zeroinitializer
-%strb = constant [11 x ubyte] zeroinitializer
-%strc = constant [12 x ubyte] zeroinitializer
-%strd = constant [13 x ubyte] zeroinitializer
-%stre = constant [14 x ubyte] zeroinitializer
-%strf = constant [15 x ubyte] zeroinitializer
-%strg = constant [16 x ubyte] zeroinitializer
-%strh = constant [17 x ubyte] zeroinitializer
-
-implementation   ; Functions:
-
-declare void %func(%struct2*)
-
-void %tty_init() {
+@driver1 = global %struct1 zeroinitializer             ; <%struct1*> [#uses=1]
+@m1 = external global [1 x i8]*                ; <[1 x i8]**> [#uses=0]
+@str1 = constant [1 x i8] zeroinitializer              ; <[1 x i8]*> [#uses=0]
+@str2 = constant [2 x i8] zeroinitializer              ; <[2 x i8]*> [#uses=0]
+@str3 = constant [3 x i8] zeroinitializer              ; <[3 x i8]*> [#uses=0]
+@str4 = constant [4 x i8] zeroinitializer              ; <[4 x i8]*> [#uses=0]
+@str5 = constant [5 x i8] zeroinitializer              ; <[5 x i8]*> [#uses=0]
+@str6 = constant [6 x i8] zeroinitializer              ; <[6 x i8]*> [#uses=0]
+@str7 = constant [7 x i8] zeroinitializer              ; <[7 x i8]*> [#uses=0]
+@str8 = constant [8 x i8] zeroinitializer              ; <[8 x i8]*> [#uses=0]
+@str9 = constant [9 x i8] zeroinitializer              ; <[9 x i8]*> [#uses=0]
+@stra = constant [10 x i8] zeroinitializer             ; <[10 x i8]*> [#uses=0]
+@strb = constant [11 x i8] zeroinitializer             ; <[11 x i8]*> [#uses=0]
+@strc = constant [12 x i8] zeroinitializer             ; <[12 x i8]*> [#uses=0]
+@strd = constant [13 x i8] zeroinitializer             ; <[13 x i8]*> [#uses=0]
+@stre = constant [14 x i8] zeroinitializer             ; <[14 x i8]*> [#uses=0]
+@strf = constant [15 x i8] zeroinitializer             ; <[15 x i8]*> [#uses=0]
+@strg = constant [16 x i8] zeroinitializer             ; <[16 x i8]*> [#uses=0]
+@strh = constant [17 x i8] zeroinitializer             ; <[17 x i8]*> [#uses=0]
+
+declare void @func(%struct2*)
+
+define void @tty_init() {
 entry:
-       volatile store void (%struct2*)* %func, void (%struct2 *)** getelementptr (%struct1*  %driver1, uint 0, uint 1)
+       store volatile void (%struct2*)* @func, void (%struct2*)** getelementptr (%struct1, %struct1* @driver1, i64 0, i32 1)
        ret void
 }