| 
 | 1 | +! Check that the branch weights used by the array repacking  | 
 | 2 | +! are propagated all the way to LLVM IR:  | 
 | 3 | +! RUN: %flang_fc1 -frepack-arrays -emit-llvm %s -o - | FileCheck %s  | 
 | 4 | + | 
 | 5 | +! CHECK-LABEL: define void @test_(  | 
 | 6 | +! CHECK-SAME:      ptr [[TMP0:%.*]]) {  | 
 | 7 | +! CHECK:    [[TMP4:%.*]] = ptrtoint ptr [[TMP0]] to i64  | 
 | 8 | +! CHECK:    [[TMP5:%.*]] = icmp ne i64 [[TMP4]], 0  | 
 | 9 | +! CHECK:    br i1 [[TMP5]], label %[[BB6:.*]], label %[[BB46:.*]]  | 
 | 10 | +! CHECK:  [[BB6]]:  | 
 | 11 | +! CHECK:    [[TMP7:%.*]] = call i1 @_FortranAIsContiguous(ptr [[TMP0]])  | 
 | 12 | +! CHECK:    [[TMP8:%.*]] = icmp eq i1 [[TMP7]], false  | 
 | 13 | +! CHECK:    [[TMP13:%.*]] = and i1 [[TMP8]], [[TMP12:.*]]  | 
 | 14 | +! CHECK:    br i1 [[TMP13]], label %[[BB14:.*]], label %[[BB46]], !prof [[PROF2:![0-9]+]]  | 
 | 15 | +! CHECK:  [[BB14]]:  | 
 | 16 | +! CHECK:    call void @_FortranAShallowCopyDirect  | 
 | 17 | +! CHECK:    br label %[[BB46]]  | 
 | 18 | +! CHECK:  [[BB46]]:  | 
 | 19 | +! CHECK:    br i1 [[TMP5]], label %[[BB48:.*]], label %[[BB57:.*]]  | 
 | 20 | +! CHECK:  [[BB48]]:  | 
 | 21 | +! CHECK:    br i1 [[TMP55:.*]], label %[[BB56:.*]], label %[[BB57]], !prof [[PROF2]]  | 
 | 22 | +! CHECK:  [[BB56]]:  | 
 | 23 | +! CHECK:    call void @_FortranAShallowCopyDirect  | 
 | 24 | +! CHECK:    br label %[[BB57]]  | 
 | 25 | +! CHECK:  [[BB57]]:  | 
 | 26 | +! CHECK:    ret void  | 
 | 27 | +! CHECK: [[PROF2]] = !{!"branch_weights", i32 0, i32 1}  | 
 | 28 | +subroutine test(x)  | 
 | 29 | +  real :: x(:)  | 
 | 30 | +end subroutine test  | 
0 commit comments