llvm-project

Форк
0
/
two-loops-right-after-each-other-2.ll 
59 строк · 4.6 Кб
1
; RUN: opt %loadNPMPolly -passes=polly-codegen -S < %s | FileCheck %s
2

3
; CHECK:       polly.merge_new_and_old:
4
; CHECK-NEXT:    merge = phi
5

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 }
17

18
@img = external global ptr, align 8
19

20
define void @intrapred_luma() {
21
entry:
22
  %PredPel = alloca [13 x i16], align 16
23
  br label %for.body
24

25
for.body:                                         ; preds = %for.body, %entry
26
  br i1 undef, label %for.body, label %for.body.262
27

28
for.body.262:                                     ; preds = %for.body
29
  %0 = load ptr, ptr @img, align 8
30
  br label %for.body.280
31

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
41

42
for.end.298:                                      ; preds = %for.body.280
43
  %2 = load ptr, ptr @img, align 8
44
  br label %for.body.310
45

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
56

57
for.end.328:                                      ; preds = %for.body.310
58
  ret void
59
}
60

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.