1//===-- PPCSchedule440.td - PPC 440 Scheduling Definitions -*- tablegen -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10// Primary reference: 11// PowerPC 440x6 Embedded Processor Core User's Manual. 12// IBM (as updated in) 2010. 13 14// The basic PPC 440 does not include a floating-point unit; the pipeline 15// timings here are constructed to match the FP2 unit shipped with the 16// PPC-440- and PPC-450-based Blue Gene (L and P) supercomputers. 17// References: 18// S. Chatterjee, et al. Design and exploitation of a high-performance 19// SIMD floating-point unit for Blue Gene/L. 20// IBM J. Res. & Dev. 49 (2/3) March/May 2005. 21// also: 22// Carlos Sosa and Brant Knudson. IBM System Blue Gene Solution: 23// Blue Gene/P Application Development. 24// IBM (as updated in) 2009. 25 26//===----------------------------------------------------------------------===// 27// Functional units on the PowerPC 440/450 chip sets 28// 29def IFTH1 : FuncUnit; // Fetch unit 1 30def IFTH2 : FuncUnit; // Fetch unit 2 31def PDCD1 : FuncUnit; // Decode unit 1 32def PDCD2 : FuncUnit; // Decode unit 2 33def DISS1 : FuncUnit; // Issue unit 1 34def DISS2 : FuncUnit; // Issue unit 2 35def LRACC : FuncUnit; // Register access and dispatch for 36 // the simple integer (J-pipe) and 37 // load/store (L-pipe) pipelines 38def IRACC : FuncUnit; // Register access and dispatch for 39 // the complex integer (I-pipe) pipeline 40def FRACC : FuncUnit; // Register access and dispatch for 41 // the floating-point execution (F-pipe) pipeline 42def IEXE1 : FuncUnit; // Execution stage 1 for the I pipeline 43def IEXE2 : FuncUnit; // Execution stage 2 for the I pipeline 44def IWB : FuncUnit; // Write-back unit for the I pipeline 45def JEXE1 : FuncUnit; // Execution stage 1 for the J pipeline 46def JEXE2 : FuncUnit; // Execution stage 2 for the J pipeline 47def JWB : FuncUnit; // Write-back unit for the J pipeline 48def AGEN : FuncUnit; // Address generation for the L pipeline 49def CRD : FuncUnit; // D-cache access for the L pipeline 50def LWB : FuncUnit; // Write-back unit for the L pipeline 51def FEXE1 : FuncUnit; // Execution stage 1 for the F pipeline 52def FEXE2 : FuncUnit; // Execution stage 2 for the F pipeline 53def FEXE3 : FuncUnit; // Execution stage 3 for the F pipeline 54def FEXE4 : FuncUnit; // Execution stage 4 for the F pipeline 55def FEXE5 : FuncUnit; // Execution stage 5 for the F pipeline 56def FEXE6 : FuncUnit; // Execution stage 6 for the F pipeline 57def FWB : FuncUnit; // Write-back unit for the F pipeline 58 59def LWARX_Hold : FuncUnit; // This is a pseudo-unit which is used 60 // to make sure that no lwarx/stwcx. 61 // instructions are issued while another 62 // lwarx/stwcx. is in the L pipe. 63 64def GPR_Bypass : Bypass; // The bypass for general-purpose regs. 65def FPR_Bypass : Bypass; // The bypass for floating-point regs. 66 67// Notes: 68// Instructions are held in the FRACC, LRACC and IRACC pipeline 69// stages until their source operands become ready. Exceptions: 70// - Store instructions will hold in the AGEN stage 71// - The integer multiply-accumulate instruction will hold in 72// the IEXE1 stage 73// 74// For most I-pipe operations, the result is available at the end of 75// the IEXE1 stage. Operations such as multiply and divide must 76// continue to execute in IEXE2 and IWB. Divide resides in IWB for 77// 33 cycles (multiply also calculates its result in IWB). For all 78// J-pipe instructions, the result is available 79// at the end of the JEXE1 stage. Loads have a 3-cycle latency 80// (data is not available until after the LWB stage). 81// 82// The L1 cache hit latency is four cycles for floating point loads 83// and three cycles for integer loads. 84// 85// The stwcx. instruction requires both the LRACC and the IRACC 86// dispatch stages. It must be issued from DISS0. 87// 88// All lwarx/stwcx. instructions hold in LRACC if another 89// uncommitted lwarx/stwcx. is in AGEN, CRD, or LWB. 90// 91// msync (a.k.a. sync) and mbar will hold in LWB until all load/store 92// resources are empty. AGEN and CRD are held empty until the msync/mbar 93// commits. 94// 95// Most floating-point instructions, computational and move, 96// have a 5-cycle latency. Divide takes longer (30 cycles). Instructions that 97// update the CR take 2 cycles. Stores take 3 cycles and, as mentioned above, 98// loads take 4 cycles (for L1 hit). 99 100// 101// This file defines the itinerary class data for the PPC 440 processor. 102// 103//===----------------------------------------------------------------------===// 104 105 106def PPC440Itineraries : ProcessorItineraries< 107 [IFTH1, IFTH2, PDCD1, PDCD2, DISS1, DISS2, FRACC, 108 IRACC, IEXE1, IEXE2, IWB, LRACC, JEXE1, JEXE2, JWB, AGEN, CRD, LWB, 109 FEXE1, FEXE2, FEXE3, FEXE4, FEXE5, FEXE6, FWB, LWARX_Hold], 110 [GPR_Bypass, FPR_Bypass], [ 111 InstrItinData<IntGeneral , [InstrStage<1, [IFTH1, IFTH2]>, 112 InstrStage<1, [PDCD1, PDCD2]>, 113 InstrStage<1, [DISS1, DISS2]>, 114 InstrStage<1, [IRACC, LRACC]>, 115 InstrStage<1, [IEXE1, JEXE1]>, 116 InstrStage<1, [IEXE2, JEXE2]>, 117 InstrStage<1, [IWB, JWB]>], 118 [6, 4, 4], 119 [GPR_Bypass, GPR_Bypass, GPR_Bypass]>, 120 InstrItinData<IntCompare , [InstrStage<1, [IFTH1, IFTH2]>, 121 InstrStage<1, [PDCD1, PDCD2]>, 122 InstrStage<1, [DISS1, DISS2]>, 123 InstrStage<1, [IRACC, LRACC]>, 124 InstrStage<1, [IEXE1, JEXE1]>, 125 InstrStage<1, [IEXE2, JEXE2]>, 126 InstrStage<1, [IWB, JWB]>], 127 [6, 4, 4], 128 [NoBypass, GPR_Bypass, GPR_Bypass]>, 129 InstrItinData<IntDivW , [InstrStage<1, [IFTH1, IFTH2]>, 130 InstrStage<1, [PDCD1, PDCD2]>, 131 InstrStage<1, [DISS1, DISS2]>, 132 InstrStage<1, [IRACC]>, 133 InstrStage<1, [IEXE1]>, 134 InstrStage<1, [IEXE2]>, 135 InstrStage<33, [IWB]>], 136 [40, 4, 4], 137 [NoBypass, GPR_Bypass, GPR_Bypass]>, 138 InstrItinData<IntMFFS , [InstrStage<1, [IFTH1, IFTH2]>, 139 InstrStage<1, [PDCD1, PDCD2]>, 140 InstrStage<1, [DISS1, DISS2]>, 141 InstrStage<1, [IRACC]>, 142 InstrStage<1, [IEXE1]>, 143 InstrStage<1, [IEXE2]>, 144 InstrStage<1, [IWB]>], 145 [7, 4, 4], 146 [GPR_Bypass, GPR_Bypass, GPR_Bypass]>, 147 InstrItinData<IntMTFSB0 , [InstrStage<1, [IFTH1, IFTH2]>, 148 InstrStage<1, [PDCD1, PDCD2]>, 149 InstrStage<1, [DISS1, DISS2]>, 150 InstrStage<1, [IRACC]>, 151 InstrStage<1, [IEXE1]>, 152 InstrStage<1, [IEXE2]>, 153 InstrStage<1, [IWB]>], 154 [7, 4, 4], 155 [GPR_Bypass, GPR_Bypass, GPR_Bypass]>, 156 InstrItinData<IntMulHW , [InstrStage<1, [IFTH1, IFTH2]>, 157 InstrStage<1, [PDCD1, PDCD2]>, 158 InstrStage<1, [DISS1, DISS2]>, 159 InstrStage<1, [IRACC]>, 160 InstrStage<1, [IEXE1]>, 161 InstrStage<1, [IEXE2]>, 162 InstrStage<1, [IWB]>], 163 [8, 4, 4], 164 [NoBypass, GPR_Bypass, GPR_Bypass]>, 165 InstrItinData<IntMulHWU , [InstrStage<1, [IFTH1, IFTH2]>, 166 InstrStage<1, [PDCD1, PDCD2]>, 167 InstrStage<1, [DISS1, DISS2]>, 168 InstrStage<1, [IRACC]>, 169 InstrStage<1, [IEXE1]>, 170 InstrStage<1, [IEXE2]>, 171 InstrStage<1, [IWB]>], 172 [8, 4, 4], 173 [NoBypass, GPR_Bypass, GPR_Bypass]>, 174 InstrItinData<IntMulLI , [InstrStage<1, [IFTH1, IFTH2]>, 175 InstrStage<1, [PDCD1, PDCD2]>, 176 InstrStage<1, [DISS1, DISS2]>, 177 InstrStage<1, [IRACC]>, 178 InstrStage<1, [IEXE1]>, 179 InstrStage<1, [IEXE2]>, 180 InstrStage<1, [IWB]>], 181 [8, 4, 4], 182 [NoBypass, GPR_Bypass, GPR_Bypass]>, 183 InstrItinData<IntRotate , [InstrStage<1, [IFTH1, IFTH2]>, 184 InstrStage<1, [PDCD1, PDCD2]>, 185 InstrStage<1, [DISS1, DISS2]>, 186 InstrStage<1, [IRACC, LRACC]>, 187 InstrStage<1, [IEXE1, JEXE1]>, 188 InstrStage<1, [IEXE2, JEXE2]>, 189 InstrStage<1, [IWB, JWB]>], 190 [6, 4, 4], 191 [GPR_Bypass, GPR_Bypass, GPR_Bypass]>, 192 InstrItinData<IntShift , [InstrStage<1, [IFTH1, IFTH2]>, 193 InstrStage<1, [PDCD1, PDCD2]>, 194 InstrStage<1, [DISS1, DISS2]>, 195 InstrStage<1, [IRACC, LRACC]>, 196 InstrStage<1, [IEXE1, JEXE1]>, 197 InstrStage<1, [IEXE2, JEXE2]>, 198 InstrStage<1, [IWB, JWB]>], 199 [6, 4, 4], 200 [GPR_Bypass, GPR_Bypass, GPR_Bypass]>, 201 InstrItinData<IntTrapW , [InstrStage<1, [IFTH1, IFTH2]>, 202 InstrStage<1, [PDCD1, PDCD2]>, 203 InstrStage<1, [DISS1, DISS2]>, 204 InstrStage<1, [IRACC]>, 205 InstrStage<1, [IEXE1]>, 206 InstrStage<1, [IEXE2]>, 207 InstrStage<1, [IWB]>], 208 [6, 4], 209 [GPR_Bypass, GPR_Bypass]>, 210 InstrItinData<BrB , [InstrStage<1, [IFTH1, IFTH2]>, 211 InstrStage<1, [PDCD1, PDCD2]>, 212 InstrStage<1, [DISS1, DISS2]>, 213 InstrStage<1, [IRACC]>, 214 InstrStage<1, [IEXE1]>, 215 InstrStage<1, [IEXE2]>, 216 InstrStage<1, [IWB]>], 217 [8, 4], 218 [NoBypass, GPR_Bypass]>, 219 InstrItinData<BrCR , [InstrStage<1, [IFTH1, IFTH2]>, 220 InstrStage<1, [PDCD1, PDCD2]>, 221 InstrStage<1, [DISS1, DISS2]>, 222 InstrStage<1, [IRACC]>, 223 InstrStage<1, [IEXE1]>, 224 InstrStage<1, [IEXE2]>, 225 InstrStage<1, [IWB]>], 226 [8, 4, 4], 227 [NoBypass, GPR_Bypass, GPR_Bypass]>, 228 InstrItinData<BrMCR , [InstrStage<1, [IFTH1, IFTH2]>, 229 InstrStage<1, [PDCD1, PDCD2]>, 230 InstrStage<1, [DISS1, DISS2]>, 231 InstrStage<1, [IRACC]>, 232 InstrStage<1, [IEXE1]>, 233 InstrStage<1, [IEXE2]>, 234 InstrStage<1, [IWB]>], 235 [8, 4, 4], 236 [NoBypass, GPR_Bypass, GPR_Bypass]>, 237 InstrItinData<BrMCRX , [InstrStage<1, [IFTH1, IFTH2]>, 238 InstrStage<1, [PDCD1, PDCD2]>, 239 InstrStage<1, [DISS1, DISS2]>, 240 InstrStage<1, [IRACC]>, 241 InstrStage<1, [IEXE1]>, 242 InstrStage<1, [IEXE2]>, 243 InstrStage<1, [IWB]>], 244 [8, 4, 4], 245 [NoBypass, GPR_Bypass, GPR_Bypass]>, 246 InstrItinData<LdStDCBA , [InstrStage<1, [IFTH1, IFTH2]>, 247 InstrStage<1, [PDCD1, PDCD2]>, 248 InstrStage<1, [DISS1, DISS2]>, 249 InstrStage<1, [LRACC]>, 250 InstrStage<1, [AGEN]>, 251 InstrStage<1, [CRD]>, 252 InstrStage<1, [LWB]>], 253 [8, 5], 254 [NoBypass, GPR_Bypass]>, 255 InstrItinData<LdStDCBF , [InstrStage<1, [IFTH1, IFTH2]>, 256 InstrStage<1, [PDCD1, PDCD2]>, 257 InstrStage<1, [DISS1, DISS2]>, 258 InstrStage<1, [LRACC]>, 259 InstrStage<1, [AGEN]>, 260 InstrStage<1, [CRD]>, 261 InstrStage<1, [LWB]>], 262 [8, 5], 263 [NoBypass, GPR_Bypass]>, 264 InstrItinData<LdStDCBI , [InstrStage<1, [IFTH1, IFTH2]>, 265 InstrStage<1, [PDCD1, PDCD2]>, 266 InstrStage<1, [DISS1, DISS2]>, 267 InstrStage<1, [LRACC]>, 268 InstrStage<1, [AGEN]>, 269 InstrStage<1, [CRD]>, 270 InstrStage<1, [LWB]>], 271 [8, 5], 272 [NoBypass, GPR_Bypass]>, 273 InstrItinData<LdStLoad , [InstrStage<1, [IFTH1, IFTH2]>, 274 InstrStage<1, [PDCD1, PDCD2]>, 275 InstrStage<1, [DISS1, DISS2]>, 276 InstrStage<1, [LRACC]>, 277 InstrStage<1, [AGEN]>, 278 InstrStage<1, [CRD]>, 279 InstrStage<2, [LWB]>], 280 [9, 5], 281 [GPR_Bypass, GPR_Bypass]>, 282 InstrItinData<LdStStore , [InstrStage<1, [IFTH1, IFTH2]>, 283 InstrStage<1, [PDCD1, PDCD2]>, 284 InstrStage<1, [DISS1, DISS2]>, 285 InstrStage<1, [LRACC]>, 286 InstrStage<1, [AGEN]>, 287 InstrStage<1, [CRD]>, 288 InstrStage<2, [LWB]>], 289 [8, 5], 290 [NoBypass, GPR_Bypass]>, 291 InstrItinData<LdStICBI , [InstrStage<1, [IFTH1, IFTH2]>, 292 InstrStage<1, [PDCD1, PDCD2]>, 293 InstrStage<1, [DISS1, DISS2]>, 294 InstrStage<1, [LRACC]>, 295 InstrStage<1, [AGEN]>, 296 InstrStage<1, [CRD]>, 297 InstrStage<1, [LWB]>], 298 [8, 5], 299 [NoBypass, GPR_Bypass]>, 300 InstrItinData<LdStUX , [InstrStage<1, [IFTH1, IFTH2]>, 301 InstrStage<1, [PDCD1, PDCD2]>, 302 InstrStage<1, [DISS1, DISS2]>, 303 InstrStage<1, [LRACC]>, 304 InstrStage<1, [AGEN]>, 305 InstrStage<1, [CRD]>, 306 InstrStage<1, [LWB]>], 307 [8, 5, 5], 308 [NoBypass, GPR_Bypass, GPR_Bypass]>, 309 InstrItinData<LdStLFD , [InstrStage<1, [IFTH1, IFTH2]>, 310 InstrStage<1, [PDCD1, PDCD2]>, 311 InstrStage<1, [DISS1, DISS2]>, 312 InstrStage<1, [LRACC]>, 313 InstrStage<1, [AGEN]>, 314 InstrStage<1, [CRD]>, 315 InstrStage<2, [LWB]>], 316 [9, 5, 5], 317 [NoBypass, GPR_Bypass, GPR_Bypass]>, 318 InstrItinData<LdStLFDU , [InstrStage<1, [IFTH1, IFTH2]>, 319 InstrStage<1, [PDCD1, PDCD2]>, 320 InstrStage<1, [DISS1, DISS2]>, 321 InstrStage<1, [LRACC]>, 322 InstrStage<1, [AGEN]>, 323 InstrStage<1, [CRD]>, 324 InstrStage<1, [LWB]>], 325 [9, 5, 5], 326 [NoBypass, GPR_Bypass, GPR_Bypass]>, 327 InstrItinData<LdStLHA , [InstrStage<1, [IFTH1, IFTH2]>, 328 InstrStage<1, [PDCD1, PDCD2]>, 329 InstrStage<1, [DISS1, DISS2]>, 330 InstrStage<1, [LRACC]>, 331 InstrStage<1, [AGEN]>, 332 InstrStage<1, [CRD]>, 333 InstrStage<1, [LWB]>], 334 [8, 5], 335 [NoBypass, GPR_Bypass]>, 336 InstrItinData<LdStLMW , [InstrStage<1, [IFTH1, IFTH2]>, 337 InstrStage<1, [PDCD1, PDCD2]>, 338 InstrStage<1, [DISS1, DISS2]>, 339 InstrStage<1, [LRACC]>, 340 InstrStage<1, [AGEN]>, 341 InstrStage<1, [CRD]>, 342 InstrStage<1, [LWB]>], 343 [8, 5], 344 [NoBypass, GPR_Bypass]>, 345 InstrItinData<LdStLWARX , [InstrStage<1, [IFTH1, IFTH2]>, 346 InstrStage<1, [PDCD1, PDCD2]>, 347 InstrStage<1, [DISS1]>, 348 InstrStage<1, [IRACC], 0>, 349 InstrStage<4, [LWARX_Hold], 0>, 350 InstrStage<1, [LRACC]>, 351 InstrStage<1, [AGEN]>, 352 InstrStage<1, [CRD]>, 353 InstrStage<1, [LWB]>], 354 [8, 5], 355 [NoBypass, GPR_Bypass]>, 356 InstrItinData<LdStSTD , [InstrStage<1, [IFTH1, IFTH2]>, 357 InstrStage<1, [PDCD1, PDCD2]>, 358 InstrStage<1, [DISS1, DISS2]>, 359 InstrStage<1, [LRACC]>, 360 InstrStage<1, [AGEN]>, 361 InstrStage<1, [CRD]>, 362 InstrStage<2, [LWB]>], 363 [8, 5], 364 [NoBypass, GPR_Bypass]>, 365 InstrItinData<LdStSTDCX , [InstrStage<1, [IFTH1, IFTH2]>, 366 InstrStage<1, [PDCD1, PDCD2]>, 367 InstrStage<1, [DISS1]>, 368 InstrStage<1, [IRACC], 0>, 369 InstrStage<4, [LWARX_Hold], 0>, 370 InstrStage<1, [LRACC]>, 371 InstrStage<1, [AGEN]>, 372 InstrStage<1, [CRD]>, 373 InstrStage<1, [LWB]>], 374 [8, 5], 375 [NoBypass, GPR_Bypass]>, 376 InstrItinData<LdStSTD , [InstrStage<1, [IFTH1, IFTH2]>, 377 InstrStage<1, [PDCD1, PDCD2]>, 378 InstrStage<1, [DISS1, DISS2]>, 379 InstrStage<1, [LRACC]>, 380 InstrStage<1, [AGEN]>, 381 InstrStage<1, [CRD]>, 382 InstrStage<2, [LWB]>], 383 [8, 5], 384 [NoBypass, GPR_Bypass]>, 385 InstrItinData<LdStSTDCX , [InstrStage<1, [IFTH1, IFTH2]>, 386 InstrStage<1, [PDCD1, PDCD2]>, 387 InstrStage<1, [DISS1]>, 388 InstrStage<1, [IRACC], 0>, 389 InstrStage<4, [LWARX_Hold], 0>, 390 InstrStage<1, [LRACC]>, 391 InstrStage<1, [AGEN]>, 392 InstrStage<1, [CRD]>, 393 InstrStage<1, [LWB]>], 394 [8, 5], 395 [NoBypass, GPR_Bypass]>, 396 InstrItinData<LdStSTWCX , [InstrStage<1, [IFTH1, IFTH2]>, 397 InstrStage<1, [PDCD1, PDCD2]>, 398 InstrStage<1, [DISS1]>, 399 InstrStage<1, [IRACC], 0>, 400 InstrStage<4, [LWARX_Hold], 0>, 401 InstrStage<1, [LRACC]>, 402 InstrStage<1, [AGEN]>, 403 InstrStage<1, [CRD]>, 404 InstrStage<1, [LWB]>], 405 [8, 5], 406 [NoBypass, GPR_Bypass]>, 407 InstrItinData<LdStSync , [InstrStage<1, [IFTH1, IFTH2]>, 408 InstrStage<1, [PDCD1, PDCD2]>, 409 InstrStage<1, [DISS1, DISS2]>, 410 InstrStage<1, [LRACC]>, 411 InstrStage<3, [AGEN], 1>, 412 InstrStage<2, [CRD], 1>, 413 InstrStage<1, [LWB]>]>, 414 InstrItinData<SprISYNC , [InstrStage<1, [IFTH1, IFTH2]>, 415 InstrStage<1, [PDCD1, PDCD2]>, 416 InstrStage<1, [DISS1, DISS2]>, 417 InstrStage<1, [FRACC], 0>, 418 InstrStage<1, [LRACC], 0>, 419 InstrStage<1, [IRACC]>, 420 InstrStage<1, [FEXE1], 0>, 421 InstrStage<1, [AGEN], 0>, 422 InstrStage<1, [JEXE1], 0>, 423 InstrStage<1, [IEXE1]>, 424 InstrStage<1, [FEXE2], 0>, 425 InstrStage<1, [CRD], 0>, 426 InstrStage<1, [JEXE2], 0>, 427 InstrStage<1, [IEXE2]>, 428 InstrStage<6, [FEXE3], 0>, 429 InstrStage<6, [LWB], 0>, 430 InstrStage<6, [JWB], 0>, 431 InstrStage<6, [IWB]>]>, 432 InstrItinData<SprMFSR , [InstrStage<1, [IFTH1, IFTH2]>, 433 InstrStage<1, [PDCD1, PDCD2]>, 434 InstrStage<1, [DISS1, DISS2]>, 435 InstrStage<1, [IRACC]>, 436 InstrStage<1, [IEXE1]>, 437 InstrStage<1, [IEXE2]>, 438 InstrStage<1, [IWB]>], 439 [6, 4], 440 [GPR_Bypass, GPR_Bypass]>, 441 InstrItinData<SprMTMSR , [InstrStage<1, [IFTH1, IFTH2]>, 442 InstrStage<1, [PDCD1, PDCD2]>, 443 InstrStage<1, [DISS1, DISS2]>, 444 InstrStage<1, [IRACC]>, 445 InstrStage<1, [IEXE1]>, 446 InstrStage<1, [IEXE2]>, 447 InstrStage<1, [IWB]>], 448 [6, 4], 449 [GPR_Bypass, GPR_Bypass]>, 450 InstrItinData<SprMTSR , [InstrStage<1, [IFTH1, IFTH2]>, 451 InstrStage<1, [PDCD1, PDCD2]>, 452 InstrStage<1, [DISS1, DISS2]>, 453 InstrStage<1, [IRACC]>, 454 InstrStage<1, [IEXE1]>, 455 InstrStage<1, [IEXE2]>, 456 InstrStage<3, [IWB]>], 457 [9, 4], 458 [NoBypass, GPR_Bypass]>, 459 InstrItinData<SprTLBSYNC , [InstrStage<1, [IFTH1, IFTH2]>, 460 InstrStage<1, [PDCD1, PDCD2]>, 461 InstrStage<1, [DISS1, DISS2]>, 462 InstrStage<1, [IRACC]>, 463 InstrStage<1, [IEXE1]>, 464 InstrStage<1, [IEXE2]>, 465 InstrStage<1, [IWB]>]>, 466 InstrItinData<SprMFCR , [InstrStage<1, [IFTH1, IFTH2]>, 467 InstrStage<1, [PDCD1, PDCD2]>, 468 InstrStage<1, [DISS1, DISS2]>, 469 InstrStage<1, [IRACC]>, 470 InstrStage<1, [IEXE1]>, 471 InstrStage<1, [IEXE2]>, 472 InstrStage<1, [IWB]>], 473 [8, 4], 474 [NoBypass, GPR_Bypass]>, 475 InstrItinData<SprMFMSR , [InstrStage<1, [IFTH1, IFTH2]>, 476 InstrStage<1, [PDCD1, PDCD2]>, 477 InstrStage<1, [DISS1, DISS2]>, 478 InstrStage<1, [IRACC]>, 479 InstrStage<1, [IEXE1]>, 480 InstrStage<1, [IEXE2]>, 481 InstrStage<1, [IWB]>], 482 [7, 4], 483 [GPR_Bypass, GPR_Bypass]>, 484 InstrItinData<SprMFSPR , [InstrStage<1, [IFTH1, IFTH2]>, 485 InstrStage<1, [PDCD1, PDCD2]>, 486 InstrStage<1, [DISS1, DISS2]>, 487 InstrStage<1, [IRACC]>, 488 InstrStage<1, [IEXE1]>, 489 InstrStage<1, [IEXE2]>, 490 InstrStage<3, [IWB]>], 491 [10, 4], 492 [NoBypass, GPR_Bypass]>, 493 InstrItinData<SprMFTB , [InstrStage<1, [IFTH1, IFTH2]>, 494 InstrStage<1, [PDCD1, PDCD2]>, 495 InstrStage<1, [DISS1, DISS2]>, 496 InstrStage<1, [IRACC]>, 497 InstrStage<1, [IEXE1]>, 498 InstrStage<1, [IEXE2]>, 499 InstrStage<3, [IWB]>], 500 [10, 4], 501 [NoBypass, GPR_Bypass]>, 502 InstrItinData<SprMTSPR , [InstrStage<1, [IFTH1, IFTH2]>, 503 InstrStage<1, [PDCD1, PDCD2]>, 504 InstrStage<1, [DISS1, DISS2]>, 505 InstrStage<1, [IRACC]>, 506 InstrStage<1, [IEXE1]>, 507 InstrStage<1, [IEXE2]>, 508 InstrStage<3, [IWB]>], 509 [10, 4], 510 [NoBypass, GPR_Bypass]>, 511 InstrItinData<SprMTSRIN , [InstrStage<1, [IFTH1, IFTH2]>, 512 InstrStage<1, [PDCD1, PDCD2]>, 513 InstrStage<1, [DISS1, DISS2]>, 514 InstrStage<1, [IRACC]>, 515 InstrStage<1, [IEXE1]>, 516 InstrStage<1, [IEXE2]>, 517 InstrStage<3, [IWB]>], 518 [10, 4], 519 [NoBypass, GPR_Bypass]>, 520 InstrItinData<SprRFI , [InstrStage<1, [IFTH1, IFTH2]>, 521 InstrStage<1, [PDCD1, PDCD2]>, 522 InstrStage<1, [DISS1, DISS2]>, 523 InstrStage<1, [IRACC]>, 524 InstrStage<1, [IEXE1]>, 525 InstrStage<1, [IEXE2]>, 526 InstrStage<1, [IWB]>], 527 [8, 4], 528 [NoBypass, GPR_Bypass]>, 529 InstrItinData<SprSC , [InstrStage<1, [IFTH1, IFTH2]>, 530 InstrStage<1, [PDCD1, PDCD2]>, 531 InstrStage<1, [DISS1, DISS2]>, 532 InstrStage<1, [IRACC]>, 533 InstrStage<1, [IEXE1]>, 534 InstrStage<1, [IEXE2]>, 535 InstrStage<1, [IWB]>], 536 [8, 4], 537 [NoBypass, GPR_Bypass]>, 538 InstrItinData<FPGeneral , [InstrStage<1, [IFTH1, IFTH2]>, 539 InstrStage<1, [PDCD1, PDCD2]>, 540 InstrStage<1, [DISS1, DISS2]>, 541 InstrStage<1, [FRACC]>, 542 InstrStage<1, [FEXE1]>, 543 InstrStage<1, [FEXE2]>, 544 InstrStage<1, [FEXE3]>, 545 InstrStage<1, [FEXE4]>, 546 InstrStage<1, [FEXE5]>, 547 InstrStage<1, [FEXE6]>, 548 InstrStage<1, [FWB]>], 549 [10, 4, 4], 550 [FPR_Bypass, FPR_Bypass, FPR_Bypass]>, 551 InstrItinData<FPCompare , [InstrStage<1, [IFTH1, IFTH2]>, 552 InstrStage<1, [PDCD1, PDCD2]>, 553 InstrStage<1, [DISS1, DISS2]>, 554 InstrStage<1, [FRACC]>, 555 InstrStage<1, [FEXE1]>, 556 InstrStage<1, [FEXE2]>, 557 InstrStage<1, [FEXE3]>, 558 InstrStage<1, [FEXE4]>, 559 InstrStage<1, [FEXE5]>, 560 InstrStage<1, [FEXE6]>, 561 InstrStage<1, [FWB]>], 562 [10, 4, 4], 563 [FPR_Bypass, FPR_Bypass, FPR_Bypass]>, 564 InstrItinData<FPDivD , [InstrStage<1, [IFTH1, IFTH2]>, 565 InstrStage<1, [PDCD1, PDCD2]>, 566 InstrStage<1, [DISS1, DISS2]>, 567 InstrStage<1, [FRACC]>, 568 InstrStage<1, [FEXE1]>, 569 InstrStage<1, [FEXE2]>, 570 InstrStage<1, [FEXE3]>, 571 InstrStage<1, [FEXE4]>, 572 InstrStage<1, [FEXE5]>, 573 InstrStage<1, [FEXE6]>, 574 InstrStage<25, [FWB]>], 575 [35, 4, 4], 576 [NoBypass, FPR_Bypass, FPR_Bypass]>, 577 InstrItinData<FPDivS , [InstrStage<1, [IFTH1, IFTH2]>, 578 InstrStage<1, [PDCD1, PDCD2]>, 579 InstrStage<1, [DISS1, DISS2]>, 580 InstrStage<1, [FRACC]>, 581 InstrStage<1, [FEXE1]>, 582 InstrStage<1, [FEXE2]>, 583 InstrStage<1, [FEXE3]>, 584 InstrStage<1, [FEXE4]>, 585 InstrStage<1, [FEXE5]>, 586 InstrStage<1, [FEXE6]>, 587 InstrStage<13, [FWB]>], 588 [23, 4, 4], 589 [NoBypass, FPR_Bypass, FPR_Bypass]>, 590 InstrItinData<FPFused , [InstrStage<1, [IFTH1, IFTH2]>, 591 InstrStage<1, [PDCD1, PDCD2]>, 592 InstrStage<1, [DISS1, DISS2]>, 593 InstrStage<1, [FRACC]>, 594 InstrStage<1, [FEXE1]>, 595 InstrStage<1, [FEXE2]>, 596 InstrStage<1, [FEXE3]>, 597 InstrStage<1, [FEXE4]>, 598 InstrStage<1, [FEXE5]>, 599 InstrStage<1, [FEXE6]>, 600 InstrStage<1, [FWB]>], 601 [10, 4, 4, 4], 602 [FPR_Bypass, FPR_Bypass, FPR_Bypass, FPR_Bypass]>, 603 InstrItinData<FPRes , [InstrStage<1, [IFTH1, IFTH2]>, 604 InstrStage<1, [PDCD1, PDCD2]>, 605 InstrStage<1, [DISS1, DISS2]>, 606 InstrStage<1, [FRACC]>, 607 InstrStage<1, [FEXE1]>, 608 InstrStage<1, [FEXE2]>, 609 InstrStage<1, [FEXE3]>, 610 InstrStage<1, [FEXE4]>, 611 InstrStage<1, [FEXE5]>, 612 InstrStage<1, [FEXE6]>, 613 InstrStage<1, [FWB]>], 614 [10, 4], 615 [FPR_Bypass, FPR_Bypass]> 616]>; 617