Re-land [openmp] Fix warnings when building on Windows with latest MSVC or Clang...
[llvm-project.git] / llvm / test / CodeGen / X86 / 2009-10-25-RewriterBug.ll
blob1105590391dbb7f27ca048852462ddbdeb3ed521
1 ; RUN: llc < %s -mtriple=x86_64-apple-darwin -relocation-model=pic -frame-pointer=all
3 %struct.DecRefPicMarking_t = type { i32, i32, i32, i32, i32, ptr }
4 %struct.FrameStore = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, ptr, ptr, ptr }
5 %struct.StorablePicture = type { i32, i32, i32, i32, i32, [50 x [6 x [33 x i64]]], [50 x [6 x [33 x i64]]], [50 x [6 x [33 x i64]]], [50 x [6 x [33 x i64]]], i32, i32, i32, i32, i32, i32, i32, i32, i32, i16, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [2 x i32], i32, ptr, i32 }
7 define fastcc void @insert_picture_in_dpb(ptr nocapture %fs, ptr %p) nounwind ssp {
8 entry:
9   %0 = getelementptr inbounds %struct.FrameStore, ptr %fs, i64 0, i32 12 ; <ptr> [#uses=1]
10   %1 = icmp eq i32 undef, 0                       ; <i1> [#uses=1]
11   br i1 %1, label %bb.i, label %bb36.i
13 bb.i:                                             ; preds = %entry
14   br i1 undef, label %bb3.i, label %bb14.preheader.i
16 bb3.i:                                            ; preds = %bb.i
17   unreachable
19 bb14.preheader.i:                                 ; preds = %bb.i
20   br i1 undef, label %bb9.i, label %bb20.preheader.i
22 bb9.i:                                            ; preds = %bb9.i, %bb14.preheader.i
23   br i1 undef, label %bb9.i, label %bb20.preheader.i
25 bb20.preheader.i:                                 ; preds = %bb9.i, %bb14.preheader.i
26   br i1 undef, label %bb18.i, label %bb29.preheader.i
28 bb18.i:                                           ; preds = %bb20.preheader.i
29   unreachable
31 bb29.preheader.i:                                 ; preds = %bb20.preheader.i
32   br i1 undef, label %bb24.i, label %bb30.i
34 bb24.i:                                           ; preds = %bb29.preheader.i
35   unreachable
37 bb30.i:                                           ; preds = %bb29.preheader.i
38   store i32 undef, ptr undef, align 8
39   br label %bb67.preheader.i
41 bb36.i:                                           ; preds = %entry
42   br label %bb67.preheader.i
44 bb67.preheader.i:                                 ; preds = %bb36.i, %bb30.i
45   %2 = phi ptr [ null, %bb36.i ], [ undef, %bb30.i ] ; <ptr> [#uses=2]
46   %3 = phi ptr [ null, %bb36.i ], [ undef, %bb30.i ] ; <ptr> [#uses=2]
47   %4 = phi ptr [ null, %bb36.i ], [ undef, %bb30.i ] ; <ptr> [#uses=2]
48   %5 = phi ptr [ null, %bb36.i ], [ undef, %bb30.i ] ; <ptr> [#uses=1]
49   %6 = phi ptr [ null, %bb36.i ], [ undef, %bb30.i ] ; <ptr> [#uses=1]
50   %7 = phi ptr [ null, %bb36.i ], [ undef, %bb30.i ] ; <ptr> [#uses=1]
51   %8 = phi ptr [ null, %bb36.i ], [ undef, %bb30.i ] ; <ptr> [#uses=1]
52   %9 = phi ptr [ null, %bb36.i ], [ undef, %bb30.i ] ; <ptr> [#uses=1]
53   %10 = phi ptr [ null, %bb36.i ], [ undef, %bb30.i ] ; <ptr> [#uses=1]
54   %11 = phi ptr [ null, %bb36.i ], [ undef, %bb30.i ] ; <ptr> [#uses=1]
55   %12 = phi ptr [ null, %bb36.i ], [ undef, %bb30.i ] ; <ptr> [#uses=1]
56   br i1 undef, label %bb38.i, label %bb68.i
58 bb38.i:                                           ; preds = %bb66.i, %bb67.preheader.i
59   %13 = phi ptr [ %37, %bb66.i ], [ %2, %bb67.preheader.i ] ; <ptr> [#uses=1]
60   %14 = phi ptr [ %38, %bb66.i ], [ %3, %bb67.preheader.i ] ; <ptr> [#uses=1]
61   %15 = phi ptr [ %39, %bb66.i ], [ %4, %bb67.preheader.i ] ; <ptr> [#uses=1]
62   %16 = phi ptr [ %40, %bb66.i ], [ %5, %bb67.preheader.i ] ; <ptr> [#uses=1]
63   %17 = phi ptr [ %40, %bb66.i ], [ %6, %bb67.preheader.i ] ; <ptr> [#uses=1]
64   %18 = phi ptr [ %40, %bb66.i ], [ %7, %bb67.preheader.i ] ; <ptr> [#uses=1]
65   %19 = phi ptr [ %40, %bb66.i ], [ %8, %bb67.preheader.i ] ; <ptr> [#uses=1]
66   %20 = phi ptr [ %40, %bb66.i ], [ %9, %bb67.preheader.i ] ; <ptr> [#uses=1]
67   %21 = phi ptr [ %40, %bb66.i ], [ %10, %bb67.preheader.i ] ; <ptr> [#uses=1]
68   %22 = phi ptr [ %40, %bb66.i ], [ %11, %bb67.preheader.i ] ; <ptr> [#uses=1]
69   %23 = phi ptr [ %40, %bb66.i ], [ %12, %bb67.preheader.i ] ; <ptr> [#uses=1]
70   %indvar248.i = phi i64 [ %indvar.next249.i, %bb66.i ], [ 0, %bb67.preheader.i ] ; <i64> [#uses=3]
71   %storemerge52.i = trunc i64 %indvar248.i to i32 ; <i32> [#uses=1]
72   %24 = getelementptr inbounds %struct.StorablePicture, ptr %23, i64 0, i32 19 ; <ptr> [#uses=0]
73   br i1 undef, label %bb.nph51.i, label %bb66.i
75 bb.nph51.i:                                       ; preds = %bb38.i
76   %25 = sdiv i32 %storemerge52.i, 8               ; <i32> [#uses=0]
77   br label %bb39.i
79 bb39.i:                                           ; preds = %bb64.i, %bb.nph51.i
80   %26 = phi ptr [ %17, %bb.nph51.i ], [ null, %bb64.i ] ; <ptr> [#uses=1]
81   %27 = phi ptr [ %18, %bb.nph51.i ], [ null, %bb64.i ] ; <ptr> [#uses=0]
82   %28 = phi ptr [ %19, %bb.nph51.i ], [ null, %bb64.i ] ; <ptr> [#uses=0]
83   %29 = phi ptr [ %20, %bb.nph51.i ], [ null, %bb64.i ] ; <ptr> [#uses=0]
84   %30 = phi ptr [ %21, %bb.nph51.i ], [ null, %bb64.i ] ; <ptr> [#uses=0]
85   %31 = phi ptr [ %22, %bb.nph51.i ], [ null, %bb64.i ] ; <ptr> [#uses=0]
86   br i1 undef, label %bb57.i, label %bb40.i
88 bb40.i:                                           ; preds = %bb39.i
89   br i1 undef, label %bb57.i, label %bb41.i
91 bb41.i:                                           ; preds = %bb40.i
92   %storemerge10.i = select i1 undef, i32 2, i32 4 ; <i32> [#uses=1]
93   %32 = zext i32 %storemerge10.i to i64           ; <i64> [#uses=1]
94   br i1 undef, label %bb45.i, label %bb47.i
96 bb45.i:                                           ; preds = %bb41.i
97   %33 = getelementptr inbounds %struct.StorablePicture, ptr %26, i64 0, i32 5, i64 undef, i64 %32, i64 undef ; <ptr> [#uses=1]
98   %34 = load i64, ptr %33, align 8                    ; <i64> [#uses=1]
99   br label %bb47.i
101 bb47.i:                                           ; preds = %bb45.i, %bb41.i
102   %storemerge11.i = phi i64 [ %34, %bb45.i ], [ 0, %bb41.i ] ; <i64> [#uses=0]
103   %scevgep246.i = getelementptr i64, ptr undef, i64 undef ; <ptr> [#uses=0]
104   br label %bb64.i
106 bb57.i:                                           ; preds = %bb40.i, %bb39.i
107   br i1 undef, label %bb58.i, label %bb60.i
109 bb58.i:                                           ; preds = %bb57.i
110   br label %bb60.i
112 bb60.i:                                           ; preds = %bb58.i, %bb57.i
113   %35 = load ptr, ptr undef, align 8                ; <ptr> [#uses=1]
114   %scevgep256.i = getelementptr ptr, ptr %35, i64 %indvar248.i ; <ptr> [#uses=1]
115   %36 = load ptr, ptr %scevgep256.i, align 8         ; <ptr> [#uses=1]
116   %scevgep243.i = getelementptr i64, ptr %36, i64 undef ; <ptr> [#uses=1]
117   store i64 -1, ptr %scevgep243.i, align 8
118   br label %bb64.i
120 bb64.i:                                           ; preds = %bb60.i, %bb47.i
121   br i1 undef, label %bb39.i, label %bb66.i
123 bb66.i:                                           ; preds = %bb64.i, %bb38.i
124   %37 = phi ptr [ %13, %bb38.i ], [ null, %bb64.i ] ; <ptr> [#uses=2]
125   %38 = phi ptr [ %14, %bb38.i ], [ null, %bb64.i ] ; <ptr> [#uses=2]
126   %39 = phi ptr [ %15, %bb38.i ], [ null, %bb64.i ] ; <ptr> [#uses=2]
127   %40 = phi ptr [ %16, %bb38.i ], [ null, %bb64.i ] ; <ptr> [#uses=8]
128   %indvar.next249.i = add i64 %indvar248.i, 1     ; <i64> [#uses=1]
129   br i1 undef, label %bb38.i, label %bb68.i
131 bb68.i:                                           ; preds = %bb66.i, %bb67.preheader.i
132   %41 = phi ptr [ %2, %bb67.preheader.i ], [ %37, %bb66.i ] ; <ptr> [#uses=0]
133   %42 = phi ptr [ %3, %bb67.preheader.i ], [ %38, %bb66.i ] ; <ptr> [#uses=1]
134   %43 = phi ptr [ %4, %bb67.preheader.i ], [ %39, %bb66.i ] ; <ptr> [#uses=1]
135   br i1 undef, label %bb.nph48.i, label %bb108.i
137 bb.nph48.i:                                       ; preds = %bb68.i
138   br label %bb80.i
140 bb80.i:                                           ; preds = %bb104.i, %bb.nph48.i
141   %44 = phi ptr [ %42, %bb.nph48.i ], [ null, %bb104.i ] ; <ptr> [#uses=1]
142   %45 = phi ptr [ %43, %bb.nph48.i ], [ null, %bb104.i ] ; <ptr> [#uses=1]
143   br i1 undef, label %bb.nph39.i, label %bb104.i
145 bb.nph39.i:                                       ; preds = %bb80.i
146   br label %bb81.i
148 bb81.i:                                           ; preds = %bb102.i, %bb.nph39.i
149   %46 = phi ptr [ %44, %bb.nph39.i ], [ %48, %bb102.i ] ; <ptr> [#uses=0]
150   %47 = phi ptr [ %45, %bb.nph39.i ], [ %48, %bb102.i ] ; <ptr> [#uses=0]
151   br i1 undef, label %bb83.i, label %bb82.i
153 bb82.i:                                           ; preds = %bb81.i
154   br i1 undef, label %bb83.i, label %bb101.i
156 bb83.i:                                           ; preds = %bb82.i, %bb81.i
157   br label %bb102.i
159 bb101.i:                                          ; preds = %bb82.i
160   br label %bb102.i
162 bb102.i:                                          ; preds = %bb101.i, %bb83.i
163   %48 = load ptr, ptr %0, align 8 ; <ptr> [#uses=2]
164   br i1 undef, label %bb81.i, label %bb104.i
166 bb104.i:                                          ; preds = %bb102.i, %bb80.i
167   br label %bb80.i
169 bb108.i:                                          ; preds = %bb68.i
170   unreachable