Changes between Version 19 and Version 20 of GcnInstrsDs


Ignore:
Timestamp:
05/30/16 16:00:22 (8 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GcnInstrsDs

    v19 v20  
    11831183UINT32 B = A + ((OFFSET&0x8000) ? \
    11841184            ((ADDR>>17) | ((ADDR>>16)&0x8000)) : \
    1185             ((OFFSET&07fff) | (OFFSET<<1)&0x8000)) * 4
     1185            ((OFFSET&0x7fff) | (OFFSET<<1)&0x8000)) * 4
    11861186UINT32* V = (UINT32*)(DS + A)
    11871187*V = *V + *(UINT32*)(DS + B) // atomic operation</code></p>
     
    11961196UINT32 B = (A + ((OFFSET&amp;0x8000) ? \
    11971197            ((ADDR&gt;&gt;17) | ((ADDR&gt;&gt;16)&amp;0x8000)) : \
    1198             ((OFFSET&amp;07fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4)&amp;~7
     1198            ((OFFSET&amp;0x7fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4)&amp;~7
    11991199UINT64* V = (UINT64*)(DS + A)
    12001200*V = *V + *(UINT64*)(DS + B) // atomic operation</code></p>
     
    12601260UINT32 B = A + ((OFFSET&amp;0x8000) ? \
    12611261            ((ADDR&gt;&gt;17) | ((ADDR&gt;&gt;16)&amp;0x8000)) : \
    1262             ((OFFSET&amp;07fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4
     1262            ((OFFSET&amp;0x7fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4
    12631263UINT32* V = (UINT32*)(DS + A)
    12641264*V = *V &amp; *(UINT32*)(DS + B) // atomic operation</code></p>
     
    12721272UINT32 B = (A + ((OFFSET&amp;0x8000) ? \
    12731273            ((ADDR&gt;&gt;17) | ((ADDR&gt;&gt;16)&amp;0x8000)) : \
    1274             ((OFFSET&amp;07fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4)&amp;~7
     1274            ((OFFSET&amp;0x7fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4)&amp;~7
    12751275UINT64* V = (UINT64*)(DS + A)
    12761276*V = *V &amp; *(UINT64*)(DS + B) // atomic operation</code></p>
     
    13981398UINT32 B = A + ((OFFSET&amp;0x8000) ? \
    13991399            ((ADDR&gt;&gt;17) | ((ADDR&gt;&gt;16)&amp;0x8000)) : \
    1400             ((OFFSET&amp;07fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4
     1400            ((OFFSET&amp;0x7fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4
    14011401UINT32* V = (UINT32*)(DS + A)
    14021402UINT32* VB = (UINT32*)(DS + B)
     
    14141414UINT32 B = (A + ((OFFSET&amp;0x8000) ? \
    14151415            ((ADDR&gt;&gt;17) | ((ADDR&gt;&gt;16)&amp;0x8000)) : \
    1416             ((OFFSET&amp;07fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4)&amp;~7
     1416            ((OFFSET&amp;0x7fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4)&amp;~7
    14171417UINT64* V = (UINT64*)(DS + A)
    14181418UINT64* VB = (UINT64*)(DS + B)
     
    14691469UINT32 B = A + ((OFFSET&amp;0x8000) ? \
    14701470            ((ADDR&gt;&gt;17) | ((ADDR&gt;&gt;16)&amp;0x8000)) : \
    1471             ((OFFSET&amp;07fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4
     1471            ((OFFSET&amp;0x7fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4
    14721472UINT32* V = (UINT32*)(DS + A)
    14731473*V = (*(UINT32*)(DS + B) &gt; *V) ? *V+1 : 0  // atomic operation</code></p>
     
    14831483UINT32 B = (A + ((OFFSET&amp;0x8000) ? \
    14841484            ((ADDR&gt;&gt;17) | ((ADDR&gt;&gt;16)&amp;0x8000)) : \
    1485             ((OFFSET&amp;07fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4)&amp;~7
     1485            ((OFFSET&amp;0x7fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4)&amp;~7
    14861486UINT64* V = (UINT64*)(DS + A)
    14871487*V = (*(UINT64*)(DS + B) &gt; *V) ? *V+1 : 0  // atomic operation</code></p>
     
    16041604UINT32 B = A + ((OFFSET&amp;0x8000) ? \
    16051605            ((ADDR&gt;&gt;17) | ((ADDR&gt;&gt;16)&amp;0x8000)) : \
    1606             ((OFFSET&amp;07fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4
     1606            ((OFFSET&amp;0x7fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4
    16071607FLOAT* V = (FLOAT*)(DS + A)
    16081608*V = MAX(*V, *(FLOAT*)(DS + B)) // atomic operation</code></p>
     
    16171617UINT32 B = (A + ((OFFSET&amp;0x8000) ? \
    16181618            ((ADDR&gt;&gt;17) | ((ADDR&gt;&gt;16)&amp;0x8000)) : \
    1619             ((OFFSET&amp;07fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4)&amp;~7
     1619            ((OFFSET&amp;0x7fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4)&amp;~7
    16201620DOUBLE* V = (DOUBLE*)(DS + A)
    16211621*V = MAX(*V, *(DOUBLE*)(DS + B)) // atomic operation</code></p>
     
    16301630UINT32 B = A + ((OFFSET&amp;0x8000) ? \
    16311631            ((ADDR&gt;&gt;17) | ((ADDR&gt;&gt;16)&amp;0x8000)) : \
    1632             ((OFFSET&amp;07fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4
     1632            ((OFFSET&amp;0x7fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4
    16331633INT32* V = (INT32*)(DS + A)
    16341634*V = MAX(*V, *(INT32*)(DS + B)) // atomic operation</code></p>
     
    16431643UINT32 B = (A + ((OFFSET&amp;0x8000) ? \
    16441644            ((ADDR&gt;&gt;17) | ((ADDR&gt;&gt;16)&amp;0x8000)) : \
    1645             ((OFFSET&amp;07fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4)&amp;~7
     1645            ((OFFSET&amp;0x7fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4)&amp;~7
    16461646INT64* V = (INT64*)(DS + A)
    16471647*V = MAX(*V, *(INT64*)(DS + B)) // atomic operation</code></p>
     
    16561656UINT32 B = A + ((OFFSET&amp;0x8000) ? \
    16571657            ((ADDR&gt;&gt;17) | ((ADDR&gt;&gt;16)&amp;0x8000)) : \
    1658             ((OFFSET&amp;07fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4
     1658            ((OFFSET&amp;0x7fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4
    16591659UINT32* V = (UINT32*)(DS + A)
    16601660*V = MAX(*V, *(UINT32*)(DS + B)) // atomic operation</code></p>
     
    16691669UINT32 B = (A + ((OFFSET&amp;0x8000) ? \
    16701670            ((ADDR&gt;&gt;17) | ((ADDR&gt;&gt;16)&amp;0x8000)) : \
    1671             ((OFFSET&amp;07fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4)&amp;~7
     1671            ((OFFSET&amp;0x7fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4)&amp;~7
    16721672UINT64* V = (UINT64*)(DS + A)
    16731673*V = MAX(*V, *(UINT64*)(DS + B)) // atomic operation</code></p>
     
    17901790UINT32 B = A + ((OFFSET&amp;0x8000) ? \
    17911791            ((ADDR&gt;&gt;17) | ((ADDR&gt;&gt;16)&amp;0x8000)) : \
    1792             ((OFFSET&amp;07fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4
     1792            ((OFFSET&amp;0x7fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4
    17931793FLOAT* V = (FLOAT*)(DS + A)
    17941794*V = MIN(*V, *(FLOAT*)(DS + B)) // atomic operation</code></p>
     
    18031803UINT32 B = (A + ((OFFSET&amp;0x8000) ? \
    18041804            ((ADDR&gt;&gt;17) | ((ADDR&gt;&gt;16)&amp;0x8000)) : \
    1805             ((OFFSET&amp;07fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4)&amp;~7
     1805            ((OFFSET&amp;0x7fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4)&amp;~7
    18061806DOUBLE* V = (DOUBLE*)(DS + A)
    18071807*V = MIN(*V, *(DOUBLE*)(DS + B)) // atomic operation</code></p>
     
    18161816UINT32 B = A + ((OFFSET&amp;0x8000) ? \
    18171817            ((ADDR&gt;&gt;17) | ((ADDR&gt;&gt;16)&amp;0x8000)) : \
    1818             ((OFFSET&amp;07fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4
     1818            ((OFFSET&amp;0x7fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4
    18191819INT32* V = (INT32*)(DS + A)
    18201820*V = MIN(*V, *(INT32*)(DS + B)) // atomic operation</code></p>
     
    18291829UINT32 B = A + (((OFFSET&amp;0x8000) ? \
    18301830            ((ADDR&gt;&gt;17) | ((ADDR&gt;&gt;16)&amp;0x8000)) : \
    1831             ((OFFSET&amp;07fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4)&amp;~7
     1831            ((OFFSET&amp;0x7fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4)&amp;~7
    18321832INT64* V = (INT64*)(DS + A)
    18331833*V = MIN(*V, *(INT64*)(DS + B)) // atomic operation</code></p>
     
    18421842UINT32 B = A + ((OFFSET&amp;0x8000) ? \
    18431843            ((ADDR&gt;&gt;17) | ((ADDR&gt;&gt;16)&amp;0x8000)) : \
    1844             ((OFFSET&amp;07fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4
     1844            ((OFFSET&amp;0x7fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4
    18451845UINT32* V = (UINT32*)(DS + A)
    18461846*V = MIN(*V, *(UINT32*)(DS + B)) // atomic operation</code></p>
     
    18551855UINT32 B = (A + ((OFFSET&amp;0x8000) ? \
    18561856            ((ADDR&gt;&gt;17) | ((ADDR&gt;&gt;16)&amp;0x8000)) : \
    1857             ((OFFSET&amp;07fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4)&amp;~7
     1857            ((OFFSET&amp;0x7fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4)&amp;~7
    18581858UINT64* V = (UINT64*)(DS + A)
    18591859*V = MIN(*V, *(UINT64*)(DS + B)) // atomic operation</code></p>
     
    19671967UINT32 B = A + ((OFFSET&amp;0x8000) ? \
    19681968            ((ADDR&gt;&gt;17) | ((ADDR&gt;&gt;16)&amp;0x8000)) : \
    1969             ((OFFSET&amp;07fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4
     1969            ((OFFSET&amp;0x7fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4
    19701970UINT32* V = (UINT32*)(DS + A)
    19711971*V = *V | *(UINT32*)(DS + B) // atomic operation</code></p>
     
    19791979UINT32 B = (A + ((OFFSET&amp;0x8000) ? \
    19801980            ((ADDR&gt;&gt;17) | ((ADDR&gt;&gt;16)&amp;0x8000)) : \
    1981             ((OFFSET&amp;07fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4)&amp;~7
     1981            ((OFFSET&amp;0x7fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4)&amp;~7
    19821982UINT64* V = (UINT64*)(DS + A)
    19831983*V = *V | *(UINT64*)(DS + B) // atomic operation</code></p>
     
    21012101UINT32 B = A + ((OFFSET&amp;0x8000) ? \
    21022102            ((ADDR&gt;&gt;17) | ((ADDR&gt;&gt;16)&amp;0x8000)) : \
    2103             ((OFFSET&amp;07fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4
     2103            ((OFFSET&amp;0x7fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4
    21042104UINT32* V = (UINT32*)(DS + A)
    21052105*V = *(UINT32*)(DS + B) - *V // atomic operation</code></p>
     
    21142114UINT32 B = (A + ((OFFSET&amp;0x8000) ? \
    21152115            ((ADDR&gt;&gt;17) | ((ADDR&gt;&gt;16)&amp;0x8000)) : \
    2116             ((OFFSET&amp;07fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4)&amp;~7
     2116            ((OFFSET&amp;0x7fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4)&amp;~7
    21172117UINT64* V = (UINT64*)(DS + A)
    21182118*V = *(UINT64*)(DS + B) - *V // atomic operation</code></p>
     
    21632163UINT32 B = A + ((OFFSET&amp;0x8000) ? \
    21642164            ((ADDR&gt;&gt;17) | ((ADDR&gt;&gt;16)&amp;0x8000)) : \
    2165             ((OFFSET&amp;07fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4
     2165            ((OFFSET&amp;0x7fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4
    21662166UINT32* V = (UINT32*)(DS + A)
    21672167*V = *V - *(UINT32*)(DS + B) // atomic operation</code></p>
     
    21762176UINT32 B = (A + ((OFFSET&amp;0x8000) ? \
    21772177            ((ADDR&gt;&gt;17) | ((ADDR&gt;&gt;16)&amp;0x8000)) : \
    2178             ((OFFSET&amp;07fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4)&amp;~7
     2178            ((OFFSET&amp;0x7fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4)&amp;~7
    21792179UINT64* V = (UINT64*)(DS + A)
    21802180*V = *V - *(UINT64*)(DS + B) // atomic operation</code></p>
     
    22802280UINT32 B = A + ((OFFSET&amp;0x8000) ? \
    22812281            ((ADDR&gt;&gt;17) | ((ADDR&gt;&gt;16)&amp;0x8000)) : \
    2282             ((OFFSET&amp;07fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4
     2282            ((OFFSET&amp;0x7fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4
    22832283*(UINT32*)(DS + A) = *(UINT32*)(DS + B)</code></p>
    22842284<h4>DS_WRITE_SRC2_B64</h4>
     
    22902290UINT32 B = (A + ((OFFSET&amp;0x8000) ? \
    22912291            ((ADDR&gt;&gt;17) | ((ADDR&gt;&gt;16)&amp;0x8000)) : \
    2292             ((OFFSET&amp;07fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4)&amp;~7
     2292            ((OFFSET&amp;0x7fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4)&amp;~7
    22932293*(UINT64*)(DS + A) = *(UINT64*)(DS + B)</code></p>
    22942294<h4>DS_WRITE2_B32</h4>
     
    24452445UINT32 B = A + ((OFFSET&amp;0x8000) ? \
    24462446            ((ADDR&gt;&gt;17) | ((ADDR&gt;&gt;16)&amp;0x8000)) : \
    2447             ((OFFSET&amp;07fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4
     2447            ((OFFSET&amp;0x7fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4
    24482448UINT32* V = (UINT32*)(DS + A)
    24492449*V = *V ^ *(UINT32*)(DS + B) // atomic operation</code></p>
     
    24572457UINT32 B = (A + ((OFFSET&amp;0x8000) ? \
    24582458            ((ADDR&gt;&gt;17) | ((ADDR&gt;&gt;16)&amp;0x8000)) : \
    2459             ((OFFSET&amp;07fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4)&amp;~7
     2459            ((OFFSET&amp;0x7fff) | (OFFSET&lt;&lt;1)&amp;0x8000)) * 4)&amp;~7
    24602460UINT64* V = (UINT64*)(DS + A)
    24612461*V = *V ^ *(UINT64*)(DS + B) // atomic operation</code></p>