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