.\"/*
.\" * Copyright (c) 2017, NVIDIA CORPORATION.  All rights reserved.
.\" *
.\" * Licensed under the Apache License, Version 2.0 (the "License");
.\" * you may not use this file except in compliance with the License.
.\" * You may obtain a copy of the License at
.\" *
.\" *     http://www.apache.org/licenses/LICENSE-2.0
.\" *
.\" * Unless required by applicable law or agreed to in writing, software
.\" * distributed under the License is distributed on an "AS IS" BASIS,
.\" * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
.\" * See the License for the specific language governing permissions and
.\" * limitations under the License.
.\" * 
.\" */


.IL BEGINATOMIC misc
Start marker for an ACC Atomic statement.
.AT spec trm
.IL ENDATOMIC misc
End marker for an ACC Atomic statement.
.AT spec trm
.IL BEGINATOMICREAD misc
Start marker for an ACC Atomic Read statement.
.AT spec trm
.IL ENDATOMICREAD misc
End marker for an ACC Atomic Read statement.
.AT spec trm
.IL BEGINATOMICWRITE misc
Start marker for an ACC Atomic Write statement.
.AT spec trm
.IL ENDATOMICWRITE misc
End marker for an ACC Atomic Write statement.
.AT spec trm
.IL BEGINATOMICCAPTURE misc
Start marker for an ACC Atomic Capture block.
.AT spec trm
.IL ENDATOMICCAPTURE misc
End marker for an ACC Atomic Capture block.
.AT spec trm
.IL MP_ATOMIC SMP
Begin atomic region.
Always matches a ENDATOMIC ilm.
.AT spec trm
.IL MP_ENDATOMIC SMP
End atomic region.
Always matches a MP_ATOMIC ilm.
.AT spec trm
.IL MP_ATOMICREAD SMP lnk stc
Atomic read 
.nf
lnk - link variable to be loaded
stc - memory order
.AT spec trm
.IL MP_ATOMICWRITE SMP lnk lnk stc
Atomic write
.nf
lnk1 - link to left hand side of atomic write
lnk2 - link to right hand side of atomic write
stc1 - memory order
.AT spec trm
.IL MP_ATOMICUPDATE SMP lnk lnk stc stc
Atomic write
.nf
lnk1 - link to left hand side of atomic update
lnk2 - link to rhs atomic update
stc1 - memory order
stc2 - aop
.AT spec trm
.IL MP_ATOMICCAPTURE SMP lnk lnk stc stc stc
Atomic write
.nf
lnk1 - link to left hand side of atomic capture
lnk2 - link to right hand side of capture statement
stc1 - memory order
stc2 - aop
stc4 - bit vector(unused): 
0x01 - set if we capture before update
0x02 - set if this is a capture & write
.AT spec trm
