annotate polly/test/ScopInfo/multidim_fortran_2d.ll @ 252:1f2b6ac9f198 llvm-original

LLVM16-1
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 18 Aug 2023 09:04:13 +0900
parents c4bab56944e8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
236
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
1 ; RUN: opt %loadPolly -polly-print-scops \
c4bab56944e8 LLVM 16
kono
parents: 150
diff changeset
2 ; RUN: -polly-invariant-load-hoisting=true -disable-output < %s | FileCheck %s
150
anatofuz
parents:
diff changeset
3
anatofuz
parents:
diff changeset
4 ; subroutine init_array(ni, nj, pi, pj, a)
anatofuz
parents:
diff changeset
5 ; implicit none
anatofuz
parents:
diff changeset
6 ;
anatofuz
parents:
diff changeset
7 ; double precision, dimension(nj, ni) :: a
anatofuz
parents:
diff changeset
8 ; integer*8 :: ni, nj
anatofuz
parents:
diff changeset
9 ; integer*8 :: pi, pj
anatofuz
parents:
diff changeset
10 ; integer*8 :: i, j
anatofuz
parents:
diff changeset
11 ;
anatofuz
parents:
diff changeset
12 ; do i = 1, ni
anatofuz
parents:
diff changeset
13 ; do j = 1, nj
anatofuz
parents:
diff changeset
14 ; a(j, i) = i + j
anatofuz
parents:
diff changeset
15 ; end do
anatofuz
parents:
diff changeset
16 ; end do
anatofuz
parents:
diff changeset
17 ; end subroutine
anatofuz
parents:
diff changeset
18 ;
anatofuz
parents:
diff changeset
19 ; Verify we correctly delinearize accesses
anatofuz
parents:
diff changeset
20
anatofuz
parents:
diff changeset
21 ; CHECK: MustWriteAccess := [Reduction Type: NONE] [Scalar: 0]
anatofuz
parents:
diff changeset
22 ; CHECK: [tmp9, tmp14] -> { Stmt_bb17[i0, i1] -> MemRef_arg4[i0, i1] };
anatofuz
parents:
diff changeset
23
anatofuz
parents:
diff changeset
24 target datalayout = "e-p:64:64:64-S128-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f16:16:16-f32:32:32-f64:64:64-f128:128:128-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
anatofuz
parents:
diff changeset
25
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
26 define void @ham(ptr noalias %arg, ptr noalias %arg1, ptr noalias %arg2, ptr noalias %arg3, ptr noalias %arg4) unnamed_addr {
150
anatofuz
parents:
diff changeset
27 bb:
anatofuz
parents:
diff changeset
28 br label %bb5
anatofuz
parents:
diff changeset
29
anatofuz
parents:
diff changeset
30 bb5: ; preds = %bb
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
31 %tmp = load i64, ptr %arg1, align 8
150
anatofuz
parents:
diff changeset
32 %tmp6 = icmp slt i64 %tmp, 0
anatofuz
parents:
diff changeset
33 %tmp7 = select i1 %tmp6, i64 0, i64 %tmp
anatofuz
parents:
diff changeset
34 %tmp8 = xor i64 %tmp7, -1
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
35 %tmp9 = load i64, ptr %arg, align 8
150
anatofuz
parents:
diff changeset
36 %tmp10 = icmp sgt i64 %tmp9, 0
anatofuz
parents:
diff changeset
37 br i1 %tmp10, label %bb11, label %bb32
anatofuz
parents:
diff changeset
38
anatofuz
parents:
diff changeset
39 bb11: ; preds = %bb5
anatofuz
parents:
diff changeset
40 br label %bb12
anatofuz
parents:
diff changeset
41
anatofuz
parents:
diff changeset
42 bb12: ; preds = %bb28, %bb11
anatofuz
parents:
diff changeset
43 %tmp13 = phi i64 [ %tmp30, %bb28 ], [ 1, %bb11 ]
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
44 %tmp14 = load i64, ptr %arg1, align 8
150
anatofuz
parents:
diff changeset
45 %tmp15 = icmp sgt i64 %tmp14, 0
anatofuz
parents:
diff changeset
46 br i1 %tmp15, label %bb16, label %bb28
anatofuz
parents:
diff changeset
47
anatofuz
parents:
diff changeset
48 bb16: ; preds = %bb12
anatofuz
parents:
diff changeset
49 br label %bb17
anatofuz
parents:
diff changeset
50
anatofuz
parents:
diff changeset
51 bb17: ; preds = %bb17, %bb16
anatofuz
parents:
diff changeset
52 %tmp18 = phi i64 [ %tmp26, %bb17 ], [ 1, %bb16 ]
anatofuz
parents:
diff changeset
53 %tmp19 = mul i64 %tmp13, %tmp7
anatofuz
parents:
diff changeset
54 %tmp20 = add i64 %tmp19, %tmp8
anatofuz
parents:
diff changeset
55 %tmp21 = add i64 %tmp20, %tmp18
anatofuz
parents:
diff changeset
56 %tmp22 = add i64 %tmp18, %tmp13
anatofuz
parents:
diff changeset
57 %tmp23 = sitofp i64 %tmp22 to double
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
58 %tmp24 = getelementptr [0 x double], ptr %arg4, i64 0, i64 %tmp21
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
59 store double %tmp23, ptr %tmp24, align 8
150
anatofuz
parents:
diff changeset
60 %tmp25 = icmp eq i64 %tmp18, %tmp14
anatofuz
parents:
diff changeset
61 %tmp26 = add i64 %tmp18, 1
anatofuz
parents:
diff changeset
62 br i1 %tmp25, label %bb27, label %bb17
anatofuz
parents:
diff changeset
63
anatofuz
parents:
diff changeset
64 bb27: ; preds = %bb17
anatofuz
parents:
diff changeset
65 br label %bb28
anatofuz
parents:
diff changeset
66
anatofuz
parents:
diff changeset
67 bb28: ; preds = %bb27, %bb12
anatofuz
parents:
diff changeset
68 %tmp29 = icmp eq i64 %tmp13, %tmp9
anatofuz
parents:
diff changeset
69 %tmp30 = add i64 %tmp13, 1
anatofuz
parents:
diff changeset
70 br i1 %tmp29, label %bb31, label %bb12
anatofuz
parents:
diff changeset
71
anatofuz
parents:
diff changeset
72 bb31: ; preds = %bb28
anatofuz
parents:
diff changeset
73 br label %bb32
anatofuz
parents:
diff changeset
74
anatofuz
parents:
diff changeset
75 bb32: ; preds = %bb31, %bb5
anatofuz
parents:
diff changeset
76 ret void
anatofuz
parents:
diff changeset
77 }