From 545a68ca4bf912d57beecf5ea63f4e8726b5150d Mon Sep 17 00:00:00 2001 From: Krzysztof Parzyszek Date: Wed, 5 Dec 2018 21:01:07 +0000 Subject: [PATCH] [Hexagon] Add instruction definitions for Hexagon V66 llvm-svn: 348411 --- llvm/lib/Target/Hexagon/Hexagon.td | 2 +- llvm/lib/Target/Hexagon/HexagonDepIICHVX.td | 701 ++++++++++ llvm/lib/Target/Hexagon/HexagonDepIICScalar.td | 1342 ++++++++++++++++---- llvm/lib/Target/Hexagon/HexagonDepInstrFormats.td | 136 +- llvm/lib/Target/Hexagon/HexagonDepInstrInfo.td | 989 +++++++++++---- llvm/lib/Target/Hexagon/HexagonDepMappings.td | 4 + llvm/lib/Target/Hexagon/HexagonDepTimingClasses.h | 12 +- llvm/lib/Target/Hexagon/HexagonISelLowering.cpp | 18 +- llvm/lib/Target/Hexagon/HexagonPatterns.td | 7 + llvm/lib/Target/Hexagon/HexagonPseudo.td | 4 +- llvm/lib/Target/Hexagon/HexagonSchedule.td | 7 + llvm/lib/Target/Hexagon/HexagonScheduleV60.td | 2 +- llvm/lib/Target/Hexagon/HexagonScheduleV62.td | 2 +- llvm/lib/Target/Hexagon/HexagonScheduleV65.td | 2 +- llvm/lib/Target/Hexagon/HexagonScheduleV66.td | 41 + .../Target/Hexagon/MCTargetDesc/HexagonBaseInfo.h | 2 +- llvm/test/CodeGen/Hexagon/dfp.ll | 19 + llvm/test/CodeGen/Hexagon/mnaci_v66.ll | 15 + llvm/test/MC/Hexagon/quad_regs.s | 5 + llvm/test/MC/Hexagon/v66.s | 17 + llvm/test/MC/Hexagon/z-instructions.s | 17 + 21 files changed, 2840 insertions(+), 504 deletions(-) create mode 100644 llvm/lib/Target/Hexagon/HexagonScheduleV66.td create mode 100644 llvm/test/CodeGen/Hexagon/dfp.ll create mode 100644 llvm/test/CodeGen/Hexagon/mnaci_v66.ll create mode 100644 llvm/test/MC/Hexagon/quad_regs.s create mode 100644 llvm/test/MC/Hexagon/v66.s create mode 100644 llvm/test/MC/Hexagon/z-instructions.s diff --git a/llvm/lib/Target/Hexagon/Hexagon.td b/llvm/lib/Target/Hexagon/Hexagon.td index 414edc1..868353e 100644 --- a/llvm/lib/Target/Hexagon/Hexagon.td +++ b/llvm/lib/Target/Hexagon/Hexagon.td @@ -358,7 +358,7 @@ def : Proc<"hexagonv65", HexagonModelV65, [ArchV5, ArchV55, ArchV60, ArchV62, ArchV65, FeatureDuplex, FeatureMemNoShuf, FeatureMemops, FeatureNVJ, FeatureNVS, FeaturePackets, FeatureSmallData]>; -def : Proc<"hexagonv66", HexagonModelV65, // Use v65, to be fixed soon. +def : Proc<"hexagonv66", HexagonModelV66, [ArchV5, ArchV55, ArchV60, ArchV62, ArchV65, ArchV66, FeatureDuplex, FeatureMemNoShuf, FeatureMemops, FeatureNVJ, FeatureNVS, FeaturePackets, FeatureSmallData]>; diff --git a/llvm/lib/Target/Hexagon/HexagonDepIICHVX.td b/llvm/lib/Target/Hexagon/HexagonDepIICHVX.td index a19e857..9e3dea9 100644 --- a/llvm/lib/Target/Hexagon/HexagonDepIICHVX.td +++ b/llvm/lib/Target/Hexagon/HexagonDepIICHVX.td @@ -25,11 +25,14 @@ def tc_1ad8a370 : InstrItinClass; def tc_1ba8a0cd : InstrItinClass; def tc_20a4bbec : InstrItinClass; def tc_257f6f7c : InstrItinClass; +def tc_26a377fe : InstrItinClass; def tc_2c745bb8 : InstrItinClass; +def tc_2d4051cd : InstrItinClass; def tc_2e8f5f6e : InstrItinClass; def tc_309dbb4f : InstrItinClass; def tc_3904b926 : InstrItinClass; def tc_3aacf4a8 : InstrItinClass; +def tc_3ad719fb : InstrItinClass; def tc_3c56e5ce : InstrItinClass; def tc_3ce09744 : InstrItinClass; def tc_3e2aaafc : InstrItinClass; @@ -45,6 +48,7 @@ def tc_56c4f9fe : InstrItinClass; def tc_56e64202 : InstrItinClass; def tc_58d21193 : InstrItinClass; def tc_5bf8afbb : InstrItinClass; +def tc_61bf7c03 : InstrItinClass; def tc_649072c2 : InstrItinClass; def tc_660769f1 : InstrItinClass; def tc_663c80a7 : InstrItinClass; @@ -61,10 +65,12 @@ def tc_8772086c : InstrItinClass; def tc_87adc037 : InstrItinClass; def tc_8e420e4d : InstrItinClass; def tc_90bcc1db : InstrItinClass; +def tc_933f2b39 : InstrItinClass; def tc_946013d8 : InstrItinClass; def tc_9d1dc972 : InstrItinClass; def tc_9f363d21 : InstrItinClass; def tc_a02a10a8 : InstrItinClass; +def tc_a0dbea28 : InstrItinClass; def tc_a7e6707d : InstrItinClass; def tc_ab23f776 : InstrItinClass; def tc_abe8c3b2 : InstrItinClass; @@ -82,9 +88,13 @@ def tc_c7039829 : InstrItinClass; def tc_cd94bfe0 : InstrItinClass; def tc_d8287c14 : InstrItinClass; def tc_db5555f3 : InstrItinClass; +def tc_dd5b0695 : InstrItinClass; +def tc_df80eeb0 : InstrItinClass; def tc_e2d2e9e5 : InstrItinClass; +def tc_e35c1e93 : InstrItinClass; def tc_e3f68a46 : InstrItinClass; def tc_e675c45a : InstrItinClass; +def tc_e699ae41 : InstrItinClass; def tc_e8797b98 : InstrItinClass; def tc_e99d4c2e : InstrItinClass; def tc_f1de44ef : InstrItinClass; @@ -180,11 +190,21 @@ class DepHVXItinV55 { InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [9, 7, 7, 7], [HVX_FWD, HVX_FWD, HVX_FWD, HVX_FWD]>, + InstrItinData , + InstrStage<1, [CVI_ALL_NOMEM]>], [9, 3, 5, 2], + [HVX_FWD, Hex_FWD, HVX_FWD, Hex_FWD]>, + InstrItinData , InstrStage<1, [CVI_XLSHF]>], [9, 7, 5], [HVX_FWD, HVX_FWD, HVX_FWD]>, + InstrItinData , + InstrStage<1, [CVI_ALL_NOMEM]>], [9, 3, 7, 5, 2], + [HVX_FWD, Hex_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>, + InstrItinData , InstrStage<1, [CVI_MPY0, CVI_MPY1]>], [9, 7, 7, 2], @@ -205,6 +225,11 @@ class DepHVXItinV55 { InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [9, 2, 7], [HVX_FWD, Hex_FWD, HVX_FWD]>, + InstrItinData , + InstrStage<1, [CVI_ZW]>], [3, 2, 1, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData , InstrStage<1, [SLOT1], 0>, @@ -287,6 +312,11 @@ class DepHVXItinV55 { InstrStage<1, [CVI_XLANE]>], [9, 2], [HVX_FWD, Hex_FWD]>, + InstrItinData , + InstrStage<1, [CVI_ALL_NOMEM]>], [9, 5, 2], + [HVX_FWD, HVX_FWD, Hex_FWD]>, + InstrItinData , InstrStage<1, [CVI_MPY0, CVI_MPY1]>], [9, 5, 2], @@ -369,6 +399,11 @@ class DepHVXItinV55 { InstrStage<1, [CVI_MPY01]>], [9, 5, 5, 2], [HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>, + InstrItinData , + InstrStage<1, [CVI_ALL_NOMEM]>], [9, 7, 5, 2], + [HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>, + InstrItinData , InstrStage<1, [CVI_XLANE]>], [9, 5], @@ -391,6 +426,11 @@ class DepHVXItinV55 { InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [2, 1, 2, 7], [Hex_FWD, Hex_FWD, Hex_FWD, HVX_FWD]>, + InstrItinData , + InstrStage<1, [CVI_ZW]>], [3, 1, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData , InstrStage<1, [SLOT1], 0>, @@ -484,6 +524,16 @@ class DepHVXItinV55 { InstrStage<1, [CVI_MPY01, CVI_XLSHF]>], [9, 7, 7], [HVX_FWD, HVX_FWD, HVX_FWD]>, + InstrItinData , + InstrStage<1, [CVI_ZW]>], [2, 1, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_XLSHF]>], [9, 7, 5, 5], + [HVX_FWD, HVX_FWD, HVX_FWD, HVX_FWD]>, + InstrItinData , InstrStage<1, [SLOT1], 0>, @@ -491,6 +541,11 @@ class DepHVXItinV55 { InstrStage<1, [CVI_XLANE]>], [3, 1, 2, 5], [Hex_FWD, Hex_FWD, Hex_FWD, HVX_FWD]>, + InstrItinData , + InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [9, 9, 7, 7], + [HVX_FWD, HVX_FWD, HVX_FWD, HVX_FWD]>, + InstrItinData , InstrStage<1, [CVI_ALL]>], [3], @@ -501,6 +556,11 @@ class DepHVXItinV55 { InstrStage<1, [CVI_MPY01]>], [9, 7, 5, 2, 2], [HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData , + InstrStage<1, [CVI_ZW]>], [1, 2], + [Hex_FWD, Hex_FWD]>, + InstrItinData , InstrStage<1, [CVI_LD], 0>, @@ -621,11 +681,21 @@ class DepHVXItinV60 { InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [9, 7, 7, 7], [HVX_FWD, HVX_FWD, HVX_FWD, HVX_FWD]>, + InstrItinData , + InstrStage<1, [CVI_ALL_NOMEM]>], [9, 3, 5, 2], + [HVX_FWD, Hex_FWD, HVX_FWD, Hex_FWD]>, + InstrItinData , InstrStage<1, [CVI_XLSHF]>], [9, 7, 5], [HVX_FWD, HVX_FWD, HVX_FWD]>, + InstrItinData , + InstrStage<1, [CVI_ALL_NOMEM]>], [9, 3, 7, 5, 2], + [HVX_FWD, Hex_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>, + InstrItinData , InstrStage<1, [CVI_MPY0, CVI_MPY1]>], [9, 7, 7, 2], @@ -646,6 +716,11 @@ class DepHVXItinV60 { InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [9, 2, 7], [HVX_FWD, Hex_FWD, HVX_FWD]>, + InstrItinData , + InstrStage<1, [CVI_ZW]>], [3, 2, 1, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData , InstrStage<1, [SLOT1], 0>, @@ -728,6 +803,11 @@ class DepHVXItinV60 { InstrStage<1, [CVI_XLANE]>], [9, 2], [HVX_FWD, Hex_FWD]>, + InstrItinData , + InstrStage<1, [CVI_ALL_NOMEM]>], [9, 5, 2], + [HVX_FWD, HVX_FWD, Hex_FWD]>, + InstrItinData , InstrStage<1, [CVI_MPY0, CVI_MPY1]>], [9, 5, 2], @@ -810,6 +890,11 @@ class DepHVXItinV60 { InstrStage<1, [CVI_MPY01]>], [9, 5, 5, 2], [HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>, + InstrItinData , + InstrStage<1, [CVI_ALL_NOMEM]>], [9, 7, 5, 2], + [HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>, + InstrItinData , InstrStage<1, [CVI_XLANE]>], [9, 5], @@ -832,6 +917,11 @@ class DepHVXItinV60 { InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [2, 1, 2, 7], [Hex_FWD, Hex_FWD, Hex_FWD, HVX_FWD]>, + InstrItinData , + InstrStage<1, [CVI_ZW]>], [3, 1, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData , InstrStage<1, [SLOT1], 0>, @@ -925,6 +1015,16 @@ class DepHVXItinV60 { InstrStage<1, [CVI_MPY01, CVI_XLSHF]>], [9, 7, 7], [HVX_FWD, HVX_FWD, HVX_FWD]>, + InstrItinData , + InstrStage<1, [CVI_ZW]>], [2, 1, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_XLSHF]>], [9, 7, 5, 5], + [HVX_FWD, HVX_FWD, HVX_FWD, HVX_FWD]>, + InstrItinData , InstrStage<1, [SLOT1], 0>, @@ -932,6 +1032,11 @@ class DepHVXItinV60 { InstrStage<1, [CVI_XLANE]>], [3, 1, 2, 5], [Hex_FWD, Hex_FWD, Hex_FWD, HVX_FWD]>, + InstrItinData , + InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [9, 9, 7, 7], + [HVX_FWD, HVX_FWD, HVX_FWD, HVX_FWD]>, + InstrItinData , InstrStage<1, [CVI_ALL]>], [3], @@ -942,6 +1047,11 @@ class DepHVXItinV60 { InstrStage<1, [CVI_MPY01]>], [9, 7, 5, 2, 2], [HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData , + InstrStage<1, [CVI_ZW]>], [1, 2], + [Hex_FWD, Hex_FWD]>, + InstrItinData , InstrStage<1, [CVI_LD], 0>, @@ -1062,11 +1172,21 @@ class DepHVXItinV62 { InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [9, 7, 7, 7], [HVX_FWD, HVX_FWD, HVX_FWD, HVX_FWD]>, + InstrItinData , + InstrStage<1, [CVI_ALL_NOMEM]>], [9, 3, 5, 2], + [HVX_FWD, Hex_FWD, HVX_FWD, Hex_FWD]>, + InstrItinData , InstrStage<1, [CVI_XLSHF]>], [9, 7, 5], [HVX_FWD, HVX_FWD, HVX_FWD]>, + InstrItinData , + InstrStage<1, [CVI_ALL_NOMEM]>], [9, 3, 7, 5, 2], + [HVX_FWD, Hex_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>, + InstrItinData , InstrStage<1, [CVI_MPY0, CVI_MPY1]>], [9, 7, 7, 2], @@ -1087,6 +1207,11 @@ class DepHVXItinV62 { InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [9, 2, 7], [HVX_FWD, Hex_FWD, HVX_FWD]>, + InstrItinData , + InstrStage<1, [CVI_ZW]>], [3, 2, 1, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData , InstrStage<1, [SLOT1], 0>, @@ -1169,6 +1294,11 @@ class DepHVXItinV62 { InstrStage<1, [CVI_XLANE]>], [9, 2], [HVX_FWD, Hex_FWD]>, + InstrItinData , + InstrStage<1, [CVI_ALL_NOMEM]>], [9, 5, 2], + [HVX_FWD, HVX_FWD, Hex_FWD]>, + InstrItinData , InstrStage<1, [CVI_MPY0, CVI_MPY1]>], [9, 5, 2], @@ -1251,6 +1381,11 @@ class DepHVXItinV62 { InstrStage<1, [CVI_MPY01]>], [9, 5, 5, 2], [HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>, + InstrItinData , + InstrStage<1, [CVI_ALL_NOMEM]>], [9, 7, 5, 2], + [HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>, + InstrItinData , InstrStage<1, [CVI_XLANE]>], [9, 5], @@ -1273,6 +1408,11 @@ class DepHVXItinV62 { InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [2, 1, 2, 7], [Hex_FWD, Hex_FWD, Hex_FWD, HVX_FWD]>, + InstrItinData , + InstrStage<1, [CVI_ZW]>], [3, 1, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData , InstrStage<1, [SLOT1], 0>, @@ -1366,6 +1506,16 @@ class DepHVXItinV62 { InstrStage<1, [CVI_MPY01, CVI_XLSHF]>], [9, 7, 7], [HVX_FWD, HVX_FWD, HVX_FWD]>, + InstrItinData , + InstrStage<1, [CVI_ZW]>], [2, 1, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_XLSHF]>], [9, 7, 5, 5], + [HVX_FWD, HVX_FWD, HVX_FWD, HVX_FWD]>, + InstrItinData , InstrStage<1, [SLOT1], 0>, @@ -1373,6 +1523,11 @@ class DepHVXItinV62 { InstrStage<1, [CVI_XLANE]>], [3, 1, 2, 5], [Hex_FWD, Hex_FWD, Hex_FWD, HVX_FWD]>, + InstrItinData , + InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [9, 9, 7, 7], + [HVX_FWD, HVX_FWD, HVX_FWD, HVX_FWD]>, + InstrItinData , InstrStage<1, [CVI_ALL]>], [3], @@ -1383,6 +1538,11 @@ class DepHVXItinV62 { InstrStage<1, [CVI_MPY01]>], [9, 7, 5, 2, 2], [HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData , + InstrStage<1, [CVI_ZW]>], [1, 2], + [Hex_FWD, Hex_FWD]>, + InstrItinData , InstrStage<1, [CVI_LD], 0>, @@ -1503,11 +1663,21 @@ class DepHVXItinV65 { InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [9, 7, 7, 7], [HVX_FWD, HVX_FWD, HVX_FWD, HVX_FWD]>, + InstrItinData , + InstrStage<1, [CVI_ALL_NOMEM]>], [9, 3, 5, 2], + [HVX_FWD, Hex_FWD, HVX_FWD, Hex_FWD]>, + InstrItinData , InstrStage<1, [CVI_XLSHF]>], [9, 7, 5], [HVX_FWD, HVX_FWD, HVX_FWD]>, + InstrItinData , + InstrStage<1, [CVI_ALL_NOMEM]>], [9, 3, 7, 5, 2], + [HVX_FWD, Hex_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>, + InstrItinData , InstrStage<1, [CVI_MPY0, CVI_MPY1]>], [9, 7, 7, 2], @@ -1528,6 +1698,11 @@ class DepHVXItinV65 { InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [9, 2, 7], [HVX_FWD, Hex_FWD, HVX_FWD]>, + InstrItinData , + InstrStage<1, [CVI_ZW]>], [3, 2, 1, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData , InstrStage<1, [SLOT1], 0>, @@ -1610,6 +1785,11 @@ class DepHVXItinV65 { InstrStage<1, [CVI_XLANE]>], [9, 2], [HVX_FWD, Hex_FWD]>, + InstrItinData , + InstrStage<1, [CVI_ALL_NOMEM]>], [9, 5, 2], + [HVX_FWD, HVX_FWD, Hex_FWD]>, + InstrItinData , InstrStage<1, [CVI_MPY0, CVI_MPY1]>], [9, 5, 2], @@ -1692,6 +1872,11 @@ class DepHVXItinV65 { InstrStage<1, [CVI_MPY01]>], [9, 5, 5, 2], [HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>, + InstrItinData , + InstrStage<1, [CVI_ALL_NOMEM]>], [9, 7, 5, 2], + [HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>, + InstrItinData , InstrStage<1, [CVI_XLANE]>], [9, 5], @@ -1714,6 +1899,11 @@ class DepHVXItinV65 { InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [2, 1, 2, 7], [Hex_FWD, Hex_FWD, Hex_FWD, HVX_FWD]>, + InstrItinData , + InstrStage<1, [CVI_ZW]>], [3, 1, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData , InstrStage<1, [SLOT1], 0>, @@ -1807,6 +1997,16 @@ class DepHVXItinV65 { InstrStage<1, [CVI_MPY01, CVI_XLSHF]>], [9, 7, 7], [HVX_FWD, HVX_FWD, HVX_FWD]>, + InstrItinData , + InstrStage<1, [CVI_ZW]>], [2, 1, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_XLSHF]>], [9, 7, 5, 5], + [HVX_FWD, HVX_FWD, HVX_FWD, HVX_FWD]>, + InstrItinData , InstrStage<1, [SLOT1], 0>, @@ -1814,6 +2014,11 @@ class DepHVXItinV65 { InstrStage<1, [CVI_XLANE]>], [3, 1, 2, 5], [Hex_FWD, Hex_FWD, Hex_FWD, HVX_FWD]>, + InstrItinData , + InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [9, 9, 7, 7], + [HVX_FWD, HVX_FWD, HVX_FWD, HVX_FWD]>, + InstrItinData , InstrStage<1, [CVI_ALL]>], [3], @@ -1824,6 +2029,502 @@ class DepHVXItinV65 { InstrStage<1, [CVI_MPY01]>], [9, 7, 5, 2, 2], [HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData , + InstrStage<1, [CVI_ZW]>], [1, 2], + [Hex_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_LD], 0>, + InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [1, 2, 7], + [Hex_FWD, Hex_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_ST]>], [3, 2, 1, 2, 5], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_MPY01]>], [9, 5, 2], + [HVX_FWD, HVX_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [SLOT1], 0>, + InstrStage<1, [CVI_ST], 0>, + InstrStage<1, [CVI_XLANE]>], [1, 2, 5], + [Hex_FWD, Hex_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_LD], 0>, + InstrStage<1, [CVI_MPY01, CVI_XLSHF]>], [7, 1, 2, 7], + [HVX_FWD, Hex_FWD, Hex_FWD, HVX_FWD]> + ]; +} + +class DepHVXItinV66 { + list DepHVXItinV66_list = [ + InstrItinData , + InstrStage<1, [CVI_XLSHF]>], [9, 5], + [HVX_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_LD], 0>, + InstrStage<1, [CVI_MPY01, CVI_XLSHF]>], [1, 2, 7], + [Hex_FWD, Hex_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_LD], 0>, + InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [7, 1, 2, 7], + [HVX_FWD, Hex_FWD, Hex_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_SHIFT]>], [9, 5, 5], + [HVX_FWD, HVX_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_MPY01]>], [9, 7, 5, 5], + [HVX_FWD, HVX_FWD, HVX_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_MPY01]>], [9, 5, 2], + [HVX_FWD, HVX_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [9, 7], + [HVX_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [SLOT1], 0>, + InstrStage<1, [CVI_ST], 0>, + InstrStage<1, [CVI_XLANE]>], [2, 1, 2, 5], + [Hex_FWD, Hex_FWD, Hex_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_ALL]>], [], + []>, + + InstrItinData , + InstrStage<1, [CVI_MPY0, CVI_MPY1], 0>, + InstrStage<1, [CVI_SHIFT, CVI_XLANE]>], [9, 7, 5, 2], + [HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_SHIFT]>], [9, 5, 5, 2], + [HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_ST], 0>, + InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [3, 7, 1, 2, 7], + [Hex_FWD, HVX_FWD, Hex_FWD, Hex_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_MPY01]>], [9, 5, 2, 2], + [HVX_FWD, HVX_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_LD], 0>, + InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [9, 3, 1, 2], + [HVX_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_ST]>], [3, 1, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [9, 7, 7, 7], + [HVX_FWD, HVX_FWD, HVX_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_ALL_NOMEM]>], [9, 3, 5, 2], + [HVX_FWD, Hex_FWD, HVX_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_XLSHF]>], [9, 7, 5], + [HVX_FWD, HVX_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_ALL_NOMEM]>], [9, 3, 7, 5, 2], + [HVX_FWD, Hex_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_MPY0, CVI_MPY1]>], [9, 7, 7, 2], + [HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_SHIFT]>], [9, 7, 5, 2], + [HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_LD]>], [9, 2, 1, 2], + [HVX_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [9, 2, 7], + [HVX_FWD, Hex_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_ZW]>], [3, 2, 1, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [SLOT1], 0>, + InstrStage<1, [CVI_LD], 0>, + InstrStage<1, [CVI_XLANE]>], [9, 3, 1, 2], + [HVX_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_ST]>], [1, 2], + [Hex_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_ST], 0>, + InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [3, 1, 2, 7], + [Hex_FWD, Hex_FWD, Hex_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_ST], 0>, + InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [7, 1, 2, 7], + [HVX_FWD, Hex_FWD, Hex_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_LD], 0>, + InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [9, 3, 2, 1, 2], + [HVX_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_XLANE]>], [9, 5, 5], + [HVX_FWD, HVX_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_SHIFT]>], [9, 5], + [HVX_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_LD]>], [9, 1, 2], + [HVX_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [4, 7, 1], + [Hex_FWD, HVX_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_ST], 0>, + InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [3, 2, 1, 2, 7], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_XLSHF]>], [9, 9, 5, 5, 2], + [HVX_FWD, HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [9, 7, 7], + [HVX_FWD, HVX_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_XLANE]>], [9, 5, 5, 2], + [HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_ST], 0>, + InstrStage<1, [CVI_MPY01, CVI_XLSHF]>], [7, 1, 2, 7, 7], + [HVX_FWD, Hex_FWD, Hex_FWD, HVX_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_XLANE]>], [9, 2], + [HVX_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_ALL_NOMEM]>], [9, 5, 2], + [HVX_FWD, HVX_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_MPY0, CVI_MPY1]>], [9, 5, 2], + [HVX_FWD, HVX_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_MPY01]>], [9, 7, 5, 2], + [HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_LD]>], [9, 3, 1, 2], + [HVX_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_ST]>], [3, 1, 2, 5], + [Hex_FWD, Hex_FWD, Hex_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_XLANE]>], [9, 5, 2], + [HVX_FWD, HVX_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_MPY01, CVI_XLSHF]>], [9, 7, 7, 7], + [HVX_FWD, HVX_FWD, HVX_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_ST]>], [2, 1, 2, 5], + [Hex_FWD, Hex_FWD, Hex_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_MPY01, CVI_XLSHF]>], [9], + [HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_ST], 0>, + InstrStage<1, [CVI_MPY01, CVI_XLSHF]>], [1, 2, 7, 7], + [Hex_FWD, Hex_FWD, HVX_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_SHIFT]>], [9, 5, 2], + [HVX_FWD, HVX_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_ALL]>], [3, 2], + [HVX_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [9, 9, 7, 7, 7], + [HVX_FWD, HVX_FWD, HVX_FWD, HVX_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [9, 7, 7], + [HVX_FWD, HVX_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_XLSHF]>], [9, 5, 5, 2], + [HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_ST], 0>, + InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [7, 1, 2, 7, 7], + [HVX_FWD, Hex_FWD, Hex_FWD, HVX_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_MPY01]>], [9, 5, 5, 2], + [HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_ALL_NOMEM]>], [9, 7, 5, 2], + [HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_XLANE]>], [9, 5], + [HVX_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_XLSHF]>], [9, 7, 5, 5, 2], + [HVX_FWD, HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_ST], 0>, + InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [1, 2, 7, 7], + [Hex_FWD, Hex_FWD, HVX_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_ST], 0>, + InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [2, 1, 2, 7], + [Hex_FWD, Hex_FWD, Hex_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_ZW]>], [3, 1, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [SLOT1], 0>, + InstrStage<1, [CVI_LD], 0>, + InstrStage<1, [CVI_XLANE]>], [9, 1, 2], + [HVX_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_ST]>], [1, 2, 5], + [Hex_FWD, Hex_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_LD], 0>, + InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [9, 2, 1, 2], + [HVX_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_MPY0, CVI_MPY1]>], [9, 7, 2], + [HVX_FWD, HVX_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_MPY01, CVI_XLSHF]>], [9, 2, 7, 7], + [HVX_FWD, Hex_FWD, HVX_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_MPY0, CVI_MPY1]>], [9, 7, 5, 2], + [HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_ALL]>], [2], + [Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_MPY01, CVI_XLSHF]>], [9, 7], + [HVX_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_LD]>], [9, 3, 2, 1, 2], + [HVX_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_LD], 0>, + InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [9, 1, 2], + [HVX_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_MPY0, CVI_MPY1]>], [9, 5, 5], + [HVX_FWD, HVX_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_MPY0, CVI_MPY1]>], [9, 2], + [HVX_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_ST], 0>, + InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [1, 2, 7], + [Hex_FWD, Hex_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [SLOT1], 0>, + InstrStage<1, [CVI_ST], 0>, + InstrStage<1, [CVI_XLANE]>], [3, 2, 1, 2, 5], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_MPY0, CVI_MPY1], 0>, + InstrStage<1, [CVI_SHIFT, CVI_XLANE]>], [9, 5, 2], + [HVX_FWD, HVX_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_MPY01]>], [9, 5, 5], + [HVX_FWD, HVX_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_MPY01, CVI_XLSHF]>], [9, 7, 7], + [HVX_FWD, HVX_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_ZW]>], [2, 1, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_XLSHF]>], [9, 7, 5, 5], + [HVX_FWD, HVX_FWD, HVX_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [SLOT1], 0>, + InstrStage<1, [CVI_ST], 0>, + InstrStage<1, [CVI_XLANE]>], [3, 1, 2, 5], + [Hex_FWD, Hex_FWD, Hex_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_MPY0, CVI_MPY1, CVI_SHIFT, CVI_XLANE]>], [9, 9, 7, 7], + [HVX_FWD, HVX_FWD, HVX_FWD, HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_ALL]>], [3], + [HVX_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_MPY01]>], [9, 7, 5, 2, 2], + [HVX_FWD, HVX_FWD, HVX_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData , + InstrStage<1, [CVI_ZW]>], [1, 2], + [Hex_FWD, Hex_FWD]>, + InstrItinData , InstrStage<1, [CVI_LD], 0>, diff --git a/llvm/lib/Target/Hexagon/HexagonDepIICScalar.td b/llvm/lib/Target/Hexagon/HexagonDepIICScalar.td index 9448c6e..9da2595 100644 --- a/llvm/lib/Target/Hexagon/HexagonDepIICScalar.td +++ b/llvm/lib/Target/Hexagon/HexagonDepIICScalar.td @@ -10,6 +10,7 @@ //===----------------------------------------------------------------------===// def tc_002cb246 : InstrItinClass; +def tc_0371abea : InstrItinClass; def tc_05c070ec : InstrItinClass; def tc_05d3a09b : InstrItinClass; def tc_0663f615 : InstrItinClass; @@ -17,40 +18,42 @@ def tc_096199d3 : InstrItinClass; def tc_0a705168 : InstrItinClass; def tc_0ae0825c : InstrItinClass; def tc_0b2be201 : InstrItinClass; -def tc_0c584a42 : InstrItinClass; def tc_0d8f5752 : InstrItinClass; def tc_13bfbcf9 : InstrItinClass; +def tc_14b272fa : InstrItinClass; def tc_14b5c689 : InstrItinClass; def tc_15aa71c5 : InstrItinClass; -def tc_1640ad89 : InstrItinClass; def tc_174516e8 : InstrItinClass; def tc_17e0d2cd : InstrItinClass; def tc_1a2fd869 : InstrItinClass; def tc_1ad90acd : InstrItinClass; def tc_1ae57e39 : InstrItinClass; def tc_1b6f7cec : InstrItinClass; +def tc_1c4528a2 : InstrItinClass; +def tc_1c80410a : InstrItinClass; def tc_1d81e60e : InstrItinClass; def tc_1fc97744 : InstrItinClass; def tc_20cdee80 : InstrItinClass; def tc_2332b92e : InstrItinClass; +def tc_24b66c99 : InstrItinClass; def tc_25a78932 : InstrItinClass; -def tc_29332664 : InstrItinClass; def tc_2b8da4c2 : InstrItinClass; def tc_2eabeebe : InstrItinClass; +def tc_2f7c551d : InstrItinClass; def tc_2ff964b4 : InstrItinClass; -def tc_327843a7 : InstrItinClass; -def tc_34f09e1e : InstrItinClass; +def tc_30b9bb4a : InstrItinClass; +def tc_32779c6f : InstrItinClass; def tc_36153880 : InstrItinClass; -def tc_37e52a00 : InstrItinClass; +def tc_362c6592 : InstrItinClass; +def tc_3962fa26 : InstrItinClass; def tc_39dfefe8 : InstrItinClass; -def tc_3a2ec948 : InstrItinClass; def tc_3a867367 : InstrItinClass; def tc_3b470976 : InstrItinClass; def tc_3b5b7ef9 : InstrItinClass; def tc_3bd75825 : InstrItinClass; def tc_3c76b0ff : InstrItinClass; def tc_3d495a39 : InstrItinClass; -def tc_409abd30 : InstrItinClass; +def tc_40116ca8 : InstrItinClass; def tc_434c8e1e : InstrItinClass; def tc_4414d8b1 : InstrItinClass; def tc_44d3da28 : InstrItinClass; @@ -67,11 +70,13 @@ def tc_56f114f4 : InstrItinClass; def tc_57890846 : InstrItinClass; def tc_5a2711e5 : InstrItinClass; def tc_5abb5e3f : InstrItinClass; +def tc_5aee39f7 : InstrItinClass; def tc_5b54b33f : InstrItinClass; def tc_5b7c0967 : InstrItinClass; def tc_5bf126a6 : InstrItinClass; def tc_5d7f5414 : InstrItinClass; def tc_5ef37dc4 : InstrItinClass; +def tc_6132ba3d : InstrItinClass; def tc_61830035 : InstrItinClass; def tc_640086b5 : InstrItinClass; def tc_643b4717 : InstrItinClass; @@ -80,15 +85,14 @@ def tc_675e4897 : InstrItinClass; def tc_679309b8 : InstrItinClass; def tc_6b25e783 : InstrItinClass; def tc_703e822c : InstrItinClass; +def tc_7186d325 : InstrItinClass; def tc_7646c131 : InstrItinClass; def tc_76851da1 : InstrItinClass; def tc_779080bf : InstrItinClass; def tc_784490da : InstrItinClass; def tc_785f65a7 : InstrItinClass; def tc_7a91e76a : InstrItinClass; -def tc_8224ffbc : InstrItinClass; def tc_838b34ea : InstrItinClass; -def tc_846a6d41 : InstrItinClass; def tc_85c9c08f : InstrItinClass; def tc_85d5d03f : InstrItinClass; def tc_862b3e70 : InstrItinClass; @@ -103,6 +107,7 @@ def tc_8fb7ab1b : InstrItinClass; def tc_9461ff31 : InstrItinClass; def tc_946df596 : InstrItinClass; def tc_9ad9998f : InstrItinClass; +def tc_9bfd761f : InstrItinClass; def tc_9c3ecd83 : InstrItinClass; def tc_9ca930f7 : InstrItinClass; def tc_9da59d12 : InstrItinClass; @@ -111,13 +116,14 @@ def tc_9e313203 : InstrItinClass; def tc_9fc3dae0 : InstrItinClass; def tc_a1123dda : InstrItinClass; def tc_a1c00888 : InstrItinClass; -def tc_a5689869 : InstrItinClass; def tc_a58fd5cc : InstrItinClass; def tc_a5d4aeec : InstrItinClass; +def tc_a6b1eca9 : InstrItinClass; def tc_a813cf9a : InstrItinClass; def tc_a9d88b22 : InstrItinClass; def tc_ae53734a : InstrItinClass; def tc_b31c2e97 : InstrItinClass; +def tc_b343892a : InstrItinClass; def tc_b43e7930 : InstrItinClass; def tc_b4407292 : InstrItinClass; def tc_b44ecf75 : InstrItinClass; @@ -133,20 +139,19 @@ def tc_bab0eed9 : InstrItinClass; def tc_bafaade3 : InstrItinClass; def tc_bcf98408 : InstrItinClass; def tc_bd8382d1 : InstrItinClass; +def tc_bdceeac1 : InstrItinClass; def tc_be9602ff : InstrItinClass; def tc_bf061958 : InstrItinClass; -def tc_bf41e621 : InstrItinClass; def tc_bfec0f01 : InstrItinClass; def tc_c4db48cb : InstrItinClass; def tc_c4f596e3 : InstrItinClass; def tc_c79a189f : InstrItinClass; def tc_c8ce0b5c : InstrItinClass; def tc_cd374165 : InstrItinClass; -def tc_ce23f224 : InstrItinClass; def tc_cf8126ae : InstrItinClass; def tc_cfd8378a : InstrItinClass; +def tc_d08ee0f4 : InstrItinClass; def tc_d1aa9eaa : InstrItinClass; -def tc_d2142d44 : InstrItinClass; def tc_d2e63d61 : InstrItinClass; def tc_d5b7b0c1 : InstrItinClass; def tc_d5c0729a : InstrItinClass; @@ -154,19 +159,23 @@ def tc_d63f638c : InstrItinClass; def tc_d65dbf51 : InstrItinClass; def tc_d773585a : InstrItinClass; def tc_d9d43ecb : InstrItinClass; +def tc_da4a37ed : InstrItinClass; +def tc_da97ee82 : InstrItinClass; def tc_db2bce9c : InstrItinClass; def tc_de4df740 : InstrItinClass; def tc_de554571 : InstrItinClass; def tc_df3319ed : InstrItinClass; def tc_e06f432a : InstrItinClass; +def tc_e4a7f9f0 : InstrItinClass; def tc_e4b3cb20 : InstrItinClass; def tc_e78647bd : InstrItinClass; +def tc_e86aa961 : InstrItinClass; def tc_e93a3d71 : InstrItinClass; def tc_e95795ec : InstrItinClass; def tc_e9f3243f : InstrItinClass; -def tc_f00ee968 : InstrItinClass; def tc_f429765c : InstrItinClass; def tc_f675fee8 : InstrItinClass; +def tc_f8e23f0b : InstrItinClass; def tc_f9058dd7 : InstrItinClass; def tc_fc3999b4 : InstrItinClass; def tc_fcc3ddf9 : InstrItinClass; @@ -175,6 +184,7 @@ def tc_fe211424 : InstrItinClass; class DepScalarItinV5 { list DepScalarItinV5_list = [ InstrItinData ]>, + InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, @@ -182,40 +192,42 @@ class DepScalarItinV5 { InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, - InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, + InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, - InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, + InstrItinData ]>, + InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, + InstrItinData ]>, InstrItinData ]>, - InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, + InstrItinData ]>, InstrItinData ]>, - InstrItinData ]>, - InstrItinData ]>, + InstrItinData ]>, + InstrItinData ]>, InstrItinData ]>, - InstrItinData ]>, + InstrItinData ]>, + InstrItinData ]>, InstrItinData ]>, - InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, - InstrItinData ]>, + InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, @@ -232,11 +244,13 @@ class DepScalarItinV5 { InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, + InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, + InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, @@ -245,15 +259,14 @@ class DepScalarItinV5 { InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, + InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, - InstrItinData ]>, InstrItinData ]>, - InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, @@ -268,6 +281,7 @@ class DepScalarItinV5 { InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, + InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, @@ -276,13 +290,14 @@ class DepScalarItinV5 { InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, - InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, + InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, + InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, @@ -298,20 +313,19 @@ class DepScalarItinV5 { InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, + InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, - InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, - InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, + InstrItinData ]>, InstrItinData ]>, - InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, @@ -319,19 +333,23 @@ class DepScalarItinV5 { InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, + InstrItinData ]>, + InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, + InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, + InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, - InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, + InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, InstrItinData ]>, @@ -344,6 +362,10 @@ class DepScalarItinV55 { [InstrStage<1, [SLOT2, SLOT3]>], [4, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [2, 2], + [Hex_FWD, Hex_FWD]>, + InstrItinData ], [3, 3, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -372,10 +394,6 @@ class DepScalarItinV55 { [InstrStage<1, [SLOT0, SLOT1]>], [2, 1, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [3, 2, 2], - [Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [4, 2], [Hex_FWD, Hex_FWD]>, @@ -384,6 +402,10 @@ class DepScalarItinV55 { [InstrStage<1, [SLOT2, SLOT3]>], [4, 1, 1, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [1, 2, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [3, 2], [Hex_FWD, Hex_FWD]>, @@ -392,10 +414,6 @@ class DepScalarItinV55 { [InstrStage<1, [SLOT0, SLOT1]>], [4, 2], [Hex_FWD, Hex_FWD]>, - InstrItinData ], [1, 3, 2], - [Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [1], [Hex_FWD]>, @@ -420,6 +438,14 @@ class DepScalarItinV55 { [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>], [], []>, + InstrItinData ], [2, 2], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [2, 2], [Hex_FWD, Hex_FWD]>, @@ -436,12 +462,12 @@ class DepScalarItinV55 { [InstrStage<1, [SLOT2, SLOT3]>], [1, 2], [Hex_FWD, Hex_FWD]>, - InstrItinData ], [4, 3, 1, 1, 2], + InstrItinData ], [3, 2, 1, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [3, 2, 1, 2, 2], + InstrItinData ], [4, 3, 1, 1, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, InstrItinData ], [], []>, + InstrItinData ], [5, 1, 1], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 4, 1, 1], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [3, 1, 2, 2, 2], - [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [1, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [2, 2], + InstrItinData ], [2, 1], [Hex_FWD, Hex_FWD]>, InstrItinData ], [], []>, - InstrItinData ], [1, 2, 2, 2], - [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [2, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [2, 1, 1, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, InstrItinData ], [], []>, - InstrItinData ], [4, 2, 2], - [Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [4, 1], [Hex_FWD, Hex_FWD]>, @@ -504,8 +534,8 @@ class DepScalarItinV55 { [InstrStage<1, [SLOT2, SLOT3]>], [1, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [2, 1, 1, 2, 2], + InstrItinData ], [3, 1, 1, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, InstrItinData ], [4, 1, 1], [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [1, 1, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 1, 1, 1], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -592,6 +626,10 @@ class DepScalarItinV55 { [InstrStage<1, [SLOT0, SLOT1]>], [4, 2, 1, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [3, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -624,6 +662,10 @@ class DepScalarItinV55 { [InstrStage<1, [SLOT2, SLOT3]>], [4, 2], [Hex_FWD, Hex_FWD]>, + InstrItinData ], [1, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -648,18 +690,10 @@ class DepScalarItinV55 { [InstrStage<1, [SLOT0, SLOT1]>], [4, 3, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [2, 2], - [Hex_FWD, Hex_FWD]>, - InstrItinData ], [3, 2, 1, 2, 3], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [3, 1, 2], - [Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [2, 1], [Hex_FWD, Hex_FWD]>, @@ -716,6 +750,10 @@ class DepScalarItinV55 { [InstrStage<1, [SLOT3]>], [], []>, + InstrItinData ], [3, 1, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 4, 1, 1, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -748,10 +786,6 @@ class DepScalarItinV55 { [InstrStage<1, [SLOT2, SLOT3]>], [3, 2], [Hex_FWD, Hex_FWD]>, - InstrItinData ], [2, 2, 2], - [Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [4, 1, 1, 1], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -760,6 +794,10 @@ class DepScalarItinV55 { [InstrStage<1, [SLOT0, SLOT1]>], [4, 2, 1, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [1, 1, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 2], [Hex_FWD, Hex_FWD]>, @@ -776,6 +814,10 @@ class DepScalarItinV55 { [InstrStage<1, [SLOT2, SLOT3]>], [3, 2, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [1, 3, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 1], [Hex_FWD, Hex_FWD]>, @@ -836,6 +878,10 @@ class DepScalarItinV55 { [InstrStage<1, [SLOT0]>], [3, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 2, 1, 1], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [1, 2, 3], [Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -844,10 +890,6 @@ class DepScalarItinV55 { [InstrStage<1, [SLOT0, SLOT1]>], [4, 1, 1, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [4, 2, 2], - [Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [3, 2, 2, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -872,10 +914,6 @@ class DepScalarItinV55 { [InstrStage<1, [SLOT2, SLOT3]>], [2, 2], [Hex_FWD, Hex_FWD]>, - InstrItinData ], [3, 1, 1, 2, 2], - [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [4, 2], [Hex_FWD, Hex_FWD]>, @@ -884,14 +922,14 @@ class DepScalarItinV55 { [InstrStage<1, [SLOT2, SLOT3]>], [3, 1], [Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 4, 1, 1, 1], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [1, 1, 2, 2], - [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [3, 2, 3], [Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -920,6 +958,14 @@ class DepScalarItinV55 { [InstrStage<1, [SLOT3]>], [1, 2], [Hex_FWD, Hex_FWD]>, + InstrItinData ], [3, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 1, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [2, 2], [Hex_FWD, Hex_FWD]>, @@ -940,6 +986,10 @@ class DepScalarItinV55 { [InstrStage<1, [SLOT0]>], [3], [Hex_FWD]>, + InstrItinData ], [4, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 2, 1, 1, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -948,6 +998,10 @@ class DepScalarItinV55 { [InstrStage<1, [SLOT2]>], [2, 1], [Hex_FWD, Hex_FWD]>, + InstrItinData ], [3, 1, 2, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 3, 1, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -960,10 +1014,6 @@ class DepScalarItinV55 { [InstrStage<1, [SLOT0, SLOT1]>], [4, 3, 3, 1, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [2, 1], - [Hex_FWD, Hex_FWD]>, - InstrItinData ], [3, 2, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -972,6 +1022,10 @@ class DepScalarItinV55 { [InstrStage<1, [SLOT2, SLOT3]>], [4, 2, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [2, 1, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 4, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -996,6 +1050,10 @@ class DepScalarItinV60 { [InstrStage<1, [SLOT2, SLOT3]>], [4, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [2, 2], + [Hex_FWD, Hex_FWD]>, + InstrItinData ], [3, 3, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -1024,10 +1082,6 @@ class DepScalarItinV60 { [InstrStage<1, [SLOT0, SLOT1]>], [2, 1, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [3, 2, 2], - [Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [4, 2], [Hex_FWD, Hex_FWD]>, @@ -1036,6 +1090,10 @@ class DepScalarItinV60 { [InstrStage<1, [SLOT2, SLOT3]>], [4, 1, 1, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [1, 2, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 2], [Hex_FWD, Hex_FWD]>, @@ -1044,10 +1102,6 @@ class DepScalarItinV60 { [InstrStage<1, [SLOT0, SLOT1]>], [4, 2], [Hex_FWD, Hex_FWD]>, - InstrItinData ], [2, 3, 2], - [Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [1], [Hex_FWD]>, @@ -1072,6 +1126,14 @@ class DepScalarItinV60 { [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>], [], []>, + InstrItinData ], [2, 2], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [2, 2], [Hex_FWD, Hex_FWD]>, @@ -1088,12 +1150,12 @@ class DepScalarItinV60 { [InstrStage<1, [SLOT2, SLOT3]>], [1, 2], [Hex_FWD, Hex_FWD]>, - InstrItinData ], [4, 3, 1, 1, 2], + InstrItinData ], [3, 2, 1, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [3, 2, 1, 2, 2], + InstrItinData ], [4, 3, 1, 1, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, InstrItinData ], [], []>, + InstrItinData ], [5, 1, 1], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [5, 5, 1, 1], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [3, 1, 2, 2, 2], - [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [1, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [2, 2], + InstrItinData ], [2, 1], [Hex_FWD, Hex_FWD]>, InstrItinData ], [], []>, - InstrItinData ], [1, 2, 2, 2], - [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [2, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [2, 1, 1, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, InstrItinData ], [], []>, - InstrItinData ], [3, 2, 2], - [Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [5, 1], [Hex_FWD, Hex_FWD]>, @@ -1156,8 +1222,8 @@ class DepScalarItinV60 { [InstrStage<1, [SLOT2, SLOT3]>], [1, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [2, 1, 1, 2, 2], + InstrItinData ], [3, 1, 1, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, InstrItinData ], [4, 1, 1], [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [1, 1, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 1, 1, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -1244,6 +1314,10 @@ class DepScalarItinV60 { [InstrStage<1, [SLOT0, SLOT1]>], [4, 2, 1, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [3, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -1276,6 +1350,10 @@ class DepScalarItinV60 { [InstrStage<1, [SLOT2, SLOT3]>], [4, 2], [Hex_FWD, Hex_FWD]>, + InstrItinData ], [1, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -1300,18 +1378,10 @@ class DepScalarItinV60 { [InstrStage<1, [SLOT0, SLOT1]>], [4, 3, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [2, 2], - [Hex_FWD, Hex_FWD]>, - InstrItinData ], [3, 2, 1, 2, 3], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [3, 2, 2], - [Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [2, 1], [Hex_FWD, Hex_FWD]>, @@ -1368,6 +1438,10 @@ class DepScalarItinV60 { [InstrStage<1, [SLOT3]>], [], []>, + InstrItinData ], [3, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 4, 1, 1, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -1400,10 +1474,6 @@ class DepScalarItinV60 { [InstrStage<1, [SLOT2, SLOT3]>], [3, 2], [Hex_FWD, Hex_FWD]>, - InstrItinData ], [2, 2, 2], - [Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [5, 2, 1, 1], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -1412,6 +1482,10 @@ class DepScalarItinV60 { [InstrStage<1, [SLOT0, SLOT1]>], [4, 2, 1, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [1, 1, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 2], [Hex_FWD, Hex_FWD]>, @@ -1428,6 +1502,10 @@ class DepScalarItinV60 { [InstrStage<1, [SLOT2, SLOT3]>], [3, 2, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [2, 3, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 1], [Hex_FWD, Hex_FWD]>, @@ -1488,6 +1566,10 @@ class DepScalarItinV60 { [InstrStage<1, [SLOT0]>], [3, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 2, 1, 1], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [1, 2, 3], [Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -1496,10 +1578,6 @@ class DepScalarItinV60 { [InstrStage<1, [SLOT0, SLOT1]>], [4, 1, 1, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [3, 2, 2], - [Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [4, 2, 2, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -1524,10 +1602,6 @@ class DepScalarItinV60 { [InstrStage<1, [SLOT2, SLOT3]>], [2, 2], [Hex_FWD, Hex_FWD]>, - InstrItinData ], [3, 1, 1, 2, 2], - [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [4, 2], [Hex_FWD, Hex_FWD]>, @@ -1536,14 +1610,14 @@ class DepScalarItinV60 { [InstrStage<1, [SLOT2, SLOT3]>], [3, 1], [Hex_FWD, Hex_FWD]>, + InstrItinData ], [3, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 4, 1, 1, 1], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [1, 1, 2, 2], - [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [3, 2, 3], [Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -1572,6 +1646,14 @@ class DepScalarItinV60 { [InstrStage<1, [SLOT3]>], [1, 2], [Hex_FWD, Hex_FWD]>, + InstrItinData ], [3, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 1, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [2, 2], [Hex_FWD, Hex_FWD]>, @@ -1592,6 +1674,10 @@ class DepScalarItinV60 { [InstrStage<1, [SLOT0]>], [3], [Hex_FWD]>, + InstrItinData ], [3, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 2, 1, 1, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -1600,6 +1686,10 @@ class DepScalarItinV60 { [InstrStage<1, [SLOT2]>], [2, 1], [Hex_FWD, Hex_FWD]>, + InstrItinData ], [3, 1, 2, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 3, 1, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -1612,10 +1702,6 @@ class DepScalarItinV60 { [InstrStage<1, [SLOT0, SLOT1]>], [4, 3, 3, 1, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [2, 1], - [Hex_FWD, Hex_FWD]>, - InstrItinData ], [4, 2, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -1624,6 +1710,10 @@ class DepScalarItinV60 { [InstrStage<1, [SLOT2, SLOT3]>], [4, 2, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [2, 1, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 4, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -1648,6 +1738,10 @@ class DepScalarItinV62 { [InstrStage<1, [SLOT2, SLOT3]>], [4, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [2, 2], + [Hex_FWD, Hex_FWD]>, + InstrItinData ], [3, 3, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -1676,10 +1770,6 @@ class DepScalarItinV62 { [InstrStage<1, [SLOT0, SLOT1]>], [2, 1, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [3, 2, 2], - [Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [4, 2], [Hex_FWD, Hex_FWD]>, @@ -1688,6 +1778,10 @@ class DepScalarItinV62 { [InstrStage<1, [SLOT2, SLOT3]>], [4, 1, 1, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [1, 2, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 2], [Hex_FWD, Hex_FWD]>, @@ -1696,10 +1790,6 @@ class DepScalarItinV62 { [InstrStage<1, [SLOT0, SLOT1]>], [4, 2], [Hex_FWD, Hex_FWD]>, - InstrItinData ], [2, 3, 2], - [Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [1], [Hex_FWD]>, @@ -1724,6 +1814,14 @@ class DepScalarItinV62 { [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>], [], []>, + InstrItinData ], [2, 2], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [2, 2], [Hex_FWD, Hex_FWD]>, @@ -1740,12 +1838,12 @@ class DepScalarItinV62 { [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>], [1, 2], [Hex_FWD, Hex_FWD]>, - InstrItinData ], [4, 3, 1, 1, 2], + InstrItinData ], [3, 2, 1, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [3, 2, 1, 2, 2], + InstrItinData ], [4, 3, 1, 1, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, InstrItinData ], [], []>, + InstrItinData ], [5, 1, 1], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [5, 5, 1, 1], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [3, 1, 2, 2, 2], - [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [1, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [2, 2], + InstrItinData ], [2, 1], [Hex_FWD, Hex_FWD]>, InstrItinData ], [], []>, - InstrItinData ], [1, 2, 2, 2], - [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [2, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [2, 1, 1, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, InstrItinData ], [], []>, - InstrItinData ], [3, 2, 2], - [Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [5, 1], [Hex_FWD, Hex_FWD]>, @@ -1808,8 +1910,8 @@ class DepScalarItinV62 { [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>], [1, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [2, 1, 1, 2, 2], + InstrItinData ], [3, 1, 1, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, InstrItinData ], [4, 1, 1], [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [1, 1, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 1, 1, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -1896,6 +2002,10 @@ class DepScalarItinV62 { [InstrStage<1, [SLOT0, SLOT1]>], [4, 2, 1, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [3, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -1928,6 +2038,10 @@ class DepScalarItinV62 { [InstrStage<1, [SLOT2, SLOT3]>], [4, 2], [Hex_FWD, Hex_FWD]>, + InstrItinData ], [1, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -1952,18 +2066,10 @@ class DepScalarItinV62 { [InstrStage<1, [SLOT0, SLOT1]>], [4, 3, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [2, 2], - [Hex_FWD, Hex_FWD]>, - InstrItinData ], [3, 2, 1, 2, 3], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [3, 2, 2], - [Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [2, 1], [Hex_FWD, Hex_FWD]>, @@ -2020,6 +2126,10 @@ class DepScalarItinV62 { [InstrStage<1, [SLOT3]>], [], []>, + InstrItinData ], [3, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [3, 4, 2, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -2052,10 +2162,6 @@ class DepScalarItinV62 { [InstrStage<1, [SLOT2, SLOT3]>], [3, 2], [Hex_FWD, Hex_FWD]>, - InstrItinData ], [2, 2, 2], - [Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [5, 2, 1, 1], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -2064,6 +2170,10 @@ class DepScalarItinV62 { [InstrStage<1, [SLOT0, SLOT1]>], [4, 2, 1, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [1, 1, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 2], [Hex_FWD, Hex_FWD]>, @@ -2080,6 +2190,10 @@ class DepScalarItinV62 { [InstrStage<1, [SLOT2, SLOT3]>], [3, 2, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [2, 3, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 1], [Hex_FWD, Hex_FWD]>, @@ -2140,6 +2254,10 @@ class DepScalarItinV62 { [InstrStage<1, [SLOT0]>], [3, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 2, 1, 1], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [1, 2, 3], [Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -2148,10 +2266,6 @@ class DepScalarItinV62 { [InstrStage<1, [SLOT0, SLOT1]>], [4, 1, 1, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [3, 2, 2], - [Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [4, 2, 2, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -2176,10 +2290,6 @@ class DepScalarItinV62 { [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>], [2, 2], [Hex_FWD, Hex_FWD]>, - InstrItinData ], [3, 1, 1, 2, 2], - [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [4, 2], [Hex_FWD, Hex_FWD]>, @@ -2188,14 +2298,14 @@ class DepScalarItinV62 { [InstrStage<1, [SLOT2, SLOT3]>], [3, 1], [Hex_FWD, Hex_FWD]>, + InstrItinData ], [3, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 4, 2, 1, 1], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [1, 1, 2, 2], - [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [3, 2, 3], [Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -2224,6 +2334,14 @@ class DepScalarItinV62 { [InstrStage<1, [SLOT3]>], [1, 2], [Hex_FWD, Hex_FWD]>, + InstrItinData ], [3, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 1, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [2, 2], [Hex_FWD, Hex_FWD]>, @@ -2244,6 +2362,10 @@ class DepScalarItinV62 { [InstrStage<1, [SLOT0]>], [3], [Hex_FWD]>, + InstrItinData ], [3, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 2, 1, 1, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -2252,6 +2374,10 @@ class DepScalarItinV62 { [InstrStage<1, [SLOT2]>], [2, 1], [Hex_FWD, Hex_FWD]>, + InstrItinData ], [3, 1, 2, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 3, 1, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -2264,10 +2390,6 @@ class DepScalarItinV62 { [InstrStage<1, [SLOT0, SLOT1]>], [4, 3, 3, 1, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [2, 1], - [Hex_FWD, Hex_FWD]>, - InstrItinData ], [4, 2, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -2276,6 +2398,10 @@ class DepScalarItinV62 { [InstrStage<1, [SLOT2, SLOT3]>], [4, 2, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [2, 1, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 4, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -2300,6 +2426,10 @@ class DepScalarItinV65 { [InstrStage<1, [SLOT2, SLOT3]>], [4, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [2, 2], + [Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 3, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -2328,10 +2458,6 @@ class DepScalarItinV65 { [InstrStage<1, [SLOT0, SLOT1]>], [2, 1, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [3, 2, 2], - [Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [4, 2], [Hex_FWD, Hex_FWD]>, @@ -2340,6 +2466,10 @@ class DepScalarItinV65 { [InstrStage<1, [SLOT2, SLOT3]>], [4, 1, 1, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [1, 2, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 2], [Hex_FWD, Hex_FWD]>, @@ -2348,10 +2478,6 @@ class DepScalarItinV65 { [InstrStage<1, [SLOT0, SLOT1]>], [4, 1], [Hex_FWD, Hex_FWD]>, - InstrItinData ], [2, 3, 2], - [Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [1], [Hex_FWD]>, @@ -2376,6 +2502,14 @@ class DepScalarItinV65 { [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>], [], []>, + InstrItinData ], [2, 2], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [2, 2], [Hex_FWD, Hex_FWD]>, @@ -2392,12 +2526,12 @@ class DepScalarItinV65 { [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>], [2, 2], [Hex_FWD, Hex_FWD]>, - InstrItinData ], [4, 3, 1, 1, 2], + InstrItinData ], [3, 2, 1, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [3, 2, 1, 2, 2], + InstrItinData ], [4, 3, 1, 1, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, InstrItinData ], [], []>, + InstrItinData ], [5, 1, 1], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [5, 5, 1, 1], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [3, 1, 2, 2, 2], - [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [1, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [2, 2], + InstrItinData ], [2, 1], [Hex_FWD, Hex_FWD]>, InstrItinData ], [], []>, - InstrItinData ], [1, 2, 2, 2], - [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [2, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [2, 1, 1, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, InstrItinData ], [], []>, - InstrItinData ], [3, 2, 2], - [Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [5, 1], [Hex_FWD, Hex_FWD]>, @@ -2460,8 +2598,8 @@ class DepScalarItinV65 { [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>], [2, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [2, 1, 1, 2, 2], + InstrItinData ], [3, 1, 1, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, InstrItinData ], [4, 1, 1], [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [1, 1, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 1, 1, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -2548,6 +2690,10 @@ class DepScalarItinV65 { [InstrStage<1, [SLOT0, SLOT1]>], [4, 2, 1, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [3, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -2580,6 +2726,10 @@ class DepScalarItinV65 { [InstrStage<1, [SLOT2, SLOT3]>], [4, 2], [Hex_FWD, Hex_FWD]>, + InstrItinData ], [1, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -2604,18 +2754,10 @@ class DepScalarItinV65 { [InstrStage<1, [SLOT0, SLOT1]>], [4, 3, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [2, 2], - [Hex_FWD, Hex_FWD]>, - InstrItinData ], [3, 2, 1, 2, 3], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [3, 2, 2], - [Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [2, 2], [Hex_FWD, Hex_FWD]>, @@ -2672,6 +2814,10 @@ class DepScalarItinV65 { [InstrStage<1, [SLOT3]>], [], []>, + InstrItinData ], [3, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [3, 4, 2, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -2704,10 +2850,6 @@ class DepScalarItinV65 { [InstrStage<1, [SLOT2, SLOT3]>], [3, 2], [Hex_FWD, Hex_FWD]>, - InstrItinData ], [2, 2, 2], - [Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [5, 2, 1, 1], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -2716,6 +2858,10 @@ class DepScalarItinV65 { [InstrStage<1, [SLOT0, SLOT1]>], [4, 2, 1, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [1, 1, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 2], [Hex_FWD, Hex_FWD]>, @@ -2732,6 +2878,10 @@ class DepScalarItinV65 { [InstrStage<1, [SLOT2, SLOT3]>], [3, 2, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [2, 3, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 1], [Hex_FWD, Hex_FWD]>, @@ -2792,6 +2942,10 @@ class DepScalarItinV65 { [InstrStage<1, [SLOT0]>], [3, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 2, 1, 1], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [1, 2, 3], [Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -2800,10 +2954,6 @@ class DepScalarItinV65 { [InstrStage<1, [SLOT0, SLOT1]>], [4, 1, 1, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [3, 2, 2], - [Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [4, 2, 2, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -2828,10 +2978,6 @@ class DepScalarItinV65 { [InstrStage<1, [SLOT0, SLOT1, SLOT2, SLOT3]>], [2, 2], [Hex_FWD, Hex_FWD]>, - InstrItinData ], [3, 1, 1, 2, 2], - [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [4, 2], [Hex_FWD, Hex_FWD]>, @@ -2840,14 +2986,14 @@ class DepScalarItinV65 { [InstrStage<1, [SLOT2, SLOT3]>], [3, 2], [Hex_FWD, Hex_FWD]>, + InstrItinData ], [3, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 4, 2, 1, 1], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [1, 1, 2, 2], - [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [3, 2, 3], [Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -2876,6 +3022,14 @@ class DepScalarItinV65 { [InstrStage<1, [SLOT3]>], [2, 2], [Hex_FWD, Hex_FWD]>, + InstrItinData ], [3, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 1, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [2, 2], [Hex_FWD, Hex_FWD]>, @@ -2896,6 +3050,10 @@ class DepScalarItinV65 { [InstrStage<1, [SLOT0]>], [3], [Hex_FWD]>, + InstrItinData ], [3, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 2, 1, 1, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -2904,6 +3062,10 @@ class DepScalarItinV65 { [InstrStage<1, [SLOT2]>], [2, 2], [Hex_FWD, Hex_FWD]>, + InstrItinData ], [3, 1, 2, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 3, 1, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -2916,10 +3078,6 @@ class DepScalarItinV65 { [InstrStage<1, [SLOT0, SLOT1]>], [4, 4, 3, 1, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, - InstrItinData ], [2, 1], - [Hex_FWD, Hex_FWD]>, - InstrItinData ], [4, 2, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, @@ -2928,6 +3086,698 @@ class DepScalarItinV65 { [InstrStage<1, [SLOT2, SLOT3]>], [4, 2, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [2, 1, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 4, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [2], + [Hex_FWD]>, + + InstrItinData ], [1, 2, 2, 3], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [1, 1], + [Hex_FWD, Hex_FWD]> + ]; +} + +class DepScalarItinV66 { + list DepScalarItinV66_list = [ + InstrItinData ], [4, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [2, 3], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 3, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 2, 1, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [1, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 2], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [2, 1, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 2], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 1, 1, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [1, 2, 2, 3], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 2], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 1], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [1], + [Hex_FWD]>, + + InstrItinData ], [4, 1, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 2, 2, 1], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [2, 1], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 3, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [], + []>, + + InstrItinData ], [2, 2], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [2, 2], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 2], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [2, 2], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 2, 1, 2, 3], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 3, 1, 1, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 2, 1], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [], + []>, + + InstrItinData ], [5, 1, 1], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [5, 5, 1, 1], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [1, 2, 3], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [2, 1], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [], + []>, + + InstrItinData ], [2, 2, 3], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [2, 1, 1, 2, 3], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [], + []>, + + InstrItinData ], [5, 1], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [5, 1, 1], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 3, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [1], + [Hex_FWD]>, + + InstrItinData ], [4, 3, 2, 1, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [2, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 1, 1, 2, 3], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 1], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 3, 1, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [5, 2, 1, 1, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 1, 1], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [2], + [Hex_FWD]>, + + InstrItinData ], [2], + [Hex_FWD]>, + + InstrItinData ], [2, 2, 3], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 2, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [2], + [Hex_FWD]>, + + InstrItinData ], [4, 3, 1, 2, 1], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [2, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 2], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 1, 1], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [1, 1, 2, 3], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 1, 1, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [2, 2], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [2, 3], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [1], + [Hex_FWD]>, + + InstrItinData ], [4, 2, 1, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [1, 1, 2, 3], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 1], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [1], + [Hex_FWD]>, + + InstrItinData ], [4, 2], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [1, 2, 3], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 1, 1], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 2, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 3, 2, 1, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 3, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 2, 1, 2, 3], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [2, 2], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [2], + [Hex_FWD]>, + + InstrItinData ], [4, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [1, 2], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [], + []>, + + InstrItinData ], [4], + [Hex_FWD]>, + + InstrItinData ], [3, 2], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [], + []>, + + InstrItinData ], [2], + [Hex_FWD]>, + + InstrItinData ], [2, 1, 2, 3], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [], + []>, + + InstrItinData ], [3, 3, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 4, 2, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [1, 2], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 3, 1], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 2, 1, 1, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 2], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 2], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3], + [Hex_FWD]>, + + InstrItinData ], [3, 2], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [5, 2, 1, 1], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 2, 1, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [1, 1, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 2], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [2, 2], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [2], + [Hex_FWD]>, + + InstrItinData ], [3, 2, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 3, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 1], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [], + []>, + + InstrItinData ], [3, 1, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 2, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 2], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [1, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [1], + [Hex_FWD]>, + + InstrItinData ], [5, 5, 1], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 1, 1, 2, 3], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 2], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 1, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 1, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 1, 1], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 1], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 2, 1, 1], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [1, 2, 3], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 1, 1, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 2, 2, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 2], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 1, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 1, 2, 3], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 1, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [2, 2], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 2], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 2], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 4, 2, 1, 1], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 2, 3], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [2], + [Hex_FWD]>, + + InstrItinData ], [3, 1, 2, 2, 3], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [1], + [Hex_FWD]>, + + InstrItinData ], [4, 3, 1, 2, 3], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 2, 1, 1], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [2, 2], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 2, 3], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 1, 2, 3], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [2, 2], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 2], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [2, 1], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3], + [Hex_FWD]>, + + InstrItinData ], [4, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 2, 1, 1, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [2, 2], + [Hex_FWD, Hex_FWD]>, + + InstrItinData ], [3, 1, 2, 2, 3], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 3, 1, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [2, 1, 1, 2, 3], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 4, 3, 1, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 2, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [4, 2, 2, 2], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + + InstrItinData ], [2, 1, 2, 3], + [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, + InstrItinData ], [4, 4, 2, 2], [Hex_FWD, Hex_FWD, Hex_FWD, Hex_FWD]>, diff --git a/llvm/lib/Target/Hexagon/HexagonDepInstrFormats.td b/llvm/lib/Target/Hexagon/HexagonDepInstrFormats.td index 4d067b4..ffe212e 100644 --- a/llvm/lib/Target/Hexagon/HexagonDepInstrFormats.td +++ b/llvm/lib/Target/Hexagon/HexagonDepInstrFormats.td @@ -210,6 +210,14 @@ class Enc_d7dc10 : OpcodeHexagon { bits <2> Pd4; let Inst{1-0} = Pd4{1-0}; } +class Enc_6baed4 : OpcodeHexagon { + bits <3> Ii; + let Inst{10-8} = Ii{2-0}; + bits <2> Pv4; + let Inst{12-11} = Pv4{1-0}; + bits <5> Rx32; + let Inst{20-16} = Rx32{4-0}; +} class Enc_736575 : OpcodeHexagon { bits <11> Ii; let Inst{21-20} = Ii{10-9}; @@ -363,6 +371,14 @@ class Enc_ee5ed0 : OpcodeHexagon { bits <2> n1; let Inst{9-8} = n1{1-0}; } +class Enc_bddee3 : OpcodeHexagon { + bits <5> Vu32; + let Inst{12-8} = Vu32{4-0}; + bits <5> Vyyyy32; + let Inst{4-0} = Vyyyy32{4-0}; + bits <3> Rx8; + let Inst{18-16} = Rx8{2-0}; +} class Enc_935d9b : OpcodeHexagon { bits <5> Ii; let Inst{6-3} = Ii{4-1}; @@ -502,6 +518,14 @@ class Enc_27fd0e : OpcodeHexagon { bits <5> Rx32; let Inst{20-16} = Rx32{4-0}; } +class Enc_d7bc34 : OpcodeHexagon { + bits <5> Vu32; + let Inst{12-8} = Vu32{4-0}; + bits <3> Rt8; + let Inst{18-16} = Rt8{2-0}; + bits <5> Vyyyy32; + let Inst{4-0} = Vyyyy32{4-0}; +} class Enc_93af4c : OpcodeHexagon { bits <7> Ii; let Inst{10-4} = Ii{6-0}; @@ -667,6 +691,16 @@ class Enc_1b64fb : OpcodeHexagon { bits <5> Rt32; let Inst{12-8} = Rt32{4-0}; } +class Enc_c1d806 : OpcodeHexagon { + bits <5> Vu32; + let Inst{12-8} = Vu32{4-0}; + bits <5> Vv32; + let Inst{20-16} = Vv32{4-0}; + bits <5> Vd32; + let Inst{4-0} = Vd32{4-0}; + bits <2> Qe4; + let Inst{6-5} = Qe4{1-0}; +} class Enc_c6220b : OpcodeHexagon { bits <2> Ii; let Inst{13-13} = Ii{1-1}; @@ -1060,6 +1094,14 @@ class Enc_b0e9d8 : OpcodeHexagon { bits <5> Rx32; let Inst{4-0} = Rx32{4-0}; } +class Enc_1bd127 : OpcodeHexagon { + bits <5> Vu32; + let Inst{12-8} = Vu32{4-0}; + bits <3> Rt8; + let Inst{18-16} = Rt8{2-0}; + bits <5> Vdddd32; + let Inst{4-0} = Vdddd32{4-0}; +} class Enc_3694bd : OpcodeHexagon { bits <11> Ii; let Inst{21-20} = Ii{10-9}; @@ -1168,6 +1210,15 @@ class Enc_412ff0 : OpcodeHexagon { bits <5> Rxx32; let Inst{12-8} = Rxx32{4-0}; } +class Enc_ef601b : OpcodeHexagon { + bits <4> Ii; + let Inst{13-13} = Ii{3-3}; + let Inst{10-8} = Ii{2-0}; + bits <2> Pv4; + let Inst{12-11} = Pv4{1-0}; + bits <5> Rt32; + let Inst{20-16} = Rt32{4-0}; +} class Enc_c9a18e : OpcodeHexagon { bits <11> Ii; let Inst{21-20} = Ii{10-9}; @@ -1484,12 +1535,6 @@ class Enc_a198f6 : OpcodeHexagon { bits <5> Rd32; let Inst{4-0} = Rd32{4-0}; } -class Enc_ed48be : OpcodeHexagon { - bits <2> Ii; - let Inst{6-5} = Ii{1-0}; - bits <3> Rdd8; - let Inst{2-0} = Rdd8{2-0}; -} class Enc_4e4a80 : OpcodeHexagon { bits <2> Qs4; let Inst{6-5} = Qs4{1-0}; @@ -1657,6 +1702,15 @@ class Enc_bd1cbc : OpcodeHexagon { bits <5> Rx32; let Inst{20-16} = Rx32{4-0}; } +class Enc_c85e2a : OpcodeHexagon { + bits <5> Ii; + let Inst{12-8} = Ii{4-0}; + bits <5> II; + let Inst{22-21} = II{4-3}; + let Inst{7-5} = II{2-0}; + bits <5> Rd32; + let Inst{4-0} = Rd32{4-0}; +} class Enc_a30110 : OpcodeHexagon { bits <5> Vu32; let Inst{12-8} = Vu32{4-0}; @@ -2308,6 +2362,14 @@ class Enc_16c48b : OpcodeHexagon { bits <5> Vw32; let Inst{4-0} = Vw32{4-0}; } +class Enc_895bd9 : OpcodeHexagon { + bits <2> Qu4; + let Inst{9-8} = Qu4{1-0}; + bits <5> Rt32; + let Inst{20-16} = Rt32{4-0}; + bits <5> Vx32; + let Inst{4-0} = Vx32{4-0}; +} class Enc_ea23e4 : OpcodeHexagon { bits <5> Rtt32; let Inst{12-8} = Rtt32{4-0}; @@ -2844,6 +2906,16 @@ class Enc_e07374 : OpcodeHexagon { bits <5> Rd32; let Inst{4-0} = Rd32{4-0}; } +class Enc_e0820b : OpcodeHexagon { + bits <5> Vu32; + let Inst{12-8} = Vu32{4-0}; + bits <5> Vv32; + let Inst{20-16} = Vv32{4-0}; + bits <2> Qs4; + let Inst{6-5} = Qs4{1-0}; + bits <5> Vd32; + let Inst{4-0} = Vd32{4-0}; +} class Enc_323f2d : OpcodeHexagon { bits <6> II; let Inst{11-8} = II{5-2}; @@ -2968,6 +3040,14 @@ class Enc_163a3c : OpcodeHexagon { bits <5> Rt32; let Inst{4-0} = Rt32{4-0}; } +class Enc_a75aa6 : OpcodeHexagon { + bits <5> Rs32; + let Inst{20-16} = Rs32{4-0}; + bits <5> Rt32; + let Inst{12-8} = Rt32{4-0}; + bits <1> Mu2; + let Inst{13-13} = Mu2{0-0}; +} class Enc_b087ac : OpcodeHexagon { bits <5> Vu32; let Inst{12-8} = Vu32{4-0}; @@ -2976,6 +3056,14 @@ class Enc_b087ac : OpcodeHexagon { bits <5> Vd32; let Inst{4-0} = Vd32{4-0}; } +class Enc_691712 : OpcodeHexagon { + bits <2> Pv4; + let Inst{12-11} = Pv4{1-0}; + bits <1> Mu2; + let Inst{13-13} = Mu2{0-0}; + bits <5> Rx32; + let Inst{20-16} = Rx32{4-0}; +} class Enc_b1e1fb : OpcodeHexagon { bits <11> Ii; let Inst{21-20} = Ii{10-9}; @@ -3128,16 +3216,11 @@ class Enc_e83554 : OpcodeHexagon { bits <5> Rx32; let Inst{20-16} = Rx32{4-0}; } -class Enc_eca7c8 : OpcodeHexagon { +class Enc_ed48be : OpcodeHexagon { bits <2> Ii; - let Inst{13-13} = Ii{1-1}; - let Inst{7-7} = Ii{0-0}; - bits <5> Rs32; - let Inst{20-16} = Rs32{4-0}; - bits <5> Ru32; - let Inst{12-8} = Ru32{4-0}; - bits <5> Rt32; - let Inst{4-0} = Rt32{4-0}; + let Inst{6-5} = Ii{1-0}; + bits <3> Rdd8; + let Inst{2-0} = Rdd8{2-0}; } class Enc_f8c1c4 : OpcodeHexagon { bits <2> Pv4; @@ -3392,13 +3475,24 @@ class Enc_a6ce9c : OpcodeHexagon { bits <4> Rs16; let Inst{7-4} = Rs16{3-0}; } -class Enc_895bd9 : OpcodeHexagon { - bits <2> Qu4; - let Inst{9-8} = Qu4{1-0}; +class Enc_3b7631 : OpcodeHexagon { + bits <5> Vu32; + let Inst{12-8} = Vu32{4-0}; + bits <5> Vdddd32; + let Inst{4-0} = Vdddd32{4-0}; + bits <3> Rx8; + let Inst{18-16} = Rx8{2-0}; +} +class Enc_eca7c8 : OpcodeHexagon { + bits <2> Ii; + let Inst{13-13} = Ii{1-1}; + let Inst{7-7} = Ii{0-0}; + bits <5> Rs32; + let Inst{20-16} = Rs32{4-0}; + bits <5> Ru32; + let Inst{12-8} = Ru32{4-0}; bits <5> Rt32; - let Inst{20-16} = Rt32{4-0}; - bits <5> Vx32; - let Inst{4-0} = Vx32{4-0}; + let Inst{4-0} = Rt32{4-0}; } class Enc_4b39e4 : OpcodeHexagon { bits <3> Ii; diff --git a/llvm/lib/Target/Hexagon/HexagonDepInstrInfo.td b/llvm/lib/Target/Hexagon/HexagonDepInstrInfo.td index e9bfce5..3ef1c49 100644 --- a/llvm/lib/Target/Hexagon/HexagonDepInstrInfo.td +++ b/llvm/lib/Target/Hexagon/HexagonDepInstrInfo.td @@ -1304,12 +1304,13 @@ def A2_svavgh : HInst< (outs IntRegs:$Rd32), (ins IntRegs:$Rs32, IntRegs:$Rt32), "$Rd32 = vavgh($Rs32,$Rt32)", -tc_5a2711e5, TypeALU32_3op>, Enc_5ab2be { +tc_1c80410a, TypeALU32_3op>, Enc_5ab2be { let Inst{7-5} = 0b000; let Inst{13-13} = 0b0; let Inst{31-21} = 0b11110111000; let hasNewValue = 1; let opNewValue = 0; +let prefersSlot3 = 1; let InputType = "reg"; let isCommutable = 1; } @@ -1317,12 +1318,13 @@ def A2_svavghs : HInst< (outs IntRegs:$Rd32), (ins IntRegs:$Rs32, IntRegs:$Rt32), "$Rd32 = vavgh($Rs32,$Rt32):rnd", -tc_3a2ec948, TypeALU32_3op>, Enc_5ab2be { +tc_d08ee0f4, TypeALU32_3op>, Enc_5ab2be { let Inst{7-5} = 0b000; let Inst{13-13} = 0b0; let Inst{31-21} = 0b11110111001; let hasNewValue = 1; let opNewValue = 0; +let prefersSlot3 = 1; let InputType = "reg"; let isCommutable = 1; } @@ -1330,12 +1332,13 @@ def A2_svnavgh : HInst< (outs IntRegs:$Rd32), (ins IntRegs:$Rt32, IntRegs:$Rs32), "$Rd32 = vnavgh($Rt32,$Rs32)", -tc_5a2711e5, TypeALU32_3op>, Enc_bd6011 { +tc_1c80410a, TypeALU32_3op>, Enc_bd6011 { let Inst{7-5} = 0b000; let Inst{13-13} = 0b0; let Inst{31-21} = 0b11110111011; let hasNewValue = 1; let opNewValue = 0; +let prefersSlot3 = 1; let InputType = "reg"; } def A2_svsubh : HInst< @@ -1737,10 +1740,11 @@ def A2_vavgh : HInst< (outs DoubleRegs:$Rdd32), (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), "$Rdd32 = vavgh($Rss32,$Rtt32)", -tc_946df596, TypeALU64>, Enc_a56825 { +tc_6132ba3d, TypeALU64>, Enc_a56825 { let Inst{7-5} = 0b010; let Inst{13-13} = 0b0; let Inst{31-21} = 0b11010011010; +let prefersSlot3 = 1; } def A2_vavghcr : HInst< (outs DoubleRegs:$Rdd32), @@ -1756,73 +1760,81 @@ def A2_vavghr : HInst< (outs DoubleRegs:$Rdd32), (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), "$Rdd32 = vavgh($Rss32,$Rtt32):rnd", -tc_bf41e621, TypeALU64>, Enc_a56825 { +tc_e4a7f9f0, TypeALU64>, Enc_a56825 { let Inst{7-5} = 0b011; let Inst{13-13} = 0b0; let Inst{31-21} = 0b11010011010; +let prefersSlot3 = 1; } def A2_vavgub : HInst< (outs DoubleRegs:$Rdd32), (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), "$Rdd32 = vavgub($Rss32,$Rtt32)", -tc_946df596, TypeALU64>, Enc_a56825 { +tc_6132ba3d, TypeALU64>, Enc_a56825 { let Inst{7-5} = 0b000; let Inst{13-13} = 0b0; let Inst{31-21} = 0b11010011010; +let prefersSlot3 = 1; } def A2_vavgubr : HInst< (outs DoubleRegs:$Rdd32), (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), "$Rdd32 = vavgub($Rss32,$Rtt32):rnd", -tc_bf41e621, TypeALU64>, Enc_a56825 { +tc_e4a7f9f0, TypeALU64>, Enc_a56825 { let Inst{7-5} = 0b001; let Inst{13-13} = 0b0; let Inst{31-21} = 0b11010011010; +let prefersSlot3 = 1; } def A2_vavguh : HInst< (outs DoubleRegs:$Rdd32), (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), "$Rdd32 = vavguh($Rss32,$Rtt32)", -tc_946df596, TypeALU64>, Enc_a56825 { +tc_6132ba3d, TypeALU64>, Enc_a56825 { let Inst{7-5} = 0b101; let Inst{13-13} = 0b0; let Inst{31-21} = 0b11010011010; +let prefersSlot3 = 1; } def A2_vavguhr : HInst< (outs DoubleRegs:$Rdd32), (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), "$Rdd32 = vavguh($Rss32,$Rtt32):rnd", -tc_bf41e621, TypeALU64>, Enc_a56825 { +tc_e4a7f9f0, TypeALU64>, Enc_a56825 { let Inst{7-5} = 0b110; let Inst{13-13} = 0b0; let Inst{31-21} = 0b11010011010; +let prefersSlot3 = 1; } def A2_vavguw : HInst< (outs DoubleRegs:$Rdd32), (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), "$Rdd32 = vavguw($Rss32,$Rtt32)", -tc_946df596, TypeALU64>, Enc_a56825 { +tc_6132ba3d, TypeALU64>, Enc_a56825 { let Inst{7-5} = 0b011; let Inst{13-13} = 0b0; let Inst{31-21} = 0b11010011011; +let prefersSlot3 = 1; } def A2_vavguwr : HInst< (outs DoubleRegs:$Rdd32), (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), "$Rdd32 = vavguw($Rss32,$Rtt32):rnd", -tc_bf41e621, TypeALU64>, Enc_a56825 { +tc_e4a7f9f0, TypeALU64>, Enc_a56825 { let Inst{7-5} = 0b100; let Inst{13-13} = 0b0; let Inst{31-21} = 0b11010011011; +let prefersSlot3 = 1; } def A2_vavgw : HInst< (outs DoubleRegs:$Rdd32), (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), "$Rdd32 = vavgw($Rss32,$Rtt32)", -tc_946df596, TypeALU64>, Enc_a56825 { +tc_6132ba3d, TypeALU64>, Enc_a56825 { let Inst{7-5} = 0b000; let Inst{13-13} = 0b0; let Inst{31-21} = 0b11010011011; +let prefersSlot3 = 1; } def A2_vavgwcr : HInst< (outs DoubleRegs:$Rdd32), @@ -1838,10 +1850,11 @@ def A2_vavgwr : HInst< (outs DoubleRegs:$Rdd32), (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), "$Rdd32 = vavgw($Rss32,$Rtt32):rnd", -tc_bf41e621, TypeALU64>, Enc_a56825 { +tc_e4a7f9f0, TypeALU64>, Enc_a56825 { let Inst{7-5} = 0b001; let Inst{13-13} = 0b0; let Inst{31-21} = 0b11010011011; +let prefersSlot3 = 1; } def A2_vcmpbeq : HInst< (outs PredRegs:$Pd4), @@ -2049,10 +2062,11 @@ def A2_vnavgh : HInst< (outs DoubleRegs:$Rdd32), (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), "$Rdd32 = vnavgh($Rtt32,$Rss32)", -tc_946df596, TypeALU64>, Enc_ea23e4 { +tc_6132ba3d, TypeALU64>, Enc_ea23e4 { let Inst{7-5} = 0b000; let Inst{13-13} = 0b0; let Inst{31-21} = 0b11010011100; +let prefersSlot3 = 1; } def A2_vnavghcr : HInst< (outs DoubleRegs:$Rdd32), @@ -2080,10 +2094,11 @@ def A2_vnavgw : HInst< (outs DoubleRegs:$Rdd32), (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32), "$Rdd32 = vnavgw($Rtt32,$Rss32)", -tc_946df596, TypeALU64>, Enc_ea23e4 { +tc_6132ba3d, TypeALU64>, Enc_ea23e4 { let Inst{7-5} = 0b011; let Inst{13-13} = 0b0; let Inst{31-21} = 0b11010011100; +let prefersSlot3 = 1; } def A2_vnavgwcr : HInst< (outs DoubleRegs:$Rdd32), @@ -4340,6 +4355,17 @@ let opNewValue = 0; let isFP = 1; let Uses = [USR]; } +def F2_dfadd : HInst< +(outs DoubleRegs:$Rdd32), +(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), +"$Rdd32 = dfadd($Rss32,$Rtt32)", +tc_2f7c551d, TypeM>, Enc_a56825, Requires<[HasV66]> { +let Inst{7-5} = 0b011; +let Inst{13-13} = 0b0; +let Inst{31-21} = 0b11101000000; +let isFP = 1; +let Uses = [USR]; +} def F2_dfclass : HInst< (outs PredRegs:$Pd4), (ins DoubleRegs:$Rss32, u5_0Imm:$Ii), @@ -4417,6 +4443,17 @@ let Inst{20-16} = 0b00000; let Inst{31-22} = 0b1101100100; let prefersSlot3 = 1; } +def F2_dfsub : HInst< +(outs DoubleRegs:$Rdd32), +(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32), +"$Rdd32 = dfsub($Rss32,$Rtt32)", +tc_2f7c551d, TypeM>, Enc_a56825, Requires<[HasV66]> { +let Inst{7-5} = 0b011; +let Inst{13-13} = 0b0; +let Inst{31-21} = 0b11101000100; +let isFP = 1; +let Uses = [USR]; +} def F2_sfadd : HInst< (outs IntRegs:$Rd32), (ins IntRegs:$Rs32, IntRegs:$Rt32), @@ -5550,7 +5587,7 @@ def J2_ploop1si : HInst< (outs), (ins b30_2Imm:$Ii, u10_0Imm:$II), "p3 = sp1loop0($Ii,#$II)", -tc_8224ffbc, TypeCR>, Enc_4dc228 { +tc_1c4528a2, TypeCR>, Enc_4dc228 { let Inst{2-2} = 0b0; let Inst{13-13} = 0b0; let Inst{31-21} = 0b01101001101; @@ -5568,7 +5605,7 @@ def J2_ploop1sr : HInst< (outs), (ins b30_2Imm:$Ii, IntRegs:$Rs32), "p3 = sp1loop0($Ii,$Rs32)", -tc_f00ee968, TypeCR>, Enc_864a5a { +tc_32779c6f, TypeCR>, Enc_864a5a { let Inst{2-0} = 0b000; let Inst{7-5} = 0b000; let Inst{13-13} = 0b0; @@ -5587,7 +5624,7 @@ def J2_ploop2si : HInst< (outs), (ins b30_2Imm:$Ii, u10_0Imm:$II), "p3 = sp2loop0($Ii,#$II)", -tc_8224ffbc, TypeCR>, Enc_4dc228 { +tc_1c4528a2, TypeCR>, Enc_4dc228 { let Inst{2-2} = 0b0; let Inst{13-13} = 0b0; let Inst{31-21} = 0b01101001110; @@ -5605,7 +5642,7 @@ def J2_ploop2sr : HInst< (outs), (ins b30_2Imm:$Ii, IntRegs:$Rs32), "p3 = sp2loop0($Ii,$Rs32)", -tc_f00ee968, TypeCR>, Enc_864a5a { +tc_32779c6f, TypeCR>, Enc_864a5a { let Inst{2-0} = 0b000; let Inst{7-5} = 0b000; let Inst{13-13} = 0b0; @@ -5624,7 +5661,7 @@ def J2_ploop3si : HInst< (outs), (ins b30_2Imm:$Ii, u10_0Imm:$II), "p3 = sp3loop0($Ii,#$II)", -tc_8224ffbc, TypeCR>, Enc_4dc228 { +tc_1c4528a2, TypeCR>, Enc_4dc228 { let Inst{2-2} = 0b0; let Inst{13-13} = 0b0; let Inst{31-21} = 0b01101001111; @@ -5642,7 +5679,7 @@ def J2_ploop3sr : HInst< (outs), (ins b30_2Imm:$Ii, IntRegs:$Rs32), "p3 = sp3loop0($Ii,$Rs32)", -tc_f00ee968, TypeCR>, Enc_864a5a { +tc_32779c6f, TypeCR>, Enc_864a5a { let Inst{2-0} = 0b000; let Inst{7-5} = 0b000; let Inst{13-13} = 0b0; @@ -5699,7 +5736,7 @@ def J4_cmpeq_f_jumpnv_nt : HInst< (outs), (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), "if (!cmp.eq($Ns8.new,$Rt32)) jump:nt $Ii", -tc_846a6d41, TypeNCJ>, Enc_c9a18e, PredRel { +tc_9bfd761f, TypeNCJ>, Enc_c9a18e, PredRel { let Inst{0-0} = 0b0; let Inst{13-13} = 0b0; let Inst{19-19} = 0b0; @@ -5725,7 +5762,7 @@ def J4_cmpeq_f_jumpnv_t : HInst< (outs), (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), "if (!cmp.eq($Ns8.new,$Rt32)) jump:t $Ii", -tc_846a6d41, TypeNCJ>, Enc_c9a18e, PredRel { +tc_9bfd761f, TypeNCJ>, Enc_c9a18e, PredRel { let Inst{0-0} = 0b0; let Inst{13-13} = 0b1; let Inst{19-19} = 0b0; @@ -5855,7 +5892,7 @@ def J4_cmpeq_t_jumpnv_nt : HInst< (outs), (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), "if (cmp.eq($Ns8.new,$Rt32)) jump:nt $Ii", -tc_846a6d41, TypeNCJ>, Enc_c9a18e, PredRel { +tc_9bfd761f, TypeNCJ>, Enc_c9a18e, PredRel { let Inst{0-0} = 0b0; let Inst{13-13} = 0b0; let Inst{19-19} = 0b0; @@ -5880,7 +5917,7 @@ def J4_cmpeq_t_jumpnv_t : HInst< (outs), (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), "if (cmp.eq($Ns8.new,$Rt32)) jump:t $Ii", -tc_846a6d41, TypeNCJ>, Enc_c9a18e, PredRel { +tc_9bfd761f, TypeNCJ>, Enc_c9a18e, PredRel { let Inst{0-0} = 0b0; let Inst{13-13} = 0b1; let Inst{19-19} = 0b0; @@ -6617,7 +6654,7 @@ def J4_cmpgt_f_jumpnv_nt : HInst< (outs), (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), "if (!cmp.gt($Ns8.new,$Rt32)) jump:nt $Ii", -tc_846a6d41, TypeNCJ>, Enc_c9a18e, PredRel { +tc_9bfd761f, TypeNCJ>, Enc_c9a18e, PredRel { let Inst{0-0} = 0b0; let Inst{13-13} = 0b0; let Inst{19-19} = 0b0; @@ -6643,7 +6680,7 @@ def J4_cmpgt_f_jumpnv_t : HInst< (outs), (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), "if (!cmp.gt($Ns8.new,$Rt32)) jump:t $Ii", -tc_846a6d41, TypeNCJ>, Enc_c9a18e, PredRel { +tc_9bfd761f, TypeNCJ>, Enc_c9a18e, PredRel { let Inst{0-0} = 0b0; let Inst{13-13} = 0b1; let Inst{19-19} = 0b0; @@ -6773,7 +6810,7 @@ def J4_cmpgt_t_jumpnv_nt : HInst< (outs), (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), "if (cmp.gt($Ns8.new,$Rt32)) jump:nt $Ii", -tc_846a6d41, TypeNCJ>, Enc_c9a18e, PredRel { +tc_9bfd761f, TypeNCJ>, Enc_c9a18e, PredRel { let Inst{0-0} = 0b0; let Inst{13-13} = 0b0; let Inst{19-19} = 0b0; @@ -6798,7 +6835,7 @@ def J4_cmpgt_t_jumpnv_t : HInst< (outs), (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), "if (cmp.gt($Ns8.new,$Rt32)) jump:t $Ii", -tc_846a6d41, TypeNCJ>, Enc_c9a18e, PredRel { +tc_9bfd761f, TypeNCJ>, Enc_c9a18e, PredRel { let Inst{0-0} = 0b0; let Inst{13-13} = 0b1; let Inst{19-19} = 0b0; @@ -7535,7 +7572,7 @@ def J4_cmpgtu_f_jumpnv_nt : HInst< (outs), (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), "if (!cmp.gtu($Ns8.new,$Rt32)) jump:nt $Ii", -tc_846a6d41, TypeNCJ>, Enc_c9a18e, PredRel { +tc_9bfd761f, TypeNCJ>, Enc_c9a18e, PredRel { let Inst{0-0} = 0b0; let Inst{13-13} = 0b0; let Inst{19-19} = 0b0; @@ -7561,7 +7598,7 @@ def J4_cmpgtu_f_jumpnv_t : HInst< (outs), (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), "if (!cmp.gtu($Ns8.new,$Rt32)) jump:t $Ii", -tc_846a6d41, TypeNCJ>, Enc_c9a18e, PredRel { +tc_9bfd761f, TypeNCJ>, Enc_c9a18e, PredRel { let Inst{0-0} = 0b0; let Inst{13-13} = 0b1; let Inst{19-19} = 0b0; @@ -7691,7 +7728,7 @@ def J4_cmpgtu_t_jumpnv_nt : HInst< (outs), (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), "if (cmp.gtu($Ns8.new,$Rt32)) jump:nt $Ii", -tc_846a6d41, TypeNCJ>, Enc_c9a18e, PredRel { +tc_9bfd761f, TypeNCJ>, Enc_c9a18e, PredRel { let Inst{0-0} = 0b0; let Inst{13-13} = 0b0; let Inst{19-19} = 0b0; @@ -7716,7 +7753,7 @@ def J4_cmpgtu_t_jumpnv_t : HInst< (outs), (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii), "if (cmp.gtu($Ns8.new,$Rt32)) jump:t $Ii", -tc_846a6d41, TypeNCJ>, Enc_c9a18e, PredRel { +tc_9bfd761f, TypeNCJ>, Enc_c9a18e, PredRel { let Inst{0-0} = 0b0; let Inst{13-13} = 0b1; let Inst{19-19} = 0b0; @@ -8147,7 +8184,7 @@ def J4_cmplt_f_jumpnv_nt : HInst< (outs), (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii), "if (!cmp.gt($Rt32,$Ns8.new)) jump:nt $Ii", -tc_1640ad89, TypeNCJ>, Enc_5de85f, PredRel { +tc_b343892a, TypeNCJ>, Enc_5de85f, PredRel { let Inst{0-0} = 0b0; let Inst{13-13} = 0b0; let Inst{19-19} = 0b0; @@ -8173,7 +8210,7 @@ def J4_cmplt_f_jumpnv_t : HInst< (outs), (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii), "if (!cmp.gt($Rt32,$Ns8.new)) jump:t $Ii", -tc_1640ad89, TypeNCJ>, Enc_5de85f, PredRel { +tc_b343892a, TypeNCJ>, Enc_5de85f, PredRel { let Inst{0-0} = 0b0; let Inst{13-13} = 0b1; let Inst{19-19} = 0b0; @@ -8199,7 +8236,7 @@ def J4_cmplt_t_jumpnv_nt : HInst< (outs), (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii), "if (cmp.gt($Rt32,$Ns8.new)) jump:nt $Ii", -tc_1640ad89, TypeNCJ>, Enc_5de85f, PredRel { +tc_b343892a, TypeNCJ>, Enc_5de85f, PredRel { let Inst{0-0} = 0b0; let Inst{13-13} = 0b0; let Inst{19-19} = 0b0; @@ -8224,7 +8261,7 @@ def J4_cmplt_t_jumpnv_t : HInst< (outs), (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii), "if (cmp.gt($Rt32,$Ns8.new)) jump:t $Ii", -tc_1640ad89, TypeNCJ>, Enc_5de85f, PredRel { +tc_b343892a, TypeNCJ>, Enc_5de85f, PredRel { let Inst{0-0} = 0b0; let Inst{13-13} = 0b1; let Inst{19-19} = 0b0; @@ -8249,7 +8286,7 @@ def J4_cmpltu_f_jumpnv_nt : HInst< (outs), (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii), "if (!cmp.gtu($Rt32,$Ns8.new)) jump:nt $Ii", -tc_1640ad89, TypeNCJ>, Enc_5de85f, PredRel { +tc_b343892a, TypeNCJ>, Enc_5de85f, PredRel { let Inst{0-0} = 0b0; let Inst{13-13} = 0b0; let Inst{19-19} = 0b0; @@ -8275,7 +8312,7 @@ def J4_cmpltu_f_jumpnv_t : HInst< (outs), (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii), "if (!cmp.gtu($Rt32,$Ns8.new)) jump:t $Ii", -tc_1640ad89, TypeNCJ>, Enc_5de85f, PredRel { +tc_b343892a, TypeNCJ>, Enc_5de85f, PredRel { let Inst{0-0} = 0b0; let Inst{13-13} = 0b1; let Inst{19-19} = 0b0; @@ -8301,7 +8338,7 @@ def J4_cmpltu_t_jumpnv_nt : HInst< (outs), (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii), "if (cmp.gtu($Rt32,$Ns8.new)) jump:nt $Ii", -tc_1640ad89, TypeNCJ>, Enc_5de85f, PredRel { +tc_b343892a, TypeNCJ>, Enc_5de85f, PredRel { let Inst{0-0} = 0b0; let Inst{13-13} = 0b0; let Inst{19-19} = 0b0; @@ -8326,7 +8363,7 @@ def J4_cmpltu_t_jumpnv_t : HInst< (outs), (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii), "if (cmp.gtu($Rt32,$Ns8.new)) jump:t $Ii", -tc_1640ad89, TypeNCJ>, Enc_5de85f, PredRel { +tc_b343892a, TypeNCJ>, Enc_5de85f, PredRel { let Inst{0-0} = 0b0; let Inst{13-13} = 0b1; let Inst{19-19} = 0b0; @@ -11157,7 +11194,7 @@ def L4_add_memopb_io : HInst< (outs), (ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), "memb($Rs32+#$Ii) += $Rt32", -tc_096199d3, TypeV4LDST>, Enc_d44e31 { +tc_7186d325, TypeV4LDST>, Enc_d44e31 { let Inst{6-5} = 0b00; let Inst{13-13} = 0b0; let Inst{31-21} = 0b00111110000; @@ -11176,7 +11213,7 @@ def L4_add_memopb_zomap : HInst< (outs), (ins IntRegs:$Rs32, IntRegs:$Rt32), "memb($Rs32) += $Rt32", -tc_096199d3, TypeMAPPING> { +tc_7186d325, TypeMAPPING> { let isPseudo = 1; let isCodeGenOnly = 1; } @@ -11184,7 +11221,7 @@ def L4_add_memoph_io : HInst< (outs), (ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), "memh($Rs32+#$Ii) += $Rt32", -tc_096199d3, TypeV4LDST>, Enc_163a3c { +tc_7186d325, TypeV4LDST>, Enc_163a3c { let Inst{6-5} = 0b00; let Inst{13-13} = 0b0; let Inst{31-21} = 0b00111110001; @@ -11203,7 +11240,7 @@ def L4_add_memoph_zomap : HInst< (outs), (ins IntRegs:$Rs32, IntRegs:$Rt32), "memh($Rs32) += $Rt32", -tc_096199d3, TypeMAPPING> { +tc_7186d325, TypeMAPPING> { let isPseudo = 1; let isCodeGenOnly = 1; } @@ -11211,7 +11248,7 @@ def L4_add_memopw_io : HInst< (outs), (ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), "memw($Rs32+#$Ii) += $Rt32", -tc_096199d3, TypeV4LDST>, Enc_226535 { +tc_7186d325, TypeV4LDST>, Enc_226535 { let Inst{6-5} = 0b00; let Inst{13-13} = 0b0; let Inst{31-21} = 0b00111110010; @@ -11230,7 +11267,7 @@ def L4_add_memopw_zomap : HInst< (outs), (ins IntRegs:$Rs32, IntRegs:$Rt32), "memw($Rs32) += $Rt32", -tc_096199d3, TypeMAPPING> { +tc_7186d325, TypeMAPPING> { let isPseudo = 1; let isCodeGenOnly = 1; } @@ -11238,7 +11275,7 @@ def L4_and_memopb_io : HInst< (outs), (ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), "memb($Rs32+#$Ii) &= $Rt32", -tc_096199d3, TypeV4LDST>, Enc_d44e31 { +tc_7186d325, TypeV4LDST>, Enc_d44e31 { let Inst{6-5} = 0b10; let Inst{13-13} = 0b0; let Inst{31-21} = 0b00111110000; @@ -11257,7 +11294,7 @@ def L4_and_memopb_zomap : HInst< (outs), (ins IntRegs:$Rs32, IntRegs:$Rt32), "memb($Rs32) &= $Rt32", -tc_096199d3, TypeMAPPING> { +tc_7186d325, TypeMAPPING> { let isPseudo = 1; let isCodeGenOnly = 1; } @@ -11265,7 +11302,7 @@ def L4_and_memoph_io : HInst< (outs), (ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), "memh($Rs32+#$Ii) &= $Rt32", -tc_096199d3, TypeV4LDST>, Enc_163a3c { +tc_7186d325, TypeV4LDST>, Enc_163a3c { let Inst{6-5} = 0b10; let Inst{13-13} = 0b0; let Inst{31-21} = 0b00111110001; @@ -11284,7 +11321,7 @@ def L4_and_memoph_zomap : HInst< (outs), (ins IntRegs:$Rs32, IntRegs:$Rt32), "memh($Rs32) &= $Rt32", -tc_096199d3, TypeMAPPING> { +tc_7186d325, TypeMAPPING> { let isPseudo = 1; let isCodeGenOnly = 1; } @@ -11292,7 +11329,7 @@ def L4_and_memopw_io : HInst< (outs), (ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), "memw($Rs32+#$Ii) &= $Rt32", -tc_096199d3, TypeV4LDST>, Enc_226535 { +tc_7186d325, TypeV4LDST>, Enc_226535 { let Inst{6-5} = 0b10; let Inst{13-13} = 0b0; let Inst{31-21} = 0b00111110010; @@ -11311,7 +11348,7 @@ def L4_and_memopw_zomap : HInst< (outs), (ins IntRegs:$Rs32, IntRegs:$Rt32), "memw($Rs32) &= $Rt32", -tc_096199d3, TypeMAPPING> { +tc_7186d325, TypeMAPPING> { let isPseudo = 1; let isCodeGenOnly = 1; } @@ -12248,7 +12285,7 @@ def L4_or_memopb_io : HInst< (outs), (ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), "memb($Rs32+#$Ii) |= $Rt32", -tc_096199d3, TypeV4LDST>, Enc_d44e31 { +tc_7186d325, TypeV4LDST>, Enc_d44e31 { let Inst{6-5} = 0b11; let Inst{13-13} = 0b0; let Inst{31-21} = 0b00111110000; @@ -12267,7 +12304,7 @@ def L4_or_memopb_zomap : HInst< (outs), (ins IntRegs:$Rs32, IntRegs:$Rt32), "memb($Rs32) |= $Rt32", -tc_096199d3, TypeMAPPING> { +tc_7186d325, TypeMAPPING> { let isPseudo = 1; let isCodeGenOnly = 1; } @@ -12275,7 +12312,7 @@ def L4_or_memoph_io : HInst< (outs), (ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), "memh($Rs32+#$Ii) |= $Rt32", -tc_096199d3, TypeV4LDST>, Enc_163a3c { +tc_7186d325, TypeV4LDST>, Enc_163a3c { let Inst{6-5} = 0b11; let Inst{13-13} = 0b0; let Inst{31-21} = 0b00111110001; @@ -12294,7 +12331,7 @@ def L4_or_memoph_zomap : HInst< (outs), (ins IntRegs:$Rs32, IntRegs:$Rt32), "memh($Rs32) |= $Rt32", -tc_096199d3, TypeMAPPING> { +tc_7186d325, TypeMAPPING> { let isPseudo = 1; let isCodeGenOnly = 1; } @@ -12302,7 +12339,7 @@ def L4_or_memopw_io : HInst< (outs), (ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), "memw($Rs32+#$Ii) |= $Rt32", -tc_096199d3, TypeV4LDST>, Enc_226535 { +tc_7186d325, TypeV4LDST>, Enc_226535 { let Inst{6-5} = 0b11; let Inst{13-13} = 0b0; let Inst{31-21} = 0b00111110010; @@ -12321,7 +12358,7 @@ def L4_or_memopw_zomap : HInst< (outs), (ins IntRegs:$Rs32, IntRegs:$Rt32), "memw($Rs32) |= $Rt32", -tc_096199d3, TypeMAPPING> { +tc_7186d325, TypeMAPPING> { let isPseudo = 1; let isCodeGenOnly = 1; } @@ -13523,7 +13560,7 @@ def L4_sub_memopb_io : HInst< (outs), (ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), "memb($Rs32+#$Ii) -= $Rt32", -tc_096199d3, TypeV4LDST>, Enc_d44e31 { +tc_7186d325, TypeV4LDST>, Enc_d44e31 { let Inst{6-5} = 0b01; let Inst{13-13} = 0b0; let Inst{31-21} = 0b00111110000; @@ -13542,7 +13579,7 @@ def L4_sub_memopb_zomap : HInst< (outs), (ins IntRegs:$Rs32, IntRegs:$Rt32), "memb($Rs32) -= $Rt32", -tc_096199d3, TypeMAPPING> { +tc_7186d325, TypeMAPPING> { let isPseudo = 1; let isCodeGenOnly = 1; } @@ -13550,7 +13587,7 @@ def L4_sub_memoph_io : HInst< (outs), (ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), "memh($Rs32+#$Ii) -= $Rt32", -tc_096199d3, TypeV4LDST>, Enc_163a3c { +tc_7186d325, TypeV4LDST>, Enc_163a3c { let Inst{6-5} = 0b01; let Inst{13-13} = 0b0; let Inst{31-21} = 0b00111110001; @@ -13569,7 +13606,7 @@ def L4_sub_memoph_zomap : HInst< (outs), (ins IntRegs:$Rs32, IntRegs:$Rt32), "memh($Rs32) -= $Rt32", -tc_096199d3, TypeMAPPING> { +tc_7186d325, TypeMAPPING> { let isPseudo = 1; let isCodeGenOnly = 1; } @@ -13577,7 +13614,7 @@ def L4_sub_memopw_io : HInst< (outs), (ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), "memw($Rs32+#$Ii) -= $Rt32", -tc_096199d3, TypeV4LDST>, Enc_226535 { +tc_7186d325, TypeV4LDST>, Enc_226535 { let Inst{6-5} = 0b01; let Inst{13-13} = 0b0; let Inst{31-21} = 0b00111110010; @@ -13596,7 +13633,7 @@ def L4_sub_memopw_zomap : HInst< (outs), (ins IntRegs:$Rs32, IntRegs:$Rt32), "memw($Rs32) -= $Rt32", -tc_096199d3, TypeMAPPING> { +tc_7186d325, TypeMAPPING> { let isPseudo = 1; let isCodeGenOnly = 1; } @@ -13608,6 +13645,17 @@ tc_15aa71c5, TypeMAPPING>, Requires<[HasV65]> { let isPseudo = 1; let isCodeGenOnly = 1; } +def L6_memcpy : HInst< +(outs), +(ins IntRegs:$Rs32, IntRegs:$Rt32, ModRegs:$Mu2), +"memcpy($Rs32,$Rt32,$Mu2)", +tc_a6b1eca9, TypeLD>, Enc_a75aa6, Requires<[HasV66]> { +let Inst{7-0} = 0b01000000; +let Inst{31-21} = 0b10010010000; +let mayLoad = 1; +let isSolo = 1; +let mayStore = 1; +} def L6_return_map_to_raw : HInst< (outs), (ins), @@ -14432,6 +14480,19 @@ let Inst{31-21} = 0b11101000110; let prefersSlot3 = 1; let Defs = [USR_OVF]; } +def M2_mnaci : HInst< +(outs IntRegs:$Rx32), +(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), +"$Rx32 -= mpyi($Rs32,$Rt32)", +tc_bdceeac1, TypeM>, Enc_2ae154, Requires<[HasV66]> { +let Inst{7-5} = 0b000; +let Inst{13-13} = 0b0; +let Inst{31-21} = 0b11101111100; +let hasNewValue = 1; +let opNewValue = 0; +let prefersSlot3 = 1; +let Constraints = "$Rx32 = $Rx32in"; +} def M2_mpy_acc_hh_s0 : HInst< (outs IntRegs:$Rx32), (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32), @@ -17634,7 +17695,7 @@ def PS_storerbabs : HInst< (outs), (ins u32_0Imm:$Ii, IntRegs:$Rt32), "memb(#$Ii) = $Rt32", -tc_34f09e1e, TypeV2LDST>, Enc_1b64fb, AddrModeRel { +tc_0371abea, TypeV2LDST>, Enc_1b64fb, AddrModeRel { let Inst{24-21} = 0b0000; let Inst{31-27} = 0b01001; let addrMode = Absolute; @@ -17682,7 +17743,7 @@ def PS_storerdabs : HInst< (outs), (ins u29_3Imm:$Ii, DoubleRegs:$Rtt32), "memd(#$Ii) = $Rtt32", -tc_34f09e1e, TypeV2LDST>, Enc_5c124a, AddrModeRel { +tc_0371abea, TypeV2LDST>, Enc_5c124a, AddrModeRel { let Inst{24-21} = 0b0110; let Inst{31-27} = 0b01001; let addrMode = Absolute; @@ -17703,7 +17764,7 @@ def PS_storerfabs : HInst< (outs), (ins u31_1Imm:$Ii, IntRegs:$Rt32), "memh(#$Ii) = $Rt32.h", -tc_34f09e1e, TypeV2LDST>, Enc_fda92c, AddrModeRel { +tc_0371abea, TypeV2LDST>, Enc_fda92c, AddrModeRel { let Inst{24-21} = 0b0011; let Inst{31-27} = 0b01001; let addrMode = Absolute; @@ -17724,7 +17785,7 @@ def PS_storerhabs : HInst< (outs), (ins u31_1Imm:$Ii, IntRegs:$Rt32), "memh(#$Ii) = $Rt32", -tc_34f09e1e, TypeV2LDST>, Enc_fda92c, AddrModeRel { +tc_0371abea, TypeV2LDST>, Enc_fda92c, AddrModeRel { let Inst{24-21} = 0b0010; let Inst{31-27} = 0b01001; let addrMode = Absolute; @@ -17772,7 +17833,7 @@ def PS_storeriabs : HInst< (outs), (ins u30_2Imm:$Ii, IntRegs:$Rt32), "memw(#$Ii) = $Rt32", -tc_34f09e1e, TypeV2LDST>, Enc_541f26, AddrModeRel { +tc_0371abea, TypeV2LDST>, Enc_541f26, AddrModeRel { let Inst{24-21} = 0b0100; let Inst{31-27} = 0b01001; let addrMode = Absolute; @@ -19245,6 +19306,18 @@ let Inst{7-5} = 0b010; let Inst{13-13} = 0b0; let Inst{31-21} = 0b11000011000; } +def S2_mask : HInst< +(outs IntRegs:$Rd32), +(ins u5_0Imm:$Ii, u5_0Imm:$II), +"$Rd32 = mask(#$Ii,#$II)", +tc_9461ff31, TypeS_2op>, Enc_c85e2a, Requires<[HasV66]> { +let Inst{13-13} = 0b1; +let Inst{20-16} = 0b00000; +let Inst{31-23} = 0b100011010; +let hasNewValue = 1; +let opNewValue = 0; +let prefersSlot3 = 1; +} def S2_packhl : HInst< (outs DoubleRegs:$Rdd32), (ins IntRegs:$Rs32, IntRegs:$Rt32), @@ -19271,7 +19344,7 @@ def S2_pstorerbf_io : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), "if (!$Pv4) memb($Rs32+#$Ii) = $Rt32", -tc_0b2be201, TypeV2LDST>, Enc_da8d43, AddrModeRel { +tc_f8e23f0b, TypeV2LDST>, Enc_da8d43, AddrModeRel { let Inst{2-2} = 0b0; let Inst{31-21} = 0b01000100000; let isPredicated = 1; @@ -19293,7 +19366,7 @@ def S2_pstorerbf_pi : HInst< (outs IntRegs:$Rx32), (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32), "if (!$Pv4) memb($Rx32++#$Ii) = $Rt32", -tc_29332664, TypeST>, Enc_cc449f, AddrModeRel { +tc_24b66c99, TypeST>, Enc_cc449f, AddrModeRel { let Inst{2-2} = 0b1; let Inst{7-7} = 0b0; let Inst{13-13} = 0b1; @@ -19311,7 +19384,7 @@ def S2_pstorerbf_zomap : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), "if (!$Pv4) memb($Rs32) = $Rt32", -tc_0b2be201, TypeMAPPING> { +tc_f8e23f0b, TypeMAPPING> { let isPseudo = 1; let isCodeGenOnly = 1; } @@ -19495,7 +19568,7 @@ def S2_pstorerbt_io : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), "if ($Pv4) memb($Rs32+#$Ii) = $Rt32", -tc_0b2be201, TypeV2LDST>, Enc_da8d43, AddrModeRel { +tc_f8e23f0b, TypeV2LDST>, Enc_da8d43, AddrModeRel { let Inst{2-2} = 0b0; let Inst{31-21} = 0b01000000000; let isPredicated = 1; @@ -19516,7 +19589,7 @@ def S2_pstorerbt_pi : HInst< (outs IntRegs:$Rx32), (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32), "if ($Pv4) memb($Rx32++#$Ii) = $Rt32", -tc_29332664, TypeST>, Enc_cc449f, AddrModeRel { +tc_24b66c99, TypeST>, Enc_cc449f, AddrModeRel { let Inst{2-2} = 0b0; let Inst{7-7} = 0b0; let Inst{13-13} = 0b1; @@ -19533,7 +19606,7 @@ def S2_pstorerbt_zomap : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), "if ($Pv4) memb($Rs32) = $Rt32", -tc_0b2be201, TypeMAPPING> { +tc_f8e23f0b, TypeMAPPING> { let isPseudo = 1; let isCodeGenOnly = 1; } @@ -19559,7 +19632,7 @@ def S2_pstorerdf_io : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32), "if (!$Pv4) memd($Rs32+#$Ii) = $Rtt32", -tc_0b2be201, TypeV2LDST>, Enc_57a33e, AddrModeRel { +tc_f8e23f0b, TypeV2LDST>, Enc_57a33e, AddrModeRel { let Inst{2-2} = 0b0; let Inst{31-21} = 0b01000100110; let isPredicated = 1; @@ -19580,7 +19653,7 @@ def S2_pstorerdf_pi : HInst< (outs IntRegs:$Rx32), (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32), "if (!$Pv4) memd($Rx32++#$Ii) = $Rtt32", -tc_29332664, TypeST>, Enc_9a33d5, AddrModeRel { +tc_24b66c99, TypeST>, Enc_9a33d5, AddrModeRel { let Inst{2-2} = 0b1; let Inst{7-7} = 0b0; let Inst{13-13} = 0b1; @@ -19598,7 +19671,7 @@ def S2_pstorerdf_zomap : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32), "if (!$Pv4) memd($Rs32) = $Rtt32", -tc_0b2be201, TypeMAPPING> { +tc_f8e23f0b, TypeMAPPING> { let isPseudo = 1; let isCodeGenOnly = 1; } @@ -19625,7 +19698,7 @@ def S2_pstorerdt_io : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32), "if ($Pv4) memd($Rs32+#$Ii) = $Rtt32", -tc_0b2be201, TypeV2LDST>, Enc_57a33e, AddrModeRel { +tc_f8e23f0b, TypeV2LDST>, Enc_57a33e, AddrModeRel { let Inst{2-2} = 0b0; let Inst{31-21} = 0b01000000110; let isPredicated = 1; @@ -19645,7 +19718,7 @@ def S2_pstorerdt_pi : HInst< (outs IntRegs:$Rx32), (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32), "if ($Pv4) memd($Rx32++#$Ii) = $Rtt32", -tc_29332664, TypeST>, Enc_9a33d5, AddrModeRel { +tc_24b66c99, TypeST>, Enc_9a33d5, AddrModeRel { let Inst{2-2} = 0b0; let Inst{7-7} = 0b0; let Inst{13-13} = 0b1; @@ -19662,7 +19735,7 @@ def S2_pstorerdt_zomap : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32), "if ($Pv4) memd($Rs32) = $Rtt32", -tc_0b2be201, TypeMAPPING> { +tc_f8e23f0b, TypeMAPPING> { let isPseudo = 1; let isCodeGenOnly = 1; } @@ -19688,7 +19761,7 @@ def S2_pstorerff_io : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), "if (!$Pv4) memh($Rs32+#$Ii) = $Rt32.h", -tc_0b2be201, TypeV2LDST>, Enc_e8c45e, AddrModeRel { +tc_f8e23f0b, TypeV2LDST>, Enc_e8c45e, AddrModeRel { let Inst{2-2} = 0b0; let Inst{31-21} = 0b01000100011; let isPredicated = 1; @@ -19709,7 +19782,7 @@ def S2_pstorerff_pi : HInst< (outs IntRegs:$Rx32), (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), "if (!$Pv4) memh($Rx32++#$Ii) = $Rt32.h", -tc_29332664, TypeST>, Enc_b886fd, AddrModeRel { +tc_24b66c99, TypeST>, Enc_b886fd, AddrModeRel { let Inst{2-2} = 0b1; let Inst{7-7} = 0b0; let Inst{13-13} = 0b1; @@ -19727,7 +19800,7 @@ def S2_pstorerff_zomap : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), "if (!$Pv4) memh($Rs32) = $Rt32.h", -tc_0b2be201, TypeMAPPING> { +tc_f8e23f0b, TypeMAPPING> { let isPseudo = 1; let isCodeGenOnly = 1; } @@ -19754,7 +19827,7 @@ def S2_pstorerft_io : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), "if ($Pv4) memh($Rs32+#$Ii) = $Rt32.h", -tc_0b2be201, TypeV2LDST>, Enc_e8c45e, AddrModeRel { +tc_f8e23f0b, TypeV2LDST>, Enc_e8c45e, AddrModeRel { let Inst{2-2} = 0b0; let Inst{31-21} = 0b01000000011; let isPredicated = 1; @@ -19774,7 +19847,7 @@ def S2_pstorerft_pi : HInst< (outs IntRegs:$Rx32), (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), "if ($Pv4) memh($Rx32++#$Ii) = $Rt32.h", -tc_29332664, TypeST>, Enc_b886fd, AddrModeRel { +tc_24b66c99, TypeST>, Enc_b886fd, AddrModeRel { let Inst{2-2} = 0b0; let Inst{7-7} = 0b0; let Inst{13-13} = 0b1; @@ -19791,7 +19864,7 @@ def S2_pstorerft_zomap : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), "if ($Pv4) memh($Rs32) = $Rt32.h", -tc_0b2be201, TypeMAPPING> { +tc_f8e23f0b, TypeMAPPING> { let isPseudo = 1; let isCodeGenOnly = 1; } @@ -19817,7 +19890,7 @@ def S2_pstorerhf_io : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), "if (!$Pv4) memh($Rs32+#$Ii) = $Rt32", -tc_0b2be201, TypeV2LDST>, Enc_e8c45e, AddrModeRel { +tc_f8e23f0b, TypeV2LDST>, Enc_e8c45e, AddrModeRel { let Inst{2-2} = 0b0; let Inst{31-21} = 0b01000100010; let isPredicated = 1; @@ -19839,7 +19912,7 @@ def S2_pstorerhf_pi : HInst< (outs IntRegs:$Rx32), (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), "if (!$Pv4) memh($Rx32++#$Ii) = $Rt32", -tc_29332664, TypeST>, Enc_b886fd, AddrModeRel { +tc_24b66c99, TypeST>, Enc_b886fd, AddrModeRel { let Inst{2-2} = 0b1; let Inst{7-7} = 0b0; let Inst{13-13} = 0b1; @@ -19857,7 +19930,7 @@ def S2_pstorerhf_zomap : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), "if (!$Pv4) memh($Rs32) = $Rt32", -tc_0b2be201, TypeMAPPING> { +tc_f8e23f0b, TypeMAPPING> { let isPseudo = 1; let isCodeGenOnly = 1; } @@ -20041,7 +20114,7 @@ def S2_pstorerht_io : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), "if ($Pv4) memh($Rs32+#$Ii) = $Rt32", -tc_0b2be201, TypeV2LDST>, Enc_e8c45e, AddrModeRel { +tc_f8e23f0b, TypeV2LDST>, Enc_e8c45e, AddrModeRel { let Inst{2-2} = 0b0; let Inst{31-21} = 0b01000000010; let isPredicated = 1; @@ -20062,7 +20135,7 @@ def S2_pstorerht_pi : HInst< (outs IntRegs:$Rx32), (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), "if ($Pv4) memh($Rx32++#$Ii) = $Rt32", -tc_29332664, TypeST>, Enc_b886fd, AddrModeRel { +tc_24b66c99, TypeST>, Enc_b886fd, AddrModeRel { let Inst{2-2} = 0b0; let Inst{7-7} = 0b0; let Inst{13-13} = 0b1; @@ -20079,7 +20152,7 @@ def S2_pstorerht_zomap : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), "if ($Pv4) memh($Rs32) = $Rt32", -tc_0b2be201, TypeMAPPING> { +tc_f8e23f0b, TypeMAPPING> { let isPseudo = 1; let isCodeGenOnly = 1; } @@ -20105,7 +20178,7 @@ def S2_pstorerif_io : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), "if (!$Pv4) memw($Rs32+#$Ii) = $Rt32", -tc_0b2be201, TypeV2LDST>, Enc_397f23, AddrModeRel { +tc_f8e23f0b, TypeV2LDST>, Enc_397f23, AddrModeRel { let Inst{2-2} = 0b0; let Inst{31-21} = 0b01000100100; let isPredicated = 1; @@ -20127,7 +20200,7 @@ def S2_pstorerif_pi : HInst< (outs IntRegs:$Rx32), (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32), "if (!$Pv4) memw($Rx32++#$Ii) = $Rt32", -tc_29332664, TypeST>, Enc_7eaeb6, AddrModeRel { +tc_24b66c99, TypeST>, Enc_7eaeb6, AddrModeRel { let Inst{2-2} = 0b1; let Inst{7-7} = 0b0; let Inst{13-13} = 0b1; @@ -20145,7 +20218,7 @@ def S2_pstorerif_zomap : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), "if (!$Pv4) memw($Rs32) = $Rt32", -tc_0b2be201, TypeMAPPING> { +tc_f8e23f0b, TypeMAPPING> { let isPseudo = 1; let isCodeGenOnly = 1; } @@ -20330,7 +20403,7 @@ def S2_pstorerit_io : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), "if ($Pv4) memw($Rs32+#$Ii) = $Rt32", -tc_0b2be201, TypeV2LDST>, Enc_397f23, AddrModeRel { +tc_f8e23f0b, TypeV2LDST>, Enc_397f23, AddrModeRel { let Inst{2-2} = 0b0; let Inst{31-21} = 0b01000000100; let isPredicated = 1; @@ -20351,7 +20424,7 @@ def S2_pstorerit_pi : HInst< (outs IntRegs:$Rx32), (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32), "if ($Pv4) memw($Rx32++#$Ii) = $Rt32", -tc_29332664, TypeST>, Enc_7eaeb6, AddrModeRel { +tc_24b66c99, TypeST>, Enc_7eaeb6, AddrModeRel { let Inst{2-2} = 0b0; let Inst{7-7} = 0b0; let Inst{13-13} = 0b1; @@ -20368,7 +20441,7 @@ def S2_pstorerit_zomap : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), "if ($Pv4) memw($Rs32) = $Rt32", -tc_0b2be201, TypeMAPPING> { +tc_f8e23f0b, TypeMAPPING> { let isPseudo = 1; let isCodeGenOnly = 1; } @@ -20452,7 +20525,7 @@ def S2_storerb_io : HInst< (outs), (ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Rt32), "memb($Rs32+#$Ii) = $Rt32", -tc_b83e6d73, TypeST>, Enc_448f7f, AddrModeRel, PostInc_BaseImm { +tc_30b9bb4a, TypeST>, Enc_448f7f, AddrModeRel, PostInc_BaseImm { let Inst{24-21} = 0b1000; let Inst{31-27} = 0b10100; let addrMode = BaseImmOffset; @@ -20473,7 +20546,7 @@ def S2_storerb_pbr : HInst< (outs IntRegs:$Rx32), (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), "memb($Rx32++$Mu2:brev) = $Rt32", -tc_c4f596e3, TypeST>, Enc_d5c73f, AddrModeRel { +tc_da97ee82, TypeST>, Enc_d5c73f, AddrModeRel { let Inst{7-0} = 0b00000000; let Inst{31-21} = 0b10101111000; let addrMode = PostInc; @@ -20487,7 +20560,7 @@ def S2_storerb_pci : HInst< (outs IntRegs:$Rx32), (ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32), "memb($Rx32++#$Ii:circ($Mu2)) = $Rt32", -tc_327843a7, TypeST>, Enc_b15941, AddrModeRel { +tc_e86aa961, TypeST>, Enc_b15941, AddrModeRel { let Inst{2-0} = 0b000; let Inst{7-7} = 0b0; let Inst{31-21} = 0b10101001000; @@ -20503,7 +20576,7 @@ def S2_storerb_pcr : HInst< (outs IntRegs:$Rx32), (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), "memb($Rx32++I:circ($Mu2)) = $Rt32", -tc_c4f596e3, TypeST>, Enc_d5c73f, AddrModeRel { +tc_da97ee82, TypeST>, Enc_d5c73f, AddrModeRel { let Inst{7-0} = 0b00000010; let Inst{31-21} = 0b10101001000; let addrMode = PostInc; @@ -20518,7 +20591,7 @@ def S2_storerb_pi : HInst< (outs IntRegs:$Rx32), (ins IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32), "memb($Rx32++#$Ii) = $Rt32", -tc_c4f596e3, TypeST>, Enc_10bc21, AddrModeRel, PostInc_BaseImm { +tc_da97ee82, TypeST>, Enc_10bc21, AddrModeRel, PostInc_BaseImm { let Inst{2-0} = 0b000; let Inst{7-7} = 0b0; let Inst{13-13} = 0b0; @@ -20536,7 +20609,7 @@ def S2_storerb_pr : HInst< (outs IntRegs:$Rx32), (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), "memb($Rx32++$Mu2) = $Rt32", -tc_c4f596e3, TypeST>, Enc_d5c73f { +tc_da97ee82, TypeST>, Enc_d5c73f { let Inst{7-0} = 0b00000000; let Inst{31-21} = 0b10101101000; let addrMode = PostInc; @@ -20549,7 +20622,7 @@ def S2_storerb_zomap : HInst< (outs), (ins IntRegs:$Rs32, IntRegs:$Rt32), "memb($Rs32) = $Rt32", -tc_b83e6d73, TypeMAPPING> { +tc_30b9bb4a, TypeMAPPING> { let isPseudo = 1; let isCodeGenOnly = 1; } @@ -20557,7 +20630,7 @@ def S2_storerbgp : HInst< (outs), (ins u32_0Imm:$Ii, IntRegs:$Rt32), "memb(gp+#$Ii) = $Rt32", -tc_34f09e1e, TypeV2LDST>, Enc_1b64fb, AddrModeRel { +tc_0371abea, TypeV2LDST>, Enc_1b64fb, AddrModeRel { let Inst{24-21} = 0b0000; let Inst{31-27} = 0b01001; let accessSize = ByteAccess; @@ -20726,7 +20799,7 @@ def S2_storerd_io : HInst< (outs), (ins IntRegs:$Rs32, s29_3Imm:$Ii, DoubleRegs:$Rtt32), "memd($Rs32+#$Ii) = $Rtt32", -tc_b83e6d73, TypeST>, Enc_ce6828, AddrModeRel, PostInc_BaseImm { +tc_30b9bb4a, TypeST>, Enc_ce6828, AddrModeRel, PostInc_BaseImm { let Inst{24-21} = 0b1110; let Inst{31-27} = 0b10100; let addrMode = BaseImmOffset; @@ -20746,7 +20819,7 @@ def S2_storerd_pbr : HInst< (outs IntRegs:$Rx32), (ins IntRegs:$Rx32in, ModRegs:$Mu2, DoubleRegs:$Rtt32), "memd($Rx32++$Mu2:brev) = $Rtt32", -tc_c4f596e3, TypeST>, Enc_928ca1 { +tc_da97ee82, TypeST>, Enc_928ca1 { let Inst{7-0} = 0b00000000; let Inst{31-21} = 0b10101111110; let addrMode = PostInc; @@ -20758,7 +20831,7 @@ def S2_storerd_pci : HInst< (outs IntRegs:$Rx32), (ins IntRegs:$Rx32in, s4_3Imm:$Ii, ModRegs:$Mu2, DoubleRegs:$Rtt32), "memd($Rx32++#$Ii:circ($Mu2)) = $Rtt32", -tc_327843a7, TypeST>, Enc_395cc4 { +tc_e86aa961, TypeST>, Enc_395cc4 { let Inst{2-0} = 0b000; let Inst{7-7} = 0b0; let Inst{31-21} = 0b10101001110; @@ -20772,7 +20845,7 @@ def S2_storerd_pcr : HInst< (outs IntRegs:$Rx32), (ins IntRegs:$Rx32in, ModRegs:$Mu2, DoubleRegs:$Rtt32), "memd($Rx32++I:circ($Mu2)) = $Rtt32", -tc_c4f596e3, TypeST>, Enc_928ca1 { +tc_da97ee82, TypeST>, Enc_928ca1 { let Inst{7-0} = 0b00000010; let Inst{31-21} = 0b10101001110; let addrMode = PostInc; @@ -20785,7 +20858,7 @@ def S2_storerd_pi : HInst< (outs IntRegs:$Rx32), (ins IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32), "memd($Rx32++#$Ii) = $Rtt32", -tc_c4f596e3, TypeST>, Enc_85bf58, AddrModeRel, PostInc_BaseImm { +tc_da97ee82, TypeST>, Enc_85bf58, AddrModeRel, PostInc_BaseImm { let Inst{2-0} = 0b000; let Inst{7-7} = 0b0; let Inst{13-13} = 0b0; @@ -20802,7 +20875,7 @@ def S2_storerd_pr : HInst< (outs IntRegs:$Rx32), (ins IntRegs:$Rx32in, ModRegs:$Mu2, DoubleRegs:$Rtt32), "memd($Rx32++$Mu2) = $Rtt32", -tc_c4f596e3, TypeST>, Enc_928ca1 { +tc_da97ee82, TypeST>, Enc_928ca1 { let Inst{7-0} = 0b00000000; let Inst{31-21} = 0b10101101110; let addrMode = PostInc; @@ -20814,7 +20887,7 @@ def S2_storerd_zomap : HInst< (outs), (ins IntRegs:$Rs32, DoubleRegs:$Rtt32), "memd($Rs32) = $Rtt32", -tc_b83e6d73, TypeMAPPING> { +tc_30b9bb4a, TypeMAPPING> { let isPseudo = 1; let isCodeGenOnly = 1; } @@ -20822,7 +20895,7 @@ def S2_storerdgp : HInst< (outs), (ins u29_3Imm:$Ii, DoubleRegs:$Rtt32), "memd(gp+#$Ii) = $Rtt32", -tc_34f09e1e, TypeV2LDST>, Enc_5c124a, AddrModeRel { +tc_0371abea, TypeV2LDST>, Enc_5c124a, AddrModeRel { let Inst{24-21} = 0b0110; let Inst{31-27} = 0b01001; let accessSize = DoubleWordAccess; @@ -20839,7 +20912,7 @@ def S2_storerf_io : HInst< (outs), (ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Rt32), "memh($Rs32+#$Ii) = $Rt32.h", -tc_b83e6d73, TypeST>, Enc_e957fb, AddrModeRel, PostInc_BaseImm { +tc_30b9bb4a, TypeST>, Enc_e957fb, AddrModeRel, PostInc_BaseImm { let Inst{24-21} = 0b1011; let Inst{31-27} = 0b10100; let addrMode = BaseImmOffset; @@ -20859,7 +20932,7 @@ def S2_storerf_pbr : HInst< (outs IntRegs:$Rx32), (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), "memh($Rx32++$Mu2:brev) = $Rt32.h", -tc_c4f596e3, TypeST>, Enc_d5c73f { +tc_da97ee82, TypeST>, Enc_d5c73f { let Inst{7-0} = 0b00000000; let Inst{31-21} = 0b10101111011; let addrMode = PostInc; @@ -20871,7 +20944,7 @@ def S2_storerf_pci : HInst< (outs IntRegs:$Rx32), (ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32), "memh($Rx32++#$Ii:circ($Mu2)) = $Rt32.h", -tc_327843a7, TypeST>, Enc_935d9b { +tc_e86aa961, TypeST>, Enc_935d9b { let Inst{2-0} = 0b000; let Inst{7-7} = 0b0; let Inst{31-21} = 0b10101001011; @@ -20885,7 +20958,7 @@ def S2_storerf_pcr : HInst< (outs IntRegs:$Rx32), (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), "memh($Rx32++I:circ($Mu2)) = $Rt32.h", -tc_c4f596e3, TypeST>, Enc_d5c73f { +tc_da97ee82, TypeST>, Enc_d5c73f { let Inst{7-0} = 0b00000010; let Inst{31-21} = 0b10101001011; let addrMode = PostInc; @@ -20898,7 +20971,7 @@ def S2_storerf_pi : HInst< (outs IntRegs:$Rx32), (ins IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), "memh($Rx32++#$Ii) = $Rt32.h", -tc_c4f596e3, TypeST>, Enc_052c7d, AddrModeRel, PostInc_BaseImm { +tc_da97ee82, TypeST>, Enc_052c7d, AddrModeRel, PostInc_BaseImm { let Inst{2-0} = 0b000; let Inst{7-7} = 0b0; let Inst{13-13} = 0b0; @@ -20915,7 +20988,7 @@ def S2_storerf_pr : HInst< (outs IntRegs:$Rx32), (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), "memh($Rx32++$Mu2) = $Rt32.h", -tc_c4f596e3, TypeST>, Enc_d5c73f { +tc_da97ee82, TypeST>, Enc_d5c73f { let Inst{7-0} = 0b00000000; let Inst{31-21} = 0b10101101011; let addrMode = PostInc; @@ -20927,7 +21000,7 @@ def S2_storerf_zomap : HInst< (outs), (ins IntRegs:$Rs32, IntRegs:$Rt32), "memh($Rs32) = $Rt32.h", -tc_b83e6d73, TypeMAPPING> { +tc_30b9bb4a, TypeMAPPING> { let isPseudo = 1; let isCodeGenOnly = 1; } @@ -20935,7 +21008,7 @@ def S2_storerfgp : HInst< (outs), (ins u31_1Imm:$Ii, IntRegs:$Rt32), "memh(gp+#$Ii) = $Rt32.h", -tc_34f09e1e, TypeV2LDST>, Enc_fda92c, AddrModeRel { +tc_0371abea, TypeV2LDST>, Enc_fda92c, AddrModeRel { let Inst{24-21} = 0b0011; let Inst{31-27} = 0b01001; let accessSize = HalfWordAccess; @@ -20952,7 +21025,7 @@ def S2_storerh_io : HInst< (outs), (ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Rt32), "memh($Rs32+#$Ii) = $Rt32", -tc_b83e6d73, TypeST>, Enc_e957fb, AddrModeRel, PostInc_BaseImm { +tc_30b9bb4a, TypeST>, Enc_e957fb, AddrModeRel, PostInc_BaseImm { let Inst{24-21} = 0b1010; let Inst{31-27} = 0b10100; let addrMode = BaseImmOffset; @@ -20973,7 +21046,7 @@ def S2_storerh_pbr : HInst< (outs IntRegs:$Rx32), (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), "memh($Rx32++$Mu2:brev) = $Rt32", -tc_c4f596e3, TypeST>, Enc_d5c73f, AddrModeRel { +tc_da97ee82, TypeST>, Enc_d5c73f, AddrModeRel { let Inst{7-0} = 0b00000000; let Inst{31-21} = 0b10101111010; let addrMode = PostInc; @@ -20987,7 +21060,7 @@ def S2_storerh_pci : HInst< (outs IntRegs:$Rx32), (ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32), "memh($Rx32++#$Ii:circ($Mu2)) = $Rt32", -tc_327843a7, TypeST>, Enc_935d9b, AddrModeRel { +tc_e86aa961, TypeST>, Enc_935d9b, AddrModeRel { let Inst{2-0} = 0b000; let Inst{7-7} = 0b0; let Inst{31-21} = 0b10101001010; @@ -21003,7 +21076,7 @@ def S2_storerh_pcr : HInst< (outs IntRegs:$Rx32), (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), "memh($Rx32++I:circ($Mu2)) = $Rt32", -tc_c4f596e3, TypeST>, Enc_d5c73f, AddrModeRel { +tc_da97ee82, TypeST>, Enc_d5c73f, AddrModeRel { let Inst{7-0} = 0b00000010; let Inst{31-21} = 0b10101001010; let addrMode = PostInc; @@ -21018,7 +21091,7 @@ def S2_storerh_pi : HInst< (outs IntRegs:$Rx32), (ins IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32), "memh($Rx32++#$Ii) = $Rt32", -tc_c4f596e3, TypeST>, Enc_052c7d, AddrModeRel, PostInc_BaseImm { +tc_da97ee82, TypeST>, Enc_052c7d, AddrModeRel, PostInc_BaseImm { let Inst{2-0} = 0b000; let Inst{7-7} = 0b0; let Inst{13-13} = 0b0; @@ -21036,7 +21109,7 @@ def S2_storerh_pr : HInst< (outs IntRegs:$Rx32), (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), "memh($Rx32++$Mu2) = $Rt32", -tc_c4f596e3, TypeST>, Enc_d5c73f { +tc_da97ee82, TypeST>, Enc_d5c73f { let Inst{7-0} = 0b00000000; let Inst{31-21} = 0b10101101010; let addrMode = PostInc; @@ -21049,7 +21122,7 @@ def S2_storerh_zomap : HInst< (outs), (ins IntRegs:$Rs32, IntRegs:$Rt32), "memh($Rs32) = $Rt32", -tc_b83e6d73, TypeMAPPING> { +tc_30b9bb4a, TypeMAPPING> { let isPseudo = 1; let isCodeGenOnly = 1; } @@ -21057,7 +21130,7 @@ def S2_storerhgp : HInst< (outs), (ins u31_1Imm:$Ii, IntRegs:$Rt32), "memh(gp+#$Ii) = $Rt32", -tc_34f09e1e, TypeV2LDST>, Enc_fda92c, AddrModeRel { +tc_0371abea, TypeV2LDST>, Enc_fda92c, AddrModeRel { let Inst{24-21} = 0b0010; let Inst{31-27} = 0b01001; let accessSize = HalfWordAccess; @@ -21226,7 +21299,7 @@ def S2_storeri_io : HInst< (outs), (ins IntRegs:$Rs32, s30_2Imm:$Ii, IntRegs:$Rt32), "memw($Rs32+#$Ii) = $Rt32", -tc_b83e6d73, TypeST>, Enc_143445, AddrModeRel, PostInc_BaseImm { +tc_30b9bb4a, TypeST>, Enc_143445, AddrModeRel, PostInc_BaseImm { let Inst{24-21} = 0b1100; let Inst{31-27} = 0b10100; let addrMode = BaseImmOffset; @@ -21247,7 +21320,7 @@ def S2_storeri_pbr : HInst< (outs IntRegs:$Rx32), (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), "memw($Rx32++$Mu2:brev) = $Rt32", -tc_c4f596e3, TypeST>, Enc_d5c73f, AddrModeRel { +tc_da97ee82, TypeST>, Enc_d5c73f, AddrModeRel { let Inst{7-0} = 0b00000000; let Inst{31-21} = 0b10101111100; let addrMode = PostInc; @@ -21261,7 +21334,7 @@ def S2_storeri_pci : HInst< (outs IntRegs:$Rx32), (ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32), "memw($Rx32++#$Ii:circ($Mu2)) = $Rt32", -tc_327843a7, TypeST>, Enc_79b8c8, AddrModeRel { +tc_e86aa961, TypeST>, Enc_79b8c8, AddrModeRel { let Inst{2-0} = 0b000; let Inst{7-7} = 0b0; let Inst{31-21} = 0b10101001100; @@ -21277,7 +21350,7 @@ def S2_storeri_pcr : HInst< (outs IntRegs:$Rx32), (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), "memw($Rx32++I:circ($Mu2)) = $Rt32", -tc_c4f596e3, TypeST>, Enc_d5c73f, AddrModeRel { +tc_da97ee82, TypeST>, Enc_d5c73f, AddrModeRel { let Inst{7-0} = 0b00000010; let Inst{31-21} = 0b10101001100; let addrMode = PostInc; @@ -21292,7 +21365,7 @@ def S2_storeri_pi : HInst< (outs IntRegs:$Rx32), (ins IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32), "memw($Rx32++#$Ii) = $Rt32", -tc_c4f596e3, TypeST>, Enc_db40cd, AddrModeRel, PostInc_BaseImm { +tc_da97ee82, TypeST>, Enc_db40cd, AddrModeRel, PostInc_BaseImm { let Inst{2-0} = 0b000; let Inst{7-7} = 0b0; let Inst{13-13} = 0b0; @@ -21310,7 +21383,7 @@ def S2_storeri_pr : HInst< (outs IntRegs:$Rx32), (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32), "memw($Rx32++$Mu2) = $Rt32", -tc_c4f596e3, TypeST>, Enc_d5c73f { +tc_da97ee82, TypeST>, Enc_d5c73f { let Inst{7-0} = 0b00000000; let Inst{31-21} = 0b10101101100; let addrMode = PostInc; @@ -21323,7 +21396,7 @@ def S2_storeri_zomap : HInst< (outs), (ins IntRegs:$Rs32, IntRegs:$Rt32), "memw($Rs32) = $Rt32", -tc_b83e6d73, TypeMAPPING> { +tc_30b9bb4a, TypeMAPPING> { let isPseudo = 1; let isCodeGenOnly = 1; } @@ -21331,7 +21404,7 @@ def S2_storerigp : HInst< (outs), (ins u30_2Imm:$Ii, IntRegs:$Rt32), "memw(gp+#$Ii) = $Rt32", -tc_34f09e1e, TypeV2LDST>, Enc_541f26, AddrModeRel { +tc_0371abea, TypeV2LDST>, Enc_541f26, AddrModeRel { let Inst{24-21} = 0b0100; let Inst{31-27} = 0b01001; let accessSize = WordAccess; @@ -22217,7 +22290,7 @@ def S4_pstorerbf_abs : HInst< (outs), (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), "if (!$Pv4) memb(#$Ii) = $Rt32", -tc_a5689869, TypeST>, Enc_1cf4ca, AddrModeRel { +tc_362c6592, TypeST>, Enc_1cf4ca, AddrModeRel { let Inst{2-2} = 0b1; let Inst{7-7} = 0b1; let Inst{13-13} = 0b0; @@ -22242,7 +22315,7 @@ def S4_pstorerbf_rr : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), "if (!$Pv4) memb($Rs32+$Ru32<<#$Ii) = $Rt32", -tc_409abd30, TypeST>, Enc_6339d5, AddrModeRel { +tc_3962fa26, TypeST>, Enc_6339d5, AddrModeRel { let Inst{31-21} = 0b00110101000; let isPredicated = 1; let isPredicatedFalse = 1; @@ -22258,7 +22331,7 @@ def S4_pstorerbfnew_abs : HInst< (outs), (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), "if (!$Pv4.new) memb(#$Ii) = $Rt32", -tc_0c584a42, TypeST>, Enc_1cf4ca, AddrModeRel { +tc_da4a37ed, TypeST>, Enc_1cf4ca, AddrModeRel { let Inst{2-2} = 0b1; let Inst{7-7} = 0b1; let Inst{13-13} = 0b1; @@ -22284,7 +22357,7 @@ def S4_pstorerbfnew_io : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), "if (!$Pv4.new) memb($Rs32+#$Ii) = $Rt32", -tc_c4f596e3, TypeV2LDST>, Enc_da8d43, AddrModeRel { +tc_da97ee82, TypeV2LDST>, Enc_da8d43, AddrModeRel { let Inst{2-2} = 0b0; let Inst{31-21} = 0b01000110000; let isPredicated = 1; @@ -22307,7 +22380,7 @@ def S4_pstorerbfnew_rr : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), "if (!$Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Rt32", -tc_ce23f224, TypeST>, Enc_6339d5, AddrModeRel { +tc_40116ca8, TypeST>, Enc_6339d5, AddrModeRel { let Inst{31-21} = 0b00110111000; let isPredicated = 1; let isPredicatedFalse = 1; @@ -22324,7 +22397,7 @@ def S4_pstorerbfnew_zomap : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), "if (!$Pv4.new) memb($Rs32) = $Rt32", -tc_c4f596e3, TypeMAPPING> { +tc_da97ee82, TypeMAPPING> { let isPseudo = 1; let isCodeGenOnly = 1; } @@ -22595,7 +22668,7 @@ def S4_pstorerbt_abs : HInst< (outs), (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), "if ($Pv4) memb(#$Ii) = $Rt32", -tc_a5689869, TypeST>, Enc_1cf4ca, AddrModeRel { +tc_362c6592, TypeST>, Enc_1cf4ca, AddrModeRel { let Inst{2-2} = 0b0; let Inst{7-7} = 0b1; let Inst{13-13} = 0b0; @@ -22619,7 +22692,7 @@ def S4_pstorerbt_rr : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), "if ($Pv4) memb($Rs32+$Ru32<<#$Ii) = $Rt32", -tc_409abd30, TypeST>, Enc_6339d5, AddrModeRel { +tc_3962fa26, TypeST>, Enc_6339d5, AddrModeRel { let Inst{31-21} = 0b00110100000; let isPredicated = 1; let addrMode = BaseRegOffset; @@ -22634,7 +22707,7 @@ def S4_pstorerbtnew_abs : HInst< (outs), (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), "if ($Pv4.new) memb(#$Ii) = $Rt32", -tc_0c584a42, TypeST>, Enc_1cf4ca, AddrModeRel { +tc_da4a37ed, TypeST>, Enc_1cf4ca, AddrModeRel { let Inst{2-2} = 0b0; let Inst{7-7} = 0b1; let Inst{13-13} = 0b1; @@ -22659,7 +22732,7 @@ def S4_pstorerbtnew_io : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32), "if ($Pv4.new) memb($Rs32+#$Ii) = $Rt32", -tc_c4f596e3, TypeV2LDST>, Enc_da8d43, AddrModeRel { +tc_da97ee82, TypeV2LDST>, Enc_da8d43, AddrModeRel { let Inst{2-2} = 0b0; let Inst{31-21} = 0b01000010000; let isPredicated = 1; @@ -22681,7 +22754,7 @@ def S4_pstorerbtnew_rr : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), "if ($Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Rt32", -tc_ce23f224, TypeST>, Enc_6339d5, AddrModeRel { +tc_40116ca8, TypeST>, Enc_6339d5, AddrModeRel { let Inst{31-21} = 0b00110110000; let isPredicated = 1; let addrMode = BaseRegOffset; @@ -22697,7 +22770,7 @@ def S4_pstorerbtnew_zomap : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), "if ($Pv4.new) memb($Rs32) = $Rt32", -tc_c4f596e3, TypeMAPPING> { +tc_da97ee82, TypeMAPPING> { let isPseudo = 1; let isCodeGenOnly = 1; } @@ -22705,7 +22778,7 @@ def S4_pstorerdf_abs : HInst< (outs), (ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32), "if (!$Pv4) memd(#$Ii) = $Rtt32", -tc_a5689869, TypeST>, Enc_50b5ac, AddrModeRel { +tc_362c6592, TypeST>, Enc_50b5ac, AddrModeRel { let Inst{2-2} = 0b1; let Inst{7-7} = 0b1; let Inst{13-13} = 0b0; @@ -22729,7 +22802,7 @@ def S4_pstorerdf_rr : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32), "if (!$Pv4) memd($Rs32+$Ru32<<#$Ii) = $Rtt32", -tc_409abd30, TypeST>, Enc_1a9974, AddrModeRel { +tc_3962fa26, TypeST>, Enc_1a9974, AddrModeRel { let Inst{31-21} = 0b00110101110; let isPredicated = 1; let isPredicatedFalse = 1; @@ -22744,7 +22817,7 @@ def S4_pstorerdfnew_abs : HInst< (outs), (ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32), "if (!$Pv4.new) memd(#$Ii) = $Rtt32", -tc_0c584a42, TypeST>, Enc_50b5ac, AddrModeRel { +tc_da4a37ed, TypeST>, Enc_50b5ac, AddrModeRel { let Inst{2-2} = 0b1; let Inst{7-7} = 0b1; let Inst{13-13} = 0b1; @@ -22769,7 +22842,7 @@ def S4_pstorerdfnew_io : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32), "if (!$Pv4.new) memd($Rs32+#$Ii) = $Rtt32", -tc_c4f596e3, TypeV2LDST>, Enc_57a33e, AddrModeRel { +tc_da97ee82, TypeV2LDST>, Enc_57a33e, AddrModeRel { let Inst{2-2} = 0b0; let Inst{31-21} = 0b01000110110; let isPredicated = 1; @@ -22791,7 +22864,7 @@ def S4_pstorerdfnew_rr : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32), "if (!$Pv4.new) memd($Rs32+$Ru32<<#$Ii) = $Rtt32", -tc_ce23f224, TypeST>, Enc_1a9974, AddrModeRel { +tc_40116ca8, TypeST>, Enc_1a9974, AddrModeRel { let Inst{31-21} = 0b00110111110; let isPredicated = 1; let isPredicatedFalse = 1; @@ -22807,7 +22880,7 @@ def S4_pstorerdfnew_zomap : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32), "if (!$Pv4.new) memd($Rs32) = $Rtt32", -tc_c4f596e3, TypeMAPPING> { +tc_da97ee82, TypeMAPPING> { let isPseudo = 1; let isCodeGenOnly = 1; } @@ -22815,7 +22888,7 @@ def S4_pstorerdt_abs : HInst< (outs), (ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32), "if ($Pv4) memd(#$Ii) = $Rtt32", -tc_a5689869, TypeST>, Enc_50b5ac, AddrModeRel { +tc_362c6592, TypeST>, Enc_50b5ac, AddrModeRel { let Inst{2-2} = 0b0; let Inst{7-7} = 0b1; let Inst{13-13} = 0b0; @@ -22838,7 +22911,7 @@ def S4_pstorerdt_rr : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32), "if ($Pv4) memd($Rs32+$Ru32<<#$Ii) = $Rtt32", -tc_409abd30, TypeST>, Enc_1a9974, AddrModeRel { +tc_3962fa26, TypeST>, Enc_1a9974, AddrModeRel { let Inst{31-21} = 0b00110100110; let isPredicated = 1; let addrMode = BaseRegOffset; @@ -22852,7 +22925,7 @@ def S4_pstorerdtnew_abs : HInst< (outs), (ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32), "if ($Pv4.new) memd(#$Ii) = $Rtt32", -tc_0c584a42, TypeST>, Enc_50b5ac, AddrModeRel { +tc_da4a37ed, TypeST>, Enc_50b5ac, AddrModeRel { let Inst{2-2} = 0b0; let Inst{7-7} = 0b1; let Inst{13-13} = 0b1; @@ -22876,7 +22949,7 @@ def S4_pstorerdtnew_io : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32), "if ($Pv4.new) memd($Rs32+#$Ii) = $Rtt32", -tc_c4f596e3, TypeV2LDST>, Enc_57a33e, AddrModeRel { +tc_da97ee82, TypeV2LDST>, Enc_57a33e, AddrModeRel { let Inst{2-2} = 0b0; let Inst{31-21} = 0b01000010110; let isPredicated = 1; @@ -22897,7 +22970,7 @@ def S4_pstorerdtnew_rr : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32), "if ($Pv4.new) memd($Rs32+$Ru32<<#$Ii) = $Rtt32", -tc_ce23f224, TypeST>, Enc_1a9974, AddrModeRel { +tc_40116ca8, TypeST>, Enc_1a9974, AddrModeRel { let Inst{31-21} = 0b00110110110; let isPredicated = 1; let addrMode = BaseRegOffset; @@ -22912,7 +22985,7 @@ def S4_pstorerdtnew_zomap : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32), "if ($Pv4.new) memd($Rs32) = $Rtt32", -tc_c4f596e3, TypeMAPPING> { +tc_da97ee82, TypeMAPPING> { let isPseudo = 1; let isCodeGenOnly = 1; } @@ -22920,7 +22993,7 @@ def S4_pstorerff_abs : HInst< (outs), (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), "if (!$Pv4) memh(#$Ii) = $Rt32.h", -tc_a5689869, TypeST>, Enc_1cf4ca, AddrModeRel { +tc_362c6592, TypeST>, Enc_1cf4ca, AddrModeRel { let Inst{2-2} = 0b1; let Inst{7-7} = 0b1; let Inst{13-13} = 0b0; @@ -22944,7 +23017,7 @@ def S4_pstorerff_rr : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), "if (!$Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h", -tc_409abd30, TypeST>, Enc_6339d5, AddrModeRel { +tc_3962fa26, TypeST>, Enc_6339d5, AddrModeRel { let Inst{31-21} = 0b00110101011; let isPredicated = 1; let isPredicatedFalse = 1; @@ -22959,7 +23032,7 @@ def S4_pstorerffnew_abs : HInst< (outs), (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), "if (!$Pv4.new) memh(#$Ii) = $Rt32.h", -tc_0c584a42, TypeST>, Enc_1cf4ca, AddrModeRel { +tc_da4a37ed, TypeST>, Enc_1cf4ca, AddrModeRel { let Inst{2-2} = 0b1; let Inst{7-7} = 0b1; let Inst{13-13} = 0b1; @@ -22984,7 +23057,7 @@ def S4_pstorerffnew_io : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), "if (!$Pv4.new) memh($Rs32+#$Ii) = $Rt32.h", -tc_c4f596e3, TypeV2LDST>, Enc_e8c45e, AddrModeRel { +tc_da97ee82, TypeV2LDST>, Enc_e8c45e, AddrModeRel { let Inst{2-2} = 0b0; let Inst{31-21} = 0b01000110011; let isPredicated = 1; @@ -23006,7 +23079,7 @@ def S4_pstorerffnew_rr : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), "if (!$Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h", -tc_ce23f224, TypeST>, Enc_6339d5, AddrModeRel { +tc_40116ca8, TypeST>, Enc_6339d5, AddrModeRel { let Inst{31-21} = 0b00110111011; let isPredicated = 1; let isPredicatedFalse = 1; @@ -23022,7 +23095,7 @@ def S4_pstorerffnew_zomap : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), "if (!$Pv4.new) memh($Rs32) = $Rt32.h", -tc_c4f596e3, TypeMAPPING> { +tc_da97ee82, TypeMAPPING> { let isPseudo = 1; let isCodeGenOnly = 1; } @@ -23030,7 +23103,7 @@ def S4_pstorerft_abs : HInst< (outs), (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), "if ($Pv4) memh(#$Ii) = $Rt32.h", -tc_a5689869, TypeST>, Enc_1cf4ca, AddrModeRel { +tc_362c6592, TypeST>, Enc_1cf4ca, AddrModeRel { let Inst{2-2} = 0b0; let Inst{7-7} = 0b1; let Inst{13-13} = 0b0; @@ -23053,7 +23126,7 @@ def S4_pstorerft_rr : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), "if ($Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h", -tc_409abd30, TypeST>, Enc_6339d5, AddrModeRel { +tc_3962fa26, TypeST>, Enc_6339d5, AddrModeRel { let Inst{31-21} = 0b00110100011; let isPredicated = 1; let addrMode = BaseRegOffset; @@ -23067,7 +23140,7 @@ def S4_pstorerftnew_abs : HInst< (outs), (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), "if ($Pv4.new) memh(#$Ii) = $Rt32.h", -tc_0c584a42, TypeST>, Enc_1cf4ca, AddrModeRel { +tc_da4a37ed, TypeST>, Enc_1cf4ca, AddrModeRel { let Inst{2-2} = 0b0; let Inst{7-7} = 0b1; let Inst{13-13} = 0b1; @@ -23091,7 +23164,7 @@ def S4_pstorerftnew_io : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), "if ($Pv4.new) memh($Rs32+#$Ii) = $Rt32.h", -tc_c4f596e3, TypeV2LDST>, Enc_e8c45e, AddrModeRel { +tc_da97ee82, TypeV2LDST>, Enc_e8c45e, AddrModeRel { let Inst{2-2} = 0b0; let Inst{31-21} = 0b01000010011; let isPredicated = 1; @@ -23112,7 +23185,7 @@ def S4_pstorerftnew_rr : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), "if ($Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h", -tc_ce23f224, TypeST>, Enc_6339d5, AddrModeRel { +tc_40116ca8, TypeST>, Enc_6339d5, AddrModeRel { let Inst{31-21} = 0b00110110011; let isPredicated = 1; let addrMode = BaseRegOffset; @@ -23127,7 +23200,7 @@ def S4_pstorerftnew_zomap : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), "if ($Pv4.new) memh($Rs32) = $Rt32.h", -tc_c4f596e3, TypeMAPPING> { +tc_da97ee82, TypeMAPPING> { let isPseudo = 1; let isCodeGenOnly = 1; } @@ -23135,7 +23208,7 @@ def S4_pstorerhf_abs : HInst< (outs), (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), "if (!$Pv4) memh(#$Ii) = $Rt32", -tc_a5689869, TypeST>, Enc_1cf4ca, AddrModeRel { +tc_362c6592, TypeST>, Enc_1cf4ca, AddrModeRel { let Inst{2-2} = 0b1; let Inst{7-7} = 0b1; let Inst{13-13} = 0b0; @@ -23160,7 +23233,7 @@ def S4_pstorerhf_rr : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), "if (!$Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32", -tc_409abd30, TypeST>, Enc_6339d5, AddrModeRel { +tc_3962fa26, TypeST>, Enc_6339d5, AddrModeRel { let Inst{31-21} = 0b00110101010; let isPredicated = 1; let isPredicatedFalse = 1; @@ -23176,7 +23249,7 @@ def S4_pstorerhfnew_abs : HInst< (outs), (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), "if (!$Pv4.new) memh(#$Ii) = $Rt32", -tc_0c584a42, TypeST>, Enc_1cf4ca, AddrModeRel { +tc_da4a37ed, TypeST>, Enc_1cf4ca, AddrModeRel { let Inst{2-2} = 0b1; let Inst{7-7} = 0b1; let Inst{13-13} = 0b1; @@ -23202,7 +23275,7 @@ def S4_pstorerhfnew_io : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), "if (!$Pv4.new) memh($Rs32+#$Ii) = $Rt32", -tc_c4f596e3, TypeV2LDST>, Enc_e8c45e, AddrModeRel { +tc_da97ee82, TypeV2LDST>, Enc_e8c45e, AddrModeRel { let Inst{2-2} = 0b0; let Inst{31-21} = 0b01000110010; let isPredicated = 1; @@ -23225,7 +23298,7 @@ def S4_pstorerhfnew_rr : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), "if (!$Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32", -tc_ce23f224, TypeST>, Enc_6339d5, AddrModeRel { +tc_40116ca8, TypeST>, Enc_6339d5, AddrModeRel { let Inst{31-21} = 0b00110111010; let isPredicated = 1; let isPredicatedFalse = 1; @@ -23242,7 +23315,7 @@ def S4_pstorerhfnew_zomap : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), "if (!$Pv4.new) memh($Rs32) = $Rt32", -tc_c4f596e3, TypeMAPPING> { +tc_da97ee82, TypeMAPPING> { let isPseudo = 1; let isCodeGenOnly = 1; } @@ -23513,7 +23586,7 @@ def S4_pstorerht_abs : HInst< (outs), (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), "if ($Pv4) memh(#$Ii) = $Rt32", -tc_a5689869, TypeST>, Enc_1cf4ca, AddrModeRel { +tc_362c6592, TypeST>, Enc_1cf4ca, AddrModeRel { let Inst{2-2} = 0b0; let Inst{7-7} = 0b1; let Inst{13-13} = 0b0; @@ -23537,7 +23610,7 @@ def S4_pstorerht_rr : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), "if ($Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32", -tc_409abd30, TypeST>, Enc_6339d5, AddrModeRel { +tc_3962fa26, TypeST>, Enc_6339d5, AddrModeRel { let Inst{31-21} = 0b00110100010; let isPredicated = 1; let addrMode = BaseRegOffset; @@ -23552,7 +23625,7 @@ def S4_pstorerhtnew_abs : HInst< (outs), (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), "if ($Pv4.new) memh(#$Ii) = $Rt32", -tc_0c584a42, TypeST>, Enc_1cf4ca, AddrModeRel { +tc_da4a37ed, TypeST>, Enc_1cf4ca, AddrModeRel { let Inst{2-2} = 0b0; let Inst{7-7} = 0b1; let Inst{13-13} = 0b1; @@ -23577,7 +23650,7 @@ def S4_pstorerhtnew_io : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32), "if ($Pv4.new) memh($Rs32+#$Ii) = $Rt32", -tc_c4f596e3, TypeV2LDST>, Enc_e8c45e, AddrModeRel { +tc_da97ee82, TypeV2LDST>, Enc_e8c45e, AddrModeRel { let Inst{2-2} = 0b0; let Inst{31-21} = 0b01000010010; let isPredicated = 1; @@ -23599,7 +23672,7 @@ def S4_pstorerhtnew_rr : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), "if ($Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32", -tc_ce23f224, TypeST>, Enc_6339d5, AddrModeRel { +tc_40116ca8, TypeST>, Enc_6339d5, AddrModeRel { let Inst{31-21} = 0b00110110010; let isPredicated = 1; let addrMode = BaseRegOffset; @@ -23615,7 +23688,7 @@ def S4_pstorerhtnew_zomap : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), "if ($Pv4.new) memh($Rs32) = $Rt32", -tc_c4f596e3, TypeMAPPING> { +tc_da97ee82, TypeMAPPING> { let isPseudo = 1; let isCodeGenOnly = 1; } @@ -23623,7 +23696,7 @@ def S4_pstorerif_abs : HInst< (outs), (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), "if (!$Pv4) memw(#$Ii) = $Rt32", -tc_a5689869, TypeST>, Enc_1cf4ca, AddrModeRel { +tc_362c6592, TypeST>, Enc_1cf4ca, AddrModeRel { let Inst{2-2} = 0b1; let Inst{7-7} = 0b1; let Inst{13-13} = 0b0; @@ -23648,7 +23721,7 @@ def S4_pstorerif_rr : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), "if (!$Pv4) memw($Rs32+$Ru32<<#$Ii) = $Rt32", -tc_409abd30, TypeST>, Enc_6339d5, AddrModeRel { +tc_3962fa26, TypeST>, Enc_6339d5, AddrModeRel { let Inst{31-21} = 0b00110101100; let isPredicated = 1; let isPredicatedFalse = 1; @@ -23664,7 +23737,7 @@ def S4_pstorerifnew_abs : HInst< (outs), (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), "if (!$Pv4.new) memw(#$Ii) = $Rt32", -tc_0c584a42, TypeST>, Enc_1cf4ca, AddrModeRel { +tc_da4a37ed, TypeST>, Enc_1cf4ca, AddrModeRel { let Inst{2-2} = 0b1; let Inst{7-7} = 0b1; let Inst{13-13} = 0b1; @@ -23690,7 +23763,7 @@ def S4_pstorerifnew_io : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), "if (!$Pv4.new) memw($Rs32+#$Ii) = $Rt32", -tc_c4f596e3, TypeV2LDST>, Enc_397f23, AddrModeRel { +tc_da97ee82, TypeV2LDST>, Enc_397f23, AddrModeRel { let Inst{2-2} = 0b0; let Inst{31-21} = 0b01000110100; let isPredicated = 1; @@ -23713,7 +23786,7 @@ def S4_pstorerifnew_rr : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), "if (!$Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Rt32", -tc_ce23f224, TypeST>, Enc_6339d5, AddrModeRel { +tc_40116ca8, TypeST>, Enc_6339d5, AddrModeRel { let Inst{31-21} = 0b00110111100; let isPredicated = 1; let isPredicatedFalse = 1; @@ -23730,7 +23803,7 @@ def S4_pstorerifnew_zomap : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), "if (!$Pv4.new) memw($Rs32) = $Rt32", -tc_c4f596e3, TypeMAPPING> { +tc_da97ee82, TypeMAPPING> { let isPseudo = 1; let isCodeGenOnly = 1; } @@ -24001,7 +24074,7 @@ def S4_pstorerit_abs : HInst< (outs), (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), "if ($Pv4) memw(#$Ii) = $Rt32", -tc_a5689869, TypeST>, Enc_1cf4ca, AddrModeRel { +tc_362c6592, TypeST>, Enc_1cf4ca, AddrModeRel { let Inst{2-2} = 0b0; let Inst{7-7} = 0b1; let Inst{13-13} = 0b0; @@ -24025,7 +24098,7 @@ def S4_pstorerit_rr : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), "if ($Pv4) memw($Rs32+$Ru32<<#$Ii) = $Rt32", -tc_409abd30, TypeST>, Enc_6339d5, AddrModeRel { +tc_3962fa26, TypeST>, Enc_6339d5, AddrModeRel { let Inst{31-21} = 0b00110100100; let isPredicated = 1; let addrMode = BaseRegOffset; @@ -24040,7 +24113,7 @@ def S4_pstoreritnew_abs : HInst< (outs), (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32), "if ($Pv4.new) memw(#$Ii) = $Rt32", -tc_0c584a42, TypeST>, Enc_1cf4ca, AddrModeRel { +tc_da4a37ed, TypeST>, Enc_1cf4ca, AddrModeRel { let Inst{2-2} = 0b0; let Inst{7-7} = 0b1; let Inst{13-13} = 0b1; @@ -24065,7 +24138,7 @@ def S4_pstoreritnew_io : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32), "if ($Pv4.new) memw($Rs32+#$Ii) = $Rt32", -tc_c4f596e3, TypeV2LDST>, Enc_397f23, AddrModeRel { +tc_da97ee82, TypeV2LDST>, Enc_397f23, AddrModeRel { let Inst{2-2} = 0b0; let Inst{31-21} = 0b01000010100; let isPredicated = 1; @@ -24087,7 +24160,7 @@ def S4_pstoreritnew_rr : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), "if ($Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Rt32", -tc_ce23f224, TypeST>, Enc_6339d5, AddrModeRel { +tc_40116ca8, TypeST>, Enc_6339d5, AddrModeRel { let Inst{31-21} = 0b00110110100; let isPredicated = 1; let addrMode = BaseRegOffset; @@ -24103,7 +24176,7 @@ def S4_pstoreritnew_zomap : HInst< (outs), (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32), "if ($Pv4.new) memw($Rs32) = $Rt32", -tc_c4f596e3, TypeMAPPING> { +tc_da97ee82, TypeMAPPING> { let isPseudo = 1; let isCodeGenOnly = 1; } @@ -24541,7 +24614,7 @@ def S4_storerb_ap : HInst< (outs IntRegs:$Re32), (ins u32_0Imm:$II, IntRegs:$Rt32), "memb($Re32=#$II) = $Rt32", -tc_0c584a42, TypeST>, Enc_8bcba4, AddrModeRel { +tc_da4a37ed, TypeST>, Enc_8bcba4, AddrModeRel { let Inst{7-6} = 0b10; let Inst{13-13} = 0b0; let Inst{31-21} = 0b10101011000; @@ -24562,7 +24635,7 @@ def S4_storerb_rr : HInst< (outs), (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), "memb($Rs32+$Ru32<<#$Ii) = $Rt32", -tc_d2142d44, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl { +tc_5aee39f7, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl { let Inst{6-5} = 0b00; let Inst{31-21} = 0b00111011000; let addrMode = BaseRegOffset; @@ -24578,7 +24651,7 @@ def S4_storerb_ur : HInst< (outs), (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32), "memb($Ru32<<#$Ii+#$II) = $Rt32", -tc_37e52a00, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl { +tc_14b272fa, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl { let Inst{7-7} = 0b1; let Inst{31-21} = 0b10101101000; let addrMode = BaseLongOffset; @@ -24668,7 +24741,7 @@ def S4_storerd_ap : HInst< (outs IntRegs:$Re32), (ins u32_0Imm:$II, DoubleRegs:$Rtt32), "memd($Re32=#$II) = $Rtt32", -tc_0c584a42, TypeST>, Enc_c7a204 { +tc_da4a37ed, TypeST>, Enc_c7a204 { let Inst{7-6} = 0b10; let Inst{13-13} = 0b0; let Inst{31-21} = 0b10101011110; @@ -24688,7 +24761,7 @@ def S4_storerd_rr : HInst< (outs), (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32), "memd($Rs32+$Ru32<<#$Ii) = $Rtt32", -tc_d2142d44, TypeST>, Enc_55355c, AddrModeRel, ImmRegShl { +tc_5aee39f7, TypeST>, Enc_55355c, AddrModeRel, ImmRegShl { let Inst{6-5} = 0b00; let Inst{31-21} = 0b00111011110; let addrMode = BaseRegOffset; @@ -24703,7 +24776,7 @@ def S4_storerd_ur : HInst< (outs), (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, DoubleRegs:$Rtt32), "memd($Ru32<<#$Ii+#$II) = $Rtt32", -tc_37e52a00, TypeST>, Enc_f79415, AddrModeRel, ImmRegShl { +tc_14b272fa, TypeST>, Enc_f79415, AddrModeRel, ImmRegShl { let Inst{7-7} = 0b1; let Inst{31-21} = 0b10101101110; let addrMode = BaseLongOffset; @@ -24724,7 +24797,7 @@ def S4_storerf_ap : HInst< (outs IntRegs:$Re32), (ins u32_0Imm:$II, IntRegs:$Rt32), "memh($Re32=#$II) = $Rt32.h", -tc_0c584a42, TypeST>, Enc_8bcba4 { +tc_da4a37ed, TypeST>, Enc_8bcba4 { let Inst{7-6} = 0b10; let Inst{13-13} = 0b0; let Inst{31-21} = 0b10101011011; @@ -24744,7 +24817,7 @@ def S4_storerf_rr : HInst< (outs), (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), "memh($Rs32+$Ru32<<#$Ii) = $Rt32.h", -tc_d2142d44, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl { +tc_5aee39f7, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl { let Inst{6-5} = 0b00; let Inst{31-21} = 0b00111011011; let addrMode = BaseRegOffset; @@ -24759,7 +24832,7 @@ def S4_storerf_ur : HInst< (outs), (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32), "memh($Ru32<<#$Ii+#$II) = $Rt32.h", -tc_37e52a00, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl { +tc_14b272fa, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl { let Inst{7-7} = 0b1; let Inst{31-21} = 0b10101101011; let addrMode = BaseLongOffset; @@ -24780,7 +24853,7 @@ def S4_storerh_ap : HInst< (outs IntRegs:$Re32), (ins u32_0Imm:$II, IntRegs:$Rt32), "memh($Re32=#$II) = $Rt32", -tc_0c584a42, TypeST>, Enc_8bcba4, AddrModeRel { +tc_da4a37ed, TypeST>, Enc_8bcba4, AddrModeRel { let Inst{7-6} = 0b10; let Inst{13-13} = 0b0; let Inst{31-21} = 0b10101011010; @@ -24801,7 +24874,7 @@ def S4_storerh_rr : HInst< (outs), (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), "memh($Rs32+$Ru32<<#$Ii) = $Rt32", -tc_d2142d44, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl { +tc_5aee39f7, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl { let Inst{6-5} = 0b00; let Inst{31-21} = 0b00111011010; let addrMode = BaseRegOffset; @@ -24817,7 +24890,7 @@ def S4_storerh_ur : HInst< (outs), (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32), "memh($Ru32<<#$Ii+#$II) = $Rt32", -tc_37e52a00, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl { +tc_14b272fa, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl { let Inst{7-7} = 0b1; let Inst{31-21} = 0b10101101010; let addrMode = BaseLongOffset; @@ -24907,7 +24980,7 @@ def S4_storeri_ap : HInst< (outs IntRegs:$Re32), (ins u32_0Imm:$II, IntRegs:$Rt32), "memw($Re32=#$II) = $Rt32", -tc_0c584a42, TypeST>, Enc_8bcba4, AddrModeRel { +tc_da4a37ed, TypeST>, Enc_8bcba4, AddrModeRel { let Inst{7-6} = 0b10; let Inst{13-13} = 0b0; let Inst{31-21} = 0b10101011100; @@ -24928,7 +25001,7 @@ def S4_storeri_rr : HInst< (outs), (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32), "memw($Rs32+$Ru32<<#$Ii) = $Rt32", -tc_d2142d44, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl { +tc_5aee39f7, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl { let Inst{6-5} = 0b00; let Inst{31-21} = 0b00111011100; let addrMode = BaseRegOffset; @@ -24944,7 +25017,7 @@ def S4_storeri_ur : HInst< (outs), (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32), "memw($Ru32<<#$Ii+#$II) = $Rt32", -tc_37e52a00, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl { +tc_14b272fa, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl { let Inst{7-7} = 0b1; let Inst{31-21} = 0b10101101100; let addrMode = BaseLongOffset; @@ -25998,7 +26071,7 @@ def SS1_storeb_io : HInst< (outs), (ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii, GeneralSubRegs:$Rt16), "memb($Rs16+#$Ii) = $Rt16", -tc_b83e6d73, TypeSUBINSN>, Enc_b38ffc { +tc_30b9bb4a, TypeSUBINSN>, Enc_b38ffc { let Inst{12-12} = 0b1; let addrMode = BaseImmOffset; let accessSize = ByteAccess; @@ -26010,7 +26083,7 @@ def SS1_storew_io : HInst< (outs), (ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii, GeneralSubRegs:$Rt16), "memw($Rs16+#$Ii) = $Rt16", -tc_b83e6d73, TypeSUBINSN>, Enc_f55a0c { +tc_30b9bb4a, TypeSUBINSN>, Enc_f55a0c { let Inst{12-12} = 0b0; let addrMode = BaseImmOffset; let accessSize = WordAccess; @@ -26061,7 +26134,7 @@ def SS2_stored_sp : HInst< (outs), (ins s6_3Imm:$Ii, GeneralDoubleLow8Regs:$Rtt8), "memd(r29+#$Ii) = $Rtt8", -tc_34f09e1e, TypeSUBINSN>, Enc_b8309d { +tc_0371abea, TypeSUBINSN>, Enc_b8309d { let Inst{12-9} = 0b0101; let addrMode = BaseImmOffset; let accessSize = DoubleWordAccess; @@ -26074,7 +26147,7 @@ def SS2_storeh_io : HInst< (outs), (ins GeneralSubRegs:$Rs16, u3_1Imm:$Ii, GeneralSubRegs:$Rt16), "memh($Rs16+#$Ii) = $Rt16", -tc_b83e6d73, TypeSUBINSN>, Enc_625deb { +tc_30b9bb4a, TypeSUBINSN>, Enc_625deb { let Inst{12-11} = 0b00; let addrMode = BaseImmOffset; let accessSize = HalfWordAccess; @@ -26086,7 +26159,7 @@ def SS2_storew_sp : HInst< (outs), (ins u5_2Imm:$Ii, GeneralSubRegs:$Rt16), "memw(r29+#$Ii) = $Rt16", -tc_34f09e1e, TypeSUBINSN>, Enc_87c142 { +tc_0371abea, TypeSUBINSN>, Enc_87c142 { let Inst{12-9} = 0b0100; let addrMode = BaseImmOffset; let accessSize = WordAccess; @@ -29346,6 +29419,32 @@ let opNewValue = 0; let DecoderNamespace = "EXT_mmvec"; let Constraints = "$Qx4 = $Qx4in"; } +def V6_vaddcarryo : HInst< +(outs HvxVR:$Vd32, HvxQR:$Qe4), +(ins HvxVR:$Vu32, HvxVR:$Vv32), +"$Vd32.w,$Qe4 = vadd($Vu32.w,$Vv32.w):carry", +tc_e35c1e93, TypeCOPROC_VX>, Enc_c1d806, Requires<[UseHVXV66]> { +let Inst{7-7} = 0b0; +let Inst{13-13} = 0b1; +let Inst{31-21} = 0b00011101101; +let hasNewValue = 1; +let opNewValue = 0; +let hasNewValue2 = 1; +let opNewValue2 = 1; +let DecoderNamespace = "EXT_mmvec"; +} +def V6_vaddcarrysat : HInst< +(outs HvxVR:$Vd32), +(ins HvxVR:$Vu32, HvxVR:$Vv32, HvxQR:$Qs4), +"$Vd32.w = vadd($Vu32.w,$Vv32.w,$Qs4):carry:sat", +tc_257f6f7c, TypeCVI_VA>, Enc_e0820b, Requires<[UseHVXV66]> { +let Inst{7-7} = 0b0; +let Inst{13-13} = 0b1; +let Inst{31-21} = 0b00011101100; +let hasNewValue = 1; +let opNewValue = 0; +let DecoderNamespace = "EXT_mmvec"; +} def V6_vaddclbh : HInst< (outs HvxVR:$Vd32), (ins HvxVR:$Vu32, HvxVR:$Vv32), @@ -30319,6 +30418,31 @@ let isPseudo = 1; let isCodeGenOnly = 1; let DecoderNamespace = "EXT_mmvec"; } +def V6_vasr_into : HInst< +(outs HvxWR:$Vxx32), +(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), +"$Vxx32.w = vasrinto($Vu32.w,$Vv32.w)", +tc_df80eeb0, TypeCVI_VP_VS>, Enc_3fc427, Requires<[UseHVXV66]> { +let Inst{7-5} = 0b111; +let Inst{13-13} = 0b1; +let Inst{31-21} = 0b00011010101; +let hasNewValue = 1; +let opNewValue = 0; +let DecoderNamespace = "EXT_mmvec"; +let Constraints = "$Vxx32 = $Vxx32in"; +} +def V6_vasr_into_alt : HInst< +(outs HvxWR:$Vxx32), +(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32), +"$Vxx32 = vasrinto($Vu32,$Vv32)", +PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> { +let hasNewValue = 1; +let opNewValue = 0; +let isPseudo = 1; +let isCodeGenOnly = 1; +let DecoderNamespace = "EXT_mmvec"; +let Constraints = "$Vxx32 = $Vxx32in"; +} def V6_vasrh : HInst< (outs HvxVR:$Vd32), (ins HvxVR:$Vu32, IntRegs:$Rt32), @@ -35061,6 +35185,271 @@ let isPseudo = 1; let isCodeGenOnly = 1; let DecoderNamespace = "EXT_mmvec"; } +def V6_vrmpyzbb_rt : HInst< +(outs HvxVQR:$Vdddd32), +(ins HvxVR:$Vu32, IntRegsLow8:$Rt8), +"$Vdddd32.w = vrmpyz($Vu32.b,$Rt8.b)", +tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> { +let Inst{7-5} = 0b000; +let Inst{13-13} = 0b0; +let Inst{31-19} = 0b0001100111101; +let hasNewValue = 1; +let opNewValue = 0; +let DecoderNamespace = "EXT_mmvec"; +} +def V6_vrmpyzbb_rt_acc : HInst< +(outs HvxVQR:$Vyyyy32), +(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8), +"$Vyyyy32.w += vrmpyz($Vu32.b,$Rt8.b)", +tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> { +let Inst{7-5} = 0b010; +let Inst{13-13} = 0b1; +let Inst{31-19} = 0b0001100111000; +let hasNewValue = 1; +let opNewValue = 0; +let isAccumulator = 1; +let DecoderNamespace = "EXT_mmvec"; +let Constraints = "$Vyyyy32 = $Vyyyy32in"; +} +def V6_vrmpyzbb_rx : HInst< +(outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8), +(ins HvxVR:$Vu32, IntRegs:$Rx8in), +"$Vdddd32.w = vrmpyz($Vu32.b,$Rx8.b++)", +tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> { +let Inst{7-5} = 0b000; +let Inst{13-13} = 0b0; +let Inst{31-19} = 0b0001100111100; +let hasNewValue = 1; +let opNewValue = 0; +let DecoderNamespace = "EXT_mmvec"; +let Constraints = "$Rx8 = $Rx8in"; +} +def V6_vrmpyzbb_rx_acc : HInst< +(outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8), +(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegs:$Rx8in), +"$Vyyyy32.w += vrmpyz($Vu32.b,$Rx8.b++)", +tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> { +let Inst{7-5} = 0b010; +let Inst{13-13} = 0b1; +let Inst{31-19} = 0b0001100111001; +let hasNewValue = 1; +let opNewValue = 0; +let isAccumulator = 1; +let DecoderNamespace = "EXT_mmvec"; +let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in"; +} +def V6_vrmpyzbub_rt : HInst< +(outs HvxVQR:$Vdddd32), +(ins HvxVR:$Vu32, IntRegsLow8:$Rt8), +"$Vdddd32.w = vrmpyz($Vu32.b,$Rt8.ub)", +tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> { +let Inst{7-5} = 0b010; +let Inst{13-13} = 0b0; +let Inst{31-19} = 0b0001100111111; +let hasNewValue = 1; +let opNewValue = 0; +let DecoderNamespace = "EXT_mmvec"; +} +def V6_vrmpyzbub_rt_acc : HInst< +(outs HvxVQR:$Vyyyy32), +(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8), +"$Vyyyy32.w += vrmpyz($Vu32.b,$Rt8.ub)", +tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> { +let Inst{7-5} = 0b001; +let Inst{13-13} = 0b1; +let Inst{31-19} = 0b0001100111010; +let hasNewValue = 1; +let opNewValue = 0; +let isAccumulator = 1; +let DecoderNamespace = "EXT_mmvec"; +let Constraints = "$Vyyyy32 = $Vyyyy32in"; +} +def V6_vrmpyzbub_rx : HInst< +(outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8), +(ins HvxVR:$Vu32, IntRegs:$Rx8in), +"$Vdddd32.w = vrmpyz($Vu32.b,$Rx8.ub++)", +tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> { +let Inst{7-5} = 0b010; +let Inst{13-13} = 0b0; +let Inst{31-19} = 0b0001100111110; +let hasNewValue = 1; +let opNewValue = 0; +let DecoderNamespace = "EXT_mmvec"; +let Constraints = "$Rx8 = $Rx8in"; +} +def V6_vrmpyzbub_rx_acc : HInst< +(outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8), +(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegs:$Rx8in), +"$Vyyyy32.w += vrmpyz($Vu32.b,$Rx8.ub++)", +tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> { +let Inst{7-5} = 0b001; +let Inst{13-13} = 0b1; +let Inst{31-19} = 0b0001100111011; +let hasNewValue = 1; +let opNewValue = 0; +let isAccumulator = 1; +let DecoderNamespace = "EXT_mmvec"; +let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in"; +} +def V6_vrmpyzcb_rt : HInst< +(outs HvxVQR:$Vdddd32), +(ins HvxVR:$Vu32, IntRegsLow8:$Rt8), +"$Vdddd32.w = vr16mpyz($Vu32.c,$Rt8.b)", +tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> { +let Inst{7-5} = 0b001; +let Inst{13-13} = 0b0; +let Inst{31-19} = 0b0001100111101; +let hasNewValue = 1; +let opNewValue = 0; +let DecoderNamespace = "EXT_mmvec"; +} +def V6_vrmpyzcb_rt_acc : HInst< +(outs HvxVQR:$Vyyyy32), +(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8), +"$Vyyyy32.w += vr16mpyz($Vu32.c,$Rt8.b)", +tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> { +let Inst{7-5} = 0b011; +let Inst{13-13} = 0b1; +let Inst{31-19} = 0b0001100111000; +let hasNewValue = 1; +let opNewValue = 0; +let isAccumulator = 1; +let DecoderNamespace = "EXT_mmvec"; +let Constraints = "$Vyyyy32 = $Vyyyy32in"; +} +def V6_vrmpyzcb_rx : HInst< +(outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8), +(ins HvxVR:$Vu32, IntRegs:$Rx8in), +"$Vdddd32.w = vr16mpyz($Vu32.c,$Rx8.b++)", +tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> { +let Inst{7-5} = 0b001; +let Inst{13-13} = 0b0; +let Inst{31-19} = 0b0001100111100; +let hasNewValue = 1; +let opNewValue = 0; +let DecoderNamespace = "EXT_mmvec"; +let Constraints = "$Rx8 = $Rx8in"; +} +def V6_vrmpyzcb_rx_acc : HInst< +(outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8), +(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegs:$Rx8in), +"$Vyyyy32.w += vr16mpyz($Vu32.c,$Rx8.b++)", +tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> { +let Inst{7-5} = 0b011; +let Inst{13-13} = 0b1; +let Inst{31-19} = 0b0001100111001; +let hasNewValue = 1; +let opNewValue = 0; +let isAccumulator = 1; +let DecoderNamespace = "EXT_mmvec"; +let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in"; +} +def V6_vrmpyzcbs_rt : HInst< +(outs HvxVQR:$Vdddd32), +(ins HvxVR:$Vu32, IntRegsLow8:$Rt8), +"$Vdddd32.w = vr16mpyzs($Vu32.c,$Rt8.b)", +tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> { +let Inst{7-5} = 0b010; +let Inst{13-13} = 0b0; +let Inst{31-19} = 0b0001100111101; +let hasNewValue = 1; +let opNewValue = 0; +let DecoderNamespace = "EXT_mmvec"; +} +def V6_vrmpyzcbs_rt_acc : HInst< +(outs HvxVQR:$Vyyyy32), +(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8), +"$Vyyyy32.w += vr16mpyzs($Vu32.c,$Rt8.b)", +tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> { +let Inst{7-5} = 0b001; +let Inst{13-13} = 0b1; +let Inst{31-19} = 0b0001100111000; +let hasNewValue = 1; +let opNewValue = 0; +let isAccumulator = 1; +let DecoderNamespace = "EXT_mmvec"; +let Constraints = "$Vyyyy32 = $Vyyyy32in"; +} +def V6_vrmpyzcbs_rx : HInst< +(outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8), +(ins HvxVR:$Vu32, IntRegs:$Rx8in), +"$Vdddd32.w = vr16mpyzs($Vu32.c,$Rx8.b++)", +tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> { +let Inst{7-5} = 0b010; +let Inst{13-13} = 0b0; +let Inst{31-19} = 0b0001100111100; +let hasNewValue = 1; +let opNewValue = 0; +let DecoderNamespace = "EXT_mmvec"; +let Constraints = "$Rx8 = $Rx8in"; +} +def V6_vrmpyzcbs_rx_acc : HInst< +(outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8), +(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegs:$Rx8in), +"$Vyyyy32.w += vr16mpyzs($Vu32.c,$Rx8.b++)", +tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> { +let Inst{7-5} = 0b001; +let Inst{13-13} = 0b1; +let Inst{31-19} = 0b0001100111001; +let hasNewValue = 1; +let opNewValue = 0; +let isAccumulator = 1; +let DecoderNamespace = "EXT_mmvec"; +let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in"; +} +def V6_vrmpyznb_rt : HInst< +(outs HvxVQR:$Vdddd32), +(ins HvxVR:$Vu32, IntRegsLow8:$Rt8), +"$Vdddd32.w = vr8mpyz($Vu32.n,$Rt8.b)", +tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> { +let Inst{7-5} = 0b000; +let Inst{13-13} = 0b0; +let Inst{31-19} = 0b0001100111111; +let hasNewValue = 1; +let opNewValue = 0; +let DecoderNamespace = "EXT_mmvec"; +} +def V6_vrmpyznb_rt_acc : HInst< +(outs HvxVQR:$Vyyyy32), +(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8), +"$Vyyyy32.w += vr8mpyz($Vu32.n,$Rt8.b)", +tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> { +let Inst{7-5} = 0b010; +let Inst{13-13} = 0b1; +let Inst{31-19} = 0b0001100111010; +let hasNewValue = 1; +let opNewValue = 0; +let isAccumulator = 1; +let DecoderNamespace = "EXT_mmvec"; +let Constraints = "$Vyyyy32 = $Vyyyy32in"; +} +def V6_vrmpyznb_rx : HInst< +(outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8), +(ins HvxVR:$Vu32, IntRegs:$Rx8in), +"$Vdddd32.w = vr8mpyz($Vu32.n,$Rx8.b++)", +tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> { +let Inst{7-5} = 0b000; +let Inst{13-13} = 0b0; +let Inst{31-19} = 0b0001100111110; +let hasNewValue = 1; +let opNewValue = 0; +let DecoderNamespace = "EXT_mmvec"; +let Constraints = "$Rx8 = $Rx8in"; +} +def V6_vrmpyznb_rx_acc : HInst< +(outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8), +(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegs:$Rx8in), +"$Vyyyy32.w += vr8mpyz($Vu32.n,$Rx8.b++)", +tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> { +let Inst{7-5} = 0b010; +let Inst{13-13} = 0b1; +let Inst{31-19} = 0b0001100111011; +let hasNewValue = 1; +let opNewValue = 0; +let isAccumulator = 1; +let DecoderNamespace = "EXT_mmvec"; +let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in"; +} def V6_vror : HInst< (outs HvxVR:$Vd32), (ins HvxVR:$Vu32, IntRegs:$Rt32), @@ -35073,6 +35462,29 @@ let hasNewValue = 1; let opNewValue = 0; let DecoderNamespace = "EXT_mmvec"; } +def V6_vrotr : HInst< +(outs HvxVR:$Vd32), +(ins HvxVR:$Vu32, HvxVR:$Vv32), +"$Vd32.uw = vrotr($Vu32.uw,$Vv32.uw)", +tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV66]> { +let Inst{7-5} = 0b111; +let Inst{13-13} = 0b1; +let Inst{31-21} = 0b00011010100; +let hasNewValue = 1; +let opNewValue = 0; +let DecoderNamespace = "EXT_mmvec"; +} +def V6_vrotr_alt : HInst< +(outs HvxVR:$Vd32), +(ins HvxVR:$Vu32, HvxVR:$Vv32), +"$Vd32 = vrotr($Vu32,$Vv32)", +PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> { +let hasNewValue = 1; +let opNewValue = 0; +let isPseudo = 1; +let isCodeGenOnly = 1; +let DecoderNamespace = "EXT_mmvec"; +} def V6_vroundhb : HInst< (outs HvxVR:$Vd32), (ins HvxVR:$Vu32, HvxVR:$Vv32), @@ -35261,6 +35673,18 @@ let isPseudo = 1; let isCodeGenOnly = 1; let DecoderNamespace = "EXT_mmvec"; } +def V6_vsatdw : HInst< +(outs HvxVR:$Vd32), +(ins HvxVR:$Vu32, HvxVR:$Vv32), +"$Vd32.w = vsatdw($Vu32.w,$Vv32.w)", +tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV66]> { +let Inst{7-5} = 0b111; +let Inst{13-13} = 0b1; +let Inst{31-21} = 0b00011101100; +let hasNewValue = 1; +let opNewValue = 0; +let DecoderNamespace = "EXT_mmvec"; +} def V6_vsathub : HInst< (outs HvxVR:$Vd32), (ins HvxVR:$Vu32, HvxVR:$Vv32), @@ -35930,6 +36354,20 @@ let opNewValue = 0; let DecoderNamespace = "EXT_mmvec"; let Constraints = "$Qx4 = $Qx4in"; } +def V6_vsubcarryo : HInst< +(outs HvxVR:$Vd32, HvxQR:$Qe4), +(ins HvxVR:$Vu32, HvxVR:$Vv32), +"$Vd32.w,$Qe4 = vsub($Vu32.w,$Vv32.w):carry", +tc_e35c1e93, TypeCOPROC_VX>, Enc_c1d806, Requires<[UseHVXV66]> { +let Inst{7-7} = 0b1; +let Inst{13-13} = 0b1; +let Inst{31-21} = 0b00011101101; +let hasNewValue = 1; +let opNewValue = 0; +let hasNewValue2 = 1; +let opNewValue2 = 1; +let DecoderNamespace = "EXT_mmvec"; +} def V6_vsubh : HInst< (outs HvxVR:$Vd32), (ins HvxVR:$Vu32, HvxVR:$Vv32), @@ -36894,6 +37332,117 @@ let isPseudo = 1; let isCodeGenOnly = 1; let DecoderNamespace = "EXT_mmvec"; } +def V6_zLd_ai : HInst< +(outs), +(ins IntRegs:$Rt32, s4_0Imm:$Ii), +"z = vmem($Rt32+#$Ii)", +tc_e699ae41, TypeCVI_ZW>, Enc_ff3442, Requires<[UseHVXV66,UseZReg]> { +let Inst{7-0} = 0b00000000; +let Inst{12-11} = 0b00; +let Inst{31-21} = 0b00101100000; +let addrMode = BaseImmOffset; +let mayLoad = 1; +let isRestrictNoSlot1Store = 1; +let DecoderNamespace = "EXT_mmvec"; +} +def V6_zLd_pi : HInst< +(outs IntRegs:$Rx32), +(ins IntRegs:$Rx32in, s3_0Imm:$Ii), +"z = vmem($Rx32++#$Ii)", +tc_a0dbea28, TypeCVI_ZW>, Enc_6c9ee0, Requires<[UseHVXV66,UseZReg]> { +let Inst{7-0} = 0b00000000; +let Inst{13-11} = 0b000; +let Inst{31-21} = 0b00101101000; +let addrMode = PostInc; +let mayLoad = 1; +let isRestrictNoSlot1Store = 1; +let DecoderNamespace = "EXT_mmvec"; +let Constraints = "$Rx32 = $Rx32in"; +} +def V6_zLd_ppu : HInst< +(outs IntRegs:$Rx32), +(ins IntRegs:$Rx32in, ModRegs:$Mu2), +"z = vmem($Rx32++$Mu2)", +tc_a0dbea28, TypeCVI_ZW>, Enc_44661f, Requires<[UseHVXV66,UseZReg]> { +let Inst{12-0} = 0b0000000000001; +let Inst{31-21} = 0b00101101000; +let addrMode = PostInc; +let mayLoad = 1; +let isRestrictNoSlot1Store = 1; +let DecoderNamespace = "EXT_mmvec"; +let Constraints = "$Rx32 = $Rx32in"; +} +def V6_zLd_pred_ai : HInst< +(outs), +(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii), +"if ($Pv4) z = vmem($Rt32+#$Ii)", +tc_dd5b0695, TypeCVI_ZW>, Enc_ef601b, Requires<[UseHVXV66,UseZReg]> { +let Inst{7-0} = 0b00000000; +let Inst{31-21} = 0b00101100100; +let isPredicated = 1; +let addrMode = BaseImmOffset; +let mayLoad = 1; +let isRestrictNoSlot1Store = 1; +let DecoderNamespace = "EXT_mmvec"; +} +def V6_zLd_pred_pi : HInst< +(outs IntRegs:$Rx32), +(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii), +"if ($Pv4) z = vmem($Rx32++#$Ii)", +tc_3ad719fb, TypeCVI_ZW>, Enc_6baed4, Requires<[UseHVXV66,UseZReg]> { +let Inst{7-0} = 0b00000000; +let Inst{13-13} = 0b0; +let Inst{31-21} = 0b00101101100; +let isPredicated = 1; +let addrMode = PostInc; +let mayLoad = 1; +let isRestrictNoSlot1Store = 1; +let DecoderNamespace = "EXT_mmvec"; +let Constraints = "$Rx32 = $Rx32in"; +} +def V6_zLd_pred_ppu : HInst< +(outs IntRegs:$Rx32), +(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2), +"if ($Pv4) z = vmem($Rx32++$Mu2)", +tc_3ad719fb, TypeCVI_ZW>, Enc_691712, Requires<[UseHVXV66,UseZReg]> { +let Inst{10-0} = 0b00000000001; +let Inst{31-21} = 0b00101101100; +let isPredicated = 1; +let addrMode = PostInc; +let mayLoad = 1; +let isRestrictNoSlot1Store = 1; +let DecoderNamespace = "EXT_mmvec"; +let Constraints = "$Rx32 = $Rx32in"; +} +def V6_zextract : HInst< +(outs HvxVR:$Vd32), +(ins IntRegs:$Rt32), +"$Vd32 = zextract($Rt32)", +tc_5bf8afbb, TypeCVI_VP>, Enc_a5ed8a, Requires<[UseHVXV66,UseZReg]> { +let Inst{13-5} = 0b000001001; +let Inst{31-21} = 0b00011001101; +let hasNewValue = 1; +let opNewValue = 0; +let DecoderNamespace = "EXT_mmvec"; +} +def V6_zld0 : HInst< +(outs), +(ins IntRegs:$Rt32), +"z = vmem($Rt32)", +PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> { +let isPseudo = 1; +let isCodeGenOnly = 1; +let DecoderNamespace = "EXT_mmvec"; +} +def V6_zldp0 : HInst< +(outs), +(ins PredRegs:$Pv4, IntRegs:$Rt32), +"if ($Pv4) z = vmem($Rt32)", +PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> { +let isPseudo = 1; +let isCodeGenOnly = 1; +let DecoderNamespace = "EXT_mmvec"; +} def Y2_barrier : HInst< (outs), (ins), diff --git a/llvm/lib/Target/Hexagon/HexagonDepMappings.td b/llvm/lib/Target/Hexagon/HexagonDepMappings.td index 24a6ea2..b3132d4 100644 --- a/llvm/lib/Target/Hexagon/HexagonDepMappings.td +++ b/llvm/lib/Target/Hexagon/HexagonDepMappings.td @@ -251,6 +251,7 @@ def V6_vaslhv_altAlias : InstAlias<"$Vd32 = vaslh($Vu32,$Vv32)", (V6_vaslhv HvxV def V6_vaslw_acc_altAlias : InstAlias<"$Vx32 += vaslw($Vu32,$Rt32)", (V6_vaslw_acc HvxVR:$Vx32, HvxVR:$Vu32, IntRegs:$Rt32)>, Requires<[UseHVX]>; def V6_vaslw_altAlias : InstAlias<"$Vd32 = vaslw($Vu32,$Rt32)", (V6_vaslw HvxVR:$Vd32, HvxVR:$Vu32, IntRegs:$Rt32)>, Requires<[UseHVX]>; def V6_vaslwv_altAlias : InstAlias<"$Vd32 = vaslw($Vu32,$Vv32)", (V6_vaslwv HvxVR:$Vd32, HvxVR:$Vu32, HvxVR:$Vv32)>, Requires<[UseHVX]>; +def V6_vasr_into_altAlias : InstAlias<"$Vxx32 = vasrinto($Vu32,$Vv32)", (V6_vasr_into HvxWR:$Vxx32, HvxVR:$Vu32, HvxVR:$Vv32)>, Requires<[UseHVX]>; def V6_vasrh_acc_altAlias : InstAlias<"$Vx32 += vasrh($Vu32,$Rt32)", (V6_vasrh_acc HvxVR:$Vx32, HvxVR:$Vu32, IntRegs:$Rt32)>, Requires<[UseHVX]>; def V6_vasrh_altAlias : InstAlias<"$Vd32 = vasrh($Vu32,$Rt32)", (V6_vasrh HvxVR:$Vd32, HvxVR:$Vu32, IntRegs:$Rt32)>, Requires<[UseHVX]>; def V6_vasrhbrndsat_altAlias : InstAlias<"$Vd32 = vasrhb($Vu32,$Vv32,$Rt8):rnd:sat", (V6_vasrhbrndsat HvxVR:$Vd32, HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8)>; @@ -401,6 +402,7 @@ def V6_vrmpyubi_acc_altAlias : InstAlias<"$Vxx32 += vrmpyub($Vuu32,$Rt32,#$Ii)", def V6_vrmpyubi_altAlias : InstAlias<"$Vdd32 = vrmpyub($Vuu32,$Rt32,#$Ii)", (V6_vrmpyubi HvxWR:$Vdd32, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii)>, Requires<[UseHVX]>; def V6_vrmpyubv_acc_altAlias : InstAlias<"$Vx32 += vrmpyub($Vu32,$Vv32)", (V6_vrmpyubv_acc HvxVR:$Vx32, HvxVR:$Vu32, HvxVR:$Vv32)>, Requires<[UseHVX]>; def V6_vrmpyubv_altAlias : InstAlias<"$Vd32 = vrmpyub($Vu32,$Vv32)", (V6_vrmpyubv HvxVR:$Vd32, HvxVR:$Vu32, HvxVR:$Vv32)>, Requires<[UseHVX]>; +def V6_vrotr_altAlias : InstAlias<"$Vd32 = vrotr($Vu32,$Vv32)", (V6_vrotr HvxVR:$Vd32, HvxVR:$Vu32, HvxVR:$Vv32)>, Requires<[UseHVX]>; def V6_vroundhb_altAlias : InstAlias<"$Vd32 = vroundhb($Vu32,$Vv32):sat", (V6_vroundhb HvxVR:$Vd32, HvxVR:$Vu32, HvxVR:$Vv32)>, Requires<[UseHVX]>; def V6_vroundhub_altAlias : InstAlias<"$Vd32 = vroundhub($Vu32,$Vv32):sat", (V6_vroundhub HvxVR:$Vd32, HvxVR:$Vu32, HvxVR:$Vv32)>, Requires<[UseHVX]>; def V6_vrounduhub_altAlias : InstAlias<"$Vd32 = vrounduhub($Vu32,$Vv32):sat", (V6_vrounduhub HvxVR:$Vd32, HvxVR:$Vu32, HvxVR:$Vv32)>, Requires<[UseHVX]>; @@ -472,4 +474,6 @@ def V6_vunpackub_altAlias : InstAlias<"$Vdd32 = vunpackub($Vu32)", (V6_vunpackub def V6_vunpackuh_altAlias : InstAlias<"$Vdd32 = vunpackuh($Vu32)", (V6_vunpackuh HvxWR:$Vdd32, HvxVR:$Vu32)>, Requires<[UseHVX]>; def V6_vzb_altAlias : InstAlias<"$Vdd32 = vzxtb($Vu32)", (V6_vzb HvxWR:$Vdd32, HvxVR:$Vu32)>, Requires<[UseHVX]>; def V6_vzh_altAlias : InstAlias<"$Vdd32 = vzxth($Vu32)", (V6_vzh HvxWR:$Vdd32, HvxVR:$Vu32)>, Requires<[UseHVX]>; +def V6_zld0Alias : InstAlias<"z = vmem($Rt32)", (V6_zLd_ai IntRegs:$Rt32, 0)>, Requires<[UseHVX]>; +def V6_zldp0Alias : InstAlias<"if ($Pv4) z = vmem($Rt32)", (V6_zLd_pred_ai PredRegs:$Pv4, IntRegs:$Rt32, 0)>, Requires<[UseHVX]>; def Y2_dcfetchAlias : InstAlias<"dcfetch($Rs32)", (Y2_dcfetchbo IntRegs:$Rs32, 0)>; diff --git a/llvm/lib/Target/Hexagon/HexagonDepTimingClasses.h b/llvm/lib/Target/Hexagon/HexagonDepTimingClasses.h index 644d1cd..0fd55e8 100644 --- a/llvm/lib/Target/Hexagon/HexagonDepTimingClasses.h +++ b/llvm/lib/Target/Hexagon/HexagonDepTimingClasses.h @@ -24,6 +24,8 @@ inline bool is_TC3x(unsigned SchedClass) { case Hexagon::Sched::tc_13bfbcf9: case Hexagon::Sched::tc_174516e8: case Hexagon::Sched::tc_1a2fd869: + case Hexagon::Sched::tc_1c4528a2: + case Hexagon::Sched::tc_32779c6f: case Hexagon::Sched::tc_5b54b33f: case Hexagon::Sched::tc_6b25e783: case Hexagon::Sched::tc_76851da1: @@ -31,6 +33,7 @@ inline bool is_TC3x(unsigned SchedClass) { case Hexagon::Sched::tc_a9d88b22: case Hexagon::Sched::tc_bafaade3: case Hexagon::Sched::tc_bcf98408: + case Hexagon::Sched::tc_bdceeac1: case Hexagon::Sched::tc_c8ce0b5c: case Hexagon::Sched::tc_d1aa9eaa: case Hexagon::Sched::tc_d773585a: @@ -53,6 +56,7 @@ inline bool is_TC2early(unsigned SchedClass) { inline bool is_TC4x(unsigned SchedClass) { switch (SchedClass) { + case Hexagon::Sched::tc_2f7c551d: case Hexagon::Sched::tc_2ff964b4: case Hexagon::Sched::tc_3a867367: case Hexagon::Sched::tc_3b470976: @@ -69,7 +73,9 @@ inline bool is_TC2(unsigned SchedClass) { switch (SchedClass) { case Hexagon::Sched::tc_002cb246: case Hexagon::Sched::tc_14b5c689: + case Hexagon::Sched::tc_1c80410a: case Hexagon::Sched::tc_4414d8b1: + case Hexagon::Sched::tc_6132ba3d: case Hexagon::Sched::tc_61830035: case Hexagon::Sched::tc_679309b8: case Hexagon::Sched::tc_703e822c: @@ -81,6 +87,8 @@ inline bool is_TC2(unsigned SchedClass) { case Hexagon::Sched::tc_a813cf9a: case Hexagon::Sched::tc_bfec0f01: case Hexagon::Sched::tc_cf8126ae: + case Hexagon::Sched::tc_d08ee0f4: + case Hexagon::Sched::tc_e4a7f9f0: case Hexagon::Sched::tc_f429765c: case Hexagon::Sched::tc_f675fee8: case Hexagon::Sched::tc_f9058dd7: @@ -100,7 +108,6 @@ inline bool is_TC1(unsigned SchedClass) { case Hexagon::Sched::tc_20cdee80: case Hexagon::Sched::tc_2332b92e: case Hexagon::Sched::tc_2eabeebe: - case Hexagon::Sched::tc_3a2ec948: case Hexagon::Sched::tc_3d495a39: case Hexagon::Sched::tc_4c5ba658: case Hexagon::Sched::tc_56336eb0: @@ -122,7 +129,6 @@ inline bool is_TC1(unsigned SchedClass) { case Hexagon::Sched::tc_b31c2e97: case Hexagon::Sched::tc_b4b5c03a: case Hexagon::Sched::tc_b51dc29a: - case Hexagon::Sched::tc_bf41e621: case Hexagon::Sched::tc_cd374165: case Hexagon::Sched::tc_cfd8378a: case Hexagon::Sched::tc_d5b7b0c1: @@ -138,4 +144,4 @@ inline bool is_TC1(unsigned SchedClass) { } } // namespace llvm -#endif +#endif \ No newline at end of file diff --git a/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp b/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp index dc2a4ef..b5be507 100644 --- a/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp +++ b/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp @@ -1505,13 +1505,6 @@ HexagonTargetLowering::HexagonTargetLowering(const TargetMachine &TM, setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v4i16, Custom); setOperationAction(ISD::VECTOR_SHUFFLE, MVT::v8i8, Custom); - // Subtarget-specific operation actions. - // - if (Subtarget.hasV60Ops()) { - setOperationAction(ISD::ROTL, MVT::i32, Custom); - setOperationAction(ISD::ROTL, MVT::i64, Custom); - } - // V5+. setOperationAction(ISD::FMA, MVT::f64, Expand); setOperationAction(ISD::FADD, MVT::f64, Expand); @@ -1542,6 +1535,17 @@ HexagonTargetLowering::HexagonTargetLowering(const TargetMachine &TM, setIndexedStoreAction(ISD::POST_INC, VT, Legal); } + // Subtarget-specific operation actions. + // + if (Subtarget.hasV60Ops()) { + setOperationAction(ISD::ROTL, MVT::i32, Custom); + setOperationAction(ISD::ROTL, MVT::i64, Custom); + } + if (Subtarget.hasV66Ops()) { + setOperationAction(ISD::FADD, MVT::f64, Legal); + setOperationAction(ISD::FSUB, MVT::f64, Legal); + } + if (Subtarget.useHVXOps()) initializeHVXLowering(); diff --git a/llvm/lib/Target/Hexagon/HexagonPatterns.td b/llvm/lib/Target/Hexagon/HexagonPatterns.td index ddf5a9c..976e6a6 100644 --- a/llvm/lib/Target/Hexagon/HexagonPatterns.td +++ b/llvm/lib/Target/Hexagon/HexagonPatterns.td @@ -1259,12 +1259,19 @@ def: OpR_RR_pat, f32, F32>; def: OpR_RR_pat, f32, F32>; def: OpR_RR_pat, f32, F32>; +let Predicates = [HasV66] in { + def: OpR_RR_pat, f64, F64>; + def: OpR_RR_pat, f64, F64>; +} + // In expressions like a0*b0 + a1*b1 + ..., prefer to generate multiply-add, // over add-add with individual multiplies as inputs. let AddedComplexity = 10 in { def: AccRRI_pat, I32, u32_0ImmPred>; def: AccRRI_pat, I32, u32_0ImmPred>; def: AccRRR_pat, I32, I32, I32>; + let Predicates = [HasV66] in + def: AccRRR_pat, I32, I32, I32>; } def: AccRRI_pat, I32, s32_0ImmPred>; diff --git a/llvm/lib/Target/Hexagon/HexagonPseudo.td b/llvm/lib/Target/Hexagon/HexagonPseudo.td index 71a6c58..b9748c7 100644 --- a/llvm/lib/Target/Hexagon/HexagonPseudo.td +++ b/llvm/lib/Target/Hexagon/HexagonPseudo.td @@ -547,11 +547,11 @@ let isCodeGenOnly = 1, isPseudo = 1, Defs = [CS], Uses = [CS], addrMode = PostInc, accessSize = MS, hasSideEffects = 0 in { def NAME#_pci : STInst<(outs IntRegs:$Rx32), (ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2, RC:$Rt32, IntRegs:$Cs), - ".error \"should not emit\" ", [], "$Rx32 = $Rx32in", tc_327843a7>; + ".error \"should not emit\" ", [], "$Rx32 = $Rx32in", tc_e86aa961>; def NAME#_pcr : STInst<(outs IntRegs:$Rx32), (ins IntRegs:$Rx32in, ModRegs:$Mu2, RC:$Rt32, IntRegs:$Cs), - ".error \"should not emit\" ", [], "$Rx32 = $Rx32in", tc_c4f596e3>; + ".error \"should not emit\" ", [], "$Rx32 = $Rx32in", tc_da97ee82>; } } diff --git a/llvm/lib/Target/Hexagon/HexagonSchedule.td b/llvm/lib/Target/Hexagon/HexagonSchedule.td index fa4f9ca..1024198 100644 --- a/llvm/lib/Target/Hexagon/HexagonSchedule.td +++ b/llvm/lib/Target/Hexagon/HexagonSchedule.td @@ -27,6 +27,7 @@ def CVI_SHIFT : FuncUnit; def CVI_MPY0 : FuncUnit; def CVI_MPY1 : FuncUnit; def CVI_LD : FuncUnit; +def CVI_ZW : FuncUnit; // Z register write port // Combined functional units. def CVI_XLSHF : FuncUnit; @@ -84,3 +85,9 @@ include "HexagonScheduleV62.td" //===----------------------------------------------------------------------===// include "HexagonScheduleV65.td" + +//===----------------------------------------------------------------------===// +// V66 Machine Info + +//===----------------------------------------------------------------------===// + +include "HexagonScheduleV66.td" diff --git a/llvm/lib/Target/Hexagon/HexagonScheduleV60.td b/llvm/lib/Target/Hexagon/HexagonScheduleV60.td index a2544c9..861a8d2 100644 --- a/llvm/lib/Target/Hexagon/HexagonScheduleV60.td +++ b/llvm/lib/Target/Hexagon/HexagonScheduleV60.td @@ -65,7 +65,7 @@ def HexagonItinerariesV60 : ProcessorItineraries<[SLOT0, SLOT1, SLOT2, SLOT3, SLOT_ENDLOOP, CVI_ST, CVI_XLANE, CVI_SHIFT, CVI_MPY0, CVI_MPY1, CVI_LD, CVI_XLSHF, CVI_MPY01, CVI_ALL, - CVI_ALL_NOMEM], + CVI_ALL_NOMEM, CVI_ZW], [Hex_FWD, HVX_FWD], HexagonV60ItinList.ItinList>; def HexagonModelV60 : SchedMachineModel { diff --git a/llvm/lib/Target/Hexagon/HexagonScheduleV62.td b/llvm/lib/Target/Hexagon/HexagonScheduleV62.td index a0a8595..1c27419 100644 --- a/llvm/lib/Target/Hexagon/HexagonScheduleV62.td +++ b/llvm/lib/Target/Hexagon/HexagonScheduleV62.td @@ -21,7 +21,7 @@ def HexagonItinerariesV62 : ProcessorItineraries<[SLOT0, SLOT1, SLOT2, SLOT3, SLOT_ENDLOOP, CVI_ST, CVI_XLANE, CVI_SHIFT, CVI_MPY0, CVI_MPY1, CVI_LD, CVI_XLSHF, CVI_MPY01, CVI_ALL, - CVI_ALL_NOMEM], + CVI_ALL_NOMEM, CVI_ZW], [Hex_FWD, HVX_FWD], HexagonV62ItinList.ItinList>; def HexagonModelV62 : SchedMachineModel { diff --git a/llvm/lib/Target/Hexagon/HexagonScheduleV65.td b/llvm/lib/Target/Hexagon/HexagonScheduleV65.td index e3b1313..46a79d5 100644 --- a/llvm/lib/Target/Hexagon/HexagonScheduleV65.td +++ b/llvm/lib/Target/Hexagon/HexagonScheduleV65.td @@ -23,7 +23,7 @@ def HexagonItinerariesV65 : ProcessorItineraries<[SLOT0, SLOT1, SLOT2, SLOT3, SLOT_ENDLOOP, CVI_ST, CVI_XLANE, CVI_SHIFT, CVI_MPY0, CVI_MPY1, CVI_LD, CVI_XLSHF, CVI_MPY01, CVI_ALL, - CVI_ALL_NOMEM], + CVI_ALL_NOMEM, CVI_ZW], [Hex_FWD, HVX_FWD], HexagonV65ItinList.ItinList>; diff --git a/llvm/lib/Target/Hexagon/HexagonScheduleV66.td b/llvm/lib/Target/Hexagon/HexagonScheduleV66.td new file mode 100644 index 0000000..38e3d21 --- /dev/null +++ b/llvm/lib/Target/Hexagon/HexagonScheduleV66.td @@ -0,0 +1,41 @@ +//=-HexagonScheduleV66.td - HexagonV66 Scheduling Definitions *- tablegen -*-=// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +// +// ScalarItin and HVXItin contain some old itineraries +// still used by a handful of instructions. Hopefully, we will be able +// to get rid of them soon. + +def HexagonV66ItinList : DepScalarItinV66, ScalarItin, + DepHVXItinV66, HVXItin, PseudoItin { + list ItinList = + !listconcat(DepScalarItinV66_list, ScalarItin_list, + DepHVXItinV66_list, HVXItin_list, PseudoItin_list); +} + +def HexagonItinerariesV66 : + ProcessorItineraries<[SLOT0, SLOT1, SLOT2, SLOT3, SLOT_ENDLOOP, + CVI_ST, CVI_XLANE, CVI_SHIFT, CVI_MPY0, CVI_MPY1, + CVI_LD, CVI_XLSHF, CVI_MPY01, CVI_ALL, + CVI_ALL_NOMEM, CVI_ZW], + [Hex_FWD, HVX_FWD], + HexagonV66ItinList.ItinList>; + +def HexagonModelV66 : SchedMachineModel { + // Max issue per cycle == bundle width. + let IssueWidth = 4; + let Itineraries = HexagonItinerariesV66; + let LoadLatency = 1; + let CompleteModel = 0; +} + +//===----------------------------------------------------------------------===// +// Hexagon V66 Resource Definitions - +//===----------------------------------------------------------------------===// + diff --git a/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonBaseInfo.h b/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonBaseInfo.h index a89d179..6543d83 100644 --- a/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonBaseInfo.h +++ b/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonBaseInfo.h @@ -26,7 +26,7 @@ namespace llvm { /// instruction info tracks. namespace HexagonII { unsigned const TypeCVI_FIRST = TypeCVI_4SLOT_MPY; - unsigned const TypeCVI_LAST = TypeCVI_VX_LATE; + unsigned const TypeCVI_LAST = TypeCVI_ZW; enum SubTarget { HasV55SubT = 0x3c, diff --git a/llvm/test/CodeGen/Hexagon/dfp.ll b/llvm/test/CodeGen/Hexagon/dfp.ll new file mode 100644 index 0000000..e4fe10ba --- /dev/null +++ b/llvm/test/CodeGen/Hexagon/dfp.ll @@ -0,0 +1,19 @@ +; RUN: llc -march=hexagon < %s | FileCheck %s + +; CHECK-LABEL: df_add: +; CHECK: dfadd +define double @df_add(double %x, double %y) local_unnamed_addr #0 { +entry: + %add = fadd double %x, %y + ret double %add +} + +; CHECK-LABEL: df_sub: +; CHECK: dfsub +define double @df_sub(double %x, double %y) local_unnamed_addr #0 { +entry: + %sub = fsub double %x, %y + ret double %sub +} + +attributes #0 = { norecurse nounwind readnone "target-cpu"="hexagonv66" } diff --git a/llvm/test/CodeGen/Hexagon/mnaci_v66.ll b/llvm/test/CodeGen/Hexagon/mnaci_v66.ll new file mode 100644 index 0000000..63f3788 --- /dev/null +++ b/llvm/test/CodeGen/Hexagon/mnaci_v66.ll @@ -0,0 +1,15 @@ +; RUN: llc -march=hexagon < %s | FileCheck %s +; This test validates the generation of v66 only instruction M2_mnaci +; CHECK: r{{[0-9]+}} -= mpyi(r{{[0-9]+}},r{{[0-9]+}}) + +target triple = "hexagon-unknown--elf" + +; Function Attrs: norecurse nounwind readnone +define i32 @_Z4testiii(i32 %a, i32 %b, i32 %c) #0 { +entry: + %mul = mul nsw i32 %c, %b + %sub = sub nsw i32 %a, %mul + ret i32 %sub +} + +attributes #0 = { norecurse nounwind readnone "target-cpu"="hexagonv66" "target-features"="-hvx,-long-calls" } diff --git a/llvm/test/MC/Hexagon/quad_regs.s b/llvm/test/MC/Hexagon/quad_regs.s new file mode 100644 index 0000000..6805f3b --- /dev/null +++ b/llvm/test/MC/Hexagon/quad_regs.s @@ -0,0 +1,5 @@ +# RUN: llvm-mc -arch=hexagon -mcpu=hexagonv66 -mhvx -filetype=obj %s | llvm-objdump -mcpu=hexagonv66 -mhvx -d - | FileCheck %s + +# Test for quad register parsing and printing +# CHECK: { v3:0.w = vrmpyz(v0.b,r0.b) } +v3:0.w = vrmpyz(v0.b,r0.b) diff --git a/llvm/test/MC/Hexagon/v66.s b/llvm/test/MC/Hexagon/v66.s new file mode 100644 index 0000000..465345f --- /dev/null +++ b/llvm/test/MC/Hexagon/v66.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -arch=hexagon -mcpu=hexagonv66 -mhvx -filetype=obj %s | llvm-objdump -mcpu=hexagonv66 -mhvx -d - | FileCheck %s + +# CHECK: 1d8362e4 { v4.w = vsatdw(v2.w,v3.w) +{ + v4.w = vsatdw(v2.w, v3.w) + vmem(r16+#0) = v4.new +} + +# CHECK: 1aaae5e0 { v1:0.w = vasrinto(v5.w,v10.w) } + v1:0.w = vasrinto(v5.w, v10.w) + +# CHECK: 1aaae5e0 { v1:0.w = vasrinto(v5.w,v10.w) } + v1:0 = vasrinto(v5, v10) + +# CHECK: 1d89ef14 { v20.w = vadd(v15.w,v9.w,q0):carry:sat } + v20.w = vadd(v15.w, v9.w, q0):carry:sat + diff --git a/llvm/test/MC/Hexagon/z-instructions.s b/llvm/test/MC/Hexagon/z-instructions.s new file mode 100644 index 0000000..2a2482e --- /dev/null +++ b/llvm/test/MC/Hexagon/z-instructions.s @@ -0,0 +1,17 @@ +# RUN: llvm-mc -arch=hexagon -mcpu=hexagonv66 -mhvx -filetype=obj %s | llvm-objdump -mcpu=hexagonv66 -mhvx -d - | FileCheck --implicit-check-not='{' %s + +# CHECK: 2d00c000 { z = vmem(r0++#0) } +z = vmem(r0++#0) + +# CHECK-NEXT: 2c00c000 { z = vmem(r0+#0) } +z = vmem(r0+#0) + +# CHECK-NEXT: 2d00c001 { z = vmem(r0++m0) } +z = vmem(r0++m0) + +# CHECK-NEXT: { v3:0.w += vrmpyz(v13.b,r3.b++) +# CHECK-NEXT: v13.tmp = vmem(r2++#1) +# CHECK-NEXT: z = vmem(r3+#0) } +{ v13.tmp = vmem(r2++#1) + v3:0.w += vrmpyz(v13.b,r3.b++) + z = vmem(r3+#0) } -- 2.7.4