Predication (computer architecture): Difference between revisions

Content deleted Content added
FrescoBot (talk | contribs)
m Bot: link specificity and minor changes
Line 67:
In the [[x86]] architecture, a family of conditional move instructions (<code>CMOV</code> and <code>FCMOV</code>) were added to the architecture by the [[Intel]] [[Pentium Pro]] (1995) processor. The <code>CMOV</code> instructions copied the contents of the source register to the destination register depending on a predicate supplied by the value of the flag register.
 
In the [[ARM architecture|ARM]] architecture, the original 32-bit instruction set provides a feature called ''conditional execution'' that allows most instructions to be predicated by one of 13 predicates that are based on some combination of the four condition codes set by the previous instruction. ARM's [[ARM architecture#Thumb|Thumb]] instruction set (1994) dropped conditional execution to reduce the size of instructions so they could fit in 16 bits, but its successor, [[ARM architecture#Thumb-2|Thumb-2]] (2003) overcame this problem by using a special instruction which has no effect other than to supply predicates for the following four instructions. The 64-bit instruction set introduced in ARMv8-A (2011) replaced conditional execution with conditional selection instructions.
 
Some [[SIMD]] instruction sets, like AVX2, have the ability to use a logical [[Mask (computing)|mask]] to conditionally load/store values to memory, a parallel form of the conditional move. This form of prediction is also used in [[single instruction, multiple threads]] GPU computing, where a computing core executes the code of a branch with unmet condition but does not commit the results computed in that execution path.