106f32e7eSjoerg//=- AArch64SchedKryoDetails.td - QC Kryo Scheduling Defs ----*- tablegen -*-=// 206f32e7eSjoerg// 306f32e7eSjoerg// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 406f32e7eSjoerg// See https://llvm.org/LICENSE.txt for license information. 506f32e7eSjoerg// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 606f32e7eSjoerg// 706f32e7eSjoerg//===----------------------------------------------------------------------===// 806f32e7eSjoerg// 906f32e7eSjoerg// This file defines the uop and latency details for the machine model for the 1006f32e7eSjoerg// Qualcomm Kryo subtarget. 1106f32e7eSjoerg// 1206f32e7eSjoerg//===----------------------------------------------------------------------===// 1306f32e7eSjoerg 1406f32e7eSjoergdef KryoWrite_3cyc_X_noRSV_138ln : 1506f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 1606f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 1706f32e7eSjoerg} 1806f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_X_noRSV_138ln], 1906f32e7eSjoerg (instregex "(S|U)R?SRA(d|(v2i32|v4i16|v8i8)_shift)")>; 2006f32e7eSjoerg 2106f32e7eSjoergdef KryoWrite_3cyc_X_X_139ln : 2206f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX]> { 2306f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 2406f32e7eSjoerg} 2506f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_X_X_139ln], 2606f32e7eSjoerg (instregex "(S|U)R?SRA(v2i64|v4i32|v8i16|v16i8)_shift")>; 2706f32e7eSjoerg 2806f32e7eSjoergdef KryoWrite_4cyc_XY_XY_noRSV_172ln : 2906f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 3006f32e7eSjoerg let Latency = 4; let NumMicroOps = 3; 3106f32e7eSjoerg} 3206f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_XY_XY_noRSV_172ln], 3306f32e7eSjoerg (instregex "(S|U)ABA(v8i8|v4i16|v2i32)")>; 3406f32e7eSjoergdef KryoWrite_4cyc_XY_XY_XY_XY_178ln : 3506f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY, KryoUnitXY, KryoUnitXY]> { 3606f32e7eSjoerg let Latency = 4; let NumMicroOps = 4; 3706f32e7eSjoerg} 3806f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_XY_XY_XY_XY_178ln], 3906f32e7eSjoerg (instregex "(S|U)ABA(v16i8|v8i16|v4i32)")>; 4006f32e7eSjoergdef KryoWrite_3cyc_XY_XY_XY_XY_177ln : 4106f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY, KryoUnitXY, KryoUnitXY]> { 4206f32e7eSjoerg let Latency = 3; let NumMicroOps = 4; 4306f32e7eSjoerg} 4406f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_XY_XY_XY_177ln], 4506f32e7eSjoerg (instregex "(S|U)ABALv.*")>; 4606f32e7eSjoergdef KryoWrite_3cyc_XY_XY_166ln : 4706f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 4806f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 4906f32e7eSjoerg} 5006f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_XY_166ln], 5106f32e7eSjoerg (instregex "(S|U)(ABD|QSUB|RHADD)(v16i8|v8i16|v4i32|v2i64)")>; 5206f32e7eSjoergdef KryoWrite_3cyc_XY_noRSV_159ln : 5306f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 5406f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 5506f32e7eSjoerg} 5606f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_noRSV_159ln], 5706f32e7eSjoerg (instregex "(S|U)(ABD|RHADD)(v8i8|v4i16|v2i32)")>; 5806f32e7eSjoergdef KryoWrite_3cyc_XY_XY_165ln : 5906f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 6006f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 6106f32e7eSjoerg} 6206f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_XY_165ln], 6306f32e7eSjoerg (instregex "(S|U)ABDLv.*")>; 6406f32e7eSjoergdef KryoWrite_3cyc_X_noRSV_154ln : 6506f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 6606f32e7eSjoerglet Latency = 3; let NumMicroOps = 2; 6706f32e7eSjoerg} 6806f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_X_noRSV_154ln], 6906f32e7eSjoerg (instregex "(S|U)ADALP(v8i8|v4i16|v2i32)_v.*")>; 7006f32e7eSjoergdef KryoWrite_3cyc_X_X_155ln : 7106f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX]> { 7206f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 7306f32e7eSjoerg} 7406f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_X_X_155ln], 7506f32e7eSjoerg (instregex "(S|U)ADALP(v16i8|v8i16|v4i32)_v.*")>; 7606f32e7eSjoergdef KryoWrite_2cyc_XY_XY_151ln : 7706f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 7806f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 7906f32e7eSjoerg} 8006f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_XY_151ln], 8106f32e7eSjoerg (instregex "(S|U)(ADD|SUB)Lv.*")>; 8206f32e7eSjoergdef KryoWrite_2cyc_XY_noRSV_148ln : 8306f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 8406f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 8506f32e7eSjoerg} 8606f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_noRSV_148ln], 8706f32e7eSjoerg (instregex "((S|U)ADDLP|ABS)(v2i32|v4i16|v8i8)(_v.*)?")>; 8806f32e7eSjoergdef KryoWrite_2cyc_XY_XY_150ln : 8906f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 9006f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 9106f32e7eSjoerg} 9206f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_XY_150ln], 9306f32e7eSjoerg (instregex "((S|U)ADDLP|ABS)(v2i64|v4i32|v8i16|v16i8)(_v.*)?")>; 9406f32e7eSjoergdef KryoWrite_3cyc_XY_XY_XY_noRSV_179ln : 9506f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY, KryoUnitXY]> { 9606f32e7eSjoerg let Latency = 3; let NumMicroOps = 4; 9706f32e7eSjoerg} 9806f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_XY_XY_noRSV_179ln], 9906f32e7eSjoerg (instrs SADDLVv4i32v, UADDLVv4i32v)>; 10006f32e7eSjoergdef KryoWrite_5cyc_XY_XY_XY_noRSV_180ln : 10106f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY, KryoUnitXY]> { 10206f32e7eSjoerg let Latency = 5; let NumMicroOps = 4; 10306f32e7eSjoerg} 10406f32e7eSjoergdef : InstRW<[KryoWrite_5cyc_XY_XY_XY_noRSV_180ln], 10506f32e7eSjoerg (instrs SADDLVv8i16v, UADDLVv8i16v)>; 10606f32e7eSjoergdef KryoWrite_6cyc_XY_XY_X_noRSV_181ln : 10706f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY, KryoUnitX]> { 10806f32e7eSjoerg let Latency = 6; let NumMicroOps = 4; 10906f32e7eSjoerg} 11006f32e7eSjoergdef : InstRW<[KryoWrite_6cyc_XY_XY_X_noRSV_181ln], 11106f32e7eSjoerg (instrs SADDLVv16i8v, UADDLVv16i8v)>; 11206f32e7eSjoergdef KryoWrite_3cyc_XY_noRSV_158ln : 11306f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 11406f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 11506f32e7eSjoerg} 11606f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_noRSV_158ln], 11706f32e7eSjoerg (instrs SADDLVv4i16v, UADDLVv4i16v, ADDVv4i16v)>; 11806f32e7eSjoergdef KryoWrite_4cyc_X_noRSV_169ln : 11906f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 12006f32e7eSjoerg let Latency = 4; let NumMicroOps = 2; 12106f32e7eSjoerg} 12206f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_X_noRSV_169ln], 12306f32e7eSjoerg (instrs SADDLVv8i8v, UADDLVv8i8v, ADDVv8i8v)>; 12406f32e7eSjoergdef KryoWrite_2cyc_XY_XY_XY_XY_176ln : 12506f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY, KryoUnitXY, KryoUnitXY]> { 12606f32e7eSjoerg let Latency = 2; let NumMicroOps = 4; 12706f32e7eSjoerg} 12806f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_XY_XY_XY_176ln], 12906f32e7eSjoerg (instregex "(S|U)(ADDW|SUBW)v.*")>; 13006f32e7eSjoergdef KryoWrite_4cyc_X_noRSV_40ln : 13106f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 13206f32e7eSjoerg let Latency = 4; let NumMicroOps = 2; 13306f32e7eSjoerg} 13406f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_X_noRSV_40ln], 13506f32e7eSjoerg (instregex "(S|U)CVTFS(W|X)(D|S)ri")>; 13606f32e7eSjoergdef KryoWrite_4cyc_X_noRSV_97ln : 13706f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 13806f32e7eSjoerg let Latency = 4; let NumMicroOps = 2; 13906f32e7eSjoerg} 14006f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_X_noRSV_97ln], 14106f32e7eSjoerg (instregex "(S|U)CVTFU(W|X)(D|S)ri")>; 14206f32e7eSjoergdef KryoWrite_4cyc_X_noRSV_110ln : 14306f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 14406f32e7eSjoerg let Latency = 4; let NumMicroOps = 2; 14506f32e7eSjoerg} 14606f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_X_noRSV_110ln], 14706f32e7eSjoerg (instregex "(S|U)CVTF(v1i32|v2i32|v1i64|v2f32|d|s)(_shift)?")>; 14806f32e7eSjoergdef KryoWrite_4cyc_X_X_114ln : 14906f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX]> { 15006f32e7eSjoerg let Latency = 4; let NumMicroOps = 2; 15106f32e7eSjoerg} 15206f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_X_X_114ln], 15306f32e7eSjoerg (instregex "(S|U)CVTF(v2i64|v4i32|v2f64|v4f32)(_shift)?")>; 15406f32e7eSjoergdef KryoWrite_1cyc_XA_Y_98ln : 15506f32e7eSjoerg SchedWriteRes<[KryoUnitXA, KryoUnitY]> { 15606f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 15706f32e7eSjoerg} 15806f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_XA_Y_98ln], 15906f32e7eSjoerg (instregex "(S|U)DIV(_Int)?(W|X)r")>; 16006f32e7eSjoergdef KryoWrite_2cyc_XY_XY_152ln : 16106f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 16206f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 16306f32e7eSjoerg} 16406f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_XY_152ln], 16506f32e7eSjoerg (instregex "(S|U)H(ADD|SUB)(v16i8|v8i16|v4i32)")>; 16606f32e7eSjoergdef KryoWrite_2cyc_XY_noRSV_149ln : 16706f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 16806f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 16906f32e7eSjoerg} 17006f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_noRSV_149ln], 17106f32e7eSjoerg (instregex "((S|U)H(ADD|SUB)|ADDP)(v8i8|v4i16|v2i32)")>; 17206f32e7eSjoergdef KryoWrite_4cyc_X_70ln : 17306f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 17406f32e7eSjoerg let Latency = 4; let NumMicroOps = 1; 17506f32e7eSjoerg} 17606f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_X_70ln], 17706f32e7eSjoerg (instregex "(S|U)(MADDL|MSUBL)rrr")>; 17806f32e7eSjoergdef KryoWrite_4cyc_X_X_191ln : 17906f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX]> { 18006f32e7eSjoerg let Latency = 4; let NumMicroOps = 2; 18106f32e7eSjoerg} 18206f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_X_X_191ln], 18306f32e7eSjoerg (instregex "(S|U|SQD)(MLAL|MLSL|MULL)v.*")>; 18406f32e7eSjoergdef KryoWrite_1cyc_XY_195ln : 18506f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 18606f32e7eSjoerg let Latency = 1; let NumMicroOps = 1; 18706f32e7eSjoerg} 18806f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_XY_195ln], 18906f32e7eSjoerg (instregex "(S|U)MOVv.*")>; 19006f32e7eSjoergdef KryoWrite_5cyc_X_71ln : 19106f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 19206f32e7eSjoerg let Latency = 5; let NumMicroOps = 1; 19306f32e7eSjoerg} 19406f32e7eSjoergdef : InstRW<[KryoWrite_5cyc_X_71ln], 19506f32e7eSjoerg (instrs SMULHrr, UMULHrr)>; 19606f32e7eSjoergdef KryoWrite_3cyc_XY_noRSV_186ln : 19706f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 19806f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 19906f32e7eSjoerg} 20006f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_noRSV_186ln], 20106f32e7eSjoerg (instregex "^(S|U)QADD(v8i8|v4i16|v2i32)")>; 20206f32e7eSjoergdef KryoWrite_3cyc_XY_XY_187ln : 20306f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 20406f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 20506f32e7eSjoerg} 20606f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_XY_187ln], 20706f32e7eSjoerg (instregex "^(S|U)QADD(v16i8|v8i16|v4i32|v2i64)")>; 20806f32e7eSjoergdef KryoWrite_3cyc_XY_noRSV_69ln : 20906f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 21006f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 21106f32e7eSjoerg} 21206f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_noRSV_69ln], 21306f32e7eSjoerg (instregex "(S|U|SU|US)QADD(v1i8|v1i16|v2i16|v1i32|v1i64)")>; 21406f32e7eSjoergdef KryoWrite_3cyc_XY_noRSV_248ln : 21506f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 21606f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 21706f32e7eSjoerg} 21806f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_noRSV_248ln], 21906f32e7eSjoerg (instregex "(S|U)QSHLU?(d|s|h|b|(v8i8|v4i16|v2i32)_shift)$")>; 22006f32e7eSjoergdef KryoWrite_3cyc_XY_XY_250ln : 22106f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 22206f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 22306f32e7eSjoerg} 22406f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_XY_250ln], 22506f32e7eSjoerg (instregex "(S|U)(QSHLU?|RSHR)(v16i8|v8i16|v4i32|v2i64)_shift$")>; 22606f32e7eSjoergdef KryoWrite_3cyc_XY_noRSV_246ln : 22706f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 22806f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 22906f32e7eSjoerg} 23006f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_noRSV_246ln], 23106f32e7eSjoerg (instregex "(S|U)(QSHL|RSHL|QRSHL)(v1i8|v1i16|v1i32|v1i64|v8i8|v4i16|v2i32)$")>; 23206f32e7eSjoergdef KryoWrite_3cyc_XY_XY_251ln : 23306f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 23406f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 23506f32e7eSjoerg} 23606f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_XY_251ln], 23706f32e7eSjoerg (instregex "(S|U)(QSHL|RSHL|QRSHL)(v16i8|v8i16|v4i32|v2i64)$")>; 23806f32e7eSjoergdef KryoWrite_6cyc_XY_X_238ln : 23906f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitX]> { 24006f32e7eSjoerg let Latency = 6; let NumMicroOps = 2; 24106f32e7eSjoerg} 24206f32e7eSjoergdef : InstRW<[KryoWrite_6cyc_XY_X_238ln], 24306f32e7eSjoerg (instregex "((S|U)QR?SHRN|SQR?SHRUN)(v16i8|v8i16|v4i32)_shift$")>; 24406f32e7eSjoergdef KryoWrite_3cyc_XY_noRSV_249ln : 24506f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 24606f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 24706f32e7eSjoerg} 24806f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_noRSV_249ln], 24906f32e7eSjoerg (instregex "((S|U)QR?SHRN|SQR?SHRUN)(s|h|b)?")>; 25006f32e7eSjoergdef KryoWrite_6cyc_XY_X_noRSV_252ln : 25106f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitX]> { 25206f32e7eSjoerg let Latency = 6; let NumMicroOps = 3; 25306f32e7eSjoerg} 25406f32e7eSjoergdef : InstRW<[KryoWrite_6cyc_XY_X_noRSV_252ln], 25506f32e7eSjoerg (instregex "((S|U)QR?SHRN|SQR?SHRUN)(v8i8|v4i16|v2i32)_shift?")>; 25606f32e7eSjoergdef KryoWrite_3cyc_XY_noRSV_161ln : 25706f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 25806f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 25906f32e7eSjoerg} 26006f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_noRSV_161ln], 26106f32e7eSjoerg (instregex "(S|U)QSUB(v8i8|v4i16|v2i32|v1i64|v1i32|v1i16|v1i8)")>; 26206f32e7eSjoergdef KryoWrite_3cyc_XY_noRSV_163ln : 26306f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 26406f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 26506f32e7eSjoerg} 26606f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_noRSV_163ln], 26706f32e7eSjoerg (instregex "(S|U)QXTU?N(v16i8|v8i16|v4i32|v8i8|v4i16|v2i32)")>; 26806f32e7eSjoergdef KryoWrite_3cyc_XY_noRSV_162ln : 26906f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 27006f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 27106f32e7eSjoerg} 27206f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_noRSV_162ln], 27306f32e7eSjoerg (instregex "(S|U)QXTU?N(v1i8|v1i16|v1i32)")>; 27406f32e7eSjoergdef KryoWrite_3cyc_XY_noRSV_247ln : 27506f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 27606f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 27706f32e7eSjoerg} 27806f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_noRSV_247ln], 27906f32e7eSjoerg (instregex "(S|U)RSHR(d|(v8i8|v4i16|v2i32)_shift)$")>; 28006f32e7eSjoergdef KryoWrite_2cyc_XY_noRSV_239ln : 28106f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 28206f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 28306f32e7eSjoerg} 28406f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_noRSV_239ln], 28506f32e7eSjoerg (instregex "(S|U)SHL(d|v8i8|v4i16|v2i32|v1i64)$")>; 28606f32e7eSjoergdef KryoWrite_2cyc_XY_XY_243ln : 28706f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 28806f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 28906f32e7eSjoerg} 29006f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_XY_243ln], 29106f32e7eSjoerg (instregex "(S|U)SHL(v16i8|v8i16|v4i32|v2i64)$")>; 29206f32e7eSjoergdef KryoWrite_2cyc_XY_XY_241ln : 29306f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 29406f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 29506f32e7eSjoerg} 29606f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_XY_241ln], 29706f32e7eSjoerg (instregex "(S|U)?SHLL(v16i8|v8i16|v4i32|v8i8|v4i16|v2i32)(_shift)?$")>; 29806f32e7eSjoergdef KryoWrite_2cyc_XY_noRSV_240ln : 29906f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 30006f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 30106f32e7eSjoerg} 30206f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_noRSV_240ln], 30306f32e7eSjoerg (instregex "((S|U)SHR|SHL)(d|(v8i8|v4i16|v2i32)_shift)$")>; 30406f32e7eSjoergdef KryoWrite_2cyc_XY_XY_242ln : 30506f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 30606f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 30706f32e7eSjoerg} 30806f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_XY_242ln], 30906f32e7eSjoerg (instregex "((S|U)SHR|SHL)(v16i8|v8i16|v4i32|v2i64)_shift$")>; 31006f32e7eSjoergdef KryoWrite_2cyc_XY_XY_183ln : 31106f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 31206f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 31306f32e7eSjoerg} 31406f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_XY_183ln], 31506f32e7eSjoerg (instregex "(S|U)(MAX|MIN)P?(v16i8|v8i16|v4i32)")>; 31606f32e7eSjoergdef KryoWrite_2cyc_XY_noRSV_182ln : 31706f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 31806f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 31906f32e7eSjoerg} 32006f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_noRSV_182ln], 32106f32e7eSjoerg (instregex "(S|U)(MAX|MIN)P?(v8i8|v4i16|v2i32)")>; 32206f32e7eSjoergdef KryoWrite_3cyc_XY_noRSV_184ln : 32306f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 32406f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 32506f32e7eSjoerg} 32606f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_noRSV_184ln], 32706f32e7eSjoerg (instregex "(S|U)(MAX|MIN)V(v4i16v|v8i8v|v4i32)")>; 32806f32e7eSjoergdef KryoWrite_4cyc_X_noRSV_185ln : 32906f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 33006f32e7eSjoerg let Latency = 4; let NumMicroOps = 2; 33106f32e7eSjoerg} 33206f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_X_noRSV_185ln], 33306f32e7eSjoerg (instregex "(S|U)(MAX|MIN)V(v16i8v|v8i16v)")>; 33406f32e7eSjoergdef KryoWrite_2cyc_XY_noRSV_67ln : 33506f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 33606f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 33706f32e7eSjoerg} 33806f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_noRSV_67ln], 33906f32e7eSjoerg (instrs ABSv1i64)>; 34006f32e7eSjoergdef KryoWrite_1cyc_XY_63ln : 34106f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 34206f32e7eSjoerg let Latency = 1; let NumMicroOps = 1; 34306f32e7eSjoerg} 34406f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_XY_63ln, ReadI, ReadI], 34506f32e7eSjoerg (instregex "ADC.*")>; 34606f32e7eSjoergdef KryoWrite_1cyc_XY_63_1ln : 34706f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 34806f32e7eSjoerg let Latency = 1; let NumMicroOps = 1; 34906f32e7eSjoerg} 35006f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_XY_63_1ln], 35106f32e7eSjoerg (instregex "ADR.*")>; 35206f32e7eSjoergdef KryoWrite_1cyc_XY_62ln : 35306f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 35406f32e7eSjoerg let Latency = 1; let NumMicroOps = 1; 35506f32e7eSjoerg} 35606f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_XY_62ln, ReadI], 35706f32e7eSjoerg (instregex "ADDS?(W|X)ri")>; 35806f32e7eSjoergdef KryoWrite_2cyc_XY_XY_64ln : 35906f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 36006f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 36106f32e7eSjoerg} 36206f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_XY_64ln, ReadI, ReadI], 36306f32e7eSjoerg (instregex "ADDS?(W|X)r(r|s|x)(64)?")>; 36406f32e7eSjoergdef KryoWrite_1cyc_XY_noRSV_65ln : 36506f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 36606f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 36706f32e7eSjoerg} 36806f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_XY_noRSV_65ln], 36906f32e7eSjoerg (instrs ADDv1i64)>; 37006f32e7eSjoergdef KryoWrite_1cyc_XY_noRSV_144ln : 37106f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 37206f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 37306f32e7eSjoerg} 37406f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_XY_noRSV_144ln], 37506f32e7eSjoerg (instregex "(ADD|SUB)(v8i8|v4i16|v2i32|v1i64)")>; 37606f32e7eSjoergdef KryoWrite_1cyc_XY_XY_146ln : 37706f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 37806f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 37906f32e7eSjoerg} 38006f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_XY_XY_146ln], 38106f32e7eSjoerg (instregex "(ADD|SUB)(v16i8|v8i16|v4i32|v2i64)")>; 38206f32e7eSjoergdef KryoWrite_4cyc_XY_X_noRSV_171ln : 38306f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitX]> { 38406f32e7eSjoerg let Latency = 4; let NumMicroOps = 3; 38506f32e7eSjoerg} 38606f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_XY_X_noRSV_171ln], 38706f32e7eSjoerg (instregex "(ADD|SUB)HNv.*")>; 38806f32e7eSjoergdef KryoWrite_1cyc_XY_noRSV_66ln : 38906f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 39006f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 39106f32e7eSjoerg} 39206f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_XY_noRSV_66ln], 39306f32e7eSjoerg (instrs ADDPv2i64p)>; 39406f32e7eSjoergdef KryoWrite_2cyc_XY_XY_153ln : 39506f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 39606f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 39706f32e7eSjoerg} 39806f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_XY_153ln], 39906f32e7eSjoerg (instregex "ADDP(v16i8|v8i16|v4i32|v2i64)")>; 40006f32e7eSjoergdef KryoWrite_3cyc_XY_XY_noRSV_170ln : 40106f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 40206f32e7eSjoerg let Latency = 3; let NumMicroOps = 3; 40306f32e7eSjoerg} 40406f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_XY_noRSV_170ln], 40506f32e7eSjoerg (instrs ADDVv4i32v)>; 40606f32e7eSjoergdef KryoWrite_4cyc_XY_XY_noRSV_173ln : 40706f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 40806f32e7eSjoerg let Latency = 4; let NumMicroOps = 3; 40906f32e7eSjoerg} 41006f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_XY_XY_noRSV_173ln], 41106f32e7eSjoerg (instrs ADDVv8i16v)>; 41206f32e7eSjoergdef KryoWrite_5cyc_XY_X_noRSV_174ln : 41306f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitX]> { 41406f32e7eSjoerg let Latency = 5; let NumMicroOps = 3; 41506f32e7eSjoerg} 41606f32e7eSjoergdef : InstRW<[KryoWrite_5cyc_XY_X_noRSV_174ln], 41706f32e7eSjoerg (instrs ADDVv16i8v)>; 41806f32e7eSjoergdef KryoWrite_3cyc_XY_XY_X_X_27ln : 41906f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY, KryoUnitX, KryoUnitX]> { 42006f32e7eSjoerg let Latency = 3; let NumMicroOps = 4; 42106f32e7eSjoerg} 42206f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_XY_X_X_27ln], 42306f32e7eSjoerg (instrs AESDrr, AESErr)>; 42406f32e7eSjoergdef KryoWrite_2cyc_X_X_22ln : 42506f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX]> { 42606f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 42706f32e7eSjoerg} 42806f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_X_X_22ln], 42906f32e7eSjoerg (instrs AESIMCrr, AESMCrr)>; 43006f32e7eSjoergdef KryoWrite_1cyc_XY_noRSV_76ln : 43106f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 43206f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 43306f32e7eSjoerg} 43406f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_XY_noRSV_76ln], 43506f32e7eSjoerg (instregex "((AND|ORN|EOR|EON)S?(Wr[rsi]|v8i8|v4i16|v2i32)|(ORR|BIC)S?(Wr[rs]|v8i8|v4i16|v2i32))")>; 43606f32e7eSjoergdef KryoWrite_1cyc_XY_XY_79ln : 43706f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 43806f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 43906f32e7eSjoerg} 44006f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_XY_XY_79ln], 44106f32e7eSjoerg (instregex "((AND|ORN|EOR|EON)S?(Xr[rsi]|v16i8|v8i16|v4i32)|(ORR|BIC)S?(Xr[rs]|v16i8|v8i16|v4i32))")>; 44206f32e7eSjoergdef KryoWrite_1cyc_X_72ln : 44306f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 44406f32e7eSjoerg let Latency = 1; let NumMicroOps = 1; 44506f32e7eSjoerg} 44606f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_X_72ln], 44706f32e7eSjoerg (instregex "(S|U)?BFM.*")>; 44806f32e7eSjoergdef KryoWrite_1cyc_XY_noRSV_77ln : 44906f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 45006f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 45106f32e7eSjoerg} 45206f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_XY_noRSV_77ln], 45306f32e7eSjoerg (instregex "(BIC|ORR)S?Wri")>; 45406f32e7eSjoergdef KryoWrite_1cyc_XY_XY_78ln : 45506f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 45606f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 45706f32e7eSjoerg} 45806f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_XY_XY_78ln], 45906f32e7eSjoerg (instregex "(BIC|ORR)S?Xri")>; 46006f32e7eSjoergdef KryoWrite_1cyc_X_noRSV_74ln : 46106f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 46206f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 46306f32e7eSjoerg} 46406f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_X_noRSV_74ln], 465*da58b97aSjoerg (instrs BIFv8i8, BITv8i8, BSLv8i8, BSPv8i8)>; 46606f32e7eSjoergdef KryoWrite_1cyc_X_X_75ln : 46706f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX]> { 46806f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 46906f32e7eSjoerg} 47006f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_X_X_75ln], 471*da58b97aSjoerg (instrs BIFv16i8, BITv16i8, BSLv16i8, BSPv16i8)>; 47206f32e7eSjoergdef KryoWrite_0cyc_noRSV_11ln : 47306f32e7eSjoerg SchedWriteRes<[]> { 47406f32e7eSjoerg let Latency = 0; let NumMicroOps = 1; 47506f32e7eSjoerg} 47606f32e7eSjoergdef : InstRW<[KryoWrite_0cyc_noRSV_11ln], 47706f32e7eSjoerg (instrs BRK, DCPS1, DCPS2, DCPS3, HLT, HVC, ISB, HINT, SMC, SVC)>; 47806f32e7eSjoergdef KryoWrite_0cyc_XY_16ln : 47906f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 48006f32e7eSjoerg let Latency = 0; let NumMicroOps = 1; 48106f32e7eSjoerg} 48206f32e7eSjoergdef : InstRW<[KryoWrite_0cyc_XY_16ln, ReadI], 48306f32e7eSjoerg (instregex "(CCMN|CCMP)(W|X)i")>; 48406f32e7eSjoergdef KryoWrite_0cyc_XY_16_1ln : 48506f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 48606f32e7eSjoerg let Latency = 0; let NumMicroOps = 1; 48706f32e7eSjoerg} 48806f32e7eSjoergdef : InstRW<[KryoWrite_0cyc_XY_16_1ln, ReadI, ReadI], 48906f32e7eSjoerg (instregex "(CCMN|CCMP)(W|X)r")>; 49006f32e7eSjoergdef KryoWrite_2cyc_XY_3ln : 49106f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 49206f32e7eSjoerg let Latency = 2; let NumMicroOps = 1; 49306f32e7eSjoerg} 49406f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_3ln, ReadI], 49506f32e7eSjoerg (instregex "(CLS|CLZ)(W|X)r")>; 49606f32e7eSjoergdef KryoWrite_2cyc_XY_noRSV_7ln : 49706f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 49806f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 49906f32e7eSjoerg} 50006f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_noRSV_7ln], 50106f32e7eSjoerg (instregex "(CLS|CLZ|CNT)(v4i32|v8i16|v16i8)")>; 50206f32e7eSjoergdef KryoWrite_2cyc_XY_XY_8ln : 50306f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 50406f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 50506f32e7eSjoerg} 50606f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_XY_8ln], 50706f32e7eSjoerg (instregex "(CLS|CLZ|CNT)(v2i32|v4i16|v8i8)")>; 50806f32e7eSjoergdef KryoWrite_2cyc_XY_noRSV_80ln : 50906f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 51006f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 51106f32e7eSjoerg} 51206f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_noRSV_80ln], 51306f32e7eSjoerg (instregex "CM(EQ|GE|HS|GT|HI|TST)(v8i8|v4i16|v2i32|v1i64)$")>; 51406f32e7eSjoergdef KryoWrite_2cyc_XY_XY_83ln : 51506f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 51606f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 51706f32e7eSjoerg} 51806f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_XY_83ln], 51906f32e7eSjoerg (instregex "CM(EQ|GE|HS|GT|HI|TST)(v16i8|v8i16|v4i32|v2i64)$")>; 52006f32e7eSjoergdef KryoWrite_2cyc_XY_noRSV_81ln : 52106f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 52206f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 52306f32e7eSjoerg} 52406f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_noRSV_81ln], 52506f32e7eSjoerg (instregex "CM(EQ|LE|GE|GT|LT)(v8i8|v4i16|v2i32|v1i64)rz$")>; 52606f32e7eSjoergdef KryoWrite_2cyc_XY_XY_82ln : 52706f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 52806f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 52906f32e7eSjoerg} 53006f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_XY_82ln], 53106f32e7eSjoerg (instregex "CM(EQ|LE|GE|GT|LT)(v16i8|v8i16|v4i32|v2i64)rz$")>; 53206f32e7eSjoergdef KryoWrite_3cyc_XY_4ln : 53306f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 53406f32e7eSjoerg let Latency = 3; let NumMicroOps = 1; 53506f32e7eSjoerg} 53606f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_4ln, ReadI, ReadISReg], 53706f32e7eSjoerg (instregex "CRC32.*")>; 53806f32e7eSjoergdef KryoWrite_1cyc_XY_20ln : 53906f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 54006f32e7eSjoerg let Latency = 1; let NumMicroOps = 1; 54106f32e7eSjoerg} 54206f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_XY_20ln, ReadI, ReadI], 54306f32e7eSjoerg (instregex "CSEL(W|X)r")>; 54406f32e7eSjoergdef KryoWrite_1cyc_X_17ln : 54506f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 54606f32e7eSjoerg let Latency = 1; let NumMicroOps = 1; 54706f32e7eSjoerg} 54806f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_X_17ln, ReadI, ReadI], 54906f32e7eSjoerg (instregex "(CSINC|CSNEG)(W|X)r")>; 55006f32e7eSjoergdef KryoWrite_1cyc_XY_18ln : 55106f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 55206f32e7eSjoerg let Latency = 1; let NumMicroOps = 1; 55306f32e7eSjoerg} 55406f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_XY_18ln, ReadI, ReadI], 55506f32e7eSjoerg (instregex "(CSINV)(W|X)r")>; 55606f32e7eSjoergdef KryoWrite_3cyc_LS_X_13ln : 55706f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitX]> { 55806f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 55906f32e7eSjoerg} 56006f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_X_13ln], 56106f32e7eSjoerg (instrs DRPS)>; 56206f32e7eSjoergdef KryoWrite_0cyc_LS_10ln : 56306f32e7eSjoerg SchedWriteRes<[KryoUnitLS]> { 56406f32e7eSjoerg let Latency = 0; let NumMicroOps = 1; 56506f32e7eSjoerg} 56606f32e7eSjoergdef : InstRW<[KryoWrite_0cyc_LS_10ln], 56706f32e7eSjoerg (instrs DSB, DMB, CLREX)>; 56806f32e7eSjoergdef KryoWrite_1cyc_X_noRSV_196ln : 56906f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 57006f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 57106f32e7eSjoerg} 57206f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_X_noRSV_196ln], 57306f32e7eSjoerg (instregex "DUP(v8i8|v4i16|v2i32)(gpr|lane)")>; 57406f32e7eSjoergdef KryoWrite_1cyc_X_X_197ln : 57506f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX]> { 57606f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 57706f32e7eSjoerg} 57806f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_X_X_197ln], 57906f32e7eSjoerg (instregex "DUP(v16i8|v8i16|v4i32|v2i64)(gpr|lane)")>; 58006f32e7eSjoergdef KryoWrite_3cyc_LS_LS_X_15ln : 58106f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitLS, KryoUnitX]> { 58206f32e7eSjoerg let Latency = 3; let NumMicroOps = 3; 58306f32e7eSjoerg} 58406f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_LS_X_15ln], 58506f32e7eSjoerg (instrs ERET)>; 58606f32e7eSjoergdef KryoWrite_1cyc_X_noRSV_207ln : 58706f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 58806f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 58906f32e7eSjoerg} 59006f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_X_noRSV_207ln], 59106f32e7eSjoerg (instrs EXTv8i8)>; 59206f32e7eSjoergdef KryoWrite_1cyc_X_X_212ln : 59306f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX]> { 59406f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 59506f32e7eSjoerg} 59606f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_X_X_212ln], 59706f32e7eSjoerg (instrs EXTv16i8)>; 59806f32e7eSjoergdef KryoWrite_2cyc_XY_X_136ln : 59906f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitX]> { 60006f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 60106f32e7eSjoerg} 60206f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_X_136ln], 60306f32e7eSjoerg (instrs EXTRWrri, EXTRXrri)>; 60406f32e7eSjoergdef KryoWrite_2cyc_XY_noRSV_35ln : 60506f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 60606f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 60706f32e7eSjoerg} 60806f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_noRSV_35ln], 60906f32e7eSjoerg (instregex "F(MAX|MIN)(NM)?P?(D|S)rr")>; 61006f32e7eSjoergdef KryoWrite_2cyc_XY_XY_106ln : 61106f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 61206f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 61306f32e7eSjoerg} 61406f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_XY_106ln], 61506f32e7eSjoerg (instregex "(F(MAX|MIN)(NM)?P?|FAC(GE|GT)|FCM(EQ|GE|GT))(v2i64p|v2f64|v4f32)")>; 61606f32e7eSjoergdef KryoWrite_2cyc_XY_noRSV_104ln : 61706f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 61806f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 61906f32e7eSjoerg} 62006f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_noRSV_104ln], 62106f32e7eSjoerg (instregex "(F(MAX|MIN)(NM)?P?|FAC(GE|GT)|FCM(EQ|GE|GT))(v2f32|v2i32p)")>; 62206f32e7eSjoergdef KryoWrite_3cyc_XY_noRSV_107ln : 62306f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 62406f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 62506f32e7eSjoerg} 62606f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_noRSV_107ln], 62706f32e7eSjoerg (instregex "F(MAX|MIN)(NM)?Vv4i32v")>; 62806f32e7eSjoergdef KryoWrite_3cyc_XY_noRSV_101ln : 62906f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 63006f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 63106f32e7eSjoerg} 63206f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_noRSV_101ln], 63306f32e7eSjoerg (instregex "FABD(32|64|v2f32)")>; 63406f32e7eSjoergdef KryoWrite_3cyc_XY_XY_103ln : 63506f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 63606f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 63706f32e7eSjoerg} 63806f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_XY_103ln], 63906f32e7eSjoerg (instregex "(FABD|FADD|FSUB|FADDP)(v4f32|v2f64)")>; 64006f32e7eSjoergdef KryoWrite_1cyc_XY_noRSV_48ln : 64106f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 64206f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 64306f32e7eSjoerg} 64406f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_XY_noRSV_48ln], 64506f32e7eSjoerg (instregex "F(ABS|NEG)(D|S)r")>; 64606f32e7eSjoergdef KryoWrite_1cyc_XY_noRSV_124ln : 64706f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 64806f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 64906f32e7eSjoerg} 65006f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_XY_noRSV_124ln], 65106f32e7eSjoerg (instregex "F(ABS|NEG)v2f32")>; 65206f32e7eSjoergdef KryoWrite_1cyc_XY_XY_125ln : 65306f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 65406f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 65506f32e7eSjoerg} 65606f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_XY_XY_125ln], 65706f32e7eSjoerg (instregex "F(ABS|NEG)(v2f64|v4f32)")>; 65806f32e7eSjoergdef KryoWrite_2cyc_XY_noRSV_33ln : 65906f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 66006f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 66106f32e7eSjoerg} 66206f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_noRSV_33ln], 66306f32e7eSjoerg (instregex "(FAC(GE|GT)|FCM(EQ|GE|GT))(32|64)")>; 66406f32e7eSjoergdef KryoWrite_3cyc_XY_noRSV_30ln : 66506f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 66606f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 66706f32e7eSjoerg} 66806f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_noRSV_30ln], 66906f32e7eSjoerg (instregex "(FADD|FSUB)(D|S)rr")>; 67006f32e7eSjoergdef KryoWrite_3cyc_XY_noRSV_100ln : 67106f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 67206f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 67306f32e7eSjoerg} 67406f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_noRSV_100ln], 67506f32e7eSjoerg (instregex "(FADD|FSUB|FADDP)v2f32")>; 67606f32e7eSjoergdef KryoWrite_3cyc_XY_noRSV_29ln : 67706f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 67806f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 67906f32e7eSjoerg} 68006f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_noRSV_29ln], 68106f32e7eSjoerg (instregex "FADDP(v2i32p|v2i64p)")>; 68206f32e7eSjoergdef KryoWrite_0cyc_XY_31ln : 68306f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 68406f32e7eSjoerg let Latency = 0; let NumMicroOps = 1; 68506f32e7eSjoerg} 68606f32e7eSjoergdef : InstRW<[KryoWrite_0cyc_XY_31ln], 68706f32e7eSjoerg (instregex "FCCMPE?(D|S)rr")>; 68806f32e7eSjoergdef KryoWrite_2cyc_XY_noRSV_34ln : 68906f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 69006f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 69106f32e7eSjoerg} 69206f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_noRSV_34ln], 69306f32e7eSjoerg (instregex "FCM(EQ|LE|GE|GT|LT)(v1i32|v1i64)rz")>; 69406f32e7eSjoergdef KryoWrite_2cyc_XY_XY_36ln : 69506f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 69606f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 69706f32e7eSjoerg} 69806f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_XY_36ln], 69906f32e7eSjoerg (instregex "FCM(EQ|LE|GE|GT|LT)(v2i64|v4i32)rz")>; 70006f32e7eSjoergdef KryoWrite_2cyc_XY_noRSV_105ln : 70106f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 70206f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 70306f32e7eSjoerg} 70406f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_noRSV_105ln], 70506f32e7eSjoerg (instregex "FCM(EQ|LE|GE|GT|LT)v2i32rz")>; 70606f32e7eSjoergdef KryoWrite_0cyc_XY_32ln : 70706f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 70806f32e7eSjoerg let Latency = 0; let NumMicroOps = 1; 70906f32e7eSjoerg} 71006f32e7eSjoergdef : InstRW<[KryoWrite_0cyc_XY_32ln], 71106f32e7eSjoerg (instregex "FCMPE?(D|S)r(r|i)")>; 71206f32e7eSjoergdef KryoWrite_1cyc_XY_noRSV_49ln : 71306f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 71406f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 71506f32e7eSjoerg} 71606f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_XY_noRSV_49ln], 71706f32e7eSjoerg (instrs FCSELDrrr, FCSELSrrr)>; 71806f32e7eSjoergdef KryoWrite_4cyc_X_noRSV_41ln : 71906f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 72006f32e7eSjoerg let Latency = 4; let NumMicroOps = 2; 72106f32e7eSjoerg} 72206f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_X_noRSV_41ln], 72306f32e7eSjoerg (instrs FCVTDHr, FCVTDSr, FCVTHDr, FCVTHSr, FCVTSDr, FCVTSHr)>; 72406f32e7eSjoergdef KryoWrite_4cyc_X_38ln : 72506f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 72606f32e7eSjoerg let Latency = 4; let NumMicroOps = 1; 72706f32e7eSjoerg} 72806f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_X_38ln], 72906f32e7eSjoerg (instregex "FCVT(((A|N|M|P)(S|U)(S|U)|Z(S|U)_Int(S|U))(W|X)(D|S)ri?|Z(S|U)(d|s))$")>; 73006f32e7eSjoergdef KryoWrite_4cyc_X_noRSV_113ln : 73106f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 73206f32e7eSjoerg let Latency = 4; let NumMicroOps = 2; 73306f32e7eSjoerg} 73406f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_X_noRSV_113ln], 73506f32e7eSjoerg (instregex "FCVT((A|N|M|P)(S|U)|Z(S|U)_Int)(v1i32|v1i64|v2f32)$")>; 73606f32e7eSjoergdef KryoWrite_4cyc_X_X_117ln : 73706f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX]> { 73806f32e7eSjoerg let Latency = 4; let NumMicroOps = 2; 73906f32e7eSjoerg} 74006f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_X_X_117ln], 74106f32e7eSjoerg (instregex "FCVT((A|N|M|P)(S|U)|Z(S|U)_Int)(v4f32|v2f64)$")>; 74206f32e7eSjoergdef KryoWrite_5cyc_X_X_XY_noRSV_119ln : 74306f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX, KryoUnitXY]> { 74406f32e7eSjoerg let Latency = 5; let NumMicroOps = 4; 74506f32e7eSjoerg} 74606f32e7eSjoergdef : InstRW<[KryoWrite_5cyc_X_X_XY_noRSV_119ln], 74706f32e7eSjoerg (instregex "FCVTX?N(v2f32|v4f32|v2i32|v4i16|v4i32|v8i16)$")>; 74806f32e7eSjoergdef KryoWrite_4cyc_X_X_116ln : 74906f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX]> { 75006f32e7eSjoerg let Latency = 4; let NumMicroOps = 2; 75106f32e7eSjoerg} 75206f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_X_X_116ln], 75306f32e7eSjoerg (instregex "FCVTL(v2i32|v4i16|v4i32|v8i16)$")>; 75406f32e7eSjoergdef KryoWrite_4cyc_X_noRSV_112ln : 75506f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 75606f32e7eSjoerg let Latency = 4; let NumMicroOps = 2; 75706f32e7eSjoerg} 75806f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_X_noRSV_112ln], 75906f32e7eSjoerg (instrs FCVTXNv1i64)>; 76006f32e7eSjoergdef KryoWrite_4cyc_X_37ln : 76106f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 76206f32e7eSjoerg let Latency = 4; let NumMicroOps = 1; 76306f32e7eSjoerg} 76406f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_X_37ln], 76506f32e7eSjoerg (instregex "FCVTZ(S|U)(S|U)(W|X)(D|S)ri?$")>; 76606f32e7eSjoergdef KryoWrite_4cyc_X_noRSV_111ln : 76706f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 76806f32e7eSjoerg let Latency = 4; let NumMicroOps = 2; 76906f32e7eSjoerg} 77006f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_X_noRSV_111ln], 77106f32e7eSjoerg (instregex "FCVTZ(S|U)(v2f32|v1i32|v1i64|v2i32(_shift)?)$")>; 77206f32e7eSjoergdef KryoWrite_4cyc_X_X_115ln : 77306f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX]> { 77406f32e7eSjoerg let Latency = 4; let NumMicroOps = 2; 77506f32e7eSjoerg} 77606f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_X_X_115ln], 77706f32e7eSjoerg (instregex "FCVTZ(S|U)(v2f64|v4f32|(v2i64|v4i32)(_shift)?)$")>; 77806f32e7eSjoergdef KryoWrite_10cyc_XA_Y_noRSV_43ln : 77906f32e7eSjoerg SchedWriteRes<[KryoUnitXA, KryoUnitY]> { 78006f32e7eSjoerg let Latency = 10; let NumMicroOps = 3; 78106f32e7eSjoerg} 78206f32e7eSjoergdef : InstRW<[KryoWrite_10cyc_XA_Y_noRSV_43ln], 78306f32e7eSjoerg (instrs FDIVSrr)>; 78406f32e7eSjoergdef KryoWrite_14cyc_XA_Y_noRSV_43ln : 78506f32e7eSjoerg SchedWriteRes<[KryoUnitXA, KryoUnitY]> { 78606f32e7eSjoerg let Latency = 14; let NumMicroOps = 3; 78706f32e7eSjoerg} 78806f32e7eSjoergdef : InstRW<[KryoWrite_14cyc_XA_Y_noRSV_43ln], 78906f32e7eSjoerg (instrs FDIVDrr)>; 79006f32e7eSjoergdef KryoWrite_10cyc_XA_Y_noRSV_121ln : 79106f32e7eSjoerg SchedWriteRes<[KryoUnitXA, KryoUnitY]> { 79206f32e7eSjoerg let Latency = 10; let NumMicroOps = 3; 79306f32e7eSjoerg} 79406f32e7eSjoergdef : InstRW<[KryoWrite_10cyc_XA_Y_noRSV_121ln], 79506f32e7eSjoerg (instrs FDIVv2f32)>; 79606f32e7eSjoergdef KryoWrite_14cyc_XA_Y_XA_Y_123ln : 79706f32e7eSjoerg SchedWriteRes<[KryoUnitXA, KryoUnitY, KryoUnitXA, KryoUnitY]> { 79806f32e7eSjoerg let Latency = 14; let NumMicroOps = 4; 79906f32e7eSjoerg} 80006f32e7eSjoergdef : InstRW<[KryoWrite_14cyc_XA_Y_XA_Y_123ln], 80106f32e7eSjoerg (instrs FDIVv2f64, FDIVv4f32)>; 80206f32e7eSjoergdef KryoWrite_5cyc_X_noRSV_55ln : 80306f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 80406f32e7eSjoerg let Latency = 5; let NumMicroOps = 2; 80506f32e7eSjoerg} 80606f32e7eSjoergdef : InstRW<[KryoWrite_5cyc_X_noRSV_55ln], 80706f32e7eSjoerg (instregex "FN?M(ADD|SUB)Srrr")>; 80806f32e7eSjoergdef KryoWrite_6cyc_X_noRSV_57ln : 80906f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 81006f32e7eSjoerg let Latency = 6; let NumMicroOps = 2; 81106f32e7eSjoerg} 81206f32e7eSjoergdef : InstRW<[KryoWrite_6cyc_X_noRSV_57ln], 81306f32e7eSjoerg (instregex "FN?M(ADD|SUB)Drrr")>; 81406f32e7eSjoergdef KryoWrite_5cyc_X_noRSV_51ln : 81506f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 81606f32e7eSjoerg let Latency = 5; let NumMicroOps = 2; 81706f32e7eSjoerg} 81806f32e7eSjoergdef : InstRW<[KryoWrite_5cyc_X_noRSV_51ln], 81906f32e7eSjoerg (instrs FMLAv2f32, FMLSv2f32, FMLAv1i32_indexed, FMLSv1i32_indexed)>; 82006f32e7eSjoergdef KryoWrite_5cyc_X_X_56ln : 82106f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX]> { 82206f32e7eSjoerg let Latency = 5; let NumMicroOps = 2; 82306f32e7eSjoerg} 82406f32e7eSjoergdef : InstRW<[KryoWrite_5cyc_X_X_56ln], 82506f32e7eSjoerg (instrs FMLAv4f32, FMLSv4f32)>; 82606f32e7eSjoergdef KryoWrite_6cyc_X_X_61ln : 82706f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX]> { 82806f32e7eSjoerg let Latency = 6; let NumMicroOps = 2; 82906f32e7eSjoerg} 83006f32e7eSjoergdef : InstRW<[KryoWrite_6cyc_X_X_61ln], 83106f32e7eSjoerg (instrs FMLAv2f64, FMLSv2f64)>; 83206f32e7eSjoergdef KryoWrite_5cyc_X_noRSV_128ln : 83306f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 83406f32e7eSjoerg let Latency = 5; let NumMicroOps = 2; 83506f32e7eSjoerg} 83606f32e7eSjoergdef : InstRW<[KryoWrite_5cyc_X_noRSV_128ln], 83706f32e7eSjoerg (instrs FMLAv2i32_indexed, FMLSv2i32_indexed)>; 83806f32e7eSjoergdef KryoWrite_5cyc_X_X_131ln : 83906f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX]> { 84006f32e7eSjoerg let Latency = 5; let NumMicroOps = 2; 84106f32e7eSjoerg} 84206f32e7eSjoergdef : InstRW<[KryoWrite_5cyc_X_X_131ln], 84306f32e7eSjoerg (instrs FMLAv4i32_indexed, FMLSv4i32_indexed)>; 84406f32e7eSjoergdef KryoWrite_6cyc_X_X_134ln : 84506f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX]> { 84606f32e7eSjoerg let Latency = 6; let NumMicroOps = 2; 84706f32e7eSjoerg} 84806f32e7eSjoergdef : InstRW<[KryoWrite_6cyc_X_X_134ln], 84906f32e7eSjoerg (instrs FMLAv2i64_indexed, FMLSv2i64_indexed)>; 85006f32e7eSjoergdef KryoWrite_6cyc_X_noRSV_60ln : 85106f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 85206f32e7eSjoerg let Latency = 6; let NumMicroOps = 2; 85306f32e7eSjoerg} 85406f32e7eSjoergdef : InstRW<[KryoWrite_6cyc_X_noRSV_60ln], 85506f32e7eSjoerg (instrs FMLAv1i64_indexed, FMLSv1i64_indexed, FMULv1i64_indexed, FMULXv1i64_indexed)>; 85606f32e7eSjoergdef KryoWrite_1cyc_XY_45ln : 85706f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 85806f32e7eSjoerg let Latency = 1; let NumMicroOps = 1; 85906f32e7eSjoerg} 86006f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_XY_45ln], 86106f32e7eSjoerg (instregex "FMOV(XDHigh|DXHigh|DX)r")>; 86206f32e7eSjoergdef KryoWrite_1cyc_XY_noRSV_47ln : 86306f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 86406f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 86506f32e7eSjoerg} 86606f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_XY_noRSV_47ln], 86706f32e7eSjoerg (instregex "FMOV(Di|Dr|Si|Sr|SWr|WSr|XDr|v.*_ns)")>; 86806f32e7eSjoergdef KryoWrite_5cyc_X_noRSV_53ln : 86906f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 87006f32e7eSjoerg let Latency = 5; let NumMicroOps = 2; 87106f32e7eSjoerg} 87206f32e7eSjoergdef : InstRW<[KryoWrite_5cyc_X_noRSV_53ln], 87306f32e7eSjoerg (instrs FMULv1i32_indexed, FMULXv1i32_indexed)>; 87406f32e7eSjoergdef KryoWrite_5cyc_X_noRSV_127ln : 87506f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 87606f32e7eSjoerg let Latency = 5; let NumMicroOps = 2; 87706f32e7eSjoerg} 87806f32e7eSjoergdef : InstRW<[KryoWrite_5cyc_X_noRSV_127ln], 87906f32e7eSjoerg (instrs FMULv2f32, FMULXv2f32, FMULv2i32_indexed, FMULXv2i32_indexed)>; 88006f32e7eSjoergdef KryoWrite_5cyc_X_X_130ln : 88106f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX]> { 88206f32e7eSjoerg let Latency = 5; let NumMicroOps = 2; 88306f32e7eSjoerg} 88406f32e7eSjoergdef : InstRW<[KryoWrite_5cyc_X_X_130ln], 88506f32e7eSjoerg (instrs FMULv4f32, FMULXv4f32, FMULv4i32_indexed, FMULXv4i32_indexed)>; 88606f32e7eSjoergdef KryoWrite_6cyc_X_X_133ln : 88706f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX]> { 88806f32e7eSjoerg let Latency = 6; let NumMicroOps = 2; 88906f32e7eSjoerg} 89006f32e7eSjoergdef : InstRW<[KryoWrite_6cyc_X_X_133ln], 89106f32e7eSjoerg (instrs FMULv2f64, FMULXv2f64, FMULv2i64_indexed, FMULXv2i64_indexed)>; 89206f32e7eSjoergdef KryoWrite_5cyc_X_noRSV_54ln : 89306f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 89406f32e7eSjoerg let Latency = 5; let NumMicroOps = 2; 89506f32e7eSjoerg} 89606f32e7eSjoergdef : InstRW<[KryoWrite_5cyc_X_noRSV_54ln], 89706f32e7eSjoerg (instrs FMULSrr, FNMULSrr, FMULX32)>; 89806f32e7eSjoergdef KryoWrite_6cyc_X_noRSV_59ln : 89906f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 90006f32e7eSjoerg let Latency = 6; let NumMicroOps = 2; 90106f32e7eSjoerg} 90206f32e7eSjoergdef : InstRW<[KryoWrite_6cyc_X_noRSV_59ln], 90306f32e7eSjoerg (instrs FMULDrr, FNMULDrr, FMULX64)>; 90406f32e7eSjoergdef KryoWrite_3cyc_XY_noRSV_28ln : 90506f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 90606f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 90706f32e7eSjoerg} 90806f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_noRSV_28ln], 90906f32e7eSjoerg (instrs FRECPEv1i32, FRECPEv1i64, FRSQRTEv1i32, FRSQRTEv1i64 )>; 91006f32e7eSjoergdef KryoWrite_3cyc_XY_noRSV_99ln : 91106f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 91206f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 91306f32e7eSjoerg} 91406f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_noRSV_99ln], 91506f32e7eSjoerg (instrs FRECPEv2f32, FRSQRTEv2f32)>; 91606f32e7eSjoergdef KryoWrite_3cyc_XY_XY_102ln : 91706f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 91806f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 91906f32e7eSjoerg} 92006f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_XY_102ln], 92106f32e7eSjoerg (instrs FRECPEv2f64, FRECPEv4f32, FRSQRTEv2f64, FRSQRTEv4f32)>; 92206f32e7eSjoergdef KryoWrite_5cyc_X_noRSV_52ln : 92306f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 92406f32e7eSjoerg let Latency = 5; let NumMicroOps = 2; 92506f32e7eSjoerg} 92606f32e7eSjoergdef : InstRW<[KryoWrite_5cyc_X_noRSV_52ln], 92706f32e7eSjoerg (instrs FRECPS32, FRSQRTS32)>; 92806f32e7eSjoergdef KryoWrite_6cyc_X_noRSV_58ln : 92906f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 93006f32e7eSjoerg let Latency = 6; let NumMicroOps = 2; 93106f32e7eSjoerg} 93206f32e7eSjoergdef : InstRW<[KryoWrite_6cyc_X_noRSV_58ln], 93306f32e7eSjoerg (instrs FRECPS64, FRSQRTS64)>; 93406f32e7eSjoergdef KryoWrite_5cyc_X_noRSV_126ln : 93506f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 93606f32e7eSjoerg let Latency = 5; let NumMicroOps = 2; 93706f32e7eSjoerg} 93806f32e7eSjoergdef : InstRW<[KryoWrite_5cyc_X_noRSV_126ln], 93906f32e7eSjoerg (instrs FRECPSv2f32, FRSQRTSv2f32)>; 94006f32e7eSjoergdef KryoWrite_5cyc_X_X_129ln : 94106f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX]> { 94206f32e7eSjoerg let Latency = 5; let NumMicroOps = 2; 94306f32e7eSjoerg} 94406f32e7eSjoergdef : InstRW<[KryoWrite_5cyc_X_X_129ln], 94506f32e7eSjoerg (instrs FRECPSv4f32, FRSQRTSv4f32)>; 94606f32e7eSjoergdef KryoWrite_6cyc_X_X_132ln : 94706f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX]> { 94806f32e7eSjoerg let Latency = 6; let NumMicroOps = 2; 94906f32e7eSjoerg} 95006f32e7eSjoergdef : InstRW<[KryoWrite_6cyc_X_X_132ln], 95106f32e7eSjoerg (instrs FRECPSv2f64, FRSQRTSv2f64)>; 95206f32e7eSjoergdef KryoWrite_3cyc_XY_noRSV_50ln : 95306f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 95406f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 95506f32e7eSjoerg} 95606f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_noRSV_50ln], 95706f32e7eSjoerg (instrs FRECPXv1i32, FRECPXv1i64)>; 95806f32e7eSjoergdef KryoWrite_2cyc_XY_noRSV_39ln : 95906f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 96006f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 96106f32e7eSjoerg} 96206f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_noRSV_39ln], 96306f32e7eSjoerg (instregex "FRINT(A|I|M|N|P|X|Z)(S|D)r")>; 96406f32e7eSjoergdef KryoWrite_2cyc_XY_noRSV_108ln : 96506f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 96606f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 96706f32e7eSjoerg} 96806f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_noRSV_108ln], 96906f32e7eSjoerg (instregex "FRINT(A|I|M|N|P|X|Z)v2f32")>; 97006f32e7eSjoergdef KryoWrite_2cyc_XY_XY_109ln : 97106f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 97206f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 97306f32e7eSjoerg} 97406f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_XY_109ln], 97506f32e7eSjoerg (instregex "FRINT(A|I|M|N|P|X|Z)(v2f64|v4f32)")>; 97606f32e7eSjoergdef KryoWrite_12cyc_XA_Y_noRSV_42ln : 97706f32e7eSjoerg SchedWriteRes<[KryoUnitXA, KryoUnitY]> { 97806f32e7eSjoerg let Latency = 12; let NumMicroOps = 3; 97906f32e7eSjoerg} 98006f32e7eSjoergdef : InstRW<[KryoWrite_12cyc_XA_Y_noRSV_42ln], 98106f32e7eSjoerg (instrs FSQRTSr)>; 98206f32e7eSjoergdef KryoWrite_21cyc_XA_Y_noRSV_42ln : 98306f32e7eSjoerg SchedWriteRes<[KryoUnitXA, KryoUnitY]> { 98406f32e7eSjoerg let Latency = 21; let NumMicroOps = 3; 98506f32e7eSjoerg} 98606f32e7eSjoergdef : InstRW<[KryoWrite_21cyc_XA_Y_noRSV_42ln], 98706f32e7eSjoerg (instrs FSQRTDr)>; 98806f32e7eSjoergdef KryoWrite_12cyc_XA_Y_noRSV_120ln : 98906f32e7eSjoerg SchedWriteRes<[KryoUnitXA, KryoUnitY]> { 99006f32e7eSjoerg let Latency = 12; let NumMicroOps = 3; 99106f32e7eSjoerg} 99206f32e7eSjoergdef : InstRW<[KryoWrite_12cyc_XA_Y_noRSV_120ln], 99306f32e7eSjoerg (instrs FSQRTv2f32)>; 99406f32e7eSjoergdef KryoWrite_21cyc_XA_Y_XA_Y_122ln : 99506f32e7eSjoerg SchedWriteRes<[KryoUnitXA, KryoUnitY, KryoUnitXA, KryoUnitY]> { 99606f32e7eSjoerg let Latency = 21; let NumMicroOps = 4; 99706f32e7eSjoerg} 99806f32e7eSjoergdef : InstRW<[KryoWrite_21cyc_XA_Y_XA_Y_122ln], 99906f32e7eSjoerg (instrs FSQRTv4f32)>; 100006f32e7eSjoergdef KryoWrite_36cyc_XA_Y_XA_Y_122ln : 100106f32e7eSjoerg SchedWriteRes<[KryoUnitXA, KryoUnitY, KryoUnitXA, KryoUnitY]> { 100206f32e7eSjoerg let Latency = 36; let NumMicroOps = 4; 100306f32e7eSjoerg} 100406f32e7eSjoergdef : InstRW<[KryoWrite_36cyc_XA_Y_XA_Y_122ln], 100506f32e7eSjoerg (instrs FSQRTv2f64)>; 100606f32e7eSjoergdef KryoWrite_1cyc_X_201ln : 100706f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 100806f32e7eSjoerg let Latency = 1; let NumMicroOps = 1; 100906f32e7eSjoerg} 101006f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_X_201ln], 101106f32e7eSjoerg (instregex "INSv.*")>; 101206f32e7eSjoergdef KryoWrite_3cyc_LS_255ln : 101306f32e7eSjoerg SchedWriteRes<[KryoUnitLS]> { 101406f32e7eSjoerg let Latency = 3; let NumMicroOps = 1; 101506f32e7eSjoerg} 101606f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_255ln], 101706f32e7eSjoerg (instregex "LD1(One(v16b|v8h|v4s|v2d)|i64)$")>; 101806f32e7eSjoergdef KryoWrite_4cyc_LS_X_270ln : 101906f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitX]> { 102006f32e7eSjoerg let Latency = 4; let NumMicroOps = 2; 102106f32e7eSjoerg} 102206f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_LS_X_270ln], 102306f32e7eSjoerg (instregex "LD1(i8|i16|i32)$")>; 102406f32e7eSjoergdef KryoWrite_3cyc_LS_noRSV_285ln : 102506f32e7eSjoerg SchedWriteRes<[KryoUnitLS]> { 102606f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 102706f32e7eSjoerg} 102806f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_noRSV_285ln], 102906f32e7eSjoerg (instregex "LD1One(v8b|v4h|v2s|v1d)$")>; 103006f32e7eSjoergdef KryoWrite_3cyc_LS_XY_289ln : 103106f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitXY]> { 103206f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 103306f32e7eSjoerg} 103406f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_XY_289ln, WriteAdr], 103506f32e7eSjoerg (instregex "LD1(One(v16b|v8h|v4s|v2d)|i64)_POST$")>; 103606f32e7eSjoergdef KryoWrite_4cyc_LS_XY_X_298ln : 103706f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitXY, KryoUnitX]> { 103806f32e7eSjoerg let Latency = 4; let NumMicroOps = 3; 103906f32e7eSjoerg} 104006f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_LS_XY_X_298ln, WriteAdr], 104106f32e7eSjoerg (instregex "LD1(i8|i16|i32)_POST$")>; 104206f32e7eSjoergdef KryoWrite_3cyc_LS_LS_LS_308ln : 104306f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitLS, KryoUnitLS]> { 104406f32e7eSjoerg let Latency = 3; let NumMicroOps = 3; 104506f32e7eSjoerg} 104606f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_LS_LS_308ln], 104706f32e7eSjoerg (instregex "LD1Three(v16b|v8h|v4s|v2d)$")>; 104806f32e7eSjoergdef KryoWrite_3cyc_LS_XY_noRSV_317ln : 104906f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitXY]> { 105006f32e7eSjoerg let Latency = 3; let NumMicroOps = 3; 105106f32e7eSjoerg} 105206f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_XY_noRSV_317ln, WriteAdr], 105306f32e7eSjoerg (instregex "LD1One(v8b|v4h|v2s|v1d)_POST$")>; 105406f32e7eSjoergdef KryoWrite_3cyc_LS_LS_LS_LS_328ln : 105506f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitLS, KryoUnitLS, KryoUnitLS]> { 105606f32e7eSjoerg let Latency = 3; let NumMicroOps = 4; 105706f32e7eSjoerg} 105806f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_LS_LS_LS_328ln, WriteAdr], 105906f32e7eSjoerg (instregex "LD1Four(v16b|v8h|v4s|v2d)_POST$")>; 106006f32e7eSjoergdef KryoWrite_3cyc_LS_XY_LS_LS_332ln : 106106f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitXY, KryoUnitLS, KryoUnitLS]> { 106206f32e7eSjoerg let Latency = 3; let NumMicroOps = 4; 106306f32e7eSjoerg} 106406f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_XY_LS_LS_332ln, WriteAdr], 106506f32e7eSjoerg (instregex "LD1Three(v16b|v8h|v4s|v2d)_POST$")>; 106606f32e7eSjoergdef KryoWrite_3cyc_LS_LS_noRSV_noRSV_noRSV_348ln : 106706f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitLS]> { 106806f32e7eSjoerg let Latency = 3; let NumMicroOps = 5; 106906f32e7eSjoerg} 107006f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_LS_noRSV_noRSV_noRSV_348ln], 107106f32e7eSjoerg (instregex "LD1Three(v8b|v4h|v2s|v1d)$")>; 107206f32e7eSjoergdef KryoWrite_3cyc_LS_XY_LS_LS_LS_351ln : 107306f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitXY, KryoUnitLS, KryoUnitLS, KryoUnitLS]> { 107406f32e7eSjoerg let Latency = 3; let NumMicroOps = 5; 107506f32e7eSjoerg} 107606f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_XY_LS_LS_LS_351ln], 107706f32e7eSjoerg (instregex "LD1Four(v16b|v8h|v4s|v2d)$")>; 107806f32e7eSjoergdef KryoWrite_3cyc_LS_LS_noRSV_noRSV_noRSV_noRSV_358ln : 107906f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitLS]> { 108006f32e7eSjoerg let Latency = 3; let NumMicroOps = 6; 108106f32e7eSjoerg} 108206f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_LS_noRSV_noRSV_noRSV_noRSV_358ln], 108306f32e7eSjoerg (instregex "LD1Four(v8b|v4h|v2s|v1d)$")>; 108406f32e7eSjoergdef KryoWrite_3cyc_LS_XY_LS_noRSV_noRSV_noRSV_360ln : 108506f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitXY, KryoUnitLS]> { 108606f32e7eSjoerg let Latency = 3; let NumMicroOps = 6; 108706f32e7eSjoerg} 108806f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_XY_LS_noRSV_noRSV_noRSV_360ln, WriteAdr], 108906f32e7eSjoerg (instregex "LD1Three(v8b|v4h|v2s|v1d)_POST$")>; 109006f32e7eSjoergdef KryoWrite_3cyc_LS_XY_LS_noRSV_noRSV_noRSV_noRSV_368ln : 109106f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitXY, KryoUnitLS]> { 109206f32e7eSjoerg let Latency = 3; let NumMicroOps = 7; 109306f32e7eSjoerg} 109406f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_XY_LS_noRSV_noRSV_noRSV_noRSV_368ln, WriteAdr], 109506f32e7eSjoerg (instregex "LD1Four(v8b|v4h|v2s|v1d)_POST$")>; 109606f32e7eSjoergdef KryoWrite_3cyc_LS_LS_281ln : 109706f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitLS]> { 109806f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 109906f32e7eSjoerg} 110006f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_LS_281ln], 110106f32e7eSjoerg (instregex "LD(1|2)Two(v16b|v8h|v4s|v2d)$")>; 110206f32e7eSjoergdef KryoWrite_3cyc_LS_noRSV_noRSV_311ln : 110306f32e7eSjoerg SchedWriteRes<[KryoUnitLS]> { 110406f32e7eSjoerg let Latency = 3; let NumMicroOps = 3; 110506f32e7eSjoerg} 110606f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_noRSV_noRSV_311ln], 110706f32e7eSjoerg (instregex "LD(1|2)Two(v8b|v4h|v2s|v1d)$")>; 110806f32e7eSjoergdef KryoWrite_3cyc_LS_XY_LS_313ln : 110906f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitXY, KryoUnitLS]> { 111006f32e7eSjoerg let Latency = 3; let NumMicroOps = 3; 111106f32e7eSjoerg} 111206f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_XY_LS_313ln, WriteAdr], 111306f32e7eSjoerg (instregex "LD(1|2)Two(v16b|v8h|v4s|v2d)_POST$")>; 111406f32e7eSjoergdef KryoWrite_3cyc_LS_XY_noRSV_noRSV_334ln : 111506f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitXY]> { 111606f32e7eSjoerg let Latency = 3; let NumMicroOps = 4; 111706f32e7eSjoerg} 111806f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_XY_noRSV_noRSV_334ln, WriteAdr], 111906f32e7eSjoerg (instregex "LD(1|2)Two(v8b|v4h|v2s|v1d)_POST$")>; 112006f32e7eSjoergdef KryoWrite_3cyc_LS_256ln : 112106f32e7eSjoerg SchedWriteRes<[KryoUnitLS]> { 112206f32e7eSjoerg let Latency = 3; let NumMicroOps = 1; 112306f32e7eSjoerg} 112406f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_256ln], 112506f32e7eSjoerg (instregex "LD1R(v16b|v8h|v4s|v2d)$")>; 112606f32e7eSjoergdef KryoWrite_3cyc_LS_noRSV_286ln : 112706f32e7eSjoerg SchedWriteRes<[KryoUnitLS]> { 112806f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 112906f32e7eSjoerg} 113006f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_noRSV_286ln], 113106f32e7eSjoerg (instregex "LD1R(v8b|v4h|v2s|v1d)$")>; 113206f32e7eSjoergdef KryoWrite_3cyc_LS_XY_290ln : 113306f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitXY]> { 113406f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 113506f32e7eSjoerg} 113606f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_XY_290ln, WriteAdr], 113706f32e7eSjoerg (instregex "LD1R(v16b|v8h|v4s|v2d)_POST$")>; 113806f32e7eSjoergdef KryoWrite_3cyc_LS_XY_noRSV_318ln : 113906f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitXY]> { 114006f32e7eSjoerg let Latency = 3; let NumMicroOps = 3; 114106f32e7eSjoerg} 114206f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_XY_noRSV_318ln, WriteAdr], 114306f32e7eSjoerg (instregex "LD1R(v8b|v4h|v2s|v1d)_POST$")>; 114406f32e7eSjoergdef KryoWrite_3cyc_LS_257ln : 114506f32e7eSjoerg SchedWriteRes<[KryoUnitLS]> { 114606f32e7eSjoerg let Latency = 3; let NumMicroOps = 1; 114706f32e7eSjoerg} 114806f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_257ln], 114906f32e7eSjoerg (instregex "LD2i64$")>; 115006f32e7eSjoergdef KryoWrite_3cyc_LS_XY_291ln : 115106f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitXY]> { 115206f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 115306f32e7eSjoerg} 115406f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_XY_291ln, WriteAdr], 115506f32e7eSjoerg (instregex "LD2i64_POST$")>; 115606f32e7eSjoergdef KryoWrite_4cyc_LS_X_X_296ln : 115706f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitX, KryoUnitX]> { 115806f32e7eSjoerg let Latency = 4; let NumMicroOps = 3; 115906f32e7eSjoerg} 116006f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_LS_X_X_296ln], 116106f32e7eSjoerg (instregex "LD2(i8|i16|i32)$")>; 116206f32e7eSjoergdef KryoWrite_4cyc_LS_XY_X_X_321ln : 116306f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitXY, KryoUnitX, KryoUnitX]> { 116406f32e7eSjoerg let Latency = 4; let NumMicroOps = 4; 116506f32e7eSjoerg} 116606f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_LS_XY_X_X_321ln, WriteAdr], 116706f32e7eSjoerg (instregex "LD2(i8|i16|i32)_POST$")>; 116806f32e7eSjoergdef KryoWrite_3cyc_LS_LS_282ln : 116906f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitLS]> { 117006f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 117106f32e7eSjoerg} 117206f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_LS_282ln], 117306f32e7eSjoerg (instregex "LD2R(v16b|v8h|v4s|v2d)$")>; 117406f32e7eSjoergdef KryoWrite_3cyc_LS_noRSV_noRSV_312ln : 117506f32e7eSjoerg SchedWriteRes<[KryoUnitLS]> { 117606f32e7eSjoerg let Latency = 3; let NumMicroOps = 3; 117706f32e7eSjoerg} 117806f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_noRSV_noRSV_312ln], 117906f32e7eSjoerg (instregex "LD2R(v8b|v4h|v2s|v1d)$")>; 118006f32e7eSjoergdef KryoWrite_3cyc_LS_XY_LS_314ln : 118106f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitXY, KryoUnitLS]> { 118206f32e7eSjoerg let Latency = 3; let NumMicroOps = 3; 118306f32e7eSjoerg} 118406f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_XY_LS_314ln, WriteAdr], 118506f32e7eSjoerg (instregex "LD2R(v16b|v8h|v4s|v2d)_POST$")>; 118606f32e7eSjoergdef KryoWrite_3cyc_LS_XY_noRSV_noRSV_335ln : 118706f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitXY]> { 118806f32e7eSjoerg let Latency = 3; let NumMicroOps = 4; 118906f32e7eSjoerg} 119006f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_XY_noRSV_noRSV_335ln, WriteAdr], 119106f32e7eSjoerg (instregex "LD2R(v8b|v4h|v2s|v1d)_POST$")>; 119206f32e7eSjoergdef KryoWrite_3cyc_LS_LS_283ln : 119306f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitLS]> { 119406f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 119506f32e7eSjoerg} 119606f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_LS_283ln], 119706f32e7eSjoerg (instregex "LD3i64$")>; 119806f32e7eSjoergdef KryoWrite_3cyc_LS_LS_LS_309ln : 119906f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitLS, KryoUnitLS]> { 120006f32e7eSjoerg let Latency = 3; let NumMicroOps = 3; 120106f32e7eSjoerg} 120206f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_LS_LS_309ln], 120306f32e7eSjoerg (instregex "LD3Threev2d$")>; 120406f32e7eSjoergdef KryoWrite_3cyc_LS_XY_LS_315ln : 120506f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitXY, KryoUnitLS]> { 120606f32e7eSjoerg let Latency = 3; let NumMicroOps = 3; 120706f32e7eSjoerg} 120806f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_XY_LS_315ln, WriteAdr], 120906f32e7eSjoerg (instregex "LD3i64_POST$")>; 121006f32e7eSjoergdef KryoWrite_4cyc_LS_X_X_X_320ln : 121106f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitX, KryoUnitX, KryoUnitX]> { 121206f32e7eSjoerg let Latency = 4; let NumMicroOps = 4; 121306f32e7eSjoerg} 121406f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_LS_X_X_X_320ln], 121506f32e7eSjoerg (instregex "LD3(i8|i16|i32)$")>; 121606f32e7eSjoergdef KryoWrite_3cyc_LS_XY_LS_LS_331ln : 121706f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitXY, KryoUnitLS, KryoUnitLS]> { 121806f32e7eSjoerg let Latency = 3; let NumMicroOps = 4; 121906f32e7eSjoerg} 122006f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_XY_LS_LS_331ln, WriteAdr], 122106f32e7eSjoerg (instregex "LD3Threev2d_POST$")>; 122206f32e7eSjoergdef KryoWrite_4cyc_LS_XY_X_X_X_338ln : 122306f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitXY, KryoUnitX, KryoUnitX, KryoUnitX]> { 122406f32e7eSjoerg let Latency = 4; let NumMicroOps = 5; 122506f32e7eSjoerg} 122606f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_LS_XY_X_X_X_338ln, WriteAdr], 122706f32e7eSjoerg (instregex "LD3(i8|i16|i32)_POST$")>; 122806f32e7eSjoergdef KryoWrite_4cyc_LS_LS_X_X_X_noRSV_noRSV_noRSV_373ln : 122906f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitLS, KryoUnitX, KryoUnitX, KryoUnitX]> { 123006f32e7eSjoerg let Latency = 4; let NumMicroOps = 8; 123106f32e7eSjoerg} 123206f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_LS_LS_X_X_X_noRSV_noRSV_noRSV_373ln], 123306f32e7eSjoerg (instregex "LD3Three(v8b|v4h|v2s)$")>; 123406f32e7eSjoergdef KryoWrite_4cyc_LS_XY_LS_X_X_X_noRSV_noRSV_noRSV_380ln : 123506f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitXY, KryoUnitLS, KryoUnitX, KryoUnitX, 123606f32e7eSjoerg KryoUnitX]> { 123706f32e7eSjoerg let Latency = 4; let NumMicroOps = 9; 123806f32e7eSjoerg} 123906f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_LS_XY_LS_X_X_X_noRSV_noRSV_noRSV_380ln, WriteAdr], 124006f32e7eSjoerg (instregex "LD3Three(v8b|v4h|v2s)_POST$")>; 124106f32e7eSjoergdef KryoWrite_4cyc_LS_LS_X_X_X_LS_LS_X_X_X_381ln : 124206f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitLS, KryoUnitX, KryoUnitX, KryoUnitX, 124306f32e7eSjoerg KryoUnitLS, KryoUnitLS, KryoUnitX, KryoUnitX, KryoUnitX]> { 124406f32e7eSjoerg let Latency = 4; let NumMicroOps = 10; 124506f32e7eSjoerg} 124606f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_LS_LS_X_X_X_LS_LS_X_X_X_381ln], 124706f32e7eSjoerg (instregex "LD3Three(v16b|v8h|v4s)$")>; 124806f32e7eSjoergdef KryoWrite_4cyc_LS_LS_X_X_X_LS_XY_LS_X_X_X_383ln : 124906f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitLS, KryoUnitX, KryoUnitX, KryoUnitX, 125006f32e7eSjoerg KryoUnitLS, KryoUnitXY, KryoUnitLS, KryoUnitX, KryoUnitX, 125106f32e7eSjoerg KryoUnitX]> { 125206f32e7eSjoerg let Latency = 4; let NumMicroOps = 11; 125306f32e7eSjoerg} 125406f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_LS_LS_X_X_X_LS_XY_LS_X_X_X_383ln, WriteAdr], 125506f32e7eSjoerg (instregex "LD3Three(v16b|v8h|v4s)_POST$")>; 125606f32e7eSjoergdef KryoWrite_3cyc_LS_LS_LS_310ln : 125706f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitLS, KryoUnitLS]> { 125806f32e7eSjoerg let Latency = 3; let NumMicroOps = 3; 125906f32e7eSjoerg} 126006f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_LS_LS_310ln], 126106f32e7eSjoerg (instregex "LD3R(v16b|v8h|v4s|v2d)$")>; 126206f32e7eSjoergdef KryoWrite_3cyc_LS_XY_LS_LS_333ln : 126306f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitXY, KryoUnitLS, KryoUnitLS]> { 126406f32e7eSjoerg let Latency = 3; let NumMicroOps = 4; 126506f32e7eSjoerg} 126606f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_XY_LS_LS_333ln, WriteAdr], 126706f32e7eSjoerg (instregex "LD3R(v16b|v8h|v4s|v2d)_POST$")>; 126806f32e7eSjoergdef KryoWrite_3cyc_LS_LS_noRSV_noRSV_noRSV_349ln : 126906f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitLS]> { 127006f32e7eSjoerg let Latency = 3; let NumMicroOps = 5; 127106f32e7eSjoerg} 127206f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_LS_noRSV_noRSV_noRSV_349ln], 127306f32e7eSjoerg (instregex "LD3R(v8b|v4h|v2s|v1d)$")>; 127406f32e7eSjoergdef KryoWrite_3cyc_LS_XY_LS_noRSV_noRSV_noRSV_361ln : 127506f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitXY, KryoUnitLS]> { 127606f32e7eSjoerg let Latency = 3; let NumMicroOps = 6; 127706f32e7eSjoerg} 127806f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_XY_LS_noRSV_noRSV_noRSV_361ln, WriteAdr], 127906f32e7eSjoerg (instregex "LD3R(v8b|v4h|v2s|v1d)_POST$")>; 128006f32e7eSjoergdef KryoWrite_3cyc_LS_LS_284ln : 128106f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitLS]> { 128206f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 128306f32e7eSjoerg} 128406f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_LS_284ln], 128506f32e7eSjoerg (instregex "LD4i64$")>; 128606f32e7eSjoergdef KryoWrite_3cyc_LS_XY_LS_316ln : 128706f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitXY, KryoUnitLS]> { 128806f32e7eSjoerg let Latency = 3; let NumMicroOps = 3; 128906f32e7eSjoerg} 129006f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_XY_LS_316ln, WriteAdr], 129106f32e7eSjoerg (instregex "LD4i64_POST$")>; 129206f32e7eSjoergdef KryoWrite_3cyc_LS_LS_LS_LS_329ln : 129306f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitLS, KryoUnitLS, KryoUnitLS]> { 129406f32e7eSjoerg let Latency = 3; let NumMicroOps = 4; 129506f32e7eSjoerg} 129606f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_LS_LS_LS_329ln], 129706f32e7eSjoerg (instregex "LD4Four(v2d)$")>; 129806f32e7eSjoergdef KryoWrite_4cyc_LS_X_X_X_X_337ln : 129906f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitX, KryoUnitX, KryoUnitX, KryoUnitX]> { 130006f32e7eSjoerg let Latency = 4; let NumMicroOps = 5; 130106f32e7eSjoerg} 130206f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_LS_X_X_X_X_337ln], 130306f32e7eSjoerg (instregex "LD4(i8|i16|i32)$")>; 130406f32e7eSjoergdef KryoWrite_3cyc_LS_XY_LS_LS_LS_350ln : 130506f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitXY, KryoUnitLS, KryoUnitLS, KryoUnitLS]> { 130606f32e7eSjoerg let Latency = 3; let NumMicroOps = 5; 130706f32e7eSjoerg} 130806f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_XY_LS_LS_LS_350ln, WriteAdr], 130906f32e7eSjoerg (instregex "LD4Four(v2d)_POST$")>; 131006f32e7eSjoergdef KryoWrite_4cyc_LS_XY_X_X_X_X_355ln : 131106f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitXY, KryoUnitX, KryoUnitX, KryoUnitX, 131206f32e7eSjoerg KryoUnitX]> { 131306f32e7eSjoerg let Latency = 4; let NumMicroOps = 6; 131406f32e7eSjoerg} 131506f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_LS_XY_X_X_X_X_355ln, WriteAdr], 131606f32e7eSjoerg (instregex "LD4(i8|i16|i32)_POST$")>; 131706f32e7eSjoergdef KryoWrite_4cyc_LS_LS_X_X_X_X_noRSV_noRSV_noRSV_noRSV_382ln : 131806f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitLS, KryoUnitX, KryoUnitX, KryoUnitX, 131906f32e7eSjoerg KryoUnitX]> { 132006f32e7eSjoerg let Latency = 4; let NumMicroOps = 10; 132106f32e7eSjoerg} 132206f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_LS_LS_X_X_X_X_noRSV_noRSV_noRSV_noRSV_382ln], 132306f32e7eSjoerg (instregex "LD4Four(v8b|v4h|v2s)$")>; 132406f32e7eSjoergdef KryoWrite_4cyc_LS_XY_LS_X_X_X_X_noRSV_noRSV_noRSV_noRSV_384ln : 132506f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitXY, KryoUnitLS, KryoUnitX, KryoUnitX, 132606f32e7eSjoerg KryoUnitX, KryoUnitX]> { 132706f32e7eSjoerg let Latency = 4; let NumMicroOps = 11; 132806f32e7eSjoerg} 132906f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_LS_XY_LS_X_X_X_X_noRSV_noRSV_noRSV_noRSV_384ln, WriteAdr], 133006f32e7eSjoerg (instregex "LD4Four(v8b|v4h|v2s)_POST$")>; 133106f32e7eSjoergdef KryoWrite_4cyc_LS_LS_X_X_X_X_LS_LS_X_X_X_X_386ln : 133206f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitLS, KryoUnitX, KryoUnitX, KryoUnitX, 133306f32e7eSjoerg KryoUnitX, KryoUnitLS, KryoUnitLS, KryoUnitX, KryoUnitX, 133406f32e7eSjoerg KryoUnitX, KryoUnitX]> { 133506f32e7eSjoerg let Latency = 4; let NumMicroOps = 12; 133606f32e7eSjoerg} 133706f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_LS_LS_X_X_X_X_LS_LS_X_X_X_X_386ln], 133806f32e7eSjoerg (instregex "LD4Four(v16b|v8h|v4s)$")>; 133906f32e7eSjoergdef KryoWrite_4cyc_LS_LS_X_X_X_X_LS_XY_LS_X_X_X_X_389ln : 134006f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitLS, KryoUnitX, KryoUnitX, KryoUnitX, 134106f32e7eSjoerg KryoUnitX, KryoUnitLS, KryoUnitXY, KryoUnitLS, KryoUnitX, 134206f32e7eSjoerg KryoUnitX, KryoUnitX, KryoUnitX]> { 134306f32e7eSjoerg let Latency = 4; let NumMicroOps = 13; 134406f32e7eSjoerg} 134506f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_LS_LS_X_X_X_X_LS_XY_LS_X_X_X_X_389ln, WriteAdr], 134606f32e7eSjoerg (instregex "LD4Four(v16b|v8h|v4s)_POST$")>; 134706f32e7eSjoergdef KryoWrite_3cyc_LS_LS_LS_LS_330ln : 134806f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitLS, KryoUnitLS, KryoUnitLS]> { 134906f32e7eSjoerg let Latency = 3; let NumMicroOps = 4; 135006f32e7eSjoerg} 135106f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_LS_LS_LS_330ln], 135206f32e7eSjoerg (instregex "LD4R(v16b|v8h|v4s|v2d)$")>; 135306f32e7eSjoergdef KryoWrite_3cyc_LS_XY_LS_LS_LS_352ln : 135406f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitXY, KryoUnitLS, KryoUnitLS, KryoUnitLS]> { 135506f32e7eSjoerg let Latency = 3; let NumMicroOps = 5; 135606f32e7eSjoerg} 135706f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_XY_LS_LS_LS_352ln, WriteAdr], 135806f32e7eSjoerg (instregex "LD4R(v16b|v8h|v4s|v2d)_POST$")>; 135906f32e7eSjoergdef KryoWrite_3cyc_LS_LS_noRSV_noRSV_noRSV_noRSV_359ln : 136006f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitLS]> { 136106f32e7eSjoerg let Latency = 3; let NumMicroOps = 6; 136206f32e7eSjoerg} 136306f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_LS_noRSV_noRSV_noRSV_noRSV_359ln], 136406f32e7eSjoerg (instregex "LD4R(v8b|v4h|v2s|v1d)$")>; 136506f32e7eSjoergdef KryoWrite_3cyc_LS_XY_LS_noRSV_noRSV_noRSV_noRSV_369ln : 136606f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitXY, KryoUnitLS]> { 136706f32e7eSjoerg let Latency = 3; let NumMicroOps = 7; 136806f32e7eSjoerg} 136906f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_XY_LS_noRSV_noRSV_noRSV_noRSV_369ln, WriteAdr], 137006f32e7eSjoerg (instregex "LD4R(v8b|v4h|v2s|v1d)_POST$")>; 137106f32e7eSjoergdef KryoWrite_3cyc_LS_LS_400ln : 137206f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitLS]> { 137306f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 137406f32e7eSjoerg} 137506f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_LS_400ln], 137606f32e7eSjoerg (instregex "LDAX?R(B|H|W|X)")>; 137706f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_LS_400ln, WriteLDHi], 137806f32e7eSjoerg (instregex "LDAXP(W|X)")>; 137906f32e7eSjoergdef KryoWrite_3cyc_LS_LS_401ln : 138006f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitLS]> { 138106f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 138206f32e7eSjoerg} 138306f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_LS_401ln, WriteLDHi], 138406f32e7eSjoerg (instrs LDNPQi)>; 138506f32e7eSjoergdef KryoWrite_3cyc_LS_noRSV_noRSV_408ln : 138606f32e7eSjoerg SchedWriteRes<[KryoUnitLS]> { 138706f32e7eSjoerg let Latency = 3; let NumMicroOps = 3; 138806f32e7eSjoerg} 138906f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_noRSV_noRSV_408ln, WriteLDHi], 139006f32e7eSjoerg (instrs LDNPDi, LDNPSi)>; 139106f32e7eSjoergdef KryoWrite_3cyc_LS_394ln : 139206f32e7eSjoerg SchedWriteRes<[KryoUnitLS]> { 139306f32e7eSjoerg let Latency = 3; let NumMicroOps = 1; 139406f32e7eSjoerg} 139506f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_394ln, WriteLDHi], 139606f32e7eSjoerg (instrs LDNPWi, LDNPXi)>; 139706f32e7eSjoergdef KryoWrite_3cyc_LS_LS_402ln : 139806f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitLS]> { 139906f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 140006f32e7eSjoerg} 140106f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_LS_402ln, WriteLDHi], 140206f32e7eSjoerg (instrs LDPQi)>; 140306f32e7eSjoergdef KryoWrite_3cyc_LS_noRSV_noRSV_409ln : 140406f32e7eSjoerg SchedWriteRes<[KryoUnitLS]> { 140506f32e7eSjoerg let Latency = 3; let NumMicroOps = 3; 140606f32e7eSjoerg} 140706f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_noRSV_noRSV_409ln, WriteLDHi], 140806f32e7eSjoerg (instrs LDPDi, LDPSi)>; 140906f32e7eSjoergdef KryoWrite_3cyc_LS_XY_LS_410ln : 141006f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitXY, KryoUnitLS]> { 141106f32e7eSjoerg let Latency = 3; let NumMicroOps = 3; 141206f32e7eSjoerg} 141306f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_XY_LS_410ln, WriteLDHi, WriteAdr], 141406f32e7eSjoerg (instregex "LDPQ(post|pre)")>; 141506f32e7eSjoergdef KryoWrite_3cyc_LS_XY_noRSV_noRSV_411ln : 141606f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitXY]> { 141706f32e7eSjoerg let Latency = 3; let NumMicroOps = 4; 141806f32e7eSjoerg} 141906f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_XY_noRSV_noRSV_411ln, WriteLDHi, WriteAdr], 142006f32e7eSjoerg (instregex "LDP(D|S)(post|pre)")>; 142106f32e7eSjoergdef KryoWrite_3cyc_LS_393ln : 142206f32e7eSjoerg SchedWriteRes<[KryoUnitLS]> { 142306f32e7eSjoerg let Latency = 3; let NumMicroOps = 1; 142406f32e7eSjoerg} 142506f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_393ln, WriteLDHi], 142606f32e7eSjoerg (instrs LDPWi, LDPXi)>; 142706f32e7eSjoergdef KryoWrite_3cyc_LS_XY_403ln : 142806f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitXY]> { 142906f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 143006f32e7eSjoerg} 143106f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_XY_403ln, WriteLDHi, WriteAdr], 143206f32e7eSjoerg (instregex "LDP(W|X)(post|pre)")>; 143306f32e7eSjoergdef KryoWrite_4cyc_LS_395ln : 143406f32e7eSjoerg SchedWriteRes<[KryoUnitLS]> { 143506f32e7eSjoerg let Latency = 4; let NumMicroOps = 1; 143606f32e7eSjoerg} 143706f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_LS_395ln, WriteLDHi], 143806f32e7eSjoerg (instrs LDPSWi)>; 143906f32e7eSjoergdef KryoWrite_4cyc_LS_XY_405ln : 144006f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitXY]> { 144106f32e7eSjoerg let Latency = 4; let NumMicroOps = 2; 144206f32e7eSjoerg} 144306f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_LS_XY_405ln, WriteLDHi, WriteAdr], 144406f32e7eSjoerg (instrs LDPSWpost, LDPSWpre)>; 144506f32e7eSjoergdef KryoWrite_3cyc_LS_264ln : 144606f32e7eSjoerg SchedWriteRes<[KryoUnitLS]> { 144706f32e7eSjoerg let Latency = 3; let NumMicroOps = 1; 144806f32e7eSjoerg} 144906f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_264ln], 145006f32e7eSjoerg (instrs LDRQui, LDRQl)>; 145106f32e7eSjoergdef KryoWrite_4cyc_X_LS_271ln : 145206f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitLS]> { 145306f32e7eSjoerg let Latency = 4; let NumMicroOps = 2; 145406f32e7eSjoerg} 145506f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_X_LS_271ln], 145606f32e7eSjoerg (instrs LDRQroW, LDRQroX)>; 145706f32e7eSjoergdef KryoWrite_3cyc_LS_noRSV_287ln : 145806f32e7eSjoerg SchedWriteRes<[KryoUnitLS]> { 145906f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 146006f32e7eSjoerg} 146106f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_noRSV_287ln], 146206f32e7eSjoerg (instregex "LDR((D|S)l|(D|S|H|B)ui)")>; 146306f32e7eSjoergdef KryoWrite_3cyc_LS_XY_293ln : 146406f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitXY]> { 146506f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 146606f32e7eSjoerg} 146706f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_XY_293ln, WriteAdr], 146806f32e7eSjoerg (instrs LDRQpost, LDRQpre)>; 146906f32e7eSjoergdef KryoWrite_4cyc_X_LS_noRSV_297ln : 147006f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitLS]> { 147106f32e7eSjoerg let Latency = 4; let NumMicroOps = 3; 147206f32e7eSjoerg} 147306f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_X_LS_noRSV_297ln], 147406f32e7eSjoerg (instregex "LDR(D|S|H|B)ro(W|X)")>; 147506f32e7eSjoergdef KryoWrite_3cyc_LS_XY_noRSV_319ln : 147606f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitXY]> { 147706f32e7eSjoerg let Latency = 3; let NumMicroOps = 3; 147806f32e7eSjoerg} 147906f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_XY_noRSV_319ln, WriteAdr], 148006f32e7eSjoerg (instregex "LDR(D|S|H|B)(post|pre)")>; 148106f32e7eSjoergdef KryoWrite_3cyc_LS_261ln : 148206f32e7eSjoerg SchedWriteRes<[KryoUnitLS]> { 148306f32e7eSjoerg let Latency = 3; let NumMicroOps = 1; 148406f32e7eSjoerg} 148506f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_261ln], 148606f32e7eSjoerg (instregex "LDR(BB|HH|W|X)ui")>; 148706f32e7eSjoergdef KryoWrite_3cyc_LS_XY_292ln : 148806f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitXY]> { 148906f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 149006f32e7eSjoerg} 149106f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_XY_292ln, WriteAdr], 149206f32e7eSjoerg (instregex "LDR(BB|HH|W|X)(post|pre)")>; 149306f32e7eSjoergdef KryoWrite_4cyc_X_LS_272ln : 149406f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitLS]> { 149506f32e7eSjoerg let Latency = 4; let NumMicroOps = 2; 149606f32e7eSjoerg} 149706f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_X_LS_272ln], 149806f32e7eSjoerg (instregex "(LDR(BB|HH|W|X)ro(W|X)|PRFMro(W|X))")>; 149906f32e7eSjoergdef KryoWrite_3cyc_LS_262ln : 150006f32e7eSjoerg SchedWriteRes<[KryoUnitLS]> { 150106f32e7eSjoerg let Latency = 3; let NumMicroOps = 1; 150206f32e7eSjoerg} 150306f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_262ln], 150406f32e7eSjoerg (instrs LDRWl, LDRXl)>; 150506f32e7eSjoergdef KryoWrite_4cyc_LS_268ln : 150606f32e7eSjoerg SchedWriteRes<[KryoUnitLS]> { 150706f32e7eSjoerg let Latency = 4; let NumMicroOps = 1; 150806f32e7eSjoerg} 150906f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_LS_268ln], 151006f32e7eSjoerg (instregex "LDRS(BW|BX|HW|HX|W)ui")>; 151106f32e7eSjoergdef KryoWrite_5cyc_X_LS_273ln : 151206f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitLS]> { 151306f32e7eSjoerg let Latency = 5; let NumMicroOps = 2; 151406f32e7eSjoerg} 151506f32e7eSjoergdef : InstRW<[KryoWrite_5cyc_X_LS_273ln], 151606f32e7eSjoerg (instregex "LDRS(BW|BX|HW|HX|W)ro(W|X)")>; 151706f32e7eSjoergdef KryoWrite_4cyc_LS_XY_294ln : 151806f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitXY]> { 151906f32e7eSjoerg let Latency = 4; let NumMicroOps = 2; 152006f32e7eSjoerg} 152106f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_LS_XY_294ln, WriteAdr], 152206f32e7eSjoerg (instregex "LDRS(BW|BX|HW|HX|W)(post|pre)")>; 152306f32e7eSjoergdef KryoWrite_4cyc_LS_269ln : 152406f32e7eSjoerg SchedWriteRes<[KryoUnitLS]> { 152506f32e7eSjoerg let Latency = 4; let NumMicroOps = 1; 152606f32e7eSjoerg} 152706f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_LS_269ln], 152806f32e7eSjoerg (instrs LDRSWl)>; 152906f32e7eSjoergdef KryoWrite_3cyc_LS_260ln : 153006f32e7eSjoerg SchedWriteRes<[KryoUnitLS]> { 153106f32e7eSjoerg let Latency = 3; let NumMicroOps = 1; 153206f32e7eSjoerg} 153306f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_260ln], 153406f32e7eSjoerg (instregex "LDTR(B|H|W|X)i")>; 153506f32e7eSjoergdef KryoWrite_4cyc_LS_267ln : 153606f32e7eSjoerg SchedWriteRes<[KryoUnitLS]> { 153706f32e7eSjoerg let Latency = 4; let NumMicroOps = 1; 153806f32e7eSjoerg} 153906f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_LS_267ln], 154006f32e7eSjoerg (instregex "LDTRS(BW|BX|HW|HX|W)i")>; 154106f32e7eSjoergdef KryoWrite_3cyc_LS_263ln : 154206f32e7eSjoerg SchedWriteRes<[KryoUnitLS]> { 154306f32e7eSjoerg let Latency = 3; let NumMicroOps = 1; 154406f32e7eSjoerg} 154506f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_263ln], 154606f32e7eSjoerg (instrs LDURQi)>; 154706f32e7eSjoergdef KryoWrite_3cyc_LS_noRSV_288ln : 154806f32e7eSjoerg SchedWriteRes<[KryoUnitLS]> { 154906f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 155006f32e7eSjoerg} 155106f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_noRSV_288ln], 155206f32e7eSjoerg (instregex "LDUR(D|S|H|B)i")>; 155306f32e7eSjoergdef KryoWrite_3cyc_LS_259ln : 155406f32e7eSjoerg SchedWriteRes<[KryoUnitLS]> { 155506f32e7eSjoerg let Latency = 3; let NumMicroOps = 1; 155606f32e7eSjoerg} 155706f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_259ln], 155806f32e7eSjoerg (instregex "LDUR(BB|HH|W|X)i")>; 155906f32e7eSjoergdef KryoWrite_4cyc_LS_266ln : 156006f32e7eSjoerg SchedWriteRes<[KryoUnitLS]> { 156106f32e7eSjoerg let Latency = 4; let NumMicroOps = 1; 156206f32e7eSjoerg} 156306f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_LS_266ln], 156406f32e7eSjoerg (instregex "LDURS(B|H)?(W|X)i")>; 156506f32e7eSjoergdef KryoWrite_3cyc_LS_258ln : 156606f32e7eSjoerg SchedWriteRes<[KryoUnitLS]> { 156706f32e7eSjoerg let Latency = 3; let NumMicroOps = 1; 156806f32e7eSjoerg} 156906f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_258ln, WriteLDHi], 157006f32e7eSjoerg (instregex "LDXP(W|X)")>; 157106f32e7eSjoergdef KryoWrite_3cyc_LS_258_1ln : 157206f32e7eSjoerg SchedWriteRes<[KryoUnitLS]> { 157306f32e7eSjoerg let Latency = 3; let NumMicroOps = 1; 157406f32e7eSjoerg} 157506f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_258_1ln], 157606f32e7eSjoerg (instregex "LDXR(B|H|W|X)")>; 157706f32e7eSjoergdef KryoWrite_2cyc_XY_XY_137ln : 157806f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 157906f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 158006f32e7eSjoerg} 158106f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_XY_137ln], 158206f32e7eSjoerg (instrs LSLVWr, LSLVXr)>; 158306f32e7eSjoergdef KryoWrite_1cyc_XY_135ln : 158406f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 158506f32e7eSjoerg let Latency = 1; let NumMicroOps = 1; 158606f32e7eSjoerg} 158706f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_XY_135ln], 158806f32e7eSjoerg (instregex "(LS|AS|RO)RV(W|X)r")>; 158906f32e7eSjoergdef KryoWrite_4cyc_X_84ln : 159006f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 159106f32e7eSjoerg let Latency = 4; let NumMicroOps = 1; 159206f32e7eSjoerg} 159306f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_X_84ln], 159406f32e7eSjoerg (instrs MADDWrrr, MSUBWrrr)>; 159506f32e7eSjoergdef KryoWrite_5cyc_X_85ln : 159606f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 159706f32e7eSjoerg let Latency = 5; let NumMicroOps = 1; 159806f32e7eSjoerg} 159906f32e7eSjoergdef : InstRW<[KryoWrite_5cyc_X_85ln], 160006f32e7eSjoerg (instrs MADDXrrr, MSUBXrrr)>; 160106f32e7eSjoergdef KryoWrite_4cyc_X_noRSV_188ln : 160206f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 160306f32e7eSjoerg let Latency = 4; let NumMicroOps = 2; 160406f32e7eSjoerg} 160506f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_X_noRSV_188ln], 160606f32e7eSjoerg (instregex "(MLA|MLS|MUL)(v8i8|v4i16|v2i32)(_indexed)?")>; 160706f32e7eSjoergdef KryoWrite_4cyc_X_X_192ln : 160806f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX]> { 160906f32e7eSjoerg let Latency = 4; let NumMicroOps = 2; 161006f32e7eSjoerg} 161106f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_X_X_192ln], 161206f32e7eSjoerg (instregex "(MLA|MLS|MUL|SQR?DMULH)(v16i8|v8i16|v4i32)(_indexed)?")>; 161306f32e7eSjoergdef KryoWrite_1cyc_XY_noRSV_198ln : 161406f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 161506f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 161606f32e7eSjoerg} 161706f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_XY_noRSV_198ln], 161806f32e7eSjoerg (instregex "(MOVI|MVNI)(D|v8b_ns|v2i32|v4i16|v2s_msl)")>; 161906f32e7eSjoergdef KryoWrite_1cyc_XY_XY_199ln : 162006f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 162106f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 162206f32e7eSjoerg} 162306f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_XY_XY_199ln], 162406f32e7eSjoerg (instregex "(MOVI|MVNI)(v2d_ns|v16b_ns|v4i32|v8i16|v4s_msl)")>; 162506f32e7eSjoergdef KryoWrite_1cyc_X_89ln : 162606f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 162706f32e7eSjoerg let Latency = 1; let NumMicroOps = 1; 162806f32e7eSjoerg} 162906f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_X_89ln], 163006f32e7eSjoerg (instrs MOVKWi, MOVKXi)>; 163106f32e7eSjoergdef KryoWrite_1cyc_XY_91ln : 163206f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 163306f32e7eSjoerg let Latency = 1; let NumMicroOps = 1; 163406f32e7eSjoerg} 163506f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_XY_91ln], 163606f32e7eSjoerg (instrs MOVNWi, MOVNXi)>; 163706f32e7eSjoergdef KryoWrite_1cyc_XY_90ln : 163806f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 163906f32e7eSjoerg let Latency = 1; let NumMicroOps = 1; 164006f32e7eSjoerg} 164106f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_XY_90ln], 164206f32e7eSjoerg (instrs MOVZWi, MOVZXi)>; 164306f32e7eSjoergdef KryoWrite_2cyc_XY_93ln : 164406f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 164506f32e7eSjoerg let Latency = 2; let NumMicroOps = 1; 164606f32e7eSjoerg} 164706f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_93ln], 164806f32e7eSjoerg (instrs MRS)>; 164906f32e7eSjoergdef KryoWrite_0cyc_X_87ln : 165006f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 165106f32e7eSjoerg let Latency = 0; let NumMicroOps = 1; 165206f32e7eSjoerg} 165306f32e7eSjoergdef : InstRW<[KryoWrite_0cyc_X_87ln], 165406f32e7eSjoerg (instrs MSRpstateImm4)>; 165506f32e7eSjoergdef : InstRW<[KryoWrite_0cyc_X_87ln], 165606f32e7eSjoerg (instrs MSRpstateImm1)>; 165706f32e7eSjoergdef KryoWrite_0cyc_XY_88ln : 165806f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 165906f32e7eSjoerg let Latency = 0; let NumMicroOps = 1; 166006f32e7eSjoerg} 166106f32e7eSjoergdef : InstRW<[KryoWrite_0cyc_XY_88ln], 166206f32e7eSjoerg (instrs MSR)>; 166306f32e7eSjoergdef KryoWrite_1cyc_XY_noRSV_143ln : 166406f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 166506f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 166606f32e7eSjoerg} 166706f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_XY_noRSV_143ln], 166806f32e7eSjoerg (instregex "NEG(v8i8|v4i16|v2i32|v1i64)")>; 166906f32e7eSjoergdef KryoWrite_1cyc_XY_XY_145ln : 167006f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 167106f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 167206f32e7eSjoerg} 167306f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_XY_XY_145ln], 167406f32e7eSjoerg (instregex "NEG(v16i8|v8i16|v4i32|v2i64)")>; 167506f32e7eSjoergdef KryoWrite_1cyc_XY_noRSV_193ln : 167606f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 167706f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 167806f32e7eSjoerg} 167906f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_XY_noRSV_193ln], 168006f32e7eSjoerg (instrs NOTv8i8)>; 168106f32e7eSjoergdef KryoWrite_1cyc_XY_XY_194ln : 168206f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 168306f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 168406f32e7eSjoerg} 168506f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_XY_XY_194ln], 168606f32e7eSjoerg (instrs NOTv16i8)>; 168706f32e7eSjoergdef KryoWrite_2cyc_XY_noRSV_234ln : 168806f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 168906f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 169006f32e7eSjoerg} 169106f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_noRSV_234ln], 169206f32e7eSjoerg (instrs PMULv8i8)>; 169306f32e7eSjoergdef KryoWrite_2cyc_XY_XY_236ln : 169406f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 169506f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 169606f32e7eSjoerg} 169706f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_XY_236ln], 169806f32e7eSjoerg (instrs PMULv16i8)>; 169906f32e7eSjoergdef KryoWrite_2cyc_XY_XY_235ln : 170006f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 170106f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 170206f32e7eSjoerg} 170306f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_XY_235ln], 170406f32e7eSjoerg (instrs PMULLv8i8, PMULLv16i8)>; 170506f32e7eSjoergdef KryoWrite_3cyc_XY_XY_237ln : 170606f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 170706f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 170806f32e7eSjoerg} 170906f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_XY_237ln], 171006f32e7eSjoerg (instrs PMULLv1i64, PMULLv2i64)>; 171106f32e7eSjoergdef KryoWrite_0cyc_LS_254ln : 171206f32e7eSjoerg SchedWriteRes<[KryoUnitLS]> { 171306f32e7eSjoerg let Latency = 0; let NumMicroOps = 1; 171406f32e7eSjoerg} 171506f32e7eSjoergdef : InstRW<[KryoWrite_0cyc_LS_254ln], 171606f32e7eSjoerg (instrs PRFMl, PRFMui)>; 171706f32e7eSjoergdef KryoWrite_0cyc_LS_253ln : 171806f32e7eSjoerg SchedWriteRes<[KryoUnitLS]> { 171906f32e7eSjoerg let Latency = 0; let NumMicroOps = 1; 172006f32e7eSjoerg} 172106f32e7eSjoergdef : InstRW<[KryoWrite_0cyc_LS_253ln], 172206f32e7eSjoerg (instrs PRFUMi)>; 172306f32e7eSjoergdef KryoWrite_6cyc_XY_X_noRSV_175ln : 172406f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitX]> { 172506f32e7eSjoerg let Latency = 6; let NumMicroOps = 3; 172606f32e7eSjoerg} 172706f32e7eSjoergdef : InstRW<[KryoWrite_6cyc_XY_X_noRSV_175ln], 172806f32e7eSjoerg (instregex "R(ADD|SUB)HNv.*")>; 172906f32e7eSjoergdef KryoWrite_2cyc_XY_204ln : 173006f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 173106f32e7eSjoerg let Latency = 2; let NumMicroOps = 1; 173206f32e7eSjoerg} 173306f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_204ln], 173406f32e7eSjoerg (instrs RBITWr, RBITXr)>; 173506f32e7eSjoergdef KryoWrite_2cyc_XY_noRSV_218ln : 173606f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 173706f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 173806f32e7eSjoerg} 173906f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_noRSV_218ln], 174006f32e7eSjoerg (instrs RBITv8i8)>; 174106f32e7eSjoergdef KryoWrite_2cyc_XY_XY_219ln : 174206f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 174306f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 174406f32e7eSjoerg} 174506f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_XY_219ln], 174606f32e7eSjoerg (instrs RBITv16i8)>; 174706f32e7eSjoergdef KryoWrite_1cyc_X_202ln : 174806f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 174906f32e7eSjoerg let Latency = 1; let NumMicroOps = 1; 175006f32e7eSjoerg} 175106f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_X_202ln], 175206f32e7eSjoerg (instregex "REV(16|32)?(W|X)r")>; 175306f32e7eSjoergdef KryoWrite_1cyc_XY_noRSV_214ln : 175406f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 175506f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 175606f32e7eSjoerg} 175706f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_XY_noRSV_214ln], 175806f32e7eSjoerg (instregex "REV(16|32|64)(v8i8|v4i16|v2i32)")>; 175906f32e7eSjoergdef KryoWrite_1cyc_XY_XY_216ln : 176006f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 176106f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 176206f32e7eSjoerg} 176306f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_XY_XY_216ln], 176406f32e7eSjoerg (instregex "REV(16|32|64)(v16i8|v8i16|v4i32)")>; 176506f32e7eSjoergdef KryoWrite_3cyc_X_noRSV_244ln : 176606f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 176706f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 176806f32e7eSjoerg} 176906f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_X_noRSV_244ln], 177006f32e7eSjoerg (instregex "S(L|R)I(d|(v8i8|v4i16|v2i32)_shift)")>; 177106f32e7eSjoergdef KryoWrite_3cyc_X_X_245ln : 177206f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX]> { 177306f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 177406f32e7eSjoerg} 177506f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_X_X_245ln], 177606f32e7eSjoerg (instregex "S(L|R)I(v16i8|v8i16|v4i32|v2i64)_shift")>; 177706f32e7eSjoergdef KryoWrite_1cyc_XY_2ln : 177806f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 177906f32e7eSjoerg let Latency = 1; let NumMicroOps = 1; 178006f32e7eSjoerg} 178106f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_XY_2ln, ReadI, ReadI], 178206f32e7eSjoerg (instregex "SBCS?(W|X)r")>; 178306f32e7eSjoergdef KryoWrite_2cyc_XA_XA_XA_24ln : 178406f32e7eSjoerg SchedWriteRes<[KryoUnitXA, KryoUnitXA, KryoUnitXA]> { 178506f32e7eSjoerg let Latency = 2; let NumMicroOps = 3; 178606f32e7eSjoerg} 178706f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XA_XA_XA_24ln], 178806f32e7eSjoerg (instrs SHA1Crrr, SHA1Mrrr, SHA1Prrr)>; 178906f32e7eSjoergdef KryoWrite_1cyc_XY_noRSV_21ln : 179006f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 179106f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 179206f32e7eSjoerg} 179306f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_XY_noRSV_21ln], 179406f32e7eSjoerg (instrs SHA1Hrr)>; 179506f32e7eSjoergdef KryoWrite_2cyc_X_X_23ln : 179606f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX]> { 179706f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 179806f32e7eSjoerg} 179906f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_X_X_23ln], 180006f32e7eSjoerg (instrs SHA1SU0rrr, SHA1SU1rr, SHA256SU0rr)>; 180106f32e7eSjoergdef KryoWrite_4cyc_XA_XA_XA_25ln : 180206f32e7eSjoerg SchedWriteRes<[KryoUnitXA, KryoUnitXA, KryoUnitXA]> { 180306f32e7eSjoerg let Latency = 4; let NumMicroOps = 3; 180406f32e7eSjoerg} 180506f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_XA_XA_XA_25ln], 180606f32e7eSjoerg (instrs SHA256Hrrr, SHA256H2rrr)>; 180706f32e7eSjoergdef KryoWrite_3cyc_XY_XY_X_X_26ln : 180806f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY, KryoUnitX, KryoUnitX]> { 180906f32e7eSjoerg let Latency = 3; let NumMicroOps = 4; 181006f32e7eSjoerg} 181106f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_XY_X_X_26ln], 181206f32e7eSjoerg (instrs SHA256SU1rrr)>; 181306f32e7eSjoergdef KryoWrite_4cyc_X_noRSV_189ln : 181406f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 181506f32e7eSjoerg let Latency = 4; let NumMicroOps = 2; 181606f32e7eSjoerg} 181706f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_X_noRSV_189ln], 181806f32e7eSjoerg (instregex "SQR?DMULH(v8i8|v4i16|v1i32|v2i32|v1i16)(_indexed)?")>; 181906f32e7eSjoergdef KryoWrite_3cyc_XY_noRSV_68ln : 182006f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 182106f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 182206f32e7eSjoerg} 182306f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_noRSV_68ln], 182406f32e7eSjoerg (instregex "SQ(ABS|NEG)(v1i8|v1i16|v1i32|v1i64)")>; 182506f32e7eSjoergdef KryoWrite_3cyc_XY_noRSV_157ln : 182606f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 182706f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 182806f32e7eSjoerg} 182906f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_noRSV_157ln], 183006f32e7eSjoerg (instregex "SQ(ABS|NEG)(v8i8|v4i16|v2i32)")>; 183106f32e7eSjoergdef KryoWrite_3cyc_XY_XY_164ln : 183206f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 183306f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 183406f32e7eSjoerg} 183506f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_XY_164ln], 183606f32e7eSjoerg (instregex "SQ(ABS|NEG)(v16i8|v8i16|v4i32|v2i64)")>; 183706f32e7eSjoergdef KryoWrite_4cyc_X_noRSV_190ln : 183806f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 183906f32e7eSjoerg let Latency = 4; let NumMicroOps = 2; 184006f32e7eSjoerg} 184106f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_X_noRSV_190ln], 184206f32e7eSjoerg (instregex "SQD(MLAL|MLSL|MULL)(i16|i32)")>; 184306f32e7eSjoergdef KryoWrite_0cyc_LS_Y_274ln : 184406f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitY]> { 184506f32e7eSjoerg let Latency = 0; let NumMicroOps = 2; 184606f32e7eSjoerg} 184706f32e7eSjoergdef : InstRW<[KryoWrite_0cyc_LS_Y_274ln], 184806f32e7eSjoerg (instregex "ST1(One(v8b|v4h|v2s|v1d|v16b|v8h|v4s|v2d)|(i8|i16|i32|i64)|Two(v8b|v4h|v2s|v1d))$")>; 184906f32e7eSjoergdef KryoWrite_1cyc_LS_Y_X_301ln : 185006f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitY, KryoUnitX]> { 185106f32e7eSjoerg let Latency = 1; let NumMicroOps = 3; 185206f32e7eSjoerg} 185306f32e7eSjoergdef : InstRW<[WriteAdr, KryoWrite_1cyc_LS_Y_X_301ln], 185406f32e7eSjoerg (instregex "ST1(One(v8b|v4h|v2s|v1d|v16b|v8h|v4s|v2d)|(i8|i16|i32|i64)|Two(v8b|v4h|v2s|v1d))_POST$")>; 185506f32e7eSjoergdef KryoWrite_1cyc_LS_Y_XY_305ln : 185606f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitY, KryoUnitXY]> { 185706f32e7eSjoerg let Latency = 1; let NumMicroOps = 3; 185806f32e7eSjoerg} 185906f32e7eSjoergdef : InstRW<[WriteAdr, KryoWrite_1cyc_LS_Y_XY_305ln], 186006f32e7eSjoerg (instregex "ST1(One(v16b|v8h|v4s|v2d)|Two(v8b|v4h|v2s|v1d))_POST$")>; 186106f32e7eSjoergdef KryoWrite_0cyc_LS_Y_LS_Y_323ln : 186206f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitY, KryoUnitLS, KryoUnitY]> { 186306f32e7eSjoerg let Latency = 0; let NumMicroOps = 4; 186406f32e7eSjoerg} 186506f32e7eSjoergdef : InstRW<[WriteAdr, KryoWrite_0cyc_LS_Y_LS_Y_323ln], 186606f32e7eSjoerg (instregex "ST1(Two(v16b|v8h|v4s|v2d)|(Three|Four)(v8b|v4h|v2s|v1d))_POST$")>; 186706f32e7eSjoergdef KryoWrite_1cyc_LS_Y_XY_LS_Y_345ln : 186806f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitY, KryoUnitXY, KryoUnitLS, KryoUnitY]> { 186906f32e7eSjoerg let Latency = 1; let NumMicroOps = 5; 187006f32e7eSjoerg} 187106f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_LS_Y_XY_LS_Y_345ln], 187206f32e7eSjoerg (instregex "ST1(Two(v16b|v8h|v4s|v2d)|(Three|Four)(v8b|v4h|v2s|v1d))$")>; 187306f32e7eSjoergdef KryoWrite_0cyc_LS_Y_LS_Y_LS_Y_356ln : 187406f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitY, KryoUnitLS, KryoUnitY, KryoUnitLS, 187506f32e7eSjoerg KryoUnitY]> { 187606f32e7eSjoerg let Latency = 0; let NumMicroOps = 6; 187706f32e7eSjoerg} 187806f32e7eSjoergdef : InstRW<[KryoWrite_0cyc_LS_Y_LS_Y_LS_Y_356ln], 187906f32e7eSjoerg (instregex "ST1Three(v16b|v8h|v4s|v2d)$")>; 188006f32e7eSjoergdef KryoWrite_1cyc_LS_Y_XY_LS_Y_LS_Y_366ln : 188106f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitY, KryoUnitXY, KryoUnitLS, KryoUnitY, 188206f32e7eSjoerg KryoUnitLS, KryoUnitY]> { 188306f32e7eSjoerg let Latency = 1; let NumMicroOps = 7; 188406f32e7eSjoerg} 188506f32e7eSjoergdef : InstRW<[WriteAdr, KryoWrite_1cyc_LS_Y_XY_LS_Y_LS_Y_366ln], 188606f32e7eSjoerg (instregex "ST1Three(v16b|v8h|v4s|v2d)_POST$")>; 188706f32e7eSjoergdef KryoWrite_0cyc_LS_Y_LS_Y_LS_Y_LS_Y_371ln : 188806f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitY, KryoUnitLS, KryoUnitY, KryoUnitLS, 188906f32e7eSjoerg KryoUnitY, KryoUnitLS, KryoUnitY]> { 189006f32e7eSjoerg let Latency = 0; let NumMicroOps = 8; 189106f32e7eSjoerg} 189206f32e7eSjoergdef : InstRW<[KryoWrite_0cyc_LS_Y_LS_Y_LS_Y_LS_Y_371ln], 189306f32e7eSjoerg (instregex "ST1Four(v16b|v8h|v4s|v2d)$")>; 189406f32e7eSjoergdef KryoWrite_0cyc_LS_Y_LS_Y_XY_LS_Y_LS_Y_377ln : 189506f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitY, KryoUnitLS, KryoUnitY, KryoUnitXY, 189606f32e7eSjoerg KryoUnitLS, KryoUnitY, KryoUnitLS, KryoUnitY]> { 189706f32e7eSjoerg let Latency = 0; let NumMicroOps = 9; 189806f32e7eSjoerg} 189906f32e7eSjoergdef : InstRW<[WriteAdr, KryoWrite_0cyc_LS_Y_LS_Y_XY_LS_Y_LS_Y_377ln], 190006f32e7eSjoerg (instregex "ST1Four(v16b|v8h|v4s|v2d)_POST$")>; 190106f32e7eSjoergdef KryoWrite_0cyc_LS_Y_275ln : 190206f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitY]> { 190306f32e7eSjoerg let Latency = 0; let NumMicroOps = 2; 190406f32e7eSjoerg} 190506f32e7eSjoergdef : InstRW<[KryoWrite_0cyc_LS_Y_275ln], 190606f32e7eSjoerg (instregex "ST2(Two(v8b|v4h|v2s|v1d|v16b|v8h|v4s|v2d)|(i8|i16|i32|i64))$")>; 190706f32e7eSjoergdef KryoWrite_1cyc_LS_Y_XY_306ln : 190806f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitY, KryoUnitXY]> { 190906f32e7eSjoerg let Latency = 1; let NumMicroOps = 3; 191006f32e7eSjoerg} 191106f32e7eSjoergdef : InstRW<[WriteAdr, KryoWrite_1cyc_LS_Y_XY_306ln], 191206f32e7eSjoerg (instregex "ST2(Two(v8b|v4h|v2s|v1d)|(i8|i16|i32|i64))_POST$")>; 191306f32e7eSjoergdef KryoWrite_0cyc_LS_Y_LS_Y_322ln : 191406f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitY, KryoUnitLS, KryoUnitY]> { 191506f32e7eSjoerg let Latency = 0; let NumMicroOps = 4; 191606f32e7eSjoerg} 191706f32e7eSjoergdef : InstRW<[KryoWrite_0cyc_LS_Y_LS_Y_322ln], 191806f32e7eSjoerg (instregex "ST2Two(v16b|v8h|v4s|v2d)$")>; 191906f32e7eSjoergdef KryoWrite_1cyc_LS_Y_XY_LS_Y_344ln : 192006f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitY, KryoUnitXY, KryoUnitLS, KryoUnitY]> { 192106f32e7eSjoerg let Latency = 1; let NumMicroOps = 5; 192206f32e7eSjoerg} 192306f32e7eSjoergdef : InstRW<[WriteAdr, KryoWrite_1cyc_LS_Y_XY_LS_Y_344ln], 192406f32e7eSjoerg (instregex "ST2Two(v16b|v8h|v4s|v2d)_POST$")>; 192506f32e7eSjoergdef KryoWrite_0cyc_LS_Y_LS_Y_324ln : 192606f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitY, KryoUnitLS, KryoUnitY]> { 192706f32e7eSjoerg let Latency = 0; let NumMicroOps = 4; 192806f32e7eSjoerg} 192906f32e7eSjoergdef : InstRW<[KryoWrite_0cyc_LS_Y_LS_Y_324ln], 193006f32e7eSjoerg (instregex "ST3(Threev1d|(i8|i16|i32|i64))$")>; 193106f32e7eSjoergdef KryoWrite_1cyc_LS_Y_XY_LS_Y_346ln : 193206f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitY, KryoUnitXY, KryoUnitLS, KryoUnitY]> { 193306f32e7eSjoerg let Latency = 1; let NumMicroOps = 5; 193406f32e7eSjoerg} 193506f32e7eSjoergdef : InstRW<[WriteAdr, KryoWrite_1cyc_LS_Y_XY_LS_Y_346ln], 193606f32e7eSjoerg (instregex "ST3(Threev1d|(i8|i16|i32|i64))_POST$")>; 193706f32e7eSjoergdef KryoWrite_1cyc_X_X_LS_Y_LS_Y_353ln : 193806f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX, KryoUnitLS, KryoUnitY, KryoUnitLS, 193906f32e7eSjoerg KryoUnitY]> { 194006f32e7eSjoerg let Latency = 1; let NumMicroOps = 6; 194106f32e7eSjoerg} 194206f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_X_X_LS_Y_LS_Y_353ln], 194306f32e7eSjoerg (instregex "ST3Three(v8b|v4h|v2s)$")>; 194406f32e7eSjoergdef KryoWrite_0cyc_LS_Y_LS_Y_LS_Y_357ln : 194506f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitY, KryoUnitLS, KryoUnitY, KryoUnitLS, 194606f32e7eSjoerg KryoUnitY]> { 194706f32e7eSjoerg let Latency = 0; let NumMicroOps = 6; 194806f32e7eSjoerg} 194906f32e7eSjoergdef : InstRW<[KryoWrite_0cyc_LS_Y_LS_Y_LS_Y_357ln], 195006f32e7eSjoerg (instregex "ST3Threev2d$")>; 195106f32e7eSjoergdef KryoWrite_1cyc_X_X_LS_Y_XY_LS_Y_363ln : 195206f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX, KryoUnitLS, KryoUnitY, KryoUnitXY, 195306f32e7eSjoerg KryoUnitLS, KryoUnitY]> { 195406f32e7eSjoerg let Latency = 1; let NumMicroOps = 7; 195506f32e7eSjoerg} 195606f32e7eSjoergdef : InstRW<[WriteAdr, KryoWrite_1cyc_X_X_LS_Y_XY_LS_Y_363ln], 195706f32e7eSjoerg (instregex "ST3Three(v8b|v4h|v2s)_POST$")>; 195806f32e7eSjoergdef KryoWrite_1cyc_LS_Y_XY_LS_Y_LS_Y_367ln : 195906f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitY, KryoUnitXY, KryoUnitLS, KryoUnitY, 196006f32e7eSjoerg KryoUnitLS, KryoUnitY]> { 196106f32e7eSjoerg let Latency = 1; let NumMicroOps = 7; 196206f32e7eSjoerg} 196306f32e7eSjoergdef : InstRW<[WriteAdr, KryoWrite_1cyc_LS_Y_XY_LS_Y_LS_Y_367ln], 196406f32e7eSjoerg (instregex "ST3Threev2d_POST$")>; 196506f32e7eSjoergdef KryoWrite_1cyc_X_X_LS_Y_LS_Y_X_X_LS_Y_LS_Y_385ln : 196606f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX, KryoUnitLS, KryoUnitY, KryoUnitLS, 196706f32e7eSjoerg KryoUnitY, KryoUnitX, KryoUnitX, KryoUnitLS, KryoUnitY, 196806f32e7eSjoerg KryoUnitLS, KryoUnitY]> { 196906f32e7eSjoerg let Latency = 1; let NumMicroOps = 12; 197006f32e7eSjoerg} 197106f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_X_X_LS_Y_LS_Y_X_X_LS_Y_LS_Y_385ln], 197206f32e7eSjoerg (instregex "ST3Three(v16b|v8h|v4s)$")>; 197306f32e7eSjoergdef KryoWrite_1cyc_X_X_LS_Y_LS_Y_X_X_LS_Y_XY_LS_Y_388ln : 197406f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX, KryoUnitLS, KryoUnitY, KryoUnitLS, 197506f32e7eSjoerg KryoUnitY, KryoUnitX, KryoUnitX, KryoUnitLS, KryoUnitY, 197606f32e7eSjoerg KryoUnitXY, KryoUnitLS, KryoUnitY]> { 197706f32e7eSjoerg let Latency = 1; let NumMicroOps = 13; 197806f32e7eSjoerg} 197906f32e7eSjoergdef : InstRW<[WriteAdr, KryoWrite_1cyc_X_X_LS_Y_LS_Y_X_X_LS_Y_XY_LS_Y_388ln], 198006f32e7eSjoerg (instregex "ST3Three(v16b|v8h|v4s)_POST$")>; 198106f32e7eSjoergdef KryoWrite_0cyc_LS_Y_LS_Y_325ln : 198206f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitY, KryoUnitLS, KryoUnitY]> { 198306f32e7eSjoerg let Latency = 0; let NumMicroOps = 4; 198406f32e7eSjoerg} 198506f32e7eSjoergdef : InstRW<[KryoWrite_0cyc_LS_Y_LS_Y_325ln], 198606f32e7eSjoerg (instregex "ST4(Fourv1d|(i8|i16|i32|i64))$")>; 198706f32e7eSjoergdef KryoWrite_1cyc_LS_Y_XY_LS_Y_347ln : 198806f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitY, KryoUnitXY, KryoUnitLS, KryoUnitY]> { 198906f32e7eSjoerg let Latency = 1; let NumMicroOps = 5; 199006f32e7eSjoerg} 199106f32e7eSjoergdef : InstRW<[WriteAdr, KryoWrite_1cyc_LS_Y_XY_LS_Y_347ln], 199206f32e7eSjoerg (instregex "ST4(Fourv1d|(i8|i16|i32|i64))_POST$")>; 199306f32e7eSjoergdef KryoWrite_1cyc_X_X_LS_Y_X_X_LS_Y_370ln : 199406f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX, KryoUnitLS, KryoUnitY, KryoUnitX, 199506f32e7eSjoerg KryoUnitX, KryoUnitLS, KryoUnitY]> { 199606f32e7eSjoerg let Latency = 1; let NumMicroOps = 8; 199706f32e7eSjoerg} 199806f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_X_X_LS_Y_X_X_LS_Y_370ln], 199906f32e7eSjoerg (instregex "ST4Four(v8b|v4h|v2s)$")>; 200006f32e7eSjoergdef KryoWrite_0cyc_LS_Y_LS_Y_LS_Y_LS_Y_372ln : 200106f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitY, KryoUnitLS, KryoUnitY, KryoUnitLS, 200206f32e7eSjoerg KryoUnitY, KryoUnitLS, KryoUnitY]> { 200306f32e7eSjoerg let Latency = 0; let NumMicroOps = 8; 200406f32e7eSjoerg} 200506f32e7eSjoergdef : InstRW<[KryoWrite_0cyc_LS_Y_LS_Y_LS_Y_LS_Y_372ln], 200606f32e7eSjoerg (instregex "ST4Fourv2d$")>; 200706f32e7eSjoergdef KryoWrite_1cyc_X_X_LS_Y_XY_X_X_LS_Y_375ln : 200806f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX, KryoUnitLS, KryoUnitY, KryoUnitXY, 200906f32e7eSjoerg KryoUnitX, KryoUnitX, KryoUnitLS, KryoUnitY]> { 201006f32e7eSjoerg let Latency = 1; let NumMicroOps = 9; 201106f32e7eSjoerg} 201206f32e7eSjoergdef : InstRW<[WriteAdr, KryoWrite_1cyc_X_X_LS_Y_XY_X_X_LS_Y_375ln], 201306f32e7eSjoerg (instregex "ST4Four(v8b|v4h|v2s)_POST$")>; 201406f32e7eSjoergdef KryoWrite_0cyc_LS_Y_LS_Y_XY_LS_Y_LS_Y_379ln : 201506f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitY, KryoUnitLS, KryoUnitY, KryoUnitXY, 201606f32e7eSjoerg KryoUnitLS, KryoUnitY, KryoUnitLS, KryoUnitY]> { 201706f32e7eSjoerg let Latency = 0; let NumMicroOps = 9; 201806f32e7eSjoerg} 201906f32e7eSjoergdef : InstRW<[WriteAdr, KryoWrite_0cyc_LS_Y_LS_Y_XY_LS_Y_LS_Y_379ln], 202006f32e7eSjoerg (instregex "ST4Fourv2d_POST$")>; 202106f32e7eSjoergdef KryoWrite_1cyc_X_X_LS_Y_X_X_LS_Y_X_X_LS_Y_X_X_LS_Y_390ln : 202206f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX, KryoUnitLS, KryoUnitY, KryoUnitX, 202306f32e7eSjoerg KryoUnitX, KryoUnitLS, KryoUnitY, KryoUnitX, KryoUnitX, 202406f32e7eSjoerg KryoUnitLS, KryoUnitY, KryoUnitX, KryoUnitX, KryoUnitLS, 202506f32e7eSjoerg KryoUnitY]> { 202606f32e7eSjoerg let Latency = 1; let NumMicroOps = 16; 202706f32e7eSjoerg} 202806f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_X_X_LS_Y_X_X_LS_Y_X_X_LS_Y_X_X_LS_Y_390ln], 202906f32e7eSjoerg (instregex "ST4Four(v16b|v8h|v4s)$")>; 203006f32e7eSjoergdef KryoWrite_1cyc_X_X_LS_Y_X_X_LS_Y_X_X_LS_Y_XY_X_X_LS_Y_392ln : 203106f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX, KryoUnitLS, KryoUnitY, KryoUnitX, 203206f32e7eSjoerg KryoUnitX, KryoUnitLS, KryoUnitY, KryoUnitX, KryoUnitX, 203306f32e7eSjoerg KryoUnitLS, KryoUnitY, KryoUnitXY, KryoUnitX, KryoUnitX, 203406f32e7eSjoerg KryoUnitLS, KryoUnitY]> { 203506f32e7eSjoerg let Latency = 1; let NumMicroOps = 17; 203606f32e7eSjoerg} 203706f32e7eSjoergdef : InstRW<[WriteAdr, KryoWrite_1cyc_X_X_LS_Y_X_X_LS_Y_X_X_LS_Y_XY_X_X_LS_Y_392ln], 203806f32e7eSjoerg (instregex "ST4Four(v16b|v8h|v4s)_POST$")>; 203906f32e7eSjoergdef KryoWrite_0cyc_LS_LS_Y_299ln : 204006f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitLS, KryoUnitY]> { 204106f32e7eSjoerg let Latency = 0; let NumMicroOps = 3; 204206f32e7eSjoerg} 204306f32e7eSjoergdef : InstRW<[KryoWrite_0cyc_LS_LS_Y_299ln], 204406f32e7eSjoerg (instregex "STLR(B|H|W|X)")>; 204506f32e7eSjoergdef KryoWrite_3cyc_LS_LS_Y_307ln : 204606f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitLS, KryoUnitY]> { 204706f32e7eSjoerg let Latency = 3; let NumMicroOps = 3; 204806f32e7eSjoerg} 204906f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_LS_Y_307ln], 205006f32e7eSjoerg (instregex "STLX(P(W|X)|R(B|H|W|X))")>; 205106f32e7eSjoergdef KryoWrite_0cyc_LS_Y_276ln : 205206f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitY]> { 205306f32e7eSjoerg let Latency = 0; let NumMicroOps = 2; 205406f32e7eSjoerg} 205506f32e7eSjoergdef : InstRW<[KryoWrite_0cyc_LS_Y_276ln], 205606f32e7eSjoerg (instrs STNPDi, STNPSi)>; 205706f32e7eSjoergdef KryoWrite_0cyc_LS_Y_LS_Y_326ln : 205806f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitY, KryoUnitLS, KryoUnitY]> { 205906f32e7eSjoerg let Latency = 0; let NumMicroOps = 4; 206006f32e7eSjoerg} 206106f32e7eSjoergdef : InstRW<[KryoWrite_0cyc_LS_Y_LS_Y_326ln], 206206f32e7eSjoerg (instrs STNPQi)>; 206306f32e7eSjoergdef KryoWrite_0cyc_LS_Y_280ln : 206406f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitY]> { 206506f32e7eSjoerg let Latency = 0; let NumMicroOps = 2; 206606f32e7eSjoerg} 206706f32e7eSjoergdef : InstRW<[KryoWrite_0cyc_LS_Y_280ln], 206806f32e7eSjoerg (instrs STNPWi, STNPXi)>; 206906f32e7eSjoergdef KryoWrite_0cyc_LS_Y_277ln : 207006f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitY]> { 207106f32e7eSjoerg let Latency = 0; let NumMicroOps = 2; 207206f32e7eSjoerg} 207306f32e7eSjoergdef : InstRW<[KryoWrite_0cyc_LS_Y_277ln], 207406f32e7eSjoerg (instregex "STP(D|S)i")>; 207506f32e7eSjoergdef KryoWrite_1cyc_LS_Y_X_303ln : 207606f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitY, KryoUnitX]> { 207706f32e7eSjoerg let Latency = 1; let NumMicroOps = 3; 207806f32e7eSjoerg} 207906f32e7eSjoergdef : InstRW<[WriteAdr, KryoWrite_1cyc_LS_Y_X_303ln], 208006f32e7eSjoerg (instregex "STP(D|S)(post|pre)")>; 208106f32e7eSjoergdef KryoWrite_0cyc_LS_Y_LS_Y_327ln : 208206f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitY, KryoUnitLS, KryoUnitY]> { 208306f32e7eSjoerg let Latency = 0; let NumMicroOps = 4; 208406f32e7eSjoerg} 208506f32e7eSjoergdef : InstRW<[KryoWrite_0cyc_LS_Y_LS_Y_327ln], 208606f32e7eSjoerg (instrs STPQi)>; 208706f32e7eSjoergdef KryoWrite_1cyc_LS_Y_X_LS_Y_343ln : 208806f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitY, KryoUnitX, KryoUnitLS, KryoUnitY]> { 208906f32e7eSjoerg let Latency = 1; let NumMicroOps = 5; 209006f32e7eSjoerg} 209106f32e7eSjoergdef : InstRW<[WriteAdr, KryoWrite_1cyc_LS_Y_X_LS_Y_343ln], 209206f32e7eSjoerg (instrs STPQpost, STPQpre)>; 209306f32e7eSjoergdef KryoWrite_0cyc_LS_Y_279ln : 209406f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitY]> { 209506f32e7eSjoerg let Latency = 0; let NumMicroOps = 2; 209606f32e7eSjoerg} 209706f32e7eSjoergdef : InstRW<[KryoWrite_0cyc_LS_Y_279ln], 209806f32e7eSjoerg (instregex "STP(W|X)i")>; 209906f32e7eSjoergdef KryoWrite_1cyc_LS_X_Y_300ln : 210006f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitX, KryoUnitY]> { 210106f32e7eSjoerg let Latency = 1; let NumMicroOps = 3; 210206f32e7eSjoerg} 210306f32e7eSjoergdef : InstRW<[WriteAdr, KryoWrite_1cyc_LS_X_Y_300ln], 210406f32e7eSjoerg (instregex "STP(W|X)(post|pre)")>; 210506f32e7eSjoergdef KryoWrite_0cyc_LS_Y_278ln : 210606f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitY]> { 210706f32e7eSjoerg let Latency = 0; let NumMicroOps = 2; 210806f32e7eSjoerg} 210906f32e7eSjoergdef : InstRW<[KryoWrite_0cyc_LS_Y_278ln], 211006f32e7eSjoerg (instregex "STR(Q|D|S|H|B)ui")>; 211106f32e7eSjoergdef KryoWrite_1cyc_X_LS_Y_295ln : 211206f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitLS, KryoUnitY]> { 211306f32e7eSjoerg let Latency = 1; let NumMicroOps = 3; 211406f32e7eSjoerg} 211506f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_X_LS_Y_295ln], 211606f32e7eSjoerg (instregex "STR(D|S|H|B)ro(W|X)")>; 211706f32e7eSjoergdef KryoWrite_1cyc_LS_Y_X_304ln : 211806f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitY, KryoUnitX]> { 211906f32e7eSjoerg let Latency = 1; let NumMicroOps = 3; 212006f32e7eSjoerg} 212106f32e7eSjoergdef : InstRW<[WriteAdr, KryoWrite_1cyc_LS_Y_X_304ln], 212206f32e7eSjoerg (instregex "STR(Q|D|S|H|B)(post|pre)")>; 212306f32e7eSjoergdef KryoWrite_2cyc_X_LS_Y_XY_LS_Y_354ln : 212406f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitLS, KryoUnitY, KryoUnitXY, KryoUnitLS, 212506f32e7eSjoerg KryoUnitY]> { 212606f32e7eSjoerg let Latency = 2; let NumMicroOps = 6; 212706f32e7eSjoerg} 212806f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_X_LS_Y_XY_LS_Y_354ln], 212906f32e7eSjoerg (instregex "STRQro(W|X)")>; 213006f32e7eSjoergdef KryoWrite_0cyc_LS_Y_399ln : 213106f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitY]> { 213206f32e7eSjoerg let Latency = 0; let NumMicroOps = 2; 213306f32e7eSjoerg} 213406f32e7eSjoergdef : InstRW<[KryoWrite_0cyc_LS_Y_399ln], 213506f32e7eSjoerg (instregex "STR(BB|HH|W|X)ui")>; 213606f32e7eSjoergdef KryoWrite_1cyc_X_LS_Y_406ln : 213706f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitLS, KryoUnitY]> { 213806f32e7eSjoerg let Latency = 1; let NumMicroOps = 3; 213906f32e7eSjoerg} 214006f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_X_LS_Y_406ln], 214106f32e7eSjoerg (instregex "STR(BB|HH|W|X)ro(W|X)")>; 214206f32e7eSjoergdef KryoWrite_1cyc_LS_X_Y_407ln : 214306f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitX, KryoUnitY]> { 214406f32e7eSjoerg let Latency = 1; let NumMicroOps = 3; 214506f32e7eSjoerg} 214606f32e7eSjoergdef : InstRW<[WriteAdr, KryoWrite_1cyc_LS_X_Y_407ln], 214706f32e7eSjoerg (instregex "STR(BB|HH|W|X)(post|pre)")>; 214806f32e7eSjoergdef KryoWrite_0cyc_LS_Y_398ln : 214906f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitY]> { 215006f32e7eSjoerg let Latency = 0; let NumMicroOps = 2; 215106f32e7eSjoerg} 215206f32e7eSjoergdef : InstRW<[KryoWrite_0cyc_LS_Y_398ln], 215306f32e7eSjoerg (instregex "STTR(B|H|W|X)i")>; 215406f32e7eSjoergdef KryoWrite_0cyc_LS_Y_396ln : 215506f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitY]> { 215606f32e7eSjoerg let Latency = 0; let NumMicroOps = 2; 215706f32e7eSjoerg} 215806f32e7eSjoergdef : InstRW<[KryoWrite_0cyc_LS_Y_396ln], 215906f32e7eSjoerg (instregex "STUR(Q|D|S|H|B)i")>; 216006f32e7eSjoergdef KryoWrite_0cyc_LS_Y_397ln : 216106f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitY]> { 216206f32e7eSjoerg let Latency = 0; let NumMicroOps = 2; 216306f32e7eSjoerg} 216406f32e7eSjoergdef : InstRW<[KryoWrite_0cyc_LS_Y_397ln], 216506f32e7eSjoerg (instregex "STUR(BB|HH|W|X)i")>; 216606f32e7eSjoergdef KryoWrite_3cyc_LS_Y_404ln : 216706f32e7eSjoerg SchedWriteRes<[KryoUnitLS, KryoUnitY]> { 216806f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 216906f32e7eSjoerg} 217006f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_LS_Y_404ln], 217106f32e7eSjoerg (instregex "STX(P(W|X)|R(B|H|W|X))")>; 217206f32e7eSjoergdef KryoWrite_3cyc_XY_noRSV_160ln : 217306f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 217406f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 217506f32e7eSjoerg} 217606f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_noRSV_160ln], 217706f32e7eSjoerg (instregex "^(SU|US)QADD(v8i8|v4i16|v2i32)")>; 217806f32e7eSjoergdef KryoWrite_3cyc_XY_XY_167ln : 217906f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 218006f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 218106f32e7eSjoerg} 218206f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_XY_167ln], 218306f32e7eSjoerg (instregex "^(SU|US)QADD(v16i8|v8i16|v4i32|v2i64)")>; 218406f32e7eSjoergdef KryoWrite_1cyc_XY_1ln : 218506f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 218606f32e7eSjoerg let Latency = 1; let NumMicroOps = 1; 218706f32e7eSjoerg} 218806f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_XY_1ln, ReadI], 218906f32e7eSjoerg (instregex "SUBS?(W|X)ri")>; 219006f32e7eSjoergdef KryoWrite_2cyc_XY_XY_5ln : 219106f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 219206f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 219306f32e7eSjoerg} 219406f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_XY_5ln, ReadI, ReadIEReg], 219506f32e7eSjoerg (instregex "SUBS?(W|X)rx")>; 219606f32e7eSjoergdef KryoWrite_2cyc_XY_XY_5_1ln : 219706f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 219806f32e7eSjoerg let Latency = 2; let NumMicroOps = 2; 219906f32e7eSjoerg} 220006f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_XY_XY_5_1ln, ReadI, ReadISReg], 220106f32e7eSjoerg (instregex "SUBS?(W|X)rs")>; 220206f32e7eSjoergdef KryoWrite_1cyc_XY_noRSV_6ln : 220306f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 220406f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 220506f32e7eSjoerg} 220606f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_XY_noRSV_6ln, ReadI, ReadI], 220706f32e7eSjoerg (instregex "SUBS?(W|X)rr")>; 220806f32e7eSjoergdef KryoWrite_0cyc_LS_9ln : 220906f32e7eSjoerg SchedWriteRes<[KryoUnitLS]> { 221006f32e7eSjoerg let Latency = 0; let NumMicroOps = 1; 221106f32e7eSjoerg} 221206f32e7eSjoergdef : InstRW<[KryoWrite_0cyc_LS_9ln], 221306f32e7eSjoerg (instregex "SYSL?xt")>; 221406f32e7eSjoergdef KryoWrite_1cyc_X_noRSV_205ln : 221506f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 221606f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 221706f32e7eSjoerg} 221806f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_X_noRSV_205ln], 221906f32e7eSjoerg (instrs TBLv8i8One)>; 222006f32e7eSjoergdef KryoWrite_1cyc_X_X_208ln : 222106f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX]> { 222206f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 222306f32e7eSjoerg} 222406f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_X_X_208ln], 222506f32e7eSjoerg (instrs TBLv16i8One)>; 222606f32e7eSjoergdef KryoWrite_2cyc_X_X_X_noRSV_222ln : 222706f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX, KryoUnitX]> { 222806f32e7eSjoerg let Latency = 2; let NumMicroOps = 4; 222906f32e7eSjoerg} 223006f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_X_X_X_noRSV_222ln], 223106f32e7eSjoerg (instrs TBLv8i8Two)>; 223206f32e7eSjoergdef KryoWrite_2cyc_X_X_X_X_X_X_224ln : 223306f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX, KryoUnitX, KryoUnitX, KryoUnitX, 223406f32e7eSjoerg KryoUnitX]> { 223506f32e7eSjoerg let Latency = 2; let NumMicroOps = 6; 223606f32e7eSjoerg} 223706f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_X_X_X_X_X_X_224ln], 223806f32e7eSjoerg (instrs TBLv16i8Two)>; 223906f32e7eSjoergdef KryoWrite_3cyc_X_X_X_X_X_noRSV_225ln : 224006f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX, KryoUnitX, KryoUnitX, KryoUnitX]> { 224106f32e7eSjoerg let Latency = 3; let NumMicroOps = 6; 224206f32e7eSjoerg} 224306f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_X_X_X_X_X_noRSV_225ln], 224406f32e7eSjoerg (instrs TBLv8i8Three)>; 224506f32e7eSjoergdef KryoWrite_3cyc_X_X_X_X_X_X_X_noRSV_228ln : 224606f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX, KryoUnitX, KryoUnitX, KryoUnitX, 224706f32e7eSjoerg KryoUnitX, KryoUnitX]> { 224806f32e7eSjoerg let Latency = 3; let NumMicroOps = 8; 224906f32e7eSjoerg} 225006f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_X_X_X_X_X_X_X_noRSV_228ln], 225106f32e7eSjoerg (instrs TBLv8i8Four)>; 225206f32e7eSjoergdef KryoWrite_4cyc_X_X_X_X_X_X_X_X_XY_X_X_230ln : 225306f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX, KryoUnitX, KryoUnitX, KryoUnitX, 225406f32e7eSjoerg KryoUnitX, KryoUnitX, KryoUnitX, KryoUnitXY, KryoUnitX, 225506f32e7eSjoerg KryoUnitX]> { 225606f32e7eSjoerg let Latency = 4; let NumMicroOps = 11; 225706f32e7eSjoerg} 225806f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_X_X_X_X_X_X_X_X_XY_X_X_230ln], 225906f32e7eSjoerg (instrs TBLv16i8Three)>; 226006f32e7eSjoergdef KryoWrite_4cyc_X_X_X_X_X_X_X_X_X_X_XY_X_X_X_X_232ln : 226106f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX, KryoUnitX, KryoUnitX, KryoUnitX, 226206f32e7eSjoerg KryoUnitX, KryoUnitX, KryoUnitX, KryoUnitX, KryoUnitX, 226306f32e7eSjoerg KryoUnitXY, KryoUnitX, KryoUnitX, KryoUnitX, KryoUnitX]> { 226406f32e7eSjoerg let Latency = 4; let NumMicroOps = 15; 226506f32e7eSjoerg} 226606f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_X_X_X_X_X_X_X_X_X_X_XY_X_X_X_X_232ln], 226706f32e7eSjoerg (instrs TBLv16i8Four)>; 226806f32e7eSjoergdef KryoWrite_2cyc_X_X_noRSV_220ln : 226906f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX]> { 227006f32e7eSjoerg let Latency = 2; let NumMicroOps = 3; 227106f32e7eSjoerg} 227206f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_X_X_noRSV_220ln], 227306f32e7eSjoerg (instrs TBXv8i8One)>; 227406f32e7eSjoergdef KryoWrite_2cyc_X_X_X_X_221ln : 227506f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX, KryoUnitX, KryoUnitX]> { 227606f32e7eSjoerg let Latency = 2; let NumMicroOps = 4; 227706f32e7eSjoerg} 227806f32e7eSjoergdef : InstRW<[KryoWrite_2cyc_X_X_X_X_221ln], 227906f32e7eSjoerg (instrs TBXv16i8One)>; 228006f32e7eSjoergdef KryoWrite_3cyc_X_X_X_X_noRSV_223ln : 228106f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX, KryoUnitX, KryoUnitX]> { 228206f32e7eSjoerg let Latency = 3; let NumMicroOps = 5; 228306f32e7eSjoerg} 228406f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_X_X_X_X_noRSV_223ln], 228506f32e7eSjoerg (instrs TBXv8i8Two)>; 228606f32e7eSjoergdef KryoWrite_4cyc_X_X_X_X_X_X_noRSV_226ln : 228706f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX, KryoUnitX, KryoUnitX, KryoUnitX, 228806f32e7eSjoerg KryoUnitX]> { 228906f32e7eSjoerg let Latency = 4; let NumMicroOps = 7; 229006f32e7eSjoerg} 229106f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_X_X_X_X_X_X_noRSV_226ln], 229206f32e7eSjoerg (instrs TBXv8i8Three)>; 229306f32e7eSjoergdef KryoWrite_3cyc_X_X_X_X_X_X_X_X_227ln : 229406f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX, KryoUnitX, KryoUnitX, KryoUnitX, 229506f32e7eSjoerg KryoUnitX, KryoUnitX, KryoUnitX]> { 229606f32e7eSjoerg let Latency = 3; let NumMicroOps = 8; 229706f32e7eSjoerg} 229806f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_X_X_X_X_X_X_X_X_227ln], 229906f32e7eSjoerg (instrs TBXv16i8Two)>; 230006f32e7eSjoergdef KryoWrite_4cyc_X_X_X_X_X_X_X_X_noRSV_229ln : 230106f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX, KryoUnitX, KryoUnitX, KryoUnitX, 230206f32e7eSjoerg KryoUnitX, KryoUnitX, KryoUnitX]> { 230306f32e7eSjoerg let Latency = 4; let NumMicroOps = 9; 230406f32e7eSjoerg} 230506f32e7eSjoergdef : InstRW<[KryoWrite_4cyc_X_X_X_X_X_X_X_X_noRSV_229ln], 230606f32e7eSjoerg (instrs TBXv8i8Four)>; 230706f32e7eSjoergdef KryoWrite_5cyc_X_X_X_X_X_X_X_X_X_XY_X_X_X_231ln : 230806f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX, KryoUnitX, KryoUnitX, KryoUnitX, 230906f32e7eSjoerg KryoUnitX, KryoUnitX, KryoUnitX, KryoUnitX, KryoUnitXY, 231006f32e7eSjoerg KryoUnitX, KryoUnitX, KryoUnitX]> { 231106f32e7eSjoerg let Latency = 5; let NumMicroOps = 13; 231206f32e7eSjoerg} 231306f32e7eSjoergdef : InstRW<[KryoWrite_5cyc_X_X_X_X_X_X_X_X_X_XY_X_X_X_231ln], 231406f32e7eSjoerg (instrs TBXv16i8Three)>; 231506f32e7eSjoergdef KryoWrite_5cyc_X_X_X_X_X_X_X_X_X_X_X_XY_X_X_X_X_X_233ln : 231606f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX, KryoUnitX, KryoUnitX, KryoUnitX, 231706f32e7eSjoerg KryoUnitX, KryoUnitX, KryoUnitX, KryoUnitX, KryoUnitX, 231806f32e7eSjoerg KryoUnitX, KryoUnitXY, KryoUnitX, KryoUnitX, KryoUnitX, 231906f32e7eSjoerg KryoUnitX, KryoUnitX]> { 232006f32e7eSjoerg let Latency = 5; let NumMicroOps = 17; 232106f32e7eSjoerg} 232206f32e7eSjoergdef : InstRW<[KryoWrite_5cyc_X_X_X_X_X_X_X_X_X_X_X_XY_X_X_X_X_X_233ln], 232306f32e7eSjoerg (instrs TBXv16i8Four)>; 232406f32e7eSjoergdef KryoWrite_1cyc_XY_XY_217ln : 232506f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 232606f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 232706f32e7eSjoerg} 232806f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_XY_XY_217ln], 232906f32e7eSjoerg (instregex "((TRN1|TRN2|ZIP1|UZP1|UZP2)v2i64|ZIP2(v2i64|v4i32|v8i16|v16i8))")>; 233006f32e7eSjoergdef KryoWrite_1cyc_X_X_211ln : 233106f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX]> { 233206f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 233306f32e7eSjoerg} 233406f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_X_X_211ln], 233506f32e7eSjoerg (instregex "(TRN1|TRN2)(v4i32|v8i16|v16i8)")>; 233606f32e7eSjoergdef KryoWrite_1cyc_X_XY_213ln : 233706f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitXY]> { 233806f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 233906f32e7eSjoerg} 234006f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_X_XY_213ln], 234106f32e7eSjoerg (instregex "(TRN1|TRN2)(v2i32|v4i16|v8i8)")>; 234206f32e7eSjoergdef KryoWrite_3cyc_XY_noRSV_156ln : 234306f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 234406f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 234506f32e7eSjoerg} 234606f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_noRSV_156ln], 234706f32e7eSjoerg (instrs URECPEv2i32, URSQRTEv2i32)>; 234806f32e7eSjoergdef KryoWrite_3cyc_XY_XY_168ln : 234906f32e7eSjoerg SchedWriteRes<[KryoUnitXY, KryoUnitXY]> { 235006f32e7eSjoerg let Latency = 3; let NumMicroOps = 2; 235106f32e7eSjoerg} 235206f32e7eSjoergdef : InstRW<[KryoWrite_3cyc_XY_XY_168ln], 235306f32e7eSjoerg (instrs URECPEv4i32, URSQRTEv4i32)>; 235406f32e7eSjoergdef KryoWrite_1cyc_X_X_210ln : 235506f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX]> { 235606f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 235706f32e7eSjoerg} 235806f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_X_X_210ln], 235906f32e7eSjoerg (instregex "(UZP1|UZP2)(v4i32|v8i16|v16i8)")>; 236006f32e7eSjoergdef KryoWrite_1cyc_X_noRSV_206ln : 236106f32e7eSjoerg SchedWriteRes<[KryoUnitX]> { 236206f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 236306f32e7eSjoerg} 236406f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_X_noRSV_206ln], 236506f32e7eSjoerg (instregex "(UZP1|UZP2|ZIP1|ZIP2)(v2i32|v4i16|v8i8)")>; 236606f32e7eSjoergdef KryoWrite_1cyc_XY_noRSV_215ln : 236706f32e7eSjoerg SchedWriteRes<[KryoUnitXY]> { 236806f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 236906f32e7eSjoerg} 237006f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_XY_noRSV_215ln], 237106f32e7eSjoerg (instregex "XTNv.*")>; 237206f32e7eSjoergdef KryoWrite_1cyc_X_X_209ln : 237306f32e7eSjoerg SchedWriteRes<[KryoUnitX, KryoUnitX]> { 237406f32e7eSjoerg let Latency = 1; let NumMicroOps = 2; 237506f32e7eSjoerg} 237606f32e7eSjoergdef : InstRW<[KryoWrite_1cyc_X_X_209ln], 237706f32e7eSjoerg (instregex "ZIP1(v4i32|v8i16|v16i8)")>; 2378