brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · cbaf7bc Raw
83 lines · plain
1!RUN: %flang_fc1 -fopenmp -fopenmp-version=60 -emit-hlfir -mmlir -fdebug-dump-atomic-analysis %s -o /dev/null 2>&1 | FileCheck %s2 3subroutine f00(x)4  integer :: x, v5  !$omp atomic read6    v = x7end8 9!CHECK: Analysis {10!CHECK-NEXT:   atom: x11!CHECK-NEXT:   cond: <null>12!CHECK-NEXT:   op0 {13!CHECK-NEXT:     what: Read14!CHECK-NEXT:     assign: v=x15!CHECK-NEXT:   }16!CHECK-NEXT:   op1 {17!CHECK-NEXT:     what: None18!CHECK-NEXT:     assign: <null>19!CHECK-NEXT:   }20!CHECK-NEXT: }21 22 23subroutine f01(v)24  integer :: x, v25  !$omp atomic write26    x = v27end28 29!CHECK: Analysis {30!CHECK-NEXT:   atom: x31!CHECK-NEXT:   cond: <null>32!CHECK-NEXT:   op0 {33!CHECK-NEXT:     what: Write34!CHECK-NEXT:     assign: x=v35!CHECK-NEXT:   }36!CHECK-NEXT:   op1 {37!CHECK-NEXT:     what: None38!CHECK-NEXT:     assign: <null>39!CHECK-NEXT:   }40!CHECK-NEXT: }41 42 43subroutine f02(x, v)44  integer :: x, v45  !$omp atomic update46    x = x + v47end48 49!CHECK: Analysis {50!CHECK-NEXT:   atom: x51!CHECK-NEXT:   cond: <null>52!CHECK-NEXT:   op0 {53!CHECK-NEXT:     what: Update54!CHECK-NEXT:     assign: x=x+v55!CHECK-NEXT:   }56!CHECK-NEXT:   op1 {57!CHECK-NEXT:     what: None58!CHECK-NEXT:     assign: <null>59!CHECK-NEXT:   }60!CHECK-NEXT: }61 62 63subroutine f03(x, v)64  integer :: x, v, t65  !$omp atomic update capture66    t = x67    x = x + v68  !$omp end atomic69end70 71!CHECK: Analysis {72!CHECK-NEXT:   atom: x73!CHECK-NEXT:   cond: <null>74!CHECK-NEXT:   op0 {75!CHECK-NEXT:     what: Read76!CHECK-NEXT:     assign: t=x77!CHECK-NEXT:   }78!CHECK-NEXT:   op1 {79!CHECK-NEXT:     what: Update80!CHECK-NEXT:     assign: x=x+v81!CHECK-NEXT:   }82!CHECK-NEXT: }83