1*9880d681SAndroid Build Coastguard Worker//=- AArch64SchedA57WriteRes.td - ARM Cortex-A57 Write Res ---*- tablegen -*-=// 2*9880d681SAndroid Build Coastguard Worker// 3*9880d681SAndroid Build Coastguard Worker// The LLVM Compiler Infrastructure 4*9880d681SAndroid Build Coastguard Worker// 5*9880d681SAndroid Build Coastguard Worker// This file is distributed under the University of Illinois Open Source 6*9880d681SAndroid Build Coastguard Worker// License. See LICENSE.TXT for details. 7*9880d681SAndroid Build Coastguard Worker// 8*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 9*9880d681SAndroid Build Coastguard Worker// 10*9880d681SAndroid Build Coastguard Worker// Contains all of the Cortex-A57 specific SchedWriteRes types. The approach 11*9880d681SAndroid Build Coastguard Worker// below is to define a generic SchedWriteRes for every combination of 12*9880d681SAndroid Build Coastguard Worker// latency and microOps. The naming conventions is to use a prefix, one field 13*9880d681SAndroid Build Coastguard Worker// for latency, and one or more microOp count/type designators. 14*9880d681SAndroid Build Coastguard Worker// Prefix: A57Write 15*9880d681SAndroid Build Coastguard Worker// Latency: #cyc 16*9880d681SAndroid Build Coastguard Worker// MicroOp Count/Types: #(B|I|M|L|S|X|W|V) 17*9880d681SAndroid Build Coastguard Worker// 18*9880d681SAndroid Build Coastguard Worker// e.g. A57Write_6cyc_1I_6S_4V means the total latency is 6 and there are 19*9880d681SAndroid Build Coastguard Worker// 11 micro-ops to be issued down one I pipe, six S pipes and four V pipes. 20*9880d681SAndroid Build Coastguard Worker// 21*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 22*9880d681SAndroid Build Coastguard Worker 23*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 24*9880d681SAndroid Build Coastguard Worker// Define Generic 1 micro-op types 25*9880d681SAndroid Build Coastguard Worker 26*9880d681SAndroid Build Coastguard Workerdef A57Write_5cyc_1L : SchedWriteRes<[A57UnitL]> { let Latency = 5; } 27*9880d681SAndroid Build Coastguard Workerdef A57Write_5cyc_1M : SchedWriteRes<[A57UnitM]> { let Latency = 5; } 28*9880d681SAndroid Build Coastguard Workerdef A57Write_5cyc_1V : SchedWriteRes<[A57UnitV]> { let Latency = 5; } 29*9880d681SAndroid Build Coastguard Workerdef A57Write_5cyc_1W : SchedWriteRes<[A57UnitW]> { let Latency = 5; } 30*9880d681SAndroid Build Coastguard Workerdef A57Write_10cyc_1V : SchedWriteRes<[A57UnitV]> { let Latency = 10; } 31*9880d681SAndroid Build Coastguard Workerdef A57Write_18cyc_1X : SchedWriteRes<[A57UnitX]> { let Latency = 18; 32*9880d681SAndroid Build Coastguard Worker let ResourceCycles = [18]; } 33*9880d681SAndroid Build Coastguard Workerdef A57Write_19cyc_1M : SchedWriteRes<[A57UnitM]> { let Latency = 19; 34*9880d681SAndroid Build Coastguard Worker let ResourceCycles = [19]; } 35*9880d681SAndroid Build Coastguard Workerdef A57Write_1cyc_1B : SchedWriteRes<[A57UnitB]> { let Latency = 1; } 36*9880d681SAndroid Build Coastguard Workerdef A57Write_1cyc_1I : SchedWriteRes<[A57UnitI]> { let Latency = 1; } 37*9880d681SAndroid Build Coastguard Workerdef A57Write_1cyc_1S : SchedWriteRes<[A57UnitS]> { let Latency = 1; } 38*9880d681SAndroid Build Coastguard Workerdef A57Write_2cyc_1M : SchedWriteRes<[A57UnitM]> { let Latency = 2; } 39*9880d681SAndroid Build Coastguard Workerdef A57Write_32cyc_1X : SchedWriteRes<[A57UnitX]> { let Latency = 32; 40*9880d681SAndroid Build Coastguard Worker let ResourceCycles = [32]; } 41*9880d681SAndroid Build Coastguard Workerdef A57Write_35cyc_1M : SchedWriteRes<[A57UnitM]> { let Latency = 35; 42*9880d681SAndroid Build Coastguard Worker let ResourceCycles = [35]; } 43*9880d681SAndroid Build Coastguard Workerdef A57Write_3cyc_1M : SchedWriteRes<[A57UnitM]> { let Latency = 3; } 44*9880d681SAndroid Build Coastguard Workerdef A57Write_3cyc_1V : SchedWriteRes<[A57UnitV]> { let Latency = 3; } 45*9880d681SAndroid Build Coastguard Workerdef A57Write_3cyc_1W : SchedWriteRes<[A57UnitW]> { let Latency = 3; } 46*9880d681SAndroid Build Coastguard Workerdef A57Write_3cyc_1X : SchedWriteRes<[A57UnitX]> { let Latency = 3; } 47*9880d681SAndroid Build Coastguard Workerdef A57Write_4cyc_1L : SchedWriteRes<[A57UnitL]> { let Latency = 4; } 48*9880d681SAndroid Build Coastguard Workerdef A57Write_4cyc_1X : SchedWriteRes<[A57UnitX]> { let Latency = 4; } 49*9880d681SAndroid Build Coastguard Workerdef A57Write_9cyc_1V : SchedWriteRes<[A57UnitV]> { let Latency = 9; } 50*9880d681SAndroid Build Coastguard Workerdef A57Write_6cyc_1M : SchedWriteRes<[A57UnitM]> { let Latency = 6; } 51*9880d681SAndroid Build Coastguard Workerdef A57Write_6cyc_1V : SchedWriteRes<[A57UnitV]> { let Latency = 6; } 52*9880d681SAndroid Build Coastguard Worker 53*9880d681SAndroid Build Coastguard Worker 54*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 55*9880d681SAndroid Build Coastguard Worker// Define Generic 2 micro-op types 56*9880d681SAndroid Build Coastguard Worker 57*9880d681SAndroid Build Coastguard Workerdef A57Write_64cyc_2X : SchedWriteRes<[A57UnitX, A57UnitX]> { 58*9880d681SAndroid Build Coastguard Worker let Latency = 64; 59*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 2; 60*9880d681SAndroid Build Coastguard Worker let ResourceCycles = [32, 32]; 61*9880d681SAndroid Build Coastguard Worker} 62*9880d681SAndroid Build Coastguard Workerdef A57Write_6cyc_1I_1L : SchedWriteRes<[A57UnitI, 63*9880d681SAndroid Build Coastguard Worker A57UnitL]> { 64*9880d681SAndroid Build Coastguard Worker let Latency = 6; 65*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 2; 66*9880d681SAndroid Build Coastguard Worker} 67*9880d681SAndroid Build Coastguard Workerdef A57Write_7cyc_1V_1X : SchedWriteRes<[A57UnitV, 68*9880d681SAndroid Build Coastguard Worker A57UnitX]> { 69*9880d681SAndroid Build Coastguard Worker let Latency = 7; 70*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 2; 71*9880d681SAndroid Build Coastguard Worker} 72*9880d681SAndroid Build Coastguard Workerdef A57Write_8cyc_1L_1V : SchedWriteRes<[A57UnitL, 73*9880d681SAndroid Build Coastguard Worker A57UnitV]> { 74*9880d681SAndroid Build Coastguard Worker let Latency = 8; 75*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 2; 76*9880d681SAndroid Build Coastguard Worker} 77*9880d681SAndroid Build Coastguard Workerdef A57Write_9cyc_2V : SchedWriteRes<[A57UnitV, A57UnitV]> { 78*9880d681SAndroid Build Coastguard Worker let Latency = 9; 79*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 2; 80*9880d681SAndroid Build Coastguard Worker} 81*9880d681SAndroid Build Coastguard Workerdef A57Write_8cyc_2X : SchedWriteRes<[A57UnitX, A57UnitX]> { 82*9880d681SAndroid Build Coastguard Worker let Latency = 8; 83*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 2; 84*9880d681SAndroid Build Coastguard Worker} 85*9880d681SAndroid Build Coastguard Workerdef A57Write_6cyc_2L : SchedWriteRes<[A57UnitL, A57UnitL]> { 86*9880d681SAndroid Build Coastguard Worker let Latency = 6; 87*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 2; 88*9880d681SAndroid Build Coastguard Worker} 89*9880d681SAndroid Build Coastguard Workerdef A57Write_6cyc_2V : SchedWriteRes<[A57UnitV, A57UnitV]> { 90*9880d681SAndroid Build Coastguard Worker let Latency = 6; 91*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 2; 92*9880d681SAndroid Build Coastguard Worker} 93*9880d681SAndroid Build Coastguard Workerdef A57Write_6cyc_2W : SchedWriteRes<[A57UnitW, A57UnitW]> { 94*9880d681SAndroid Build Coastguard Worker let Latency = 6; 95*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 2; 96*9880d681SAndroid Build Coastguard Worker} 97*9880d681SAndroid Build Coastguard Workerdef A57Write_5cyc_1I_1L : SchedWriteRes<[A57UnitI, 98*9880d681SAndroid Build Coastguard Worker A57UnitL]> { 99*9880d681SAndroid Build Coastguard Worker let Latency = 5; 100*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 2; 101*9880d681SAndroid Build Coastguard Worker} 102*9880d681SAndroid Build Coastguard Workerdef A57Write_5cyc_2V : SchedWriteRes<[A57UnitV, A57UnitV]> { 103*9880d681SAndroid Build Coastguard Worker let Latency = 5; 104*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 2; 105*9880d681SAndroid Build Coastguard Worker} 106*9880d681SAndroid Build Coastguard Workerdef A57Write_5cyc_2X : SchedWriteRes<[A57UnitX, A57UnitX]> { 107*9880d681SAndroid Build Coastguard Worker let Latency = 5; 108*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 2; 109*9880d681SAndroid Build Coastguard Worker} 110*9880d681SAndroid Build Coastguard Workerdef A57Write_10cyc_1L_1V : SchedWriteRes<[A57UnitL, 111*9880d681SAndroid Build Coastguard Worker A57UnitV]> { 112*9880d681SAndroid Build Coastguard Worker let Latency = 10; 113*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 2; 114*9880d681SAndroid Build Coastguard Worker} 115*9880d681SAndroid Build Coastguard Workerdef A57Write_10cyc_2V : SchedWriteRes<[A57UnitV, A57UnitV]> { 116*9880d681SAndroid Build Coastguard Worker let Latency = 10; 117*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 2; 118*9880d681SAndroid Build Coastguard Worker} 119*9880d681SAndroid Build Coastguard Workerdef A57Write_1cyc_1B_1I : SchedWriteRes<[A57UnitB, 120*9880d681SAndroid Build Coastguard Worker A57UnitI]> { 121*9880d681SAndroid Build Coastguard Worker let Latency = 1; 122*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 2; 123*9880d681SAndroid Build Coastguard Worker} 124*9880d681SAndroid Build Coastguard Workerdef A57Write_1cyc_1I_1S : SchedWriteRes<[A57UnitI, 125*9880d681SAndroid Build Coastguard Worker A57UnitS]> { 126*9880d681SAndroid Build Coastguard Worker let Latency = 1; 127*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 2; 128*9880d681SAndroid Build Coastguard Worker} 129*9880d681SAndroid Build Coastguard Workerdef A57Write_2cyc_1B_1I : SchedWriteRes<[A57UnitB, 130*9880d681SAndroid Build Coastguard Worker A57UnitI]> { 131*9880d681SAndroid Build Coastguard Worker let Latency = 2; 132*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 2; 133*9880d681SAndroid Build Coastguard Worker} 134*9880d681SAndroid Build Coastguard Workerdef A57Write_2cyc_2S : SchedWriteRes<[A57UnitS, A57UnitS]> { 135*9880d681SAndroid Build Coastguard Worker let Latency = 2; 136*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 2; 137*9880d681SAndroid Build Coastguard Worker} 138*9880d681SAndroid Build Coastguard Workerdef A57Write_2cyc_2V : SchedWriteRes<[A57UnitV, A57UnitV]> { 139*9880d681SAndroid Build Coastguard Worker let Latency = 2; 140*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 2; 141*9880d681SAndroid Build Coastguard Worker} 142*9880d681SAndroid Build Coastguard Workerdef A57Write_36cyc_2X : SchedWriteRes<[A57UnitX, A57UnitX]> { 143*9880d681SAndroid Build Coastguard Worker let Latency = 36; 144*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 2; 145*9880d681SAndroid Build Coastguard Worker let ResourceCycles = [18, 18]; 146*9880d681SAndroid Build Coastguard Worker} 147*9880d681SAndroid Build Coastguard Workerdef A57Write_3cyc_1I_1M : SchedWriteRes<[A57UnitI, 148*9880d681SAndroid Build Coastguard Worker A57UnitM]> { 149*9880d681SAndroid Build Coastguard Worker let Latency = 3; 150*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 2; 151*9880d681SAndroid Build Coastguard Worker} 152*9880d681SAndroid Build Coastguard Workerdef A57Write_3cyc_1I_1S : SchedWriteRes<[A57UnitI, 153*9880d681SAndroid Build Coastguard Worker A57UnitS]> { 154*9880d681SAndroid Build Coastguard Worker let Latency = 3; 155*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 2; 156*9880d681SAndroid Build Coastguard Worker} 157*9880d681SAndroid Build Coastguard Workerdef A57Write_3cyc_1S_1V : SchedWriteRes<[A57UnitS, 158*9880d681SAndroid Build Coastguard Worker A57UnitV]> { 159*9880d681SAndroid Build Coastguard Worker let Latency = 3; 160*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 2; 161*9880d681SAndroid Build Coastguard Worker} 162*9880d681SAndroid Build Coastguard Workerdef A57Write_3cyc_2V : SchedWriteRes<[A57UnitV, A57UnitV]> { 163*9880d681SAndroid Build Coastguard Worker let Latency = 3; 164*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 2; 165*9880d681SAndroid Build Coastguard Worker} 166*9880d681SAndroid Build Coastguard Workerdef A57Write_4cyc_1I_1L : SchedWriteRes<[A57UnitI, 167*9880d681SAndroid Build Coastguard Worker A57UnitL]> { 168*9880d681SAndroid Build Coastguard Worker let Latency = 4; 169*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 2; 170*9880d681SAndroid Build Coastguard Worker} 171*9880d681SAndroid Build Coastguard Workerdef A57Write_4cyc_2X : SchedWriteRes<[A57UnitX, A57UnitX]> { 172*9880d681SAndroid Build Coastguard Worker let Latency = 4; 173*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 2; 174*9880d681SAndroid Build Coastguard Worker} 175*9880d681SAndroid Build Coastguard Worker 176*9880d681SAndroid Build Coastguard Worker 177*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 178*9880d681SAndroid Build Coastguard Worker// Define Generic 3 micro-op types 179*9880d681SAndroid Build Coastguard Worker 180*9880d681SAndroid Build Coastguard Workerdef A57Write_10cyc_3V : SchedWriteRes<[A57UnitV, A57UnitV, A57UnitV]> { 181*9880d681SAndroid Build Coastguard Worker let Latency = 10; 182*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 3; 183*9880d681SAndroid Build Coastguard Worker} 184*9880d681SAndroid Build Coastguard Workerdef A57Write_2cyc_1I_2S : SchedWriteRes<[A57UnitI, 185*9880d681SAndroid Build Coastguard Worker A57UnitS, A57UnitS]> { 186*9880d681SAndroid Build Coastguard Worker let Latency = 2; 187*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 3; 188*9880d681SAndroid Build Coastguard Worker} 189*9880d681SAndroid Build Coastguard Workerdef A57Write_3cyc_1I_1S_1V : SchedWriteRes<[A57UnitI, 190*9880d681SAndroid Build Coastguard Worker A57UnitS, 191*9880d681SAndroid Build Coastguard Worker A57UnitV]> { 192*9880d681SAndroid Build Coastguard Worker let Latency = 3; 193*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 3; 194*9880d681SAndroid Build Coastguard Worker} 195*9880d681SAndroid Build Coastguard Workerdef A57Write_3cyc_1M_2S : SchedWriteRes<[A57UnitM, 196*9880d681SAndroid Build Coastguard Worker A57UnitS, A57UnitS]> { 197*9880d681SAndroid Build Coastguard Worker let Latency = 3; 198*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 3; 199*9880d681SAndroid Build Coastguard Worker} 200*9880d681SAndroid Build Coastguard Workerdef A57Write_3cyc_3S : SchedWriteRes<[A57UnitS, A57UnitS, A57UnitS]> { 201*9880d681SAndroid Build Coastguard Worker let Latency = 3; 202*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 3; 203*9880d681SAndroid Build Coastguard Worker} 204*9880d681SAndroid Build Coastguard Workerdef A57Write_3cyc_2S_1V : SchedWriteRes<[A57UnitS, A57UnitS, 205*9880d681SAndroid Build Coastguard Worker A57UnitV]> { 206*9880d681SAndroid Build Coastguard Worker let Latency = 3; 207*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 3; 208*9880d681SAndroid Build Coastguard Worker} 209*9880d681SAndroid Build Coastguard Workerdef A57Write_5cyc_1I_2L : SchedWriteRes<[A57UnitI, 210*9880d681SAndroid Build Coastguard Worker A57UnitL, A57UnitL]> { 211*9880d681SAndroid Build Coastguard Worker let Latency = 5; 212*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 3; 213*9880d681SAndroid Build Coastguard Worker} 214*9880d681SAndroid Build Coastguard Workerdef A57Write_6cyc_1I_2L : SchedWriteRes<[A57UnitI, 215*9880d681SAndroid Build Coastguard Worker A57UnitL, A57UnitL]> { 216*9880d681SAndroid Build Coastguard Worker let Latency = 6; 217*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 3; 218*9880d681SAndroid Build Coastguard Worker} 219*9880d681SAndroid Build Coastguard Workerdef A57Write_6cyc_3V : SchedWriteRes<[A57UnitV, A57UnitV, A57UnitV]> { 220*9880d681SAndroid Build Coastguard Worker let Latency = 6; 221*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 3; 222*9880d681SAndroid Build Coastguard Worker} 223*9880d681SAndroid Build Coastguard Workerdef A57Write_7cyc_3L : SchedWriteRes<[A57UnitL, A57UnitL, A57UnitL]> { 224*9880d681SAndroid Build Coastguard Worker let Latency = 7; 225*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 3; 226*9880d681SAndroid Build Coastguard Worker} 227*9880d681SAndroid Build Coastguard Workerdef A57Write_8cyc_1I_1L_1V : SchedWriteRes<[A57UnitI, 228*9880d681SAndroid Build Coastguard Worker A57UnitL, 229*9880d681SAndroid Build Coastguard Worker A57UnitV]> { 230*9880d681SAndroid Build Coastguard Worker let Latency = 8; 231*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 3; 232*9880d681SAndroid Build Coastguard Worker} 233*9880d681SAndroid Build Coastguard Workerdef A57Write_8cyc_1L_2V : SchedWriteRes<[A57UnitL, 234*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV]> { 235*9880d681SAndroid Build Coastguard Worker let Latency = 8; 236*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 3; 237*9880d681SAndroid Build Coastguard Worker} 238*9880d681SAndroid Build Coastguard Workerdef A57Write_8cyc_3V : SchedWriteRes<[A57UnitV, A57UnitV, A57UnitV]> { 239*9880d681SAndroid Build Coastguard Worker let Latency = 8; 240*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 3; 241*9880d681SAndroid Build Coastguard Worker} 242*9880d681SAndroid Build Coastguard Workerdef A57Write_9cyc_3V : SchedWriteRes<[A57UnitV, A57UnitV, A57UnitV]> { 243*9880d681SAndroid Build Coastguard Worker let Latency = 9; 244*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 3; 245*9880d681SAndroid Build Coastguard Worker} 246*9880d681SAndroid Build Coastguard Worker 247*9880d681SAndroid Build Coastguard Worker 248*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 249*9880d681SAndroid Build Coastguard Worker// Define Generic 4 micro-op types 250*9880d681SAndroid Build Coastguard Worker 251*9880d681SAndroid Build Coastguard Workerdef A57Write_2cyc_2I_2S : SchedWriteRes<[A57UnitI, A57UnitI, 252*9880d681SAndroid Build Coastguard Worker A57UnitS, A57UnitS]> { 253*9880d681SAndroid Build Coastguard Worker let Latency = 2; 254*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 4; 255*9880d681SAndroid Build Coastguard Worker} 256*9880d681SAndroid Build Coastguard Workerdef A57Write_3cyc_2I_2S : SchedWriteRes<[A57UnitI, A57UnitI, 257*9880d681SAndroid Build Coastguard Worker A57UnitS, A57UnitS]> { 258*9880d681SAndroid Build Coastguard Worker let Latency = 3; 259*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 4; 260*9880d681SAndroid Build Coastguard Worker} 261*9880d681SAndroid Build Coastguard Workerdef A57Write_3cyc_1I_3S : SchedWriteRes<[A57UnitI, 262*9880d681SAndroid Build Coastguard Worker A57UnitS, A57UnitS, A57UnitS]> { 263*9880d681SAndroid Build Coastguard Worker let Latency = 3; 264*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 4; 265*9880d681SAndroid Build Coastguard Worker} 266*9880d681SAndroid Build Coastguard Workerdef A57Write_3cyc_1I_2S_1V : SchedWriteRes<[A57UnitI, 267*9880d681SAndroid Build Coastguard Worker A57UnitS, A57UnitS, 268*9880d681SAndroid Build Coastguard Worker A57UnitV]> { 269*9880d681SAndroid Build Coastguard Worker let Latency = 3; 270*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 4; 271*9880d681SAndroid Build Coastguard Worker} 272*9880d681SAndroid Build Coastguard Workerdef A57Write_4cyc_4S : SchedWriteRes<[A57UnitS, A57UnitS, 273*9880d681SAndroid Build Coastguard Worker A57UnitS, A57UnitS]> { 274*9880d681SAndroid Build Coastguard Worker let Latency = 4; 275*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 4; 276*9880d681SAndroid Build Coastguard Worker} 277*9880d681SAndroid Build Coastguard Workerdef A57Write_7cyc_1I_3L : SchedWriteRes<[A57UnitI, 278*9880d681SAndroid Build Coastguard Worker A57UnitL, A57UnitL, A57UnitL]> { 279*9880d681SAndroid Build Coastguard Worker let Latency = 7; 280*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 4; 281*9880d681SAndroid Build Coastguard Worker} 282*9880d681SAndroid Build Coastguard Workerdef A57Write_5cyc_2I_2L : SchedWriteRes<[A57UnitI, A57UnitI, 283*9880d681SAndroid Build Coastguard Worker A57UnitL, A57UnitL]> { 284*9880d681SAndroid Build Coastguard Worker let Latency = 5; 285*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 4; 286*9880d681SAndroid Build Coastguard Worker} 287*9880d681SAndroid Build Coastguard Workerdef A57Write_8cyc_1I_1L_2V : SchedWriteRes<[A57UnitI, 288*9880d681SAndroid Build Coastguard Worker A57UnitL, 289*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV]> { 290*9880d681SAndroid Build Coastguard Worker let Latency = 8; 291*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 4; 292*9880d681SAndroid Build Coastguard Worker} 293*9880d681SAndroid Build Coastguard Workerdef A57Write_8cyc_4L : SchedWriteRes<[A57UnitL, A57UnitL, 294*9880d681SAndroid Build Coastguard Worker A57UnitL, A57UnitL]> { 295*9880d681SAndroid Build Coastguard Worker let Latency = 8; 296*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 4; 297*9880d681SAndroid Build Coastguard Worker} 298*9880d681SAndroid Build Coastguard Workerdef A57Write_9cyc_2L_2V : SchedWriteRes<[A57UnitL, A57UnitL, 299*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV]> { 300*9880d681SAndroid Build Coastguard Worker let Latency = 9; 301*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 4; 302*9880d681SAndroid Build Coastguard Worker} 303*9880d681SAndroid Build Coastguard Workerdef A57Write_9cyc_1L_3V : SchedWriteRes<[A57UnitL, 304*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV, A57UnitV]> { 305*9880d681SAndroid Build Coastguard Worker let Latency = 9; 306*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 4; 307*9880d681SAndroid Build Coastguard Worker} 308*9880d681SAndroid Build Coastguard Workerdef A57Write_12cyc_4V : SchedWriteRes<[A57UnitV, A57UnitV, 309*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV]> { 310*9880d681SAndroid Build Coastguard Worker let Latency = 12; 311*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 4; 312*9880d681SAndroid Build Coastguard Worker} 313*9880d681SAndroid Build Coastguard Worker 314*9880d681SAndroid Build Coastguard Worker 315*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 316*9880d681SAndroid Build Coastguard Worker// Define Generic 5 micro-op types 317*9880d681SAndroid Build Coastguard Worker 318*9880d681SAndroid Build Coastguard Workerdef A57Write_3cyc_3S_2V : SchedWriteRes<[A57UnitS, A57UnitS, A57UnitS, 319*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV]> { 320*9880d681SAndroid Build Coastguard Worker let Latency = 3; 321*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 5; 322*9880d681SAndroid Build Coastguard Worker} 323*9880d681SAndroid Build Coastguard Workerdef A57Write_8cyc_1I_4L : SchedWriteRes<[A57UnitI, 324*9880d681SAndroid Build Coastguard Worker A57UnitL, A57UnitL, 325*9880d681SAndroid Build Coastguard Worker A57UnitL, A57UnitL]> { 326*9880d681SAndroid Build Coastguard Worker let Latency = 8; 327*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 5; 328*9880d681SAndroid Build Coastguard Worker} 329*9880d681SAndroid Build Coastguard Workerdef A57Write_4cyc_1I_4S : SchedWriteRes<[A57UnitI, 330*9880d681SAndroid Build Coastguard Worker A57UnitS, A57UnitS, 331*9880d681SAndroid Build Coastguard Worker A57UnitS, A57UnitS]> { 332*9880d681SAndroid Build Coastguard Worker let Latency = 4; 333*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 5; 334*9880d681SAndroid Build Coastguard Worker} 335*9880d681SAndroid Build Coastguard Workerdef A57Write_9cyc_1I_2L_2V : SchedWriteRes<[A57UnitI, 336*9880d681SAndroid Build Coastguard Worker A57UnitL, A57UnitL, 337*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV]> { 338*9880d681SAndroid Build Coastguard Worker let Latency = 9; 339*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 5; 340*9880d681SAndroid Build Coastguard Worker} 341*9880d681SAndroid Build Coastguard Workerdef A57Write_9cyc_1I_1L_3V : SchedWriteRes<[A57UnitI, 342*9880d681SAndroid Build Coastguard Worker A57UnitL, 343*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV, A57UnitV]> { 344*9880d681SAndroid Build Coastguard Worker let Latency = 9; 345*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 5; 346*9880d681SAndroid Build Coastguard Worker} 347*9880d681SAndroid Build Coastguard Workerdef A57Write_9cyc_2L_3V : SchedWriteRes<[A57UnitL, A57UnitL, 348*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV, A57UnitV]> { 349*9880d681SAndroid Build Coastguard Worker let Latency = 9; 350*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 5; 351*9880d681SAndroid Build Coastguard Worker} 352*9880d681SAndroid Build Coastguard Workerdef A57Write_9cyc_5V : SchedWriteRes<[A57UnitV, A57UnitV, A57UnitV, 353*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV]> { 354*9880d681SAndroid Build Coastguard Worker let Latency = 9; 355*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 5; 356*9880d681SAndroid Build Coastguard Worker} 357*9880d681SAndroid Build Coastguard Worker 358*9880d681SAndroid Build Coastguard Worker 359*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 360*9880d681SAndroid Build Coastguard Worker// Define Generic 6 micro-op types 361*9880d681SAndroid Build Coastguard Worker 362*9880d681SAndroid Build Coastguard Workerdef A57Write_3cyc_1I_3S_2V : SchedWriteRes<[A57UnitI, 363*9880d681SAndroid Build Coastguard Worker A57UnitS, A57UnitS, A57UnitS, 364*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV]> { 365*9880d681SAndroid Build Coastguard Worker let Latency = 3; 366*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 6; 367*9880d681SAndroid Build Coastguard Worker} 368*9880d681SAndroid Build Coastguard Workerdef A57Write_4cyc_2I_4S : SchedWriteRes<[A57UnitI, A57UnitI, 369*9880d681SAndroid Build Coastguard Worker A57UnitS, A57UnitS, 370*9880d681SAndroid Build Coastguard Worker A57UnitS, A57UnitS]> { 371*9880d681SAndroid Build Coastguard Worker let Latency = 4; 372*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 6; 373*9880d681SAndroid Build Coastguard Worker} 374*9880d681SAndroid Build Coastguard Workerdef A57Write_4cyc_4S_2V : SchedWriteRes<[A57UnitS, A57UnitS, 375*9880d681SAndroid Build Coastguard Worker A57UnitS, A57UnitS, 376*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV]> { 377*9880d681SAndroid Build Coastguard Worker let Latency = 4; 378*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 6; 379*9880d681SAndroid Build Coastguard Worker} 380*9880d681SAndroid Build Coastguard Workerdef A57Write_6cyc_6S : SchedWriteRes<[A57UnitS, A57UnitS, A57UnitS, 381*9880d681SAndroid Build Coastguard Worker A57UnitS, A57UnitS, A57UnitS]> { 382*9880d681SAndroid Build Coastguard Worker let Latency = 6; 383*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 6; 384*9880d681SAndroid Build Coastguard Worker} 385*9880d681SAndroid Build Coastguard Workerdef A57Write_9cyc_1I_2L_3V : SchedWriteRes<[A57UnitI, 386*9880d681SAndroid Build Coastguard Worker A57UnitL, A57UnitL, 387*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV, A57UnitV]> { 388*9880d681SAndroid Build Coastguard Worker let Latency = 9; 389*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 6; 390*9880d681SAndroid Build Coastguard Worker} 391*9880d681SAndroid Build Coastguard Workerdef A57Write_9cyc_1I_1L_4V : SchedWriteRes<[A57UnitI, 392*9880d681SAndroid Build Coastguard Worker A57UnitL, 393*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV, 394*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV]> { 395*9880d681SAndroid Build Coastguard Worker let Latency = 9; 396*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 6; 397*9880d681SAndroid Build Coastguard Worker} 398*9880d681SAndroid Build Coastguard Workerdef A57Write_9cyc_2L_4V : SchedWriteRes<[A57UnitL, A57UnitL, 399*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV, 400*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV]> { 401*9880d681SAndroid Build Coastguard Worker let Latency = 9; 402*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 6; 403*9880d681SAndroid Build Coastguard Worker} 404*9880d681SAndroid Build Coastguard Worker 405*9880d681SAndroid Build Coastguard Worker 406*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 407*9880d681SAndroid Build Coastguard Worker// Define Generic 7 micro-op types 408*9880d681SAndroid Build Coastguard Worker 409*9880d681SAndroid Build Coastguard Workerdef A57Write_10cyc_3L_4V : SchedWriteRes<[A57UnitL, A57UnitL, A57UnitL, 410*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV, 411*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV]> { 412*9880d681SAndroid Build Coastguard Worker let Latency = 10; 413*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 7; 414*9880d681SAndroid Build Coastguard Worker} 415*9880d681SAndroid Build Coastguard Workerdef A57Write_4cyc_1I_4S_2V : SchedWriteRes<[A57UnitI, 416*9880d681SAndroid Build Coastguard Worker A57UnitS, A57UnitS, 417*9880d681SAndroid Build Coastguard Worker A57UnitS, A57UnitS, 418*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV]> { 419*9880d681SAndroid Build Coastguard Worker let Latency = 4; 420*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 7; 421*9880d681SAndroid Build Coastguard Worker} 422*9880d681SAndroid Build Coastguard Workerdef A57Write_6cyc_1I_6S : SchedWriteRes<[A57UnitI, 423*9880d681SAndroid Build Coastguard Worker A57UnitS, A57UnitS, A57UnitS, 424*9880d681SAndroid Build Coastguard Worker A57UnitS, A57UnitS, A57UnitS]> { 425*9880d681SAndroid Build Coastguard Worker let Latency = 6; 426*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 7; 427*9880d681SAndroid Build Coastguard Worker} 428*9880d681SAndroid Build Coastguard Workerdef A57Write_9cyc_1I_2L_4V : SchedWriteRes<[A57UnitI, 429*9880d681SAndroid Build Coastguard Worker A57UnitL, A57UnitL, 430*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV, 431*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV]> { 432*9880d681SAndroid Build Coastguard Worker let Latency = 9; 433*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 7; 434*9880d681SAndroid Build Coastguard Worker} 435*9880d681SAndroid Build Coastguard Workerdef A57Write_12cyc_7V : SchedWriteRes<[A57UnitV, A57UnitV, A57UnitV, 436*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV, 437*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV]> { 438*9880d681SAndroid Build Coastguard Worker let Latency = 12; 439*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 7; 440*9880d681SAndroid Build Coastguard Worker} 441*9880d681SAndroid Build Coastguard Worker 442*9880d681SAndroid Build Coastguard Worker 443*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 444*9880d681SAndroid Build Coastguard Worker// Define Generic 8 micro-op types 445*9880d681SAndroid Build Coastguard Worker 446*9880d681SAndroid Build Coastguard Workerdef A57Write_10cyc_1I_3L_4V : SchedWriteRes<[A57UnitI, 447*9880d681SAndroid Build Coastguard Worker A57UnitL, A57UnitL, A57UnitL, 448*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV, 449*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV]> { 450*9880d681SAndroid Build Coastguard Worker let Latency = 10; 451*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 8; 452*9880d681SAndroid Build Coastguard Worker} 453*9880d681SAndroid Build Coastguard Workerdef A57Write_11cyc_4L_4V : SchedWriteRes<[A57UnitL, A57UnitL, 454*9880d681SAndroid Build Coastguard Worker A57UnitL, A57UnitL, 455*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV, 456*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV]> { 457*9880d681SAndroid Build Coastguard Worker let Latency = 11; 458*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 8; 459*9880d681SAndroid Build Coastguard Worker} 460*9880d681SAndroid Build Coastguard Workerdef A57Write_8cyc_8S : SchedWriteRes<[A57UnitS, A57UnitS, 461*9880d681SAndroid Build Coastguard Worker A57UnitS, A57UnitS, 462*9880d681SAndroid Build Coastguard Worker A57UnitS, A57UnitS, 463*9880d681SAndroid Build Coastguard Worker A57UnitS, A57UnitS]> { 464*9880d681SAndroid Build Coastguard Worker let Latency = 8; 465*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 8; 466*9880d681SAndroid Build Coastguard Worker} 467*9880d681SAndroid Build Coastguard Worker 468*9880d681SAndroid Build Coastguard Worker 469*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 470*9880d681SAndroid Build Coastguard Worker// Define Generic 9 micro-op types 471*9880d681SAndroid Build Coastguard Worker 472*9880d681SAndroid Build Coastguard Workerdef A57Write_8cyc_1I_8S : SchedWriteRes<[A57UnitI, 473*9880d681SAndroid Build Coastguard Worker A57UnitS, A57UnitS, 474*9880d681SAndroid Build Coastguard Worker A57UnitS, A57UnitS, 475*9880d681SAndroid Build Coastguard Worker A57UnitS, A57UnitS, 476*9880d681SAndroid Build Coastguard Worker A57UnitS, A57UnitS]> { 477*9880d681SAndroid Build Coastguard Worker let Latency = 8; 478*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 9; 479*9880d681SAndroid Build Coastguard Worker} 480*9880d681SAndroid Build Coastguard Workerdef A57Write_11cyc_1I_4L_4V : SchedWriteRes<[A57UnitI, 481*9880d681SAndroid Build Coastguard Worker A57UnitL, A57UnitL, 482*9880d681SAndroid Build Coastguard Worker A57UnitL, A57UnitL, 483*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV, 484*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV]> { 485*9880d681SAndroid Build Coastguard Worker let Latency = 11; 486*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 9; 487*9880d681SAndroid Build Coastguard Worker} 488*9880d681SAndroid Build Coastguard Workerdef A57Write_15cyc_9V : SchedWriteRes<[A57UnitV, A57UnitV, A57UnitV, 489*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV, A57UnitV, 490*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV, A57UnitV]> { 491*9880d681SAndroid Build Coastguard Worker let Latency = 15; 492*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 9; 493*9880d681SAndroid Build Coastguard Worker} 494*9880d681SAndroid Build Coastguard Worker 495*9880d681SAndroid Build Coastguard Worker 496*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 497*9880d681SAndroid Build Coastguard Worker// Define Generic 10 micro-op types 498*9880d681SAndroid Build Coastguard Worker 499*9880d681SAndroid Build Coastguard Workerdef A57Write_6cyc_6S_4V : SchedWriteRes<[A57UnitS, A57UnitS, A57UnitS, 500*9880d681SAndroid Build Coastguard Worker A57UnitS, A57UnitS, A57UnitS, 501*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV, 502*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV]> { 503*9880d681SAndroid Build Coastguard Worker let Latency = 6; 504*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 10; 505*9880d681SAndroid Build Coastguard Worker} 506*9880d681SAndroid Build Coastguard Worker 507*9880d681SAndroid Build Coastguard Worker 508*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 509*9880d681SAndroid Build Coastguard Worker// Define Generic 11 micro-op types 510*9880d681SAndroid Build Coastguard Worker 511*9880d681SAndroid Build Coastguard Workerdef A57Write_6cyc_1I_6S_4V : SchedWriteRes<[A57UnitI, 512*9880d681SAndroid Build Coastguard Worker A57UnitS, A57UnitS, A57UnitS, 513*9880d681SAndroid Build Coastguard Worker A57UnitS, A57UnitS, A57UnitS, 514*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV, 515*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV]> { 516*9880d681SAndroid Build Coastguard Worker let Latency = 6; 517*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 11; 518*9880d681SAndroid Build Coastguard Worker} 519*9880d681SAndroid Build Coastguard Worker 520*9880d681SAndroid Build Coastguard Worker 521*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 522*9880d681SAndroid Build Coastguard Worker// Define Generic 12 micro-op types 523*9880d681SAndroid Build Coastguard Worker 524*9880d681SAndroid Build Coastguard Workerdef A57Write_8cyc_8S_4V : SchedWriteRes<[A57UnitS, A57UnitS, A57UnitS, A57UnitS, 525*9880d681SAndroid Build Coastguard Worker A57UnitS, A57UnitS, A57UnitS, A57UnitS, 526*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV, 527*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV]> { 528*9880d681SAndroid Build Coastguard Worker let Latency = 8; 529*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 12; 530*9880d681SAndroid Build Coastguard Worker} 531*9880d681SAndroid Build Coastguard Worker 532*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 533*9880d681SAndroid Build Coastguard Worker// Define Generic 13 micro-op types 534*9880d681SAndroid Build Coastguard Worker 535*9880d681SAndroid Build Coastguard Workerdef A57Write_8cyc_1I_8S_4V : SchedWriteRes<[A57UnitI, 536*9880d681SAndroid Build Coastguard Worker A57UnitS, A57UnitS, A57UnitS, 537*9880d681SAndroid Build Coastguard Worker A57UnitS, A57UnitS, A57UnitS, 538*9880d681SAndroid Build Coastguard Worker A57UnitS, A57UnitS, 539*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV, 540*9880d681SAndroid Build Coastguard Worker A57UnitV, A57UnitV]> { 541*9880d681SAndroid Build Coastguard Worker let Latency = 8; 542*9880d681SAndroid Build Coastguard Worker let NumMicroOps = 13; 543*9880d681SAndroid Build Coastguard Worker} 544*9880d681SAndroid Build Coastguard Worker 545