[flang] Fix length handling in character kind implicit conversion (#74586)
[llvm-project.git] / polly / test / CodeGen / two-loops-right-after-each-other-2.ll
bloba7cae0a921ca23b6c13cdf831cb707c1ba9f818d
1 ; RUN: opt %loadPolly -polly-codegen -S < %s | FileCheck %s
3 ; CHECK:       polly.merge_new_and_old:
4 ; CHECK-NEXT:    merge = phi
6 %struct.ImageParameters = type { i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, float, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, ptr, ptr, i32, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [9 x [16 x [16 x i16]]], [5 x [16 x [16 x i16]]], [9 x [8 x [8 x i16]]], [2 x [4 x [16 x [16 x i16]]]], [16 x [16 x i16]], [16 x [16 x i32]], ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, i32, i32, [4 x [4 x i32]], i32, i32, i32, i32, i32, double, i32, i32, i32, i32, ptr, ptr, ptr, ptr, [15 x i16], i32, i32, i32, i32, i32, i32, i32, i32, [6 x [32 x i32]], i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [1 x i32], i32, i32, [2 x i32], i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, ptr, ptr, ptr, ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, [3 x [2 x i32]], [2 x i32], i32, i32, i16, i32, i32, i32, i32, i32 }
7 %struct.Picture = type { i32, i32, [100 x ptr], i32, float, float, float }
8 %struct.Slice = type { i32, i32, i32, i32, i32, i32, ptr, ptr, ptr, i32, ptr, ptr, ptr, i32, ptr, ptr, ptr, ptr, [3 x [2 x i32]] }
9 %struct.datapartition = type { ptr, %struct.EncodingEnvironment, %struct.EncodingEnvironment }
10 %struct.Bitstream = type { i32, i32, i8, i32, i32, i8, i8, i32, i32, ptr, i32 }
11 %struct.EncodingEnvironment = type { i32, i32, i32, i32, i32, ptr, ptr, i32, i32 }
12 %struct.MotionInfoContexts = type { [3 x [11 x %struct.BiContextType]], [2 x [9 x %struct.BiContextType]], [2 x [10 x %struct.BiContextType]], [2 x [6 x %struct.BiContextType]], [4 x %struct.BiContextType], [4 x %struct.BiContextType], [3 x %struct.BiContextType] }
13 %struct.BiContextType = type { i16, i8, i64 }
14 %struct.TextureInfoContexts = type { [2 x %struct.BiContextType], [3 x [4 x %struct.BiContextType]], [10 x [4 x %struct.BiContextType]], [10 x [15 x %struct.BiContextType]], [10 x [15 x %struct.BiContextType]], [10 x [5 x %struct.BiContextType]], [10 x [5 x %struct.BiContextType]], [10 x [15 x %struct.BiContextType]], [10 x [15 x %struct.BiContextType]] }
15 %struct.macroblock = type { i32, i32, i32, [2 x i32], i32, [8 x i32], ptr, i32, [2 x [4 x [4 x [2 x i32]]]], [16 x i8], [16 x i8], i32, i64, [4 x i32], [4 x i32], i64, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i16, double, i32, i32, i32, i32, i32, i32, i32, i32, i32 }
16 %struct.DecRefPicMarking = type { i32, i32, i32, i32, i32, ptr }
18 @img = external global ptr, align 8
20 define void @intrapred_luma() {
21 entry:
22   %PredPel = alloca [13 x i16], align 16
23   br label %for.body
25 for.body:                                         ; preds = %for.body, %entry
26   br i1 undef, label %for.body, label %for.body.262
28 for.body.262:                                     ; preds = %for.body
29   %0 = load ptr, ptr @img, align 8
30   br label %for.body.280
32 for.body.280:                                     ; preds = %for.body.280, %for.body.262
33   %indvars.iv66 = phi i64 [ 0, %for.body.262 ], [ %indvars.iv.next67, %for.body.280 ]
34   %arrayidx282 = getelementptr inbounds [13 x i16], ptr %PredPel, i64 0, i64 1
35   %arrayidx283 = getelementptr inbounds i16, ptr %arrayidx282, i64 %indvars.iv66
36   %1 = load i16, ptr %arrayidx283, align 2
37   %arrayidx289 = getelementptr inbounds %struct.ImageParameters, ptr %0, i64 0, i32 47, i64 0, i64 2, i64 %indvars.iv66
38   store i16 %1, ptr %arrayidx289, align 2
39   %indvars.iv.next67 = add nuw nsw i64 %indvars.iv66, 1
40   br i1 false, label %for.body.280, label %for.end.298
42 for.end.298:                                      ; preds = %for.body.280
43   %2 = load ptr, ptr @img, align 8
44   br label %for.body.310
46 for.body.310:                                     ; preds = %for.body.310, %for.end.298
47   %indvars.iv = phi i64 [ 0, %for.end.298 ], [ %indvars.iv.next, %for.body.310 ]
48   %InterScopSext = sext i16 %1 to i64
49   %arrayidx312 = getelementptr inbounds [13 x i16], ptr %PredPel, i64 0, i64 %InterScopSext
50   %arrayidx313 = getelementptr inbounds i16, ptr %arrayidx312, i64 %indvars.iv
51   %3 = load i16, ptr %arrayidx313, align 2
52   %arrayidx322 = getelementptr inbounds %struct.ImageParameters, ptr %2, i64 0, i32 47, i64 1, i64 %indvars.iv, i64 1
53   store i16 %3, ptr %arrayidx322, align 2
54   %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
55   br i1 false, label %for.body.310, label %for.end.328
57 for.end.328:                                      ; preds = %for.body.310
58   ret void