[opaque pointer type] Add textual IR support for explicit type parameter for global...
[oota-llvm.git] / test / CodeGen / Generic / 2009-03-17-LSR-APInt.ll
1 ; RUN: llc < %s
2 ; PR3806
3
4         %struct..0__pthread_mutex_s = type { i32, i32, i32, i32, i32, i32, %struct.__pthread_list_t }
5         %struct.Alignment = type { i32 }
6         %struct.QDesignerFormWindowInterface = type { %struct.QWidget }
7         %struct.QFont = type { %struct.QFontPrivate*, i32 }
8         %struct.QFontPrivate = type opaque
9         %"struct.QHash<QString,QList<QAbstractExtensionFactory*> >" = type { %"struct.QHash<QString,QList<QAbstractExtensionFactory*> >::._120" }
10         %"struct.QHash<QString,QList<QAbstractExtensionFactory*> >::._120" = type { %struct.QHashData* }
11         %struct.QHashData = type { %"struct.QHashData::Node"*, %"struct.QHashData::Node"**, %struct.Alignment, i32, i32, i16, i16, i32, i8 }
12         %"struct.QHashData::Node" = type { %"struct.QHashData::Node"*, i32 }
13         %"struct.QList<QAbstractExtensionFactory*>" = type { %"struct.QList<QAbstractExtensionFactory*>::._101" }
14         %"struct.QList<QAbstractExtensionFactory*>::._101" = type { %struct.QListData }
15         %struct.QListData = type { %"struct.QListData::Data"* }
16         %"struct.QListData::Data" = type { %struct.Alignment, i32, i32, i32, i8, [1 x i8*] }
17         %struct.QObject = type { i32 (...)**, %struct.QObjectData* }
18         %struct.QObjectData = type { i32 (...)**, %struct.QObject*, %struct.QObject*, %"struct.QList<QAbstractExtensionFactory*>", i32, i32 }
19         %struct.QPaintDevice.base = type { i32 (...)**, i16 }
20         %"struct.QPair<int,int>" = type { i32, i32 }
21         %struct.QPalette = type { %struct.QPalettePrivate*, i32 }
22         %struct.QPalettePrivate = type opaque
23         %struct.QRect = type { i32, i32, i32, i32 }
24         %struct.QWidget = type { %struct.QObject, %struct.QPaintDevice.base, %struct.QWidgetData* }
25         %struct.QWidgetData = type { i64, i32, %struct.Alignment, i8, i8, i16, %struct.QRect, %struct.QPalette, %struct.QFont, %struct.QRect }
26         %struct.__pthread_list_t = type { %struct.__pthread_list_t*, %struct.__pthread_list_t* }
27         %struct.pthread_attr_t = type { i64, [48 x i8] }
28         %struct.pthread_mutex_t = type { %struct..0__pthread_mutex_s }
29         %"struct.qdesigner_internal::Grid" = type { i32, i32, %struct.QWidget**, i8*, i8* }
30         %"struct.qdesigner_internal::GridLayout" = type { %"struct.qdesigner_internal::Layout", %"struct.QPair<int,int>", %"struct.qdesigner_internal::Grid"* }
31         %"struct.qdesigner_internal::Layout" = type { %struct.QObject, %"struct.QList<QAbstractExtensionFactory*>", %struct.QWidget*, %"struct.QHash<QString,QList<QAbstractExtensionFactory*> >", %struct.QWidget*, %struct.QDesignerFormWindowInterface*, i8, %"struct.QPair<int,int>", %struct.QRect, i8 }
32
33 @_ZL20__gthrw_pthread_oncePiPFvvE = weak alias i32 (i32*, void ()*), i32 (i32*, void ()*)* @pthread_once                ; <i32 (i32*, void ()*)*> [#uses=0]
34 @_ZL27__gthrw_pthread_getspecificj = weak alias i8* (i32), i8* (i32)* @pthread_getspecific              ; <i8* (i32)*> [#uses=0]
35 @_ZL27__gthrw_pthread_setspecificjPKv = weak alias i32 (i32, i8*), i32 (i32, i8*)* @pthread_setspecific         ; <i32 (i32, i8*)*> [#uses=0]
36 @_ZL22__gthrw_pthread_createPmPK14pthread_attr_tPFPvS3_ES3_ = weak alias i32 (i64*, %struct.pthread_attr_t*, i8* (i8*)*, i8*), i32 (i64*, %struct.pthread_attr_t*, i8* (i8*)*, i8*)* @pthread_create            ; <i32 (i64*, %struct.pthread_attr_t*, i8* (i8*)*, i8*)*> [#uses=0]
37 @_ZL22__gthrw_pthread_cancelm = weak alias i32 (i64), i32 (i64)* @pthread_cancel                ; <i32 (i64)*> [#uses=0]
38 @_ZL26__gthrw_pthread_mutex_lockP15pthread_mutex_t = weak alias i32 (%struct.pthread_mutex_t*), i32 (%struct.pthread_mutex_t*)* @pthread_mutex_lock             ; <i32 (%struct.pthread_mutex_t*)*> [#uses=0]
39 @_ZL29__gthrw_pthread_mutex_trylockP15pthread_mutex_t = weak alias i32 (%struct.pthread_mutex_t*), i32 (%struct.pthread_mutex_t*)* @pthread_mutex_trylock               ; <i32 (%struct.pthread_mutex_t*)*> [#uses=0]
40 @_ZL28__gthrw_pthread_mutex_unlockP15pthread_mutex_t = weak alias i32 (%struct.pthread_mutex_t*), i32 (%struct.pthread_mutex_t*)* @pthread_mutex_unlock         ; <i32 (%struct.pthread_mutex_t*)*> [#uses=0]
41 @_ZL26__gthrw_pthread_mutex_initP15pthread_mutex_tPK19pthread_mutexattr_t = weak alias i32 (%struct.pthread_mutex_t*, %struct.Alignment*), i32 (%struct.pthread_mutex_t*, %struct.Alignment*)* @pthread_mutex_init              ; <i32 (%struct.pthread_mutex_t*, %struct.Alignment*)*> [#uses=0]
42 @_ZL26__gthrw_pthread_key_createPjPFvPvE = weak alias i32 (i32*, void (i8*)*), i32 (i32*, void (i8*)*)* @pthread_key_create             ; <i32 (i32*, void (i8*)*)*> [#uses=0]
43 @_ZL26__gthrw_pthread_key_deletej = weak alias i32 (i32), i32 (i32)* @pthread_key_delete                ; <i32 (i32)*> [#uses=0]
44 @_ZL30__gthrw_pthread_mutexattr_initP19pthread_mutexattr_t = weak alias i32 (%struct.Alignment*), i32 (%struct.Alignment*)* @pthread_mutexattr_init             ; <i32 (%struct.Alignment*)*> [#uses=0]
45 @_ZL33__gthrw_pthread_mutexattr_settypeP19pthread_mutexattr_ti = weak alias i32 (%struct.Alignment*, i32), i32 (%struct.Alignment*, i32)* @pthread_mutexattr_settype            ; <i32 (%struct.Alignment*, i32)*> [#uses=0]
46 @_ZL33__gthrw_pthread_mutexattr_destroyP19pthread_mutexattr_t = weak alias i32 (%struct.Alignment*), i32 (%struct.Alignment*)* @pthread_mutexattr_destroy               ; <i32 (%struct.Alignment*)*> [#uses=0]
47
48 define void @_ZN18qdesigner_internal10GridLayout9buildGridEv(%"struct.qdesigner_internal::GridLayout"* %this) nounwind {
49 entry:
50         br label %bb44
51
52 bb44:           ; preds = %bb47, %entry
53         %indvar = phi i128 [ %indvar.next144, %bb47 ], [ 0, %entry ]            ; <i128> [#uses=2]
54         br i1 false, label %bb46, label %bb47
55
56 bb46:           ; preds = %bb44
57         %tmp = shl i128 %indvar, 64             ; <i128> [#uses=1]
58         %tmp96 = and i128 %tmp, 79228162495817593519834398720           ; <i128> [#uses=0]
59         br label %bb47
60
61 bb47:           ; preds = %bb46, %bb44
62         %indvar.next144 = add i128 %indvar, 1           ; <i128> [#uses=1]
63         br label %bb44
64 }
65
66 define i32 @pthread_once(i32*, void ()*) {
67   ret i32 0
68 }
69
70 define i8* @pthread_getspecific(i32) {
71   ret i8* null
72 }
73
74 define i32 @pthread_setspecific(i32, i8*) {
75   ret i32 0
76 }
77
78 define i32 @pthread_create(i64*, %struct.pthread_attr_t*, i8* (i8*)*, i8*) {
79   ret i32 0
80 }
81
82 define i32 @pthread_cancel(i64) {
83   ret i32 0
84 }
85
86 define i32 @pthread_mutex_lock(%struct.pthread_mutex_t*) {
87   ret i32 0
88 }
89
90 define i32 @pthread_mutex_trylock(%struct.pthread_mutex_t*) {
91   ret i32 0
92 }
93
94 define i32 @pthread_mutex_unlock(%struct.pthread_mutex_t*) {
95   ret i32 0
96 }
97
98 define i32 @pthread_mutex_init(%struct.pthread_mutex_t*, %struct.Alignment*) {
99   ret i32 0
100 }
101
102 define i32 @pthread_key_create(i32*, void (i8*)*) {
103   ret i32 0
104 }
105
106 define i32 @pthread_key_delete(i32) {
107   ret i32 0
108 }
109
110 define i32 @pthread_mutexattr_init(%struct.Alignment*) {
111   ret i32 0
112 }
113
114 define i32 @pthread_mutexattr_settype(%struct.Alignment*, i32) {
115   ret i32 0
116 }
117
118 define i32 @pthread_mutexattr_destroy(%struct.Alignment*) {
119   ret i32 0
120 }