@@ -15434,28 +15434,29 @@ The behavior of '``llvm.memset.inline.*``' is equivalent to the behavior of
1543415434'``llvm.memset.*``', but the generated code is guaranteed not to call any
1543515435external functions.
1543615436
15437- .. _int_memset_pattern :
15437+ .. _int_experimental_memset_pattern :
1543815438
15439- '``llvm.memset.pattern``' Intrinsic
15439+ '``llvm.experimental. memset.pattern``' Intrinsic
1544015440^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1544115441
1544215442Syntax:
1544315443"""""""
1544415444
15445- This is an overloaded intrinsic. You can use ``llvm.memset.pattern`` on
15446- any integer bit width that is an integral number of bytes and for different
15447- address spaces. Not all targets support all bit widths however.
15445+ This is an overloaded intrinsic. You can use
15446+ ``llvm.experimental.memset.pattern`` on any integer bit width that is an
15447+ integral number of bytes and for different address spaces. Not all targets
15448+ support all bit widths however.
1544815449
1544915450::
1545015451
15451- declare void @llvm.memset.pattern.p0.i128.i64(ptr <dest>, i128 <val>,
15452- i64 <count>, i1 <isvolatile>)
15452+ declare void @llvm.experimental. memset.pattern.p0.i128.i64(ptr <dest>, i128 <val>,
15453+ i64 <count>, i1 <isvolatile>)
1545315454
1545415455Overview:
1545515456"""""""""
1545615457
15457- The '``llvm.memset.pattern.*``' intrinsics fill a block of memory with
15458- a particular value. This may be expanded to an inline loop, a sequence of
15458+ The '``llvm.experimental. memset.pattern.*``' intrinsics fill a block of memory
15459+ with a particular value. This may be expanded to an inline loop, a sequence of
1545915460stores, or a libcall depending on what is available for the target and the
1546015461expected performance and code size impact.
1546115462
@@ -15471,21 +15472,21 @@ The :ref:`align <attr_align>` parameter attribute can be provided
1547115472for the first argument.
1547215473
1547315474If the ``isvolatile`` parameter is ``true``, the
15474- ``llvm.memset.pattern`` call is a :ref:`volatile operation <volatile>`. The
15475- detailed access behavior is not very cleanly specified and it is unwise to
15476- depend on it.
15475+ ``llvm.experimental. memset.pattern`` call is a :ref:`volatile operation
15476+ <volatile>`. The detailed access behavior is not very cleanly specified and it
15477+ is unwise to depend on it.
1547715478
1547815479Semantics:
1547915480""""""""""
1548015481
15481- The '``llvm.memset.pattern*``' intrinsic fills memory starting at the
15482- destination location with the given pattern ``<count>`` times. If the argument
15483- is known to be aligned to some boundary, this can be specified as an attribute
15484- on the argument. The pattern fills will respect the endianness of the target:
15485- i.e. on little endian targets, the least significant byte of the pattern is
15486- first in memory, while the most significant byte is first in memory for big
15487- endian targets. The memory address is incremented by the allocation size of
15488- the type.
15482+ The '``llvm.experimental. memset.pattern*``' intrinsic fills memory starting at
15483+ the destination location with the given pattern ``<count>`` times. If the
15484+ argument is known to be aligned to some boundary, this can be specified as an
15485+ attribute on the argument. The pattern fills will respect the endianness of
15486+ the target: i.e. on little endian targets, the least significant byte of the
15487+ pattern is first in memory, while the most significant byte is first in memory
15488+ for big endian targets. The memory address is incremented by the allocation
15489+ size of the type.
1548915490
1549015491If ``<count>`` is 0, it is no-op modulo the behavior of attributes attached to
1549115492the arguments.
0 commit comments