[flang] Fix length handling in character kind implicit conversion (#74586)
[llvm-project.git] / polly / test / Simplify / redundant_region_scalar.ll
blob95a581ad6f577bb7f2aa30b7bbf09887ff1f34a8
1 ; RUN: opt %loadPolly -polly-import-jscop -polly-import-jscop-postfix=transformed -polly-print-simplify -disable-output < %s | FileCheck %s -match-full-lines
3 ; Remove redundant store (a store that writes the same value already
4 ; at the destination) in a region.
6 define void @redundant_region_scalar(i32 %n, ptr noalias nonnull %A) {
7 entry:
8   br label %for
10 for:
11   %j = phi i32 [0, %entry], [%j.inc, %inc]
12   %j.cmp = icmp slt i32 %j, %n
13   br i1 %j.cmp, label %bodyA, label %exit
16     bodyA:
17       %val1 = load double, ptr %A
18       br label %region_entry
20     region_entry:
21       %val2 = load double, ptr %A
22       %cmp = fcmp oeq double %val1, 0.0
23       br i1 %cmp, label %region_true, label %region_exit
25     region_true:
26       br label %region_exit
28     region_exit:
29       br label %bodyB
31     bodyB:
32       store double %val2, ptr %A
33       br label %inc
36 inc:
37   %j.inc = add nuw nsw i32 %j, 1
38   br label %for
40 exit:
41   br label %return
43 return:
44   ret void
48 ; CHECK: Statistics {
49 ; CHECK:     Redundant writes removed: 3
50 ; CHECK: }
52 ; CHECK:      After accesses {
53 ; CHECK-NEXT: }