annotate polly/test/CodeGen/phi_loop_carried_float_escape.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:
diff changeset
1 ; RUN: opt %loadPolly -S \
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
2 ; RUN: -polly-analyze-read-only-scalars=false -polly-codegen < %s | FileCheck %s
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
3
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
4 ; RUN: opt %loadPolly -S \
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
5 ; RUN: -polly-analyze-read-only-scalars=true -polly-codegen < %s | FileCheck %s
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
6 ;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
7 ; float f(float *A, int N) {
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
8 ; float tmp = 0;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
9 ; for (int i = 0; i < N; i++)
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
10 ; tmp += A[i];
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
11 ; return tmp;
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
12 ; }
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
13
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
14 ; CHECK-LABEL: polly.merge_new_and_old:
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
15 ; CHECK-NEXT: %tmp.0.merge = phi float [ %tmp.0.final_reload, %polly.exiting ], [ %tmp.0, %bb8 ]
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
16 ; CHECK-NEXT: br label %exit
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
17
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
18 ; CHECK-LABEL: polly.start:
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
19 ; CHECK-NEXT: store float 0.000000e+00, ptr %tmp.0.phiops
236
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
20 ; CHECK-NEXT: sext
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
21
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
22 ; CHECK-LABEL: polly.exiting:
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
23 ; CHECK-NEXT: %tmp.0.final_reload = load float, ptr %tmp.0.s2a
236
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
24 ; CHECK-NEXT: br label %polly.merge_new_and_old
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
25
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
26 ; CHECK-LABEL: polly.stmt.bb1{{[0-9]*}}:
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
27 ; CHECK-NEXT: %tmp.0.phiops.reload[[R1:[0-9]*]] = load float, ptr %tmp.0.phiops
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
28 ; CHECK-: store float %tmp.0.phiops.reload[[R1]], ptr %tmp.0.s2a
236
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
29
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
30 ; CHECK-LABEL: polly.stmt.bb4:
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
31 ; CHECK: %tmp.0.s2a.reload[[R3:[0-9]*]] = load float, ptr %tmp.0.s2a
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
32 ; CHECK: %tmp[[R5:[0-9]*]]_p_scalar_ = load float, ptr %scevgep, align 4, !alias.scope !0, !noalias !3
236
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
33 ; CHECK: %p_tmp[[R4:[0-9]*]] = fadd float %tmp.0.s2a.reload[[R3]], %tmp[[R5]]_p_scalar_
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
34 ; CHECK: store float %p_tmp[[R4]], ptr %tmp.0.phiops
236
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
35
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
36 ; CHECK-LABEL: polly.stmt.bb1{{[0-9]*}}:
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
37 ; CHECK-NEXT: %tmp.0.phiops.reload[[R2:[0-9]*]] = load float, ptr %tmp.0.phiops
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
38 ; CHECK: store float %tmp.0.phiops.reload[[R2]], ptr %tmp.0.s2a
236
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
39
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
40 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
41
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
42 define float @f(ptr %A, i32 %N) {
236
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
43 bb:
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
44 %tmp = sext i32 %N to i64
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
45 br label %bb1
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
46
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
47 bb1: ; preds = %bb4, %bb
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
48 %indvars.iv = phi i64 [ %indvars.iv.next, %bb4 ], [ 0, %bb ]
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
49 %tmp.0 = phi float [ 0.000000e+00, %bb ], [ %tmp7, %bb4 ]
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
50 %tmp2 = icmp slt i64 %indvars.iv, %tmp
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
51 br i1 %tmp2, label %bb3, label %bb8
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
52
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
53 bb3: ; preds = %bb1
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
54 br label %bb4
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
55
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
56 bb4: ; preds = %bb3
252
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
57 %tmp5 = getelementptr inbounds float, ptr %A, i64 %indvars.iv
1f2b6ac9f198 LLVM16-1
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 236
diff changeset
58 %tmp6 = load float, ptr %tmp5, align 4
236
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
59 %tmp7 = fadd float %tmp.0, %tmp6
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
60 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
61 br label %bb1
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
62
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
63 bb8: ; preds = %bb1
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
64 br label %exit
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
65
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
66 exit:
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
67 ret float %tmp.0
c4bab56944e8 LLVM 16
kono
parents:
diff changeset
68 }