Changes between Version 5 and Version 6 of GcnInstrsVop1
- Timestamp:
- 11/28/15 15:00:15 (8 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
GcnInstrsVop1
v5 v6 1073 1073 <p>Alphabetically sorted instruction list:</p> 1074 1074 <h4>V_CVT_F16_F32</h4> 1075 <p>Opcode VOP 2: 10 (0xa)<br />1075 <p>Opcode VOP1: 10 (0xa)<br /> 1076 1076 Opcode VOP3A: 394 (0x18a) for GCN 1.0/1.1; 330 (0x14a) for GCN 1.2<br /> 1077 1077 Syntax: V_CVT_F16_F32 VDST, SRC0<br /> … … 1080 1080 If absolute value is too high, then store -/+infinity to VDST.<br /> 1081 1081 Operation:<br /> 1082 <code>VDST = RNDHALF(ASFLOAT(SRC0))</code></p>1082 <code>VDST = CVTHALF(ASFLOAT(SRC0))</code></p> 1083 1083 <h4>V_CVT_F32_F16</h4> 1084 <p>Opcode VOP 2: 11 (0xb)<br />1084 <p>Opcode VOP1: 11 (0xb)<br /> 1085 1085 Opcode VOP3A: 395 (0x18b) for GCN 1.0/1.1; 331 (0x14b) for GCN 1.2<br /> 1086 1086 Syntax: V_CVT_F32_F16 VDST, SRC0<br /> … … 1088 1088 Operation:<br /> 1089 1089 <code>VDST = (FLOAT)(ASHALF(SRC0))</code></p> 1090 <h4>V_CVT_F32_F64</h4> 1091 <p>Opcode VOP1: 15 (0xf)<br /> 1092 Opcode VOP3A: 399 (0x18f) for GCN 1.0/1.1; 335 (0x14f) for GCN 1.2<br /> 1093 Syntax: V_CVT_F32_F64 VDST, SRC0(2)<br /> 1094 Description: Convert double FP value to single floating point value with rounding from 1095 MODE register (single FP rounding mode), and store result to VDST. 1096 If absolute value is too high, then store -/+infinity to VDST.<br /> 1097 Operation:<br /> 1098 <code>VDST = CVTHALF(ASDOUBLE(SRC0))</code></p> 1090 1099 <h4>V_CVT_F32_I32</h4> 1091 <p>Opcode VOP 2: 5 (0x5)<br />1100 <p>Opcode VOP1: 5 (0x5)<br /> 1092 1101 Opcode VOP3A: 389 (0x185) for GCN 1.0/1.1; 325 (0x145) for GCN 1.2<br /> 1093 1102 Syntax: V_CVT_F32_I32 VDST, SRC0<br /> … … 1096 1105 <code>VDST = (FLOAT)(INT32)SRC0</code></p> 1097 1106 <h4>V_CVT_F32_U32</h4> 1098 <p>Opcode VOP 2: 6 (0x6)<br />1107 <p>Opcode VOP1: 6 (0x6)<br /> 1099 1108 Opcode VOP3A: 390 (0x186) for GCN 1.0/1.1; 326 (0x146) for GCN 1.2<br /> 1100 1109 Syntax: V_CVT_F32_U32 VDST, SRC0<br /> … … 1102 1111 Operation:<br /> 1103 1112 <code>VDST = (FLOAT)SRC0</code></p> 1113 <h4>V_CVT_F32_UBYTE0</h4> 1114 <p>Opcode VOP1: 17 (0x11)<br /> 1115 Opcode VOP3A: 401 (0x191) for GCN 1.0/1.1; 337 (0x151) for GCN 1.2<br /> 1116 Syntax: V_CVT_F32_UBYTE0 VDST, SRC0<br /> 1117 Description: Convert the first unsigned 8-bit byte from SRC0 to single FP value, 1118 and store it to VDST.<br /> 1119 Operation:<br /> 1120 <code>VDST = (FLOAT)(SRC0 & 0xff)</code></p> 1121 <h4>V_CVT_F32_UBYTE1</h4> 1122 <p>Opcode VOP1: 18 (0x12)<br /> 1123 Opcode VOP3A: 402 (0x192) for GCN 1.0/1.1; 338 (0x152) for GCN 1.2<br /> 1124 Syntax: V_CVT_F32_UBYTE1 VDST, SRC0<br /> 1125 Description: Convert the second unsigned 8-bit byte from SRC0 to single FP value, 1126 and store it to VDST.<br /> 1127 Operation:<br /> 1128 <code>VDST = (FLOAT)((SRC0>>8) & 0xff)</code></p> 1129 <h4>V_CVT_F32_UBYTE2</h4> 1130 <p>Opcode VOP1: 19 (0x13)<br /> 1131 Opcode VOP3A: 403 (0x193) for GCN 1.0/1.1; 339 (0x153) for GCN 1.2<br /> 1132 Syntax: V_CVT_F32_UBYTE2 VDST, SRC0<br /> 1133 Description: Convert the third unsigned 8-bit byte from SRC0 to single FP value, 1134 and store it to VDST.<br /> 1135 Operation:<br /> 1136 <code>VDST = (FLOAT)((SRC0>>16) & 0xff)</code></p> 1137 <h4>V_CVT_F32_UBYTE3</h4> 1138 <p>Opcode VOP1: 20 (0x14)<br /> 1139 Opcode VOP3A: 404 (0x194) for GCN 1.0/1.1; 340 (0x154) for GCN 1.2<br /> 1140 Syntax: V_CVT_F32_UBYTE3 VDST, SRC0<br /> 1141 Description: Convert the fourth unsigned 8-bit byte from SRC0 to single FP value, 1142 and store it to VDST.<br /> 1143 Operation:<br /> 1144 <code>VDST = (FLOAT)(SRC0>>24)</code></p> 1145 <h4>V_CVT_F64_F32</h4> 1146 <p>Opcode VOP1: 16 (0x10)<br /> 1147 Opcode VOP3A: 400 (0x190) for GCN 1.0/1.1; 336 (0x150) for GCN 1.2<br /> 1148 Syntax: V_CVT_F64_F32 VDST(2), SRC0<br /> 1149 Description: Convert single FP value to double FP value, and store result to VDST.<br /> 1150 Operation:<br /> 1151 <code>VDST = (DOUBLE)(ASFLOAT(SRC0))</code></p> 1104 1152 <h4>V_CVT_F64_I32</h4> 1105 <p>Opcode VOP 2: 4 (0x4)<br />1153 <p>Opcode VOP1: 4 (0x4)<br /> 1106 1154 Opcode VOP3A: 388 (0x184) for GCN 1.0/1.1; 324 (0x144) for GCN 1.2<br /> 1107 1155 Syntax: V_CVT_F64_I32 VDST(2), SRC0<br /> … … 1110 1158 <code>VDST = (DOUBLE)(INT32)SRC0</code></p> 1111 1159 <h4>V_CVT_FLR_I32_F32</h4> 1112 <p>Opcode VOP 2: 13 (0xd)<br />1160 <p>Opcode VOP1: 13 (0xd)<br /> 1113 1161 Opcode VOP3A: 397 (0x18d) for GCN 1.0/1.1; 333 (0x14d) for GCN 1.2<br /> 1114 1162 Syntax: V_CVT_FLR_I32_F32 VDST, SRC0<br /> … … 1123 1171 VDST = (INT32)SRC0>=0 ? 2147483647 : -2147483648</code></p> 1124 1172 <h4>V_CVT_I32_F32</h4> 1125 <p>Opcode VOP 2: 8 (0x8)<br />1173 <p>Opcode VOP1: 8 (0x8)<br /> 1126 1174 Opcode VOP3A: 392 (0x188) for GCN 1.0/1.1; 328 (0x148) for GCN 1.2<br /> 1127 1175 Syntax: V_CVT_I32_F32 VDST, SRC0<br /> … … 1135 1183 VDST = (INT32)MAX(MIN(RNDTZINT(ASFLOAT(SRC0)), 2147483647.0), -2147483648.0)</code></p> 1136 1184 <h4>V_CVT_I32_F64</h4> 1137 <p>Opcode VOP 2: 3 (0x3)<br />1185 <p>Opcode VOP1: 3 (0x3)<br /> 1138 1186 Opcode VOP3A: 387 (0x183) for GCN 1.0/1.1; 323 (0x143) for GCN 1.2<br /> 1139 1187 Syntax: V_CVT_I32_F64 VDST, SRC0(2)<br /> … … 1146 1194 if (SRC0!=NAN) 1147 1195 VDST = (INT32)MAX(MIN(RNDTZINT(ASDOUBLE(SRC0)), 2147483647.0), -2147483648.0)</code></p> 1196 <h4>V_CVT_OFF_F32_I4</h4> 1197 <p>Opcode VOP1: 14 (0xe)<br /> 1198 Opcode VOP3A: 398 (0x18e) for GCN 1.0/1.1; 334 (0x14e) for GCN 1.2<br /> 1199 Syntax: V_CVT_OFF_F32_I4 VDST, SRC0<br /> 1200 Description: Convert 4-bit signed value from SRC0 to floating point value, normalize that 1201 value to range -0.5:0.4375 and store result to VDST.<br /> 1202 Operation:<br /> 1203 <code>VDST = (FLOAT)((SRC0 & 0xf) ^ 8) / 16.0 - 0.5</code></p> 1148 1204 <h4>V_CVT_RPI_I32_F32</h4> 1149 <p>Opcode VOP 2: 12 (0xc)<br />1205 <p>Opcode VOP1: 12 (0xc)<br /> 1150 1206 Opcode VOP3A: 396 (0x18c) for GCN 1.0/1.1; 332 (0x14c) for GCN 1.2<br /> 1151 1207 Syntax: V_CVT_RPI_I32_F32 VDST, SRC0<br /> … … 1160 1216 VDST = (INT32)SRC0>=0 ? 2147483647 : -2147483648</code></p> 1161 1217 <h4>V_CVT_U32_F32</h4> 1162 <p>Opcode VOP 2: 7 (0x7)<br />1218 <p>Opcode VOP1: 7 (0x7)<br /> 1163 1219 Opcode VOP3A: 391 (0x187) for GCN 1.0/1.1; 327 (0x147) for GCN 1.2<br /> 1164 1220 Syntax: V_CVT_U32_F32 VDST, SRC0<br /> … … 1172 1228 VDST = (UINT32)MIN(RNDTZINT(ASFLOAT(SRC0)), 4294967295.0)</code></p> 1173 1229 <h4>V_MOV_FED_B32</h4> 1174 <p>Opcode VOP 2: 9 (0x9)<br />1230 <p>Opcode VOP1: 9 (0x9)<br /> 1175 1231 Opcode VOP3A: 393 (0x189) for GCN 1.0/1.1; 329 (0x149) for GCN 1.2<br /> 1176 1232 Syntax: V_MOV_FED_B32 VDST, SRC0<br /> … … 1178 1234 (???).</p> 1179 1235 <h4>V_MOV_B32</h4> 1180 <p>Opcode VOP 2: 1 (0x1)<br />1236 <p>Opcode VOP1: 1 (0x1)<br /> 1181 1237 Opcode VOP3A: 385 (0x181) for GCN 1.0/1.1; 321 (0x141) for GCN 1.2<br /> 1182 1238 Syntax: V_MOV_B32 VDST, SRC0<br /> … … 1185 1241 <code>VDST = SRC0</code></p> 1186 1242 <h4>V_NOP</h4> 1187 <p>Opcode VOP 2: 0 (0x0)<br />1243 <p>Opcode VOP1: 0 (0x0)<br /> 1188 1244 Opcode VOP3A: 384 (0x180) for GCN 1.0/1.1; 320 (0x140) for GCN 1.2<br /> 1189 1245 Syntax: V_NOP<br /> 1190 1246 Description: Do nothing.</p> 1191 1247 <h4>V_READFIRSTLANE_B32</h4> 1192 <p>Opcode VOP 2: 2 (0x2)<br />1248 <p>Opcode VOP1: 2 (0x2)<br /> 1193 1249 Opcode VOP3A: 386 (0x182) for GCN 1.0/1.1; 322 (0x142) for GCN 1.2<br /> 1194 1250 Syntax: V_READFIRSTLANE_B32 SDST, VSRC0<br />