Changes between Version 11 and Version 12 of GcnInstrsVop1
- Timestamp:
- 11/29/15 18:00:19 (8 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
GcnInstrsVop1
v11 v12 926 926 <td>48 (0x30)</td> 927 927 <td>368 (0x170)</td> 928 <td>V_FREXP_EXP_I32 </td>928 <td>V_FREXP_EXP_I32_F64</td> 929 929 </tr> 930 930 <tr> 931 931 <td>49 (0x31)</td> 932 932 <td>369 (0x171)</td> 933 <td>V_FREXP_MANT_F6 </td>933 <td>V_FREXP_MANT_F64</td> 934 934 </tr> 935 935 <tr> … … 941 941 <td>51 (0x33)</td> 942 942 <td>371 (0x173)</td> 943 <td>V_FREXP_EXP_I32 </td>943 <td>V_FREXP_EXP_I32_F32</td> 944 944 </tr> 945 945 <tr> 946 946 <td>52 (0x34)</td> 947 947 <td>372 (0x174)</td> 948 <td>V_FREXP_MANT_F3 </td>948 <td>V_FREXP_MANT_F32</td> 949 949 </tr> 950 950 <tr> … … 1091 1091 F += 1.0 1092 1092 VDST = F</code></p> 1093 <h4>V_CLREXCP</h4> 1094 <p>Opcode VOP1: 65 (0x41) for GCN 1.0/1.1; 53 (0x35) for GCN 1.2<br /> 1095 Opcode VOP3A: 449 (0x1c1) for GCN 1.0/1.1; 373 (0x175) for GCN 1.2<br /> 1096 Syntax: V_CLREXCP<br /> 1097 Description: Clear wave's exception state in SIMD. </p> 1093 1098 <h4>V_COS_F32</h4> 1094 1099 <p>Opcode VOP1: 54 (0x36) for GCN 1.0/1.1; 42 (0x2a) for GCN 1.2<br /> … … 1339 1344 <p>Opcode VOP1: 32 (0x20) for GCN 1.0/1.1; 27 (0x1b) for GCN 1.2<br /> 1340 1345 Opcode VOP3A: 416 (0x1a0) for GCN 1.0/1.1; 347 (0x15b) for GCN 1.2<br /> 1341 Syntax: V_FRACT VDST, SRC0<br />1346 Syntax: V_FRACT_F32 VDST, SRC0<br /> 1342 1347 Description: Get fractional from floating point value SRC0 and store it to VDST. 1343 1348 Fractional will be computed by subtracting floor(SRC0) from SRC0. … … 1349 1354 else 1350 1355 VDST = NAN * SIGN(SF)</code></p> 1356 <h4>V_FRACT_F64</h4> 1357 <p>Opcode VOP1: 62 (0x3e) for GCN 1.0/1.1; 51 (0x33) for GCN 1.2<br /> 1358 Opcode VOP3A: 446 (0x1be) for GCN 1.0/1.1; 371 (0x173) for GCN 1.2<br /> 1359 Syntax: V_FRACT_F64 VDST(2), SRC0(2)<br /> 1360 Description: Get fractional from double floating point value SRC0 and store it to VDST. 1361 Fractional will be computed by subtracting floor(SRC0) from SRC0. 1362 If SRC0 is infinity or NaN then NaN with proper sign is stored to VDST.<br /> 1363 Operation:<br /> 1364 <code>FLOAT SD = ASDOUBLE(SRC0) 1365 if (ABS(SD)!=NAN && SD!=-INF && SD!=INF) 1366 VDST = SD - FLOOR(ASDOUBLE(SD)) 1367 else 1368 VDST = NAN * SIGN(SD)</code></p> 1369 <h4>V_FREXP_EXP_I32_F32</h4> 1370 <p>Opcode VOP1: 63 (0x3f) for GCN 1.0/1.1; 51 (0x33) for GCN 1.2<br /> 1371 Opcode VOP3A: 447 (0x1bf) for GCN 1.0/1.1; 371 (0x173) for GCN 1.2<br /> 1372 Syntax: V_FREXP_EXP_I32_F32 VDST, SRC0<br /> 1373 Description: Get exponent minus 1 from single FP value SRC0, and store that exponent to VDST. 1374 This instruction realizes frexp function. 1375 If SRC0 is infinity or NAN then store -1 to VDST.<br /> 1376 Operation:<br /> 1377 <code>FLOAT SF = ASFLOAT(SRC0) 1378 if (ABS(SF) != INF || ABS(SF) != NAN) 1379 VDST = FREXP_EXP(SF) 1380 else 1381 VDST = -1</code></p> 1382 <h4>V_FREXP_EXP_I32_F64</h4> 1383 <p>Opcode VOP1: 60 (0x3c) for GCN 1.0/1.1; 48 (0x30) for GCN 1.2<br /> 1384 Opcode VOP3A: 444 (0x1bc) for GCN 1.0/1.1; 368 (0x170) for GCN 1.2<br /> 1385 Syntax: V_FREXP_EXP_I32_F64 VDST, SRC0(2)<br /> 1386 Description: Get exponent minus 1 from double FP value SRC0, and store that exponent to VDST. 1387 This instruction realizes frexp function. 1388 If SRC0 is infinity or NAN then store -1 to VDST.<br /> 1389 Operation:<br /> 1390 <code>DOUBLE SD = ASDOUBLE(SRC0) 1391 if (ABS(SD) != INF || ABS(SD) != NAN) 1392 VDST = FREXP_EXP(SD) 1393 else 1394 VDST = -1</code></p> 1395 <h4>V_FREXP_MANT_F32</h4> 1396 <p>Opcode VOP1: 64 (0x40) for GCN 1.0/1.1; 52 (0x34) for GCN 1.2<br /> 1397 Opcode VOP3A: 448 (0x1c0) for GCN 1.0/1.1; 372 (0x174) for GCN 1.2<br /> 1398 Syntax: V_FREXP_MANT_F32 VDST, SRC0<br /> 1399 Description: Get mantisa from double FP value SRC0, and store it to VDST. Mantisa includes 1400 sign of input. If SRC0 is infinity then store -NAN to VDST.<br /> 1401 Operation:<br /> 1402 <code>FLOAT SF = ASFLOAT(SRC0) 1403 if (ABS(SF) == INF) 1404 VDST = -NAN 1405 else if (ABS(SF) != NAN) 1406 VDST = FREXP_MANT(SF) * SIGN(SF) 1407 else 1408 VDST = NAN * SIGN(SF)</code></p> 1409 <h4>V_FREXP_MANT_F64</h4> 1410 <p>Opcode VOP1: 61 (0x3d) for GCN 1.0/1.1; 49 (0x31) for GCN 1.2<br /> 1411 Opcode VOP3A: 445 (0x1bd) for GCN 1.0/1.1; 369 (0x171) for GCN 1.2<br /> 1412 Syntax: V_FREXP_MANT_F64 VDST(2), SRC0(2)<br /> 1413 Description: Get mantisa from double FP value SRC0, and store it to VDST. Mantisa includes 1414 sign of input. If SRC0 is infinity then store -NAN to VDST.<br /> 1415 Operation:<br /> 1416 <code>DOUBLE SD = ASDOUBLE(SRC0) 1417 if (ABS(SD) == INF) 1418 VDST = -NAN 1419 else if (ABS(SD) != NAN) 1420 VDST = FREXP_MANT(SD) * SIGN(SD) 1421 else 1422 VDST = NAN * SIGN(SD)</code></p> 1351 1423 <h4>V_LOG_CLAMP_F32</h4> 1352 1424 <p>Opcode VOP1: 38 (0x26) for GCN 1.0/1.1<br /> … … 1370 1442 }</code></p> 1371 1443 <h4>V_LOG_F32</h4> 1372 <p>Opcode VOP1: 39 (0x27) for GCN 1.0/1.1; 33 (0x21) for GCN 2.0<br />1373 Opcode VOP3A: 422 (0x1a6) for GCN 1.0/1.1; 353 (0x161) for GCN 2.0<br />1444 <p>Opcode VOP1: 39 (0x27) for GCN 1.0/1.1; 33 (0x21) for GCN 1.2<br /> 1445 Opcode VOP3A: 422 (0x1a6) for GCN 1.0/1.1; 353 (0x161) for GCN 1.2<br /> 1374 1446 Syntax: V_LOG_F32 VDST, SRC0<br /> 1375 1447 Description: Approximate logarithm of base 2 from floating point value SRC0, and store result … … 1397 1469 Operation:<br /> 1398 1470 <code>VDST = SRC0</code></p> 1471 <h4>V_MOVRELD_B32</h4> 1472 <p>Opcode VOP1: 66 (0x42) for GCN 1.0/1.1; 54 (0x35) for GCN 1.2<br /> 1473 Opcode VOP3A: 450 (0x1c2) for GCN 1.0/1.1; 374 (0x175) for GCN 1.2<br /> 1474 Syntax: V_MOVRELD VDST, VSRC0<br /> 1475 Description: Move SRC0 to VGPR[VDST_NUMBER+M0].<br /> 1476 Operation:<br /> 1477 <code>VGPR[VDST_NUMBER+M0] = SRC0</code></p> 1478 <h4>V_MOVRELS_B32</h4> 1479 <p>Opcode VOP1: 67 (0x43) for GCN 1.0/1.1; 55 (0x36) for GCN 1.2<br /> 1480 Opcode VOP3A: 451 (0x1c3) for GCN 1.0/1.1; 375 (0x176) for GCN 1.2<br /> 1481 Syntax: V_MOVRELS VDST, VSRC0<br /> 1482 Description: Move SRC0[SRC0_NUMBER+M0] to VDST.<br /> 1483 Operation:<br /> 1484 <code>VDST = VGPR[SRC0_NUMBER+M0]</code></p> 1485 <h4>V_MOVRELSD_B32</h4> 1486 <p>Opcode VOP1: 67 (0x43) for GCN 1.0/1.1; 55 (0x36) for GCN 1.2<br /> 1487 Opcode VOP3A: 451 (0x1c3) for GCN 1.0/1.1; 375 (0x176) for GCN 1.2<br /> 1488 Syntax: V_MOVRELSD VDST, VSRC0<br /> 1489 Description: Move SRC0[SRC0_NUMBER+M0] to VGPR[VDST_NUMBER+M0].<br /> 1490 Operation:<br /> 1491 <code>VGPR[VDST_NUMBER+M0] = VGPR[SRC0_NUMBER+M0]</code></p> 1399 1492 <h4>V_NOP</h4> 1400 1493 <p>Opcode VOP1: 0 (0x0)<br /> … … 1431 1524 VDST = SIGN(ASDOUBLE(VDST)) * MAX_DOUBLE</code></p> 1432 1525 <h4>V_RCP_F32</h4> 1433 <p>Opcode VOP1: 42 (0x2a) for GCN 1.0/1.1; 34 (0x22) for GCN 2.0<br />1434 Opcode VOP3A: 426 (0x1aa) for GCN 1.0/1.1; 354 (0x162) for GCN 2.0<br />1526 <p>Opcode VOP1: 42 (0x2a) for GCN 1.0/1.1; 34 (0x22) for GCN 1.2<br /> 1527 Opcode VOP3A: 426 (0x1aa) for GCN 1.0/1.1; 354 (0x162) for GCN 1.2<br /> 1435 1528 Syntax: V_RCP_F32 VDST, SRC0<br /> 1436 1529 Description: Approximate reciprocal from floating point value SRC0 and store it to VDST. … … 1439 1532 <code>VDST = APPROX_RCP(ASFLOAT(SRC0))</code></p> 1440 1533 <h4>V_RCP_F64</h4> 1441 <p>Opcode VOP1: 47 (0x2f) for GCN 1.0/1.1; 37 (0x25) for GCN 2.0<br />1442 Opcode VOP3A: 431 (0x1af) for GCN 1.0/1.1; 357 (0x165) for GCN 2.0<br />1534 <p>Opcode VOP1: 47 (0x2f) for GCN 1.0/1.1; 37 (0x25) for GCN 1.2<br /> 1535 Opcode VOP3A: 431 (0x1af) for GCN 1.0/1.1; 357 (0x165) for GCN 1.2<br /> 1443 1536 Syntax: V_RCP_F64 VDST(2), SRC0(2)<br /> 1444 1537 Description: Approximate reciprocal from double FP value SRC0 and store it to VDST. … … 1447 1540 <code>VDST = APPROX_RCP(ASDOUBLE(SRC0))</code></p> 1448 1541 <h4>V_RCP_IFLAG_F32</h4> 1449 <p>Opcode VOP1: 43 (0x2b) for GCN 1.0/1.1; 35 (0x23) for GCN 2.0<br />1450 Opcode VOP3A: 427 (0x1ab) for GCN 1.0/1.1; 355 (0x163) for GCN 2.0<br />1542 <p>Opcode VOP1: 43 (0x2b) for GCN 1.0/1.1; 35 (0x23) for GCN 1.2<br /> 1543 Opcode VOP3A: 427 (0x1ab) for GCN 1.0/1.1; 355 (0x163) for GCN 1.2<br /> 1451 1544 Syntax: V_RCP_IFLAG_F32 VDST, SRC0<br /> 1452 1545 Description: Approximate reciprocal from floating point value SRC0 and store it to VDST. … … 1516 1609 VDST = MAX_DOUBLE</code></p> 1517 1610 <h4>V_RSQ_F32</h4> 1518 <p>Opcode VOP1: 46 (0x2e) for GCN 1.0/1.1; 36 (0x24) for GCN 2.0<br />1519 Opcode VOP3A: 430 (0x1ae) for GCN 1.0/1.1; 356 (0x164) for GCN 2.0<br />1611 <p>Opcode VOP1: 46 (0x2e) for GCN 1.0/1.1; 36 (0x24) for GCN 1.2<br /> 1612 Opcode VOP3A: 430 (0x1ae) for GCN 1.0/1.1; 356 (0x164) for GCN 1.2<br /> 1520 1613 Syntax: V_RSQ_F32 VDST, SRC0<br /> 1521 1614 Description: Approximate reciprocal square root from floating point value SRC0 and … … 1525 1618 <code>VDST = APPROX_RSQRT(ASFLOAT(SRC0))</code></p> 1526 1619 <h4>V_RSQ_F64</h4> 1527 <p>Opcode VOP1: 49 (0x31) for GCN 1.0/1.1; 38 (0x26) for GCN 2.0<br />1528 Opcode VOP3A: 433 (0x1b1) for GCN 1.0/1.1; 358 (0x166) for GCN 2.0<br />1620 <p>Opcode VOP1: 49 (0x31) for GCN 1.0/1.1; 38 (0x26) for GCN 1.2<br /> 1621 Opcode VOP3A: 433 (0x1b1) for GCN 1.0/1.1; 358 (0x166) for GCN 1.2<br /> 1529 1622 Syntax: V_RSQ_F64 VDST(2), SRC0(2)<br /> 1530 1623 Description: Approximate reciprocal square root from double floating point value SRC0 and