diff --git a/llvm/docs/LangRef.rst b/llvm/docs/LangRef.rst index 9e78f317bd9ea..7a0b7f3254f41 100644 --- a/llvm/docs/LangRef.rst +++ b/llvm/docs/LangRef.rst @@ -11206,7 +11206,7 @@ If the ``load`` is marked as ``atomic``, it takes an extra :ref:`ordering Atomic loads produce :ref:`defined ` results when they may see multiple atomic stores. The type of the pointee must be an integer, pointer, or floating-point type whose bit width is a power of two greater than or equal to -eight and less than or equal to a target-specific size limit. ``align`` must be +eight. ``align`` must be explicitly specified on atomic loads. Note: if the alignment is not greater or equal to the size of the `` type, the atomic operation is likely to require a lock and have poor performance. ``!nontemporal`` does not have any @@ -11347,7 +11347,7 @@ If the ``store`` is marked as ``atomic``, it takes an extra :ref:`ordering Atomic loads produce :ref:`defined ` results when they may see multiple atomic stores. The type of the pointee must be an integer, pointer, or floating-point type whose bit width is a power of two greater than or equal to -eight and less than or equal to a target-specific size limit. ``align`` must be +eight. ``align`` must be explicitly specified on atomic stores. Note: if the alignment is not greater or equal to the size of the `` type, the atomic operation is likely to require a lock and have poor performance. ``!nontemporal`` does not have any @@ -11492,8 +11492,8 @@ There are three arguments to the '``cmpxchg``' instruction: an address to operate on, a value to compare to the value currently be at that address, and a new value to place at that address if the compared values are equal. The type of '' must be an integer or pointer type whose -bit width is a power of two greater than or equal to eight and less -than or equal to a target-specific size limit. '' and '' must +bit width is a power of two greater than or equal to eight. +'' and '' must have the same type, and the type of '' must be a pointer to that type. If the ``cmpxchg`` is marked as ``volatile``, then the optimizer is not allowed to modify the number or order of execution of @@ -11604,8 +11604,8 @@ operation. The operation must be one of the following keywords: - usub_sat For most of these operations, the type of '' must be an integer -type whose bit width is a power of two greater than or equal to eight -and less than or equal to a target-specific size limit. For xchg, this +type whose bit width is a power of two greater than or equal to eight. +For xchg, this may also be a floating point or a pointer type with the same size constraints as integers. For fadd/fsub/fmax/fmin, this must be a floating-point or fixed vector of floating-point type. The type of the '````'