Mercurial > hg > CbC > CbC_llvm
comparison polly/test/ForwardOpTree/forward_reusue.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 |
comparison
equal
deleted
inserted
replaced
237:c80f45b162ad | 252:1f2b6ac9f198 |
---|---|
1 ; RUN: opt %loadPolly -polly-print-optree -disable-output < %s | FileCheck %s -match-full-lines | 1 ; RUN: opt %loadPolly -polly-print-optree -disable-output < %s | FileCheck %s -match-full-lines |
2 ; | 2 ; |
3 ; Move operand tree without duplicating values used multiple times. | 3 ; Move operand tree without duplicating values used multiple times. |
4 ; | 4 ; |
5 define void @func(i32 %n, double* noalias nonnull %A) { | 5 define void @func(i32 %n, ptr noalias nonnull %A) { |
6 entry: | 6 entry: |
7 br label %for | 7 br label %for |
8 | 8 |
9 for: | 9 for: |
10 %j = phi i32 [0, %entry], [%j.inc, %inc] | 10 %j = phi i32 [0, %entry], [%j.inc, %inc] |
18 %val4 = fadd double %val3, %val3 | 18 %val4 = fadd double %val3, %val3 |
19 %val5 = fadd double %val4, %val4 | 19 %val5 = fadd double %val4, %val4 |
20 br label %bodyB | 20 br label %bodyB |
21 | 21 |
22 bodyB: | 22 bodyB: |
23 store double %val5, double* %A | 23 store double %val5, ptr %A |
24 br label %inc | 24 br label %inc |
25 | 25 |
26 inc: | 26 inc: |
27 %j.inc = add nuw nsw i32 %j, 1 | 27 %j.inc = add nuw nsw i32 %j, 1 |
28 br label %for | 28 br label %for |
58 ; CHECK-NEXT: %val1 = fadd double 1.250000e+01, 1.250000e+01 | 58 ; CHECK-NEXT: %val1 = fadd double 1.250000e+01, 1.250000e+01 |
59 ; CHECK-NEXT: %val2 = fadd double %val1, %val1 | 59 ; CHECK-NEXT: %val2 = fadd double %val1, %val1 |
60 ; CHECK-NEXT: %val3 = fadd double %val2, %val2 | 60 ; CHECK-NEXT: %val3 = fadd double %val2, %val2 |
61 ; CHECK-NEXT: %val4 = fadd double %val3, %val3 | 61 ; CHECK-NEXT: %val4 = fadd double %val3, %val3 |
62 ; CHECK-NEXT: %val5 = fadd double %val4, %val4 | 62 ; CHECK-NEXT: %val5 = fadd double %val4, %val4 |
63 ; CHECK-NEXT: store double %val5, double* %A, align 8 | 63 ; CHECK-NEXT: store double %val5, ptr %A, align 8 |
64 ; CHECK-NEXT: } | 64 ; CHECK-NEXT: } |
65 ; CHECK-NEXT: } | 65 ; CHECK-NEXT: } |