workflows: Fix typo in pr-subscriber
[llvm-project.git] / polly / test / CodeGen / 20100707_2.ll
blobdf784c6d7957c0af35b53eb21a140f7b2cfb39c1
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"
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]
7 define void @mdct_sub48() nounwind {
8 entry:
9   br i1 undef, label %bb, label %bb54
11 bb:                                               ; preds = %entry
12   br label %bb54
14 bb3:                                              ; preds = %bb50
15   br label %bb8
17 bb4:                                              ; preds = %bb8
18   br label %bb8
20 bb8:                                              ; preds = %bb4, %bb3
21   br i1 undef, label %bb4, label %bb9
23 bb9:                                              ; preds = %bb8
24   br label %bb48
26 bb25:                                             ; preds = %bb48
27   br i1 false, label %bb26, label %bb27
29 bb26:                                             ; preds = %bb48, %bb25
30   br label %bb37
32 bb27:                                             ; preds = %bb25
33   br i1 undef, label %bb32, label %bb35
35 bb32:                                             ; preds = %bb27
36   br label %bb37
38 bb34:                                             ; preds = %bb35
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]
43   %4 = sub nsw i32 17, %k.4                       ; <i32> [#uses=1]
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]
46   %7 = sext i32 %4 to i64                         ; <i64> [#uses=1]
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]
50   %11 = fsub double 0.000000e+00, undef           ; <double> [#uses=1]
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
53   %13 = add nsw i32 %k.4, 9                       ; <i32> [#uses=1]
54   %14 = add nsw i32 %k.4, 18                      ; <i32> [#uses=1]
55   %15 = getelementptr inbounds [4 x [36 x double]], ptr @win193, i64 0, i64 0 ; <ptr> [#uses=1]
56   %16 = sext i32 %14 to i64                       ; <i64> [#uses=1]
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]
59   %19 = sext i32 %k.4 to i64                      ; <i64> [#uses=1]
60   %20 = getelementptr inbounds [18 x [32 x double]], ptr undef, i64 0, i64 %19 ; <ptr> [#uses=1]
61   %21 = sext i32 %band.2 to i64                   ; <i64> [#uses=1]
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]
64   %24 = sext i32 %39 to i64                       ; <i64> [#uses=1]
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]
68   %28 = sub nsw i32 17, %k.4                      ; <i32> [#uses=1]
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]
71   %31 = sext i32 %28 to i64                       ; <i64> [#uses=1]
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]
75   %35 = sext i32 %13 to i64                       ; <i64> [#uses=1]
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
78   %37 = sub nsw i32 %k.4, 1                       ; <i32> [#uses=1]
79   br label %bb35
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
85 bb36:                                             ; preds = %bb35
86   unreachable
88 bb37:                                             ; preds = %bb32, %bb26
89   %38 = add nsw i32 %band.2, 1                    ; <i32> [#uses=1]
90   br label %bb48
92 bb48:                                             ; preds = %bb37, %bb9
93   %band.2 = phi i32 [ %38, %bb37 ], [ 0, %bb9 ]   ; <i32> [#uses=2]
94   %39 = load i32, ptr null, align 8                   ; <i32> [#uses=1]
95   br i1 undef, label %bb26, label %bb25
97 bb50:                                             ; preds = %bb54
98   br i1 undef, label %bb3, label %bb51
100 bb51:                                             ; preds = %bb50
101   br i1 undef, label %bb52, label %bb53
103 bb52:                                             ; preds = %bb51
104   unreachable
106 bb53:                                             ; preds = %bb51
107   br label %bb54
109 bb54:                                             ; preds = %bb53, %bb, %entry
110   br i1 undef, label %bb50, label %return
112 return:                                           ; preds = %bb54
113   ret void