236
|
1 ; RUN: opt %loadPolly -polly-codegen < %s
|
|
2 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
|
|
3
|
252
|
4 @win193 = external global [4 x [36 x double]], align 32 ; <ptr> [#uses=3]
|
|
5 @sb_sample = external global [2 x [2 x [18 x [32 x double]]]], align 32 ; <ptr> [#uses=2]
|
236
|
6
|
|
7 define void @mdct_sub48() nounwind {
|
|
8 entry:
|
|
9 br i1 undef, label %bb, label %bb54
|
|
10
|
|
11 bb: ; preds = %entry
|
|
12 br label %bb54
|
|
13
|
|
14 bb3: ; preds = %bb50
|
|
15 br label %bb8
|
|
16
|
|
17 bb4: ; preds = %bb8
|
|
18 br label %bb8
|
|
19
|
|
20 bb8: ; preds = %bb4, %bb3
|
|
21 br i1 undef, label %bb4, label %bb9
|
|
22
|
|
23 bb9: ; preds = %bb8
|
|
24 br label %bb48
|
|
25
|
|
26 bb25: ; preds = %bb48
|
|
27 br i1 false, label %bb26, label %bb27
|
|
28
|
|
29 bb26: ; preds = %bb48, %bb25
|
|
30 br label %bb37
|
|
31
|
|
32 bb27: ; preds = %bb25
|
|
33 br i1 undef, label %bb32, label %bb35
|
|
34
|
|
35 bb32: ; preds = %bb27
|
|
36 br label %bb37
|
|
37
|
|
38 bb34: ; preds = %bb35
|
252
|
39 %0 = getelementptr inbounds [36 x double], ptr undef, i64 0, i64 0 ; <ptr> [#uses=0]
|
|
40 %1 = getelementptr inbounds [18 x [32 x double]], ptr undef, i64 0, i64 0 ; <ptr> [#uses=1]
|
|
41 %2 = getelementptr inbounds [32 x double], ptr %1, i64 0, i64 0 ; <ptr> [#uses=0]
|
|
42 %3 = getelementptr inbounds [36 x double], ptr undef, i64 0, i64 0 ; <ptr> [#uses=0]
|
236
|
43 %4 = sub nsw i32 17, %k.4 ; <i32> [#uses=1]
|
252
|
44 %5 = getelementptr inbounds [2 x [2 x [18 x [32 x double]]]], ptr @sb_sample, i64 0, i64 0 ; <ptr> [#uses=1]
|
|
45 %6 = getelementptr inbounds [2 x [18 x [32 x double]]], ptr %5, i64 0, i64 0 ; <ptr> [#uses=1]
|
236
|
46 %7 = sext i32 %4 to i64 ; <i64> [#uses=1]
|
252
|
47 %8 = getelementptr inbounds [18 x [32 x double]], ptr %6, i64 0, i64 %7 ; <ptr> [#uses=1]
|
|
48 %9 = getelementptr inbounds [32 x double], ptr %8, i64 0, i64 0 ; <ptr> [#uses=1]
|
|
49 %10 = load double, ptr %9, align 8 ; <double> [#uses=0]
|
236
|
50 %11 = fsub double 0.000000e+00, undef ; <double> [#uses=1]
|
252
|
51 %12 = getelementptr inbounds double, ptr getelementptr inbounds ([4 x [36 x double]], ptr @win193, i64 0, i64 2, i64 4), i64 0 ; <ptr> [#uses=1]
|
|
52 store double %11, ptr %12, align 8
|
236
|
53 %13 = add nsw i32 %k.4, 9 ; <i32> [#uses=1]
|
|
54 %14 = add nsw i32 %k.4, 18 ; <i32> [#uses=1]
|
252
|
55 %15 = getelementptr inbounds [4 x [36 x double]], ptr @win193, i64 0, i64 0 ; <ptr> [#uses=1]
|
236
|
56 %16 = sext i32 %14 to i64 ; <i64> [#uses=1]
|
252
|
57 %17 = getelementptr inbounds [36 x double], ptr %15, i64 0, i64 %16 ; <ptr> [#uses=1]
|
|
58 %18 = load double, ptr %17, align 8 ; <double> [#uses=0]
|
236
|
59 %19 = sext i32 %k.4 to i64 ; <i64> [#uses=1]
|
252
|
60 %20 = getelementptr inbounds [18 x [32 x double]], ptr undef, i64 0, i64 %19 ; <ptr> [#uses=1]
|
236
|
61 %21 = sext i32 %band.2 to i64 ; <i64> [#uses=1]
|
252
|
62 %22 = getelementptr inbounds [32 x double], ptr %20, i64 0, i64 %21 ; <ptr> [#uses=1]
|
|
63 %23 = load double, ptr %22, align 8 ; <double> [#uses=0]
|
236
|
64 %24 = sext i32 %39 to i64 ; <i64> [#uses=1]
|
252
|
65 %25 = getelementptr inbounds [4 x [36 x double]], ptr @win193, i64 0, i64 %24 ; <ptr> [#uses=1]
|
|
66 %26 = getelementptr inbounds [36 x double], ptr %25, i64 0, i64 0 ; <ptr> [#uses=1]
|
|
67 %27 = load double, ptr %26, align 8 ; <double> [#uses=0]
|
236
|
68 %28 = sub nsw i32 17, %k.4 ; <i32> [#uses=1]
|
252
|
69 %29 = getelementptr inbounds [2 x [2 x [18 x [32 x double]]]], ptr @sb_sample, i64 0, i64 0 ; <ptr> [#uses=1]
|
|
70 %30 = getelementptr inbounds [2 x [18 x [32 x double]]], ptr %29, i64 0, i64 0 ; <ptr> [#uses=1]
|
236
|
71 %31 = sext i32 %28 to i64 ; <i64> [#uses=1]
|
252
|
72 %32 = getelementptr inbounds [18 x [32 x double]], ptr %30, i64 0, i64 %31 ; <ptr> [#uses=1]
|
|
73 %33 = getelementptr inbounds [32 x double], ptr %32, i64 0, i64 0 ; <ptr> [#uses=1]
|
|
74 %34 = load double, ptr %33, align 8 ; <double> [#uses=0]
|
236
|
75 %35 = sext i32 %13 to i64 ; <i64> [#uses=1]
|
252
|
76 %36 = getelementptr inbounds double, ptr getelementptr inbounds ([4 x [36 x double]], ptr @win193, i64 0, i64 2, i64 4), i64 %35 ; <ptr> [#uses=1]
|
|
77 store double 0.000000e+00, ptr %36, align 8
|
236
|
78 %37 = sub nsw i32 %k.4, 1 ; <i32> [#uses=1]
|
|
79 br label %bb35
|
|
80
|
|
81 bb35: ; preds = %bb34, %bb27
|
|
82 %k.4 = phi i32 [ %37, %bb34 ], [ 8, %bb27 ] ; <i32> [#uses=6]
|
|
83 br i1 undef, label %bb34, label %bb36
|
|
84
|
|
85 bb36: ; preds = %bb35
|
|
86 unreachable
|
|
87
|
|
88 bb37: ; preds = %bb32, %bb26
|
|
89 %38 = add nsw i32 %band.2, 1 ; <i32> [#uses=1]
|
|
90 br label %bb48
|
|
91
|
|
92 bb48: ; preds = %bb37, %bb9
|
|
93 %band.2 = phi i32 [ %38, %bb37 ], [ 0, %bb9 ] ; <i32> [#uses=2]
|
252
|
94 %39 = load i32, ptr null, align 8 ; <i32> [#uses=1]
|
236
|
95 br i1 undef, label %bb26, label %bb25
|
|
96
|
|
97 bb50: ; preds = %bb54
|
|
98 br i1 undef, label %bb3, label %bb51
|
|
99
|
|
100 bb51: ; preds = %bb50
|
|
101 br i1 undef, label %bb52, label %bb53
|
|
102
|
|
103 bb52: ; preds = %bb51
|
|
104 unreachable
|
|
105
|
|
106 bb53: ; preds = %bb51
|
|
107 br label %bb54
|
|
108
|
|
109 bb54: ; preds = %bb53, %bb, %entry
|
|
110 br i1 undef, label %bb50, label %return
|
|
111
|
|
112 return: ; preds = %bb54
|
|
113 ret void
|
|
114 }
|