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