Index: llvm/docs/LangRef.rst =================================================================== --- llvm/docs/LangRef.rst +++ llvm/docs/LangRef.rst @@ -9934,13 +9934,10 @@ The location of memory pointed to is loaded. If the value being loaded is of scalar type then the number of bytes read does not exceed the minimum number of bytes needed to hold all bits of the type. For -example, loading an ``i24`` reads at most three bytes. When loading a -value of a type like ``i20`` with a size that is not an integral number -of bytes, the result is undefined if the value was not originally -written using a store of the same type. -If the value being loaded is of aggregate type, the bytes that correspond to -padding may be accessed but are ignored, because it is impossible to observe -padding from the loaded aggregate value. +example, loading an ``i24`` reads at most three bytes. +If the value being loaded is of aggregate or non-byte-sized type, the bits that +correspond to padding may be accessed but are ignored, because it is impossible +to observe padding from the loaded value. If ```` is not a well-defined value, the behavior is undefined. Examples: @@ -10029,12 +10026,9 @@ location specified by the ```` operand. If ```` is of scalar type then the number of bytes written does not exceed the minimum number of bytes needed to hold all bits of the type. For -example, storing an ``i24`` writes at most three bytes. When writing a -value of a type like ``i20`` with a size that is not an integral number -of bytes, it is unspecified what happens to the extra bits that do not -belong to the type, but they will typically be overwritten. -If ```` is of aggregate type, padding is filled with -:ref:`undef `. +example, storing an ``i24`` writes at most three bytes. +If ```` is of aggregate or non-byte-sized type, padding is filled with +:ref:`poison `. If ```` is not a well-defined value, the behavior is undefined. Example: