[llvm] 73dc996 - [AArch64] Add lane moves to PerfectShuffle tables

David Green via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 19 06:49:56 PDT 2022


Author: David Green
Date: 2022-04-19T14:49:50+01:00
New Revision: 73dc996428aeed7e5005b4bc80a112f7d5c45a9b

URL: https://github.com/llvm/llvm-project/commit/73dc996428aeed7e5005b4bc80a112f7d5c45a9b
DIFF: https://github.com/llvm/llvm-project/commit/73dc996428aeed7e5005b4bc80a112f7d5c45a9b.diff

LOG: [AArch64] Add lane moves to PerfectShuffle tables

This teaches the perfect shuffle tables about lane inserts, that can
help reduce the cost of many entries. Many of the shuffle masks are
one-away from being correct, and a simple lane move can be a lot simpler
than trying to use ext/zip/etc. Because they are not exactly like the
other masks handled in the perfect shuffle tables, they require special
casing to generate them, with a special InsOp Operator.

The lane to insert into is encoded as the RHSID, and the move from is
grabbed from the original mask. This helps reduce the maximum perfect
shuffle entry cost to 3, with many more shuffles being generatable in a
single instruction.

Differential Revision: https://reviews.llvm.org/D123386

Added: 
    

Modified: 
    llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    llvm/lib/Target/AArch64/AArch64PerfectShuffle.h
    llvm/test/CodeGen/AArch64/arm64-dup.ll
    llvm/test/CodeGen/AArch64/arm64-rev.ll
    llvm/test/CodeGen/AArch64/insert-extend.ll
    llvm/test/CodeGen/AArch64/neon-bitwise-instructions.ll
    llvm/test/CodeGen/AArch64/neon-wide-splat.ll
    llvm/test/CodeGen/AArch64/shuffle-tbl34.ll
    llvm/test/CodeGen/AArch64/shuffles.ll
    llvm/utils/PerfectShuffle/PerfectShuffle.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp b/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
index 9d1fb367b9869..4a60896f69e59 100644
--- a/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+++ b/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
@@ -9745,8 +9745,12 @@ static SDValue tryFormConcatFromShuffle(SDValue Op, SelectionDAG &DAG) {
 }
 
 /// GeneratePerfectShuffle - Given an entry in the perfect-shuffle table, emit
-/// the specified operations to build the shuffle.
-static SDValue GeneratePerfectShuffle(unsigned PFEntry, SDValue LHS,
+/// the specified operations to build the shuffle. ID is the perfect-shuffle
+//ID, V1 and V2 are the original shuffle inputs. PFEntry is the Perfect shuffle
+//table entry and LHS/RHS are the immediate inputs for this stage of the
+//shuffle.
+static SDValue GeneratePerfectShuffle(unsigned ID, SDValue V1,
+                                      SDValue V2, unsigned PFEntry, SDValue LHS,
                                       SDValue RHS, SelectionDAG &DAG,
                                       const SDLoc &dl) {
   unsigned OpNum = (PFEntry >> 26) & 0x0F;
@@ -9763,12 +9767,13 @@ static SDValue GeneratePerfectShuffle(unsigned PFEntry, SDValue LHS,
     OP_VEXT1,
     OP_VEXT2,
     OP_VEXT3,
-    OP_VUZPL, // VUZP, left result
-    OP_VUZPR, // VUZP, right result
-    OP_VZIPL, // VZIP, left result
-    OP_VZIPR, // VZIP, right result
-    OP_VTRNL, // VTRN, left result
-    OP_VTRNR  // VTRN, right result
+    OP_VUZPL,  // VUZP, left result
+    OP_VUZPR,  // VUZP, right result
+    OP_VZIPL,  // VZIP, left result
+    OP_VZIPR,  // VZIP, right result
+    OP_VTRNL,  // VTRN, left result
+    OP_VTRNR,  // VTRN, right result
+    OP_MOVLANE // Move lane. RHSID is the lane to move into
   };
 
   if (OpNum == OP_COPY) {
@@ -9778,9 +9783,48 @@ static SDValue GeneratePerfectShuffle(unsigned PFEntry, SDValue LHS,
     return RHS;
   }
 
+  if (OpNum == OP_MOVLANE) {
+    // Decompose a PerfectShuffle ID to get the Mask for lane Elt
+    auto getPFIDLane = [](unsigned ID, int Elt) -> int {
+      assert(Elt < 4 && "Expected Perfect Lanes to be less than 4");
+      Elt = 3 - Elt;
+      while (Elt > 0) {
+        ID /= 9;
+        Elt--;
+      }
+      return (ID % 9 == 8) ? -1 : ID % 9;
+    };
+
+    // For OP_MOVLANE shuffles, the RHSID represents the lane to move into. We
+    // get the lane to move from from the PFID, which is always from the
+    // original vectors (V1 or V2).
+    SDValue OpLHS = GeneratePerfectShuffle(
+        LHSID, V1, V2, PerfectShuffleTable[LHSID], LHS, RHS, DAG, dl);
+    EVT VT = OpLHS.getValueType();
+    assert(RHSID < 8 && "Expected a lane index for RHSID!");
+    int MaskElt = getPFIDLane(ID, RHSID);
+    assert(MaskElt >= 0 && "Didn't expect an undef movlane index!");
+    unsigned ExtLane = MaskElt < 4 ? MaskElt : (MaskElt - 4);
+    SDValue Input = MaskElt < 4 ? V1 : V2;
+    // Be careful about creating illegal types. Use f16 instead of i16.
+    if (VT == MVT::v4i16) {
+      Input = DAG.getBitcast(MVT::v4f16, Input);
+      OpLHS = DAG.getBitcast(MVT::v4f16, OpLHS);
+    }
+    SDValue Ext = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl,
+                              Input.getValueType().getVectorElementType(),
+                              Input, DAG.getVectorIdxConstant(ExtLane, dl));
+    SDValue Ins =
+        DAG.getNode(ISD::INSERT_VECTOR_ELT, dl, Input.getValueType(), OpLHS,
+                    Ext, DAG.getVectorIdxConstant(RHSID & 0x3, dl));
+    return DAG.getBitcast(VT, Ins);
+  }
+
   SDValue OpLHS, OpRHS;
-  OpLHS = GeneratePerfectShuffle(PerfectShuffleTable[LHSID], LHS, RHS, DAG, dl);
-  OpRHS = GeneratePerfectShuffle(PerfectShuffleTable[RHSID], LHS, RHS, DAG, dl);
+  OpLHS = GeneratePerfectShuffle(LHSID, V1, V2, PerfectShuffleTable[LHSID], LHS,
+                                 RHS, DAG, dl);
+  OpRHS = GeneratePerfectShuffle(RHSID, V1, V2, PerfectShuffleTable[RHSID], LHS,
+                                 RHS, DAG, dl);
   EVT VT = OpLHS.getValueType();
 
   switch (OpNum) {
@@ -10239,7 +10283,8 @@ SDValue AArch64TargetLowering::LowerVECTOR_SHUFFLE(SDValue Op,
     unsigned PFTableIndex = PFIndexes[0] * 9 * 9 * 9 + PFIndexes[1] * 9 * 9 +
                             PFIndexes[2] * 9 + PFIndexes[3];
     unsigned PFEntry = PerfectShuffleTable[PFTableIndex];
-    return GeneratePerfectShuffle(PFEntry, V1, V2, DAG, dl);
+    return GeneratePerfectShuffle(PFTableIndex, V1, V2, PFEntry, V1, V2, DAG,
+                                  dl);
   }
 
   return GenerateTBL(Op, ShuffleMask, DAG);

diff  --git a/llvm/lib/Target/AArch64/AArch64PerfectShuffle.h b/llvm/lib/Target/AArch64/AArch64PerfectShuffle.h
index 065f55027c5d5..e58c104111799 100644
--- a/llvm/lib/Target/AArch64/AArch64PerfectShuffle.h
+++ b/llvm/lib/Target/AArch64/AArch64PerfectShuffle.h
@@ -15,182 +15,182 @@
 #define LLVM_LIB_TARGET_AARCH64_AARCH64PERFECTSHUFFLE_H
 
 // 31 entries have cost 0
-// 434 entries have cost 1
-// 2326 entries have cost 2
-// 3253 entries have cost 3
-// 517 entries have cost 4
+// 730 entries have cost 1
+// 3658 entries have cost 2
+// 2142 entries have cost 3
 
+// This table is 6561*4 = 26244 bytes in size.
 static const unsigned PerfectShuffleTable[6561 + 1] = {
     135053414U,  // <0,0,0,0>: Cost 1 vdup0 LHS
-    1543503974U, // <0,0,0,1>: Cost 2 vext2 <0,0,0,0>, LHS
+    2080972802U, // <0,0,0,1>: Cost 2 ins <0,0,u,1>, lane 2
     1679065190U, // <0,0,0,2>: Cost 2 vuzpl <0,2,0,2>, LHS
-    2568054923U, // <0,0,0,3>: Cost 3 vext1 <3,0,0,0>, <3,0,0,0>
+    2085707777U, // <0,0,0,3>: Cost 2 ins <0,u,0,3>, lane 1
     1476398390U, // <0,0,0,4>: Cost 2 vext1 <0,0,0,0>, RHS
-    2550140540U, // <0,0,0,5>: Cost 3 vext1 <0,0,0,0>, <5,0,7,0>
-    2550141269U, // <0,0,0,6>: Cost 3 vext1 <0,0,0,0>, <6,0,7,0>
-    2591945711U, // <0,0,0,7>: Cost 3 vext1 <7,0,0,0>, <7,0,0,0>
+    2080440323U, // <0,0,0,5>: Cost 2 ins <0,0,0,u>, lane 3
+    2080440323U, // <0,0,0,6>: Cost 2 ins <0,0,0,u>, lane 3
+    2080440323U, // <0,0,0,7>: Cost 2 ins <0,0,0,u>, lane 3
     135053414U,  // <0,0,0,u>: Cost 1 vdup0 LHS
     1812774912U, // <0,0,1,0>: Cost 2 vzipl LHS, <0,0,0,0>
     739033190U,  // <0,0,1,1>: Cost 1 vzipl LHS, LHS
     1812775076U, // <0,0,1,2>: Cost 2 vzipl LHS, <0,2,0,2>
-    1744830566U, // <0,0,1,3>: Cost 2 vuzpr <0,0,0,0>, LHS
+    2080514051U, // <0,0,1,3>: Cost 2 ins <0,0,1,u>, lane 3
     1812816210U, // <0,0,1,4>: Cost 2 vzipl LHS, <0,4,1,5>
-    2752807936U, // <0,0,1,5>: Cost 3 vuzpl <0,2,0,2>, <1,3,5,7>
-    2886517229U, // <0,0,1,6>: Cost 3 vzipl LHS, <0,6,0,7>
-    2591953904U, // <0,0,1,7>: Cost 3 vext1 <7,0,0,1>, <7,0,0,1>
+    2085797889U, // <0,0,1,5>: Cost 2 ins <0,u,1,5>, lane 1
+    2080514051U, // <0,0,1,6>: Cost 2 ins <0,0,1,u>, lane 3
+    2080514051U, // <0,0,1,7>: Cost 2 ins <0,0,1,u>, lane 3
     739033757U,  // <0,0,1,u>: Cost 1 vzipl LHS, LHS
     1946992640U, // <0,0,2,0>: Cost 2 vtrnl LHS, <0,0,0,0>
     1946992650U, // <0,0,2,1>: Cost 2 vtrnl LHS, <0,0,1,1>
     873250918U,  // <0,0,2,2>: Cost 1 vtrnl LHS, LHS
-    3020734654U, // <0,0,2,3>: Cost 3 vtrnl LHS, <0,2,3,1>
+    1012113409U, // <0,0,2,3>: Cost 1 ins LHS, lane 1
     1946992844U, // <0,0,2,4>: Cost 2 vtrnl LHS, <0,2,4,6>
-    2752808745U, // <0,0,2,5>: Cost 3 vuzpl <0,2,0,2>, <2,4,5,6>
-    2617247674U, // <0,0,2,6>: Cost 3 vext2 <0,0,0,0>, <2,6,3,7>
-    2591962097U, // <0,0,2,7>: Cost 3 vext1 <7,0,0,2>, <7,0,0,2>
+    2080587779U, // <0,0,2,5>: Cost 2 ins <0,0,2,u>, lane 3
+    2085879809U, // <0,0,2,6>: Cost 2 ins <0,u,2,6>, lane 1
+    2080587779U, // <0,0,2,7>: Cost 2 ins <0,0,2,u>, lane 3
     873250972U,  // <0,0,2,u>: Cost 1 vtrnl LHS, LHS
-    2635163787U, // <0,0,3,0>: Cost 3 vext2 <3,0,0,0>, <3,0,0,0>
-    2752809110U, // <0,0,3,1>: Cost 3 vuzpl <0,2,0,2>, <3,0,1,2>
-    2752809117U, // <0,0,3,2>: Cost 3 vuzpl <0,2,0,2>, <3,0,2,0>
-    2752809372U, // <0,0,3,3>: Cost 3 vuzpl <0,2,0,2>, <3,3,3,3>
-    2617248258U, // <0,0,3,4>: Cost 3 vext2 <0,0,0,0>, <3,4,5,6>
+    2080964610U, // <0,0,3,0>: Cost 2 ins <0,0,u,0>, lane 2
+    2080972802U, // <0,0,3,1>: Cost 2 ins <0,0,u,1>, lane 2
+    2128388096U, // <0,0,3,2>: Cost 2 ins <u,0,3,2>, lane 0
+    2013437973U, // <0,0,3,3>: Cost 2 vtrnr <0,0,2,3>, <0,0,2,3>
+    3154739202U, // <0,0,3,4>: Cost 3 ins <0,0,u,4>, lane 2
     2752809474U, // <0,0,3,5>: Cost 3 vuzpl <0,2,0,2>, <3,4,5,6>
-    3826551142U, // <0,0,3,6>: Cost 4 vuzpl <0,2,0,2>, <3,2,6,3>
+    3154755586U, // <0,0,3,6>: Cost 3 ins <0,0,u,6>, lane 2
     2818573312U, // <0,0,3,7>: Cost 3 vuzpr <0,0,0,0>, <1,3,5,7>
-    2752809173U, // <0,0,3,u>: Cost 3 vuzpl <0,2,0,2>, <3,0,u,2>
-    3021562020U, // <0,0,4,0>: Cost 3 vtrnl <0,2,4,5>, <0,2,0,2>
+    2080972802U, // <0,0,3,u>: Cost 2 ins <0,0,u,1>, lane 2
+    2080964610U, // <0,0,4,0>: Cost 2 ins <0,0,u,0>, lane 2
     1814708326U, // <0,0,4,1>: Cost 2 vzipl <0,4,1,5>, LHS
     1947828326U, // <0,0,4,2>: Cost 2 vtrnl <0,2,4,6>, LHS
-    4095312062U, // <0,0,4,3>: Cost 4 vtrnl <0,2,4,6>, <0,2,3,1>
+    2086002689U, // <0,0,4,3>: Cost 2 ins <0,u,4,3>, lane 1
     1947828428U, // <0,0,4,4>: Cost 2 vtrnl <0,2,4,6>, <0,2,4,6>
     1543507254U, // <0,0,4,5>: Cost 2 vext2 <0,0,0,0>, RHS
     1679068470U, // <0,0,4,6>: Cost 2 vuzpl <0,2,0,2>, RHS
-    3786998152U, // <0,0,4,7>: Cost 4 vext3 <4,7,5,0>, <0,4,7,5>
+    3154477059U, // <0,0,4,7>: Cost 3 ins <0,0,4,u>, lane 3
     1679068488U, // <0,0,4,u>: Cost 2 vuzpl <0,2,0,2>, RHS
-    2617249404U, // <0,0,5,0>: Cost 3 vext2 <0,0,0,0>, <5,0,7,0>
-    2617249488U, // <0,0,5,1>: Cost 3 vext2 <0,0,0,0>, <5,1,7,3>
-    3020324966U, // <0,0,5,2>: Cost 3 vtrnl <0,0,5,7>, LHS
-    4035200518U, // <0,0,5,3>: Cost 4 vzipr <1,4,0,5>, <2,1,0,3>
-    2617249734U, // <0,0,5,4>: Cost 3 vext2 <0,0,0,0>, <5,4,7,6>
-    2961458210U, // <0,0,5,5>: Cost 3 vzipr <1,4,0,5>, <1,4,0,5>
+    2080964610U, // <0,0,5,0>: Cost 2 ins <0,0,u,0>, lane 2
+    2128527360U, // <0,0,5,1>: Cost 2 ins <u,0,5,1>, lane 0
+    2080980994U, // <0,0,5,2>: Cost 2 ins <0,0,u,2>, lane 2
+    2086076417U, // <0,0,5,3>: Cost 2 ins <0,u,5,3>, lane 1
+    3202293760U, // <0,0,5,4>: Cost 3 ins <u,0,5,4>, lane 0
+    1947213953U, // <0,0,5,5>: Cost 2 vtrnl <0,1,5,3>, <0,1,5,3>
     2718712274U, // <0,0,5,6>: Cost 3 vext3 <5,6,7,0>, <0,5,6,7>
     1744833846U, // <0,0,5,7>: Cost 2 vuzpr <0,0,0,0>, RHS
-    1744833847U, // <0,0,5,u>: Cost 2 vuzpr <0,0,0,0>, RHS
-    2854850658U, // <0,0,6,0>: Cost 3 vuzpr <6,0,6,0>, <5,6,7,0>
-    2889867366U, // <0,0,6,1>: Cost 3 vzipl <0,6,2,7>, LHS
-    2955493540U, // <0,0,6,2>: Cost 3 vzipr <0,4,0,6>, <0,2,0,2>
-    4202975522U, // <0,0,6,3>: Cost 4 vtrnr <7,0,5,6>, <6,0,1,3>
-    2751468406U, // <0,0,6,4>: Cost 3 vuzpl <0,0,0,0>, <6,7,4,5>
-    3827880589U, // <0,0,6,5>: Cost 4 vuzpl <0,4,0,2>, <6,4,5,6>
-    2955493706U, // <0,0,6,6>: Cost 3 vzipr <0,4,0,6>, <0,4,0,6>
-    2657727309U, // <0,0,6,7>: Cost 3 vext2 <6,7,0,0>, <6,7,0,0>
-    2889867933U, // <0,0,6,u>: Cost 3 vzipl <0,6,2,7>, LHS
-    2659054575U, // <0,0,7,0>: Cost 3 vext2 <7,0,0,0>, <7,0,0,0>
-    2860454734U, // <0,0,7,1>: Cost 3 vuzpr <7,0,1,0>, <6,7,0,1>
-    2752812033U, // <0,0,7,2>: Cost 3 vuzpl <0,2,0,2>, <7,0,2,0>
-    2818576512U, // <0,0,7,3>: Cost 3 vuzpr <0,0,0,0>, <5,7,1,3>
-    2617251174U, // <0,0,7,4>: Cost 3 vext2 <0,0,0,0>, <7,4,5,6>
-    2751468902U, // <0,0,7,5>: Cost 3 vuzpl <0,0,0,0>, <7,4,5,6>
-    3659772189U, // <0,0,7,6>: Cost 4 vext1 <6,0,0,7>, <6,0,0,7>
-    3099379174U, // <0,0,7,7>: Cost 3 vtrnr <2,0,5,7>, <2,0,5,7>
-    2659054575U, // <0,0,7,u>: Cost 3 vext2 <7,0,0,0>, <7,0,0,0>
+    2128527360U, // <0,0,5,u>: Cost 2 ins <u,0,5,1>, lane 0
+    2080964610U, // <0,0,6,0>: Cost 2 ins <0,0,u,0>, lane 2
+    2080972802U, // <0,0,6,1>: Cost 2 ins <0,0,u,1>, lane 2
+    2128609280U, // <0,0,6,2>: Cost 2 ins <u,0,6,2>, lane 0
+    2086150145U, // <0,0,6,3>: Cost 2 ins <0,u,6,3>, lane 1
+    3202367488U, // <0,0,6,4>: Cost 3 ins <u,0,6,4>, lane 0
+    2617250536U, // <0,0,6,5>: Cost 3 vext2 <0,0,0,0>, <6,5,6,7>
+    1947287690U, // <0,0,6,6>: Cost 2 vtrnl <0,1,6,3>, <0,1,6,3>
+    2128650240U, // <0,0,6,7>: Cost 2 ins <u,0,6,7>, lane 0
+    2080972802U, // <0,0,6,u>: Cost 2 ins <0,0,u,1>, lane 2
+    2080964610U, // <0,0,7,0>: Cost 2 ins <0,0,u,0>, lane 2
+    2080972802U, // <0,0,7,1>: Cost 2 ins <0,0,u,1>, lane 2
+    2080980994U, // <0,0,7,2>: Cost 2 ins <0,0,u,2>, lane 2
+    2086223873U, // <0,0,7,3>: Cost 2 ins <0,u,7,3>, lane 1
+    3154739202U, // <0,0,7,4>: Cost 3 ins <0,0,u,4>, lane 2
+    2617251265U, // <0,0,7,5>: Cost 3 vext2 <0,0,0,0>, <7,5,6,7>
+    3154755586U, // <0,0,7,6>: Cost 3 ins <0,0,u,6>, lane 2
+    1947361427U, // <0,0,7,7>: Cost 2 vtrnl <0,1,7,3>, <0,1,7,3>
+    2080972802U, // <0,0,7,u>: Cost 2 ins <0,0,u,1>, lane 2
     135053414U,  // <0,0,u,0>: Cost 1 vdup0 LHS
     743678054U,  // <0,0,u,1>: Cost 1 vzipl LHS, LHS
     873693286U,  // <0,0,u,2>: Cost 1 vtrnl LHS, LHS
-    1744831133U, // <0,0,u,3>: Cost 2 vuzpr <0,0,0,0>, LHS
+    1012113409U, // <0,0,u,3>: Cost 1 ins LHS, lane 1
     1947435212U, // <0,0,u,4>: Cost 2 vtrnl LHS, <0,2,4,6>
-    1543510170U, // <0,0,u,5>: Cost 2 vext2 <0,0,0,0>, RHS
+    2085797889U, // <0,0,u,5>: Cost 2 ins <0,u,1,5>, lane 1
     1679071386U, // <0,0,u,6>: Cost 2 vuzpl <0,2,0,2>, RHS
-    1744834089U, // <0,0,u,7>: Cost 2 vuzpr <0,0,0,0>, RHS
+    2080514051U, // <0,0,u,7>: Cost 2 ins <0,0,1,u>, lane 3
     873693340U,  // <0,0,u,u>: Cost 1 vtrnl LHS, LHS
-    2618581002U, // <0,1,0,0>: Cost 3 vext2 <0,2,0,1>, <0,0,1,1>
+    2085683201U, // <0,1,0,0>: Cost 2 ins <0,u,0,0>, lane 1
     1680490834U, // <0,1,0,1>: Cost 2 vuzpl <0,4,1,5>, <0,4,1,5>
     1680490598U, // <0,1,0,2>: Cost 2 vuzpl <0,4,1,5>, LHS
-    2013266022U, // <0,1,0,3>: Cost 2 vtrnr <0,0,0,0>, LHS
-    2754232524U, // <0,1,0,4>: Cost 3 vuzpl <0,4,1,5>, <0,2,4,6>
-    3021243392U, // <0,1,0,5>: Cost 3 vtrnl <0,2,0,2>, <1,3,5,7>
-    2592019278U, // <0,1,0,6>: Cost 3 vext1 <7,0,1,0>, <6,7,0,1>
-    2592019448U, // <0,1,0,7>: Cost 3 vext1 <7,0,1,0>, <7,0,1,0>
-    1680490652U, // <0,1,0,u>: Cost 2 vuzpl <0,4,1,5>, LHS
+    1007910914U, // <0,1,0,3>: Cost 1 ins LHS, lane 2
+    2081660930U, // <0,1,0,4>: Cost 2 ins <0,1,u,4>, lane 2
+    2081669122U, // <0,1,0,5>: Cost 2 ins <0,1,u,5>, lane 2
+    2081677314U, // <0,1,0,6>: Cost 2 ins <0,1,u,6>, lane 2
+    2081685506U, // <0,1,0,7>: Cost 2 ins <0,1,u,7>, lane 2
+    1007910914U, // <0,1,0,u>: Cost 1 ins LHS, lane 2
     1812775670U, // <0,1,1,0>: Cost 2 vzipl LHS, <1,0,3,2>
     1812775732U, // <0,1,1,1>: Cost 2 vzipl LHS, <1,1,1,1>
     1812775830U, // <0,1,1,2>: Cost 2 vzipl LHS, <1,2,3,0>
-    1812775896U, // <0,1,1,3>: Cost 2 vzipl LHS, <1,3,1,3>
+    1007910914U, // <0,1,1,3>: Cost 1 ins LHS, lane 2
     1476480310U, // <0,1,1,4>: Cost 2 vext1 <0,0,1,1>, RHS
     1812817040U, // <0,1,1,5>: Cost 2 vzipl LHS, <1,5,3,7>
-    2886558945U, // <0,1,1,6>: Cost 3 vzipl LHS, <1,6,3,7>
-    2550223856U, // <0,1,1,7>: Cost 3 vext1 <0,0,1,1>, <7,0,0,1>
-    1812817261U, // <0,1,1,u>: Cost 2 vzipl LHS, <1,u,1,3>
-    1494401126U, // <0,1,2,0>: Cost 2 vext1 <3,0,1,2>, LHS
-    1946993460U, // <0,1,2,1>: Cost 2 vtrnl LHS, <1,1,1,1>
-    3020735454U, // <0,1,2,2>: Cost 3 vtrnl LHS, <1,3,2,0>
+    2081677314U, // <0,1,1,6>: Cost 2 ins <0,1,u,6>, lane 2
+    2081685506U, // <0,1,1,7>: Cost 2 ins <0,1,u,7>, lane 2
+    1007910914U, // <0,1,1,u>: Cost 1 ins LHS, lane 2
+    1007509507U, // <0,1,2,0>: Cost 1 ins LHS, lane 3
+    1007509507U, // <0,1,2,1>: Cost 1 ins LHS, lane 3
+    1007509507U, // <0,1,2,2>: Cost 1 ins LHS, lane 3
     835584U,     // <0,1,2,3>: Cost 0 copy LHS
-    1494404406U, // <0,1,2,4>: Cost 2 vext1 <3,0,1,2>, RHS
-    1946993664U, // <0,1,2,5>: Cost 2 vtrnl LHS, <1,3,5,7>
-    3020776862U, // <0,1,2,6>: Cost 3 vtrnl LHS, <1,u,6,7>
-    1518294010U, // <0,1,2,7>: Cost 2 vext1 <7,0,1,2>, <7,0,1,2>
+    1007509507U, // <0,1,2,4>: Cost 1 ins LHS, lane 3
+    1007509507U, // <0,1,2,5>: Cost 1 ins LHS, lane 3
+    1007509507U, // <0,1,2,6>: Cost 1 ins LHS, lane 3
+    1007509507U, // <0,1,2,7>: Cost 1 ins LHS, lane 3
     835584U,     // <0,1,2,u>: Cost 0 copy LHS
-    2692318156U, // <0,1,3,0>: Cost 3 vext3 <1,3,0,0>, <1,3,0,0>
-    2753530006U, // <0,1,3,1>: Cost 3 vuzpl <0,3,1,0>, <3,0,1,2>
-    2691875806U, // <0,1,3,2>: Cost 3 vext3 <1,2,3,0>, <1,3,2,0>
-    2753554844U, // <0,1,3,3>: Cost 3 vuzpl <0,3,1,3>, <3,3,3,3>
-    2754234544U, // <0,1,3,4>: Cost 3 vuzpl <0,4,1,5>, <3,0,4,1>
-    2753563138U, // <0,1,3,5>: Cost 3 vuzpl <0,3,1,4>, <3,4,5,6>
-    2586071330U, // <0,1,3,6>: Cost 3 vext1 <6,0,1,3>, <6,0,1,3>
-    2639817411U, // <0,1,3,7>: Cost 3 vext2 <3,7,0,1>, <3,7,0,1>
-    2754234581U, // <0,1,3,u>: Cost 3 vuzpl <0,4,1,5>, <3,0,u,2>
-    2888450806U, // <0,1,4,0>: Cost 3 vzipl <0,4,1,5>, <1,0,3,2>
-    3021570868U, // <0,1,4,1>: Cost 3 vtrnl <0,2,4,6>, <1,1,1,1>
-    3021571044U, // <0,1,4,2>: Cost 3 vtrnl <0,2,4,6>, <1,3,2,6>
-    3021570806U, // <0,1,4,3>: Cost 3 vtrnl <0,2,4,6>, <1,0,3,2>
-    2888451133U, // <0,1,4,4>: Cost 3 vzipl <0,4,1,5>, <1,4,3,5>
+    2081628162U, // <0,1,3,0>: Cost 2 ins <0,1,u,0>, lane 2
+    2081636354U, // <0,1,3,1>: Cost 2 ins <0,1,u,1>, lane 2
+    2081644546U, // <0,1,3,2>: Cost 2 ins <0,1,u,2>, lane 2
+    1007910914U, // <0,1,3,3>: Cost 1 ins LHS, lane 2
+    2081660930U, // <0,1,3,4>: Cost 2 ins <0,1,u,4>, lane 2
+    2081669122U, // <0,1,3,5>: Cost 2 ins <0,1,u,5>, lane 2
+    2081677314U, // <0,1,3,6>: Cost 2 ins <0,1,u,6>, lane 2
+    2081685506U, // <0,1,3,7>: Cost 2 ins <0,1,u,7>, lane 2
+    1007910914U, // <0,1,3,u>: Cost 1 ins LHS, lane 2
+    2081628162U, // <0,1,4,0>: Cost 2 ins <0,1,u,0>, lane 2
+    2081636354U, // <0,1,4,1>: Cost 2 ins <0,1,u,1>, lane 2
+    2081644546U, // <0,1,4,2>: Cost 2 ins <0,1,u,2>, lane 2
+    1007910914U, // <0,1,4,3>: Cost 1 ins LHS, lane 2
+    2081660930U, // <0,1,4,4>: Cost 2 ins <0,1,u,4>, lane 2
     1557450038U, // <0,1,4,5>: Cost 2 vext2 <2,3,0,1>, RHS
     1680493878U, // <0,1,4,6>: Cost 2 vuzpl <0,4,1,5>, RHS
-    2592052220U, // <0,1,4,7>: Cost 3 vext1 <7,0,1,4>, <7,0,1,4>
-    1680493896U, // <0,1,4,u>: Cost 2 vuzpl <0,4,1,5>, RHS
-    2889204470U, // <0,1,5,0>: Cost 3 vzipl <0,5,2,7>, <1,0,3,2>
-    2754235976U, // <0,1,5,1>: Cost 3 vuzpl <0,4,1,5>, <5,0,1,2>
-    2973403286U, // <0,1,5,2>: Cost 3 vzipr <3,4,0,5>, <3,0,1,2>
-    2691875984U, // <0,1,5,3>: Cost 3 vext3 <1,2,3,0>, <1,5,3,7>
-    2754236002U, // <0,1,5,4>: Cost 3 vuzpl <0,4,1,5>, <5,0,4,1>
-    2754236340U, // <0,1,5,5>: Cost 3 vuzpl <0,4,1,5>, <5,4,5,6>
-    2651099172U, // <0,1,5,6>: Cost 3 vext2 <5,6,0,1>, <5,6,0,1>
+    2081685506U, // <0,1,4,7>: Cost 2 ins <0,1,u,7>, lane 2
+    1007910914U, // <0,1,4,u>: Cost 1 ins LHS, lane 2
+    2081628162U, // <0,1,5,0>: Cost 2 ins <0,1,u,0>, lane 2
+    2081636354U, // <0,1,5,1>: Cost 2 ins <0,1,u,1>, lane 2
+    2081644546U, // <0,1,5,2>: Cost 2 ins <0,1,u,2>, lane 2
+    1007910914U, // <0,1,5,3>: Cost 1 ins LHS, lane 2
+    2081660930U, // <0,1,5,4>: Cost 2 ins <0,1,u,4>, lane 2
+    2081669122U, // <0,1,5,5>: Cost 2 ins <0,1,u,5>, lane 2
+    2081677314U, // <0,1,5,6>: Cost 2 ins <0,1,u,6>, lane 2
     1744915766U, // <0,1,5,7>: Cost 2 vuzpr <0,0,1,1>, RHS
-    1744915767U, // <0,1,5,u>: Cost 2 vuzpr <0,0,1,1>, RHS
-    2592063590U, // <0,1,6,0>: Cost 3 vext1 <7,0,1,6>, LHS
-    3826659617U, // <0,1,6,1>: Cost 4 vuzpl <0,2,1,6>, <6,0,1,2>
-    2654417337U, // <0,1,6,2>: Cost 3 vext2 <6,2,0,1>, <6,2,0,1>
-    3128934502U, // <0,1,6,3>: Cost 3 vtrnr <7,0,1,6>, LHS
-    2592066870U, // <0,1,6,4>: Cost 3 vext1 <7,0,1,6>, RHS
-    3826659981U, // <0,1,6,5>: Cost 4 vuzpl <0,2,1,6>, <6,4,5,6>
-    2657071869U, // <0,1,6,6>: Cost 3 vext2 <6,6,0,1>, <6,6,0,1>
+    1007910914U, // <0,1,5,u>: Cost 1 ins LHS, lane 2
+    2081628162U, // <0,1,6,0>: Cost 2 ins <0,1,u,0>, lane 2
+    2081636354U, // <0,1,6,1>: Cost 2 ins <0,1,u,1>, lane 2
+    2081644546U, // <0,1,6,2>: Cost 2 ins <0,1,u,2>, lane 2
+    1007910914U, // <0,1,6,3>: Cost 1 ins LHS, lane 2
+    2081660930U, // <0,1,6,4>: Cost 2 ins <0,1,u,4>, lane 2
+    2081669122U, // <0,1,6,5>: Cost 2 ins <0,1,u,5>, lane 2
+    2081677314U, // <0,1,6,6>: Cost 2 ins <0,1,u,6>, lane 2
     1583993678U, // <0,1,6,7>: Cost 2 vext2 <6,7,0,1>, <6,7,0,1>
-    1584657311U, // <0,1,6,u>: Cost 2 vext2 <6,u,0,1>, <6,u,0,1>
-    2657735672U, // <0,1,7,0>: Cost 3 vext2 <6,7,0,1>, <7,0,1,0>
-    2751550458U, // <0,1,7,1>: Cost 3 vuzpl <0,0,1,1>, <7,0,1,2>
-    2631193772U, // <0,1,7,2>: Cost 3 vext2 <2,3,0,1>, <7,2,3,0>
-    3099377766U, // <0,1,7,3>: Cost 3 vtrnr <2,0,5,7>, LHS
-    2657736038U, // <0,1,7,4>: Cost 3 vext2 <6,7,0,1>, <7,4,5,6>
-    2751550822U, // <0,1,7,5>: Cost 3 vuzpl <0,0,1,1>, <7,4,5,6>
-    2657736158U, // <0,1,7,6>: Cost 3 vext2 <6,7,0,1>, <7,6,1,0>
-    2657736300U, // <0,1,7,7>: Cost 3 vext2 <6,7,0,1>, <7,7,7,7>
-    3099377771U, // <0,1,7,u>: Cost 3 vtrnr <2,0,5,7>, LHS
-    1817420534U, // <0,1,u,0>: Cost 2 vzipl LHS, <1,0,3,2>
-    1947435828U, // <0,1,u,1>: Cost 2 vtrnl LHS, <1,1,1,1>
-    1680496430U, // <0,1,u,2>: Cost 2 vuzpl <0,4,1,5>, LHS
+    1007910914U, // <0,1,6,u>: Cost 1 ins LHS, lane 2
+    2081628162U, // <0,1,7,0>: Cost 2 ins <0,1,u,0>, lane 2
+    2081636354U, // <0,1,7,1>: Cost 2 ins <0,1,u,1>, lane 2
+    2081644546U, // <0,1,7,2>: Cost 2 ins <0,1,u,2>, lane 2
+    1007910914U, // <0,1,7,3>: Cost 1 ins LHS, lane 2
+    2081660930U, // <0,1,7,4>: Cost 2 ins <0,1,u,4>, lane 2
+    2081669122U, // <0,1,7,5>: Cost 2 ins <0,1,u,5>, lane 2
+    2081677314U, // <0,1,7,6>: Cost 2 ins <0,1,u,6>, lane 2
+    2081685506U, // <0,1,7,7>: Cost 2 ins <0,1,u,7>, lane 2
+    1007910914U, // <0,1,7,u>: Cost 1 ins LHS, lane 2
+    1007509507U, // <0,1,u,0>: Cost 1 ins LHS, lane 3
+    1007509507U, // <0,1,u,1>: Cost 1 ins LHS, lane 3
+    1007509507U, // <0,1,u,2>: Cost 1 ins LHS, lane 3
     835584U,     // <0,1,u,3>: Cost 0 copy LHS
-    1494453558U, // <0,1,u,4>: Cost 2 vext1 <3,0,1,u>, RHS
-    1947436032U, // <0,1,u,5>: Cost 2 vtrnl LHS, <1,3,5,7>
-    1680496794U, // <0,1,u,6>: Cost 2 vuzpl <0,4,1,5>, RHS
-    1518343168U, // <0,1,u,7>: Cost 2 vext1 <7,0,1,u>, <7,0,1,u>
+    1007509507U, // <0,1,u,4>: Cost 1 ins LHS, lane 3
+    1007509507U, // <0,1,u,5>: Cost 1 ins LHS, lane 3
+    1007509507U, // <0,1,u,6>: Cost 1 ins LHS, lane 3
+    1007509507U, // <0,1,u,7>: Cost 1 ins LHS, lane 3
     835584U,     // <0,1,u,u>: Cost 0 copy LHS
     1678557184U, // <0,2,0,0>: Cost 2 vuzpl LHS, <0,0,0,0>
     1678598154U, // <0,2,0,1>: Cost 2 vuzpl LHS, <0,0,1,1>
     604815462U,  // <0,2,0,2>: Cost 1 vuzpl LHS, LHS
-    1879048294U, // <0,2,0,3>: Cost 2 vzipr <0,0,0,0>, LHS
+    2081767427U, // <0,2,0,3>: Cost 2 ins <0,2,0,u>, lane 3
     1678598348U, // <0,2,0,4>: Cost 2 vuzpl LHS, <0,2,4,6>
-    3021244040U, // <0,2,0,5>: Cost 3 vtrnl <0,2,0,2>, <2,2,5,7>
-    2586120488U, // <0,2,0,6>: Cost 3 vext1 <6,0,2,0>, <6,0,2,0>
-    2592093185U, // <0,2,0,7>: Cost 3 vext1 <7,0,2,0>, <7,0,2,0>
+    2081767427U, // <0,2,0,5>: Cost 2 ins <0,2,0,u>, lane 3
+    2082340866U, // <0,2,0,6>: Cost 2 ins <0,2,u,6>, lane 2
+    2081767427U, // <0,2,0,7>: Cost 2 ins <0,2,0,u>, lane 3
     604815516U,  // <0,2,0,u>: Cost 1 vuzpl LHS, LHS
     2752340940U, // <0,2,1,0>: Cost 3 vuzpl LHS, <1,3,0,0>
     1678558004U, // <0,2,1,1>: Cost 2 vuzpl LHS, <1,1,1,1>
@@ -202,707 +202,707 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2860466282U, // <0,2,1,7>: Cost 3 vuzpr <7,0,1,2>, <0,1,2,7>
     1678598947U, // <0,2,1,u>: Cost 2 vuzpl LHS, <1,0,u,2>
     1678558886U, // <0,2,2,0>: Cost 2 vuzpl LHS, <2,3,0,1>
-    2752300718U, // <0,2,2,1>: Cost 3 vuzpl LHS, <2,3,1,0>
+    2085838849U, // <0,2,2,1>: Cost 2 ins <0,u,2,1>, lane 1
     1678558824U, // <0,2,2,2>: Cost 2 vuzpl LHS, <2,2,2,2>
-    1946994290U, // <0,2,2,3>: Cost 2 vtrnl LHS, <2,2,3,3>
+    1012113409U, // <0,2,2,3>: Cost 1 ins LHS, lane 1
     1678558926U, // <0,2,2,4>: Cost 2 vuzpl LHS, <2,3,4,5>
-    2954133851U, // <0,2,2,5>: Cost 3 vzipr <0,2,0,2>, <0,4,2,5>
-    2618591162U, // <0,2,2,6>: Cost 3 vext2 <0,2,0,2>, <2,6,3,7>
-    3093217494U, // <0,2,2,7>: Cost 3 vtrnr <1,0,3,2>, <0,2,5,7>
-    1678558958U, // <0,2,2,u>: Cost 2 vuzpl LHS, <2,3,u,1>
-    2752301195U, // <0,2,3,0>: Cost 3 vuzpl LHS, <3,0,0,0>
+    2085871617U, // <0,2,2,5>: Cost 2 ins <0,u,2,5>, lane 1
+    2085879809U, // <0,2,2,6>: Cost 2 ins <0,u,2,6>, lane 1
+    2085888001U, // <0,2,2,7>: Cost 2 ins <0,u,2,7>, lane 1
+    1012113409U, // <0,2,2,u>: Cost 1 ins LHS, lane 1
+    2129698816U, // <0,2,3,0>: Cost 2 ins <u,2,3,0>, lane 0
     1678559382U, // <0,2,3,1>: Cost 2 vuzpl LHS, <3,0,1,2>
-    2752301297U, // <0,2,3,2>: Cost 3 vuzpl LHS, <3,1,2,3>
+    2082308098U, // <0,2,3,2>: Cost 2 ins <0,2,u,2>, lane 2
     1678559644U, // <0,2,3,3>: Cost 2 vuzpl LHS, <3,3,3,3>
-    2618591746U, // <0,2,3,4>: Cost 3 vext2 <0,2,0,2>, <3,4,5,6>
+    2129731584U, // <0,2,3,4>: Cost 2 ins <u,2,3,4>, lane 0
     1678559746U, // <0,2,3,5>: Cost 2 vuzpl LHS, <3,4,5,6>
-    2756946278U, // <0,2,3,6>: Cost 3 vuzpl LHS, <3,2,6,3>
+    2082340866U, // <0,2,3,6>: Cost 2 ins <0,2,u,6>, lane 2
     2824782848U, // <0,2,3,7>: Cost 3 vuzpr <1,0,3,2>, <1,3,5,7>
     1678559445U, // <0,2,3,u>: Cost 2 vuzpl LHS, <3,0,u,2>
-    1678560588U, // <0,2,4,0>: Cost 2 vuzpl LHS, <4,6,0,2>
-    3021572004U, // <0,2,4,1>: Cost 3 vtrnl <0,2,4,6>, <2,6,1,3>
-    3021571688U, // <0,2,4,2>: Cost 3 vtrnl <0,2,4,6>, <2,2,2,2>
-    2954149990U, // <0,2,4,3>: Cost 3 vzipr <0,2,0,4>, LHS
-    1678560464U, // <0,2,4,4>: Cost 2 vuzpl LHS, <4,4,4,4>
+    2082062339U, // <0,2,4,0>: Cost 2 ins <0,2,4,u>, lane 3
+    2082062339U, // <0,2,4,1>: Cost 2 ins <0,2,4,u>, lane 3
+    2082308098U, // <0,2,4,2>: Cost 2 ins <0,2,u,2>, lane 2
+    2082062339U, // <0,2,4,3>: Cost 2 ins <0,2,4,u>, lane 3
+    2082062339U, // <0,2,4,4>: Cost 2 ins <0,2,4,u>, lane 3
     1544850742U, // <0,2,4,5>: Cost 2 vext2 <0,2,0,2>, RHS
     604818742U,  // <0,2,4,6>: Cost 1 vuzpl LHS, RHS
-    2592125957U, // <0,2,4,7>: Cost 3 vext1 <7,0,2,4>, <7,0,2,4>
+    2082062339U, // <0,2,4,7>: Cost 2 ins <0,2,4,u>, lane 3
     604818760U,  // <0,2,4,u>: Cost 1 vuzpl LHS, RHS
     3105260438U, // <0,2,5,0>: Cost 3 vtrnr <3,0,4,5>, <1,2,3,0>
     1678561408U, // <0,2,5,1>: Cost 2 vuzpl LHS, <5,7,1,3>
-    2752303238U, // <0,2,5,2>: Cost 3 vuzpl LHS, <5,7,2,0>
-    2961457254U, // <0,2,5,3>: Cost 3 vzipr <1,4,0,5>, LHS
+    2082308098U, // <0,2,5,2>: Cost 2 ins <0,2,u,2>, lane 2
+    2086076417U, // <0,2,5,3>: Cost 2 ins <0,u,5,3>, lane 1
     2756947554U, // <0,2,5,4>: Cost 3 vuzpl LHS, <5,0,4,1>
     1678561284U, // <0,2,5,5>: Cost 2 vuzpl LHS, <5,5,5,5>
-    2645135458U, // <0,2,5,6>: Cost 3 vext2 <4,6,0,2>, <5,6,7,0>
+    2082340866U, // <0,2,5,6>: Cost 2 ins <0,2,u,6>, lane 2
     1751043382U, // <0,2,5,7>: Cost 2 vuzpr <1,0,3,2>, RHS
     1751043383U, // <0,2,5,u>: Cost 2 vuzpr <1,0,3,2>, RHS
     1678562126U, // <0,2,6,0>: Cost 2 vuzpl LHS, <6,7,0,1>
     2756948257U, // <0,2,6,1>: Cost 3 vuzpl LHS, <6,0,1,2>
-    2756948268U, // <0,2,6,2>: Cost 3 vuzpl LHS, <6,0,2,4>
-    2955493478U, // <0,2,6,3>: Cost 3 vzipr <0,4,0,6>, LHS
+    2082308098U, // <0,2,6,2>: Cost 2 ins <0,2,u,2>, lane 2
+    2086150145U, // <0,2,6,3>: Cost 2 ins <0,u,6,3>, lane 1
     1678562166U, // <0,2,6,4>: Cost 2 vuzpl LHS, <6,7,4,5>
     2756948621U, // <0,2,6,5>: Cost 3 vuzpl LHS, <6,4,5,6>
-    1678562104U, // <0,2,6,6>: Cost 2 vuzpl LHS, <6,6,6,6>
+    2082340866U, // <0,2,6,6>: Cost 2 ins <0,2,u,6>, lane 2
     1678561786U, // <0,2,6,7>: Cost 2 vuzpl LHS, <6,2,7,3>
-    1678561795U, // <0,2,6,u>: Cost 2 vuzpl LHS, <6,2,u,3>
+    2082308098U, // <0,2,6,u>: Cost 2 ins <0,2,u,2>, lane 2
     3099378582U, // <0,2,7,0>: Cost 3 vtrnr <2,0,5,7>, <1,2,3,0>
     1678562298U, // <0,2,7,1>: Cost 2 vuzpl LHS, <7,0,1,2>
-    2818740342U, // <0,2,7,2>: Cost 3 vuzpr <0,0,2,2>, <5,7,0,2>
-    2968109158U, // <0,2,7,3>: Cost 3 vzipr <2,5,0,7>, LHS
+    2082308098U, // <0,2,7,2>: Cost 2 ins <0,2,u,2>, lane 2
+    2130018304U, // <0,2,7,3>: Cost 2 ins <u,2,7,3>, lane 0
     2645136742U, // <0,2,7,4>: Cost 3 vext2 <4,6,0,2>, <7,4,5,6>
     1678562662U, // <0,2,7,5>: Cost 2 vuzpl LHS, <7,4,5,6>
-    2752304330U, // <0,2,7,6>: Cost 3 vuzpl LHS, <7,2,6,3>
+    2082340866U, // <0,2,7,6>: Cost 2 ins <0,2,u,6>, lane 2
     1678562924U, // <0,2,7,7>: Cost 2 vuzpl LHS, <7,7,7,7>
-    1678562361U, // <0,2,7,u>: Cost 2 vuzpl LHS, <7,0,u,2>
+    2082308098U, // <0,2,7,u>: Cost 2 ins <0,2,u,2>, lane 2
     1947436710U, // <0,2,u,0>: Cost 2 vtrnl LHS, <2,3,0,1>
     1678603987U, // <0,2,u,1>: Cost 2 vuzpl LHS, <u,0,1,2>
     604821294U,  // <0,2,u,2>: Cost 1 vuzpl LHS, LHS
-    1947436658U, // <0,2,u,3>: Cost 2 vtrnl LHS, <2,2,3,3>
+    1012113409U, // <0,2,u,3>: Cost 1 ins LHS, lane 1
     1947436750U, // <0,2,u,4>: Cost 2 vtrnl LHS, <2,3,4,5>
     1678604351U, // <0,2,u,5>: Cost 2 vuzpl LHS, <u,4,5,6>
     604821658U,  // <0,2,u,6>: Cost 1 vuzpl LHS, RHS
     1751043625U, // <0,2,u,7>: Cost 2 vuzpr <1,0,3,2>, RHS
     604821348U,  // <0,2,u,u>: Cost 1 vuzpl LHS, LHS
-    2556329984U, // <0,3,0,0>: Cost 3 vext1 <1,0,3,0>, <0,0,0,0>
-    3021244566U, // <0,3,0,1>: Cost 3 vtrnl <0,2,0,2>, <3,0,1,2>
-    3021244573U, // <0,3,0,2>: Cost 3 vtrnl <0,2,0,2>, <3,0,2,0>
-    3021244828U, // <0,3,0,3>: Cost 3 vtrnl <0,2,0,2>, <3,3,3,3>
+    2085683201U, // <0,3,0,0>: Cost 2 ins <0,u,0,0>, lane 1
+    2130149376U, // <0,3,0,1>: Cost 2 ins <u,3,0,1>, lane 0
+    2085699585U, // <0,3,0,2>: Cost 2 ins <0,u,0,2>, lane 1
+    1745002517U, // <0,3,0,3>: Cost 2 vuzpr <0,0,2,3>, <0,0,2,3>
     2556333366U, // <0,3,0,4>: Cost 3 vext1 <1,0,3,0>, RHS
     3021244930U, // <0,3,0,5>: Cost 3 vtrnl <0,2,0,2>, <3,4,5,6>
-    4094986598U, // <0,3,0,6>: Cost 4 vtrnl <0,2,0,2>, <3,2,6,3>
+    3159474177U, // <0,3,0,6>: Cost 3 ins <0,u,0,6>, lane 1
     2952791184U, // <0,3,0,7>: Cost 3 vzipr <0,0,0,0>, <1,5,3,7>
-    3021244629U, // <0,3,0,u>: Cost 3 vtrnl <0,2,0,2>, <3,0,u,2>
+    2130149376U, // <0,3,0,u>: Cost 2 ins <u,3,0,1>, lane 0
     1812777110U, // <0,3,1,0>: Cost 2 vzipl LHS, <3,0,1,2>
-    2886519007U, // <0,3,1,1>: Cost 3 vzipl LHS, <3,1,0,3>
+    2085765121U, // <0,3,1,1>: Cost 2 ins <0,u,1,1>, lane 1
     2886519105U, // <0,3,1,2>: Cost 3 vzipl LHS, <3,2,2,2>
     1812777372U, // <0,3,1,3>: Cost 2 vzipl LHS, <3,3,3,3>
     1812777474U, // <0,3,1,4>: Cost 2 vzipl LHS, <3,4,5,6>
-    3021998594U, // <0,3,1,5>: Cost 3 vtrnl <0,3,1,4>, <3,4,5,6>
-    2886519416U, // <0,3,1,6>: Cost 3 vzipl LHS, <3,6,0,7>
+    2085797889U, // <0,3,1,5>: Cost 2 ins <0,u,1,5>, lane 1
+    3159547905U, // <0,3,1,6>: Cost 3 ins <0,u,1,6>, lane 1
     2966733968U, // <0,3,1,7>: Cost 3 vzipr <2,3,0,1>, <1,5,3,7>
     1812777758U, // <0,3,1,u>: Cost 2 vzipl LHS, <3,u,1,2>
     1482604646U, // <0,3,2,0>: Cost 2 vext1 <1,0,3,2>, LHS
     1946994838U, // <0,3,2,1>: Cost 2 vtrnl LHS, <3,0,1,2>
-    3020736753U, // <0,3,2,2>: Cost 3 vtrnl LHS, <3,1,2,3>
-    1946995100U, // <0,3,2,3>: Cost 2 vtrnl LHS, <3,3,3,3>
+    2085847041U, // <0,3,2,2>: Cost 2 ins <0,u,2,2>, lane 1
+    1012113409U, // <0,3,2,3>: Cost 1 ins LHS, lane 1
     1482607926U, // <0,3,2,4>: Cost 2 vext1 <1,0,3,2>, RHS
     1946995202U, // <0,3,2,5>: Cost 2 vtrnl LHS, <3,4,5,6>
-    3025381734U, // <0,3,2,6>: Cost 3 vtrnl LHS, <3,2,6,3>
-    2954134672U, // <0,3,2,7>: Cost 3 vzipr <0,2,0,2>, <1,5,3,7>
-    1946994901U, // <0,3,2,u>: Cost 2 vtrnl LHS, <3,0,u,2>
+    2085879809U, // <0,3,2,6>: Cost 2 ins <0,u,2,6>, lane 1
+    2085888001U, // <0,3,2,7>: Cost 2 ins <0,u,2,7>, lane 1
+    1012113409U, // <0,3,2,u>: Cost 1 ins LHS, lane 1
     2887747734U, // <0,3,3,0>: Cost 3 vzipl <0,3,1,0>, <3,0,1,2>
     2753022102U, // <0,3,3,1>: Cost 3 vuzpl <0,2,3,1>, <3,0,1,2>
     2965422838U, // <0,3,3,2>: Cost 3 vzipr <2,1,0,3>, <1,0,3,2>
-    2753038748U, // <0,3,3,3>: Cost 3 vuzpl <0,2,3,3>, <3,3,3,3>
+    2130386944U, // <0,3,3,3>: Cost 2 ins <u,3,3,3>, lane 0
     2887780866U, // <0,3,3,4>: Cost 3 vzipl <0,3,1,4>, <3,4,5,6>
     2753055234U, // <0,3,3,5>: Cost 3 vuzpl <0,2,3,5>, <3,4,5,6>
-    3830786406U, // <0,3,3,6>: Cost 4 vuzpl <0,u,3,6>, <3,2,6,3>
-    3769600452U, // <0,3,3,7>: Cost 4 vext3 <1,u,3,0>, <3,3,7,7>
-    2753079509U, // <0,3,3,u>: Cost 3 vuzpl <0,2,3,u>, <3,0,u,2>
+    2752375389U, // <0,3,3,6>: Cost 3 vuzpl <0,1,3,3>, <3,5,6,7>
+    3204161536U, // <0,3,3,7>: Cost 3 ins <u,3,3,7>, lane 0
+    2130386944U, // <0,3,3,u>: Cost 2 ins <u,3,3,3>, lane 0
     2888452246U, // <0,3,4,0>: Cost 3 vzipl <0,4,1,5>, <3,0,1,2>
     3021572246U, // <0,3,4,1>: Cost 3 vtrnl <0,2,4,6>, <3,0,1,2>
     3021572257U, // <0,3,4,2>: Cost 3 vtrnl <0,2,4,6>, <3,0,2,4>
-    3021572508U, // <0,3,4,3>: Cost 3 vtrnl <0,2,4,6>, <3,3,3,3>
+    2086002689U, // <0,3,4,3>: Cost 2 ins <0,u,4,3>, lane 1
     2888452610U, // <0,3,4,4>: Cost 3 vzipl <0,4,1,5>, <3,4,5,6>
-    3021572610U, // <0,3,4,5>: Cost 3 vtrnl <0,2,4,6>, <3,4,5,6>
-    2753023286U, // <0,3,4,6>: Cost 3 vuzpl <0,2,3,1>, RHS
-    4027892880U, // <0,3,4,7>: Cost 4 vzipr <0,2,0,4>, <1,5,3,7>
-    2753023304U, // <0,3,4,u>: Cost 3 vuzpl <0,2,3,1>, RHS
-    3630112870U, // <0,3,5,0>: Cost 4 vext1 <1,0,3,5>, LHS
-    3630113529U, // <0,3,5,1>: Cost 4 vext1 <1,0,3,5>, <1,0,3,5>
+    2130477056U, // <0,3,4,5>: Cost 2 ins <u,3,4,5>, lane 0
+    2086027265U, // <0,3,4,6>: Cost 2 ins <0,u,4,6>, lane 1
+    2818747621U, // <0,3,4,7>: Cost 3 vuzpr <0,0,2,3>, <4,4,6,7>
+    2130477056U, // <0,3,4,u>: Cost 2 ins <u,3,4,5>, lane 0
+    3204251648U, // <0,3,5,0>: Cost 3 ins <u,3,5,0>, lane 0
+    3204259840U, // <0,3,5,1>: Cost 3 ins <u,3,5,1>, lane 0
     2961457910U, // <0,3,5,2>: Cost 3 vzipr <1,4,0,5>, <1,0,3,2>
-    4035199816U, // <0,3,5,3>: Cost 4 vzipr <1,4,0,5>, <1,1,3,3>
+    2086076417U, // <0,3,5,3>: Cost 2 ins <0,u,5,3>, lane 1
     2232846516U, // <0,3,5,4>: Cost 3 vrev <3,0,4,5>
-    4172957390U, // <0,3,5,5>: Cost 4 vtrnr <2,0,3,5>, <2,3,4,5>
+    3204292608U, // <0,3,5,5>: Cost 3 ins <u,3,5,5>, lane 0
     2653769826U, // <0,3,5,6>: Cost 3 vext2 <6,1,0,3>, <5,6,7,0>
-    2830617910U, // <0,3,5,7>: Cost 3 vuzpr <2,0,1,3>, RHS
-    2830617911U, // <0,3,5,u>: Cost 3 vuzpr <2,0,1,3>, RHS
+    2130567168U, // <0,3,5,7>: Cost 2 ins <u,3,5,7>, lane 0
+    2130567168U, // <0,3,5,u>: Cost 2 ins <u,3,5,7>, lane 0
     2854506594U, // <0,3,6,0>: Cost 3 vuzpr <6,0,1,3>, <5,6,7,0>
     2653770090U, // <0,3,6,1>: Cost 3 vext2 <6,1,0,3>, <6,1,0,3>
-    4029235958U, // <0,3,6,2>: Cost 4 vzipr <0,4,0,6>, <1,0,3,2>
-    4029236040U, // <0,3,6,3>: Cost 4 vzipr <0,4,0,6>, <1,1,3,3>
-    4029236122U, // <0,3,6,4>: Cost 4 vzipr <0,4,0,6>, <1,2,3,4>
-    3727512242U, // <0,3,6,5>: Cost 4 vext2 <6,1,0,3>, <6,5,0,7>
-    3792456365U, // <0,3,6,6>: Cost 4 vext3 <5,6,7,0>, <3,6,6,6>
-    2706770608U, // <0,3,6,7>: Cost 3 vext3 <3,6,7,0>, <3,6,7,0>
-    2658415521U, // <0,3,6,u>: Cost 3 vext2 <6,u,0,3>, <6,u,0,3>
+    3204341760U, // <0,3,6,2>: Cost 3 ins <u,3,6,2>, lane 0
+    2086150145U, // <0,3,6,3>: Cost 2 ins <0,u,6,3>, lane 1
+    3204358144U, // <0,3,6,4>: Cost 3 ins <u,3,6,4>, lane 0
+    3204366336U, // <0,3,6,5>: Cost 3 ins <u,3,6,5>, lane 0
+    3204374528U, // <0,3,6,6>: Cost 3 ins <u,3,6,6>, lane 0
+    2130640896U, // <0,3,6,7>: Cost 2 ins <u,3,6,7>, lane 0
+    2086150145U, // <0,3,6,u>: Cost 2 ins <0,u,6,3>, lane 1
     2968109974U, // <0,3,7,0>: Cost 3 vzipr <2,5,0,7>, <1,2,3,0>
     2659742787U, // <0,3,7,1>: Cost 3 vext2 <7,1,0,3>, <7,1,0,3>
     2660406420U, // <0,3,7,2>: Cost 3 vext2 <7,2,0,3>, <7,2,0,3>
-    3769600740U, // <0,3,7,3>: Cost 4 vext3 <1,u,3,0>, <3,7,3,7>
-    3769600747U, // <0,3,7,4>: Cost 4 vext3 <1,u,3,0>, <3,7,4,5>
-    3769600758U, // <0,3,7,5>: Cost 4 vext3 <1,u,3,0>, <3,7,5,7>
-    4048487000U, // <0,3,7,6>: Cost 4 vzipr <3,6,0,7>, <0,7,3,6>
-    4172973056U, // <0,3,7,7>: Cost 4 vtrnr <2,0,3,7>, <1,3,5,7>
-    2664388218U, // <0,3,7,u>: Cost 3 vext2 <7,u,0,3>, <7,u,0,3>
+    2086223873U, // <0,3,7,3>: Cost 2 ins <0,u,7,3>, lane 1
+    3204431872U, // <0,3,7,4>: Cost 3 ins <u,3,7,4>, lane 0
+    3204440064U, // <0,3,7,5>: Cost 3 ins <u,3,7,5>, lane 0
+    2752378305U, // <0,3,7,6>: Cost 3 vuzpl <0,1,3,3>, <7,5,6,7>
+    3204456448U, // <0,3,7,7>: Cost 3 ins <u,3,7,7>, lane 0
+    2086223873U, // <0,3,7,u>: Cost 2 ins <0,u,7,3>, lane 1
     1817421974U, // <0,3,u,0>: Cost 2 vzipl LHS, <3,0,1,2>
     1947437206U, // <0,3,u,1>: Cost 2 vtrnl LHS, <3,0,1,2>
-    3021179037U, // <0,3,u,2>: Cost 3 vtrnl LHS, <3,0,2,0>
-    1947437468U, // <0,3,u,3>: Cost 2 vtrnl LHS, <3,3,3,3>
+    2085699585U, // <0,3,u,2>: Cost 2 ins <0,u,0,2>, lane 1
+    1012113409U, // <0,3,u,3>: Cost 1 ins LHS, lane 1
     1817422338U, // <0,3,u,4>: Cost 2 vzipl LHS, <3,4,5,6>
     1947437570U, // <0,3,u,5>: Cost 2 vtrnl LHS, <3,4,5,6>
-    3021179238U, // <0,3,u,6>: Cost 3 vtrnl LHS, <3,2,6,3>
-    2954183824U, // <0,3,u,7>: Cost 3 vzipr <0,2,0,u>, <1,5,3,7>
-    1947437269U, // <0,3,u,u>: Cost 2 vtrnl LHS, <3,0,u,2>
-    2753126564U, // <0,4,0,0>: Cost 3 vuzpl <0,2,4,5>, <0,2,0,2>
+    2085879809U, // <0,3,u,6>: Cost 2 ins <0,u,2,6>, lane 1
+    2130567168U, // <0,3,u,7>: Cost 2 ins <u,3,5,7>, lane 0
+    1012113409U, // <0,3,u,u>: Cost 1 ins LHS, lane 1
+    2085683201U, // <0,4,0,0>: Cost 2 ins <0,u,0,0>, lane 1
     2618605670U, // <0,4,0,1>: Cost 3 vext2 <0,2,0,4>, LHS
     1679392870U, // <0,4,0,2>: Cost 2 vuzpl <0,2,4,6>, LHS
-    3826876606U, // <0,4,0,3>: Cost 4 vuzpl <0,2,4,6>, <0,2,3,1>
+    2085707777U, // <0,4,0,3>: Cost 2 ins <0,u,0,3>, lane 1
     1679392972U, // <0,4,0,4>: Cost 2 vuzpl <0,2,4,6>, <0,2,4,6>
-    1811942710U, // <0,4,0,5>: Cost 2 vzipl <0,0,0,0>, RHS
+    2083659778U, // <0,4,0,5>: Cost 2 ins <0,4,u,5>, lane 2
     1947503926U, // <0,4,0,6>: Cost 2 vtrnl <0,2,0,2>, RHS
-    3665982483U, // <0,4,0,7>: Cost 4 vext1 <7,0,4,0>, <7,0,4,0>
+    3156836355U, // <0,4,0,7>: Cost 3 ins <0,4,0,u>, lane 3
     1947503944U, // <0,4,0,u>: Cost 2 vtrnl <0,2,0,2>, RHS
-    1812777874U, // <0,4,1,0>: Cost 2 vzipl LHS, <4,0,5,1>
-    2753135412U, // <0,4,1,1>: Cost 3 vuzpl <0,2,4,6>, <1,1,1,1>
-    2753135588U, // <0,4,1,2>: Cost 3 vuzpl <0,2,4,6>, <1,3,2,6>
-    2753135350U, // <0,4,1,3>: Cost 3 vuzpl <0,2,4,6>, <1,0,3,2>
-    1812778192U, // <0,4,1,4>: Cost 2 vzipl LHS, <4,4,4,4>
+    2083168259U, // <0,4,1,0>: Cost 2 ins <0,4,1,u>, lane 3
+    2085765121U, // <0,4,1,1>: Cost 2 ins <0,u,1,1>, lane 1
+    2083168259U, // <0,4,1,2>: Cost 2 ins <0,4,1,u>, lane 3
+    2083168259U, // <0,4,1,3>: Cost 2 ins <0,4,1,u>, lane 3
+    2083168259U, // <0,4,1,4>: Cost 2 ins <0,4,1,u>, lane 3
     739036470U,  // <0,4,1,5>: Cost 1 vzipl LHS, RHS
     1948929334U, // <0,4,1,6>: Cost 2 vtrnl <0,4,1,5>, RHS
-    2592248852U, // <0,4,1,7>: Cost 3 vext1 <7,0,4,1>, <7,0,4,1>
+    2083168259U, // <0,4,1,7>: Cost 2 ins <0,4,1,u>, lane 3
     739036713U,  // <0,4,1,u>: Cost 1 vzipl LHS, RHS
-    1946996044U, // <0,4,2,0>: Cost 2 vtrnl LHS, <4,6,0,2>
-    3022753110U, // <0,4,2,1>: Cost 3 vtrnl <0,4,2,6>, <4,6,1,3>
-    2753136232U, // <0,4,2,2>: Cost 3 vuzpl <0,2,4,6>, <2,2,2,2>
-    2753136242U, // <0,4,2,3>: Cost 3 vuzpl <0,2,4,6>, <2,2,3,3>
-    1946995920U, // <0,4,2,4>: Cost 2 vtrnl LHS, <4,4,4,4>
+    2083241987U, // <0,4,2,0>: Cost 2 ins <0,4,2,u>, lane 3
+    2083241987U, // <0,4,2,1>: Cost 2 ins <0,4,2,u>, lane 3
+    2085847041U, // <0,4,2,2>: Cost 2 ins <0,u,2,2>, lane 1
+    1012113409U, // <0,4,2,3>: Cost 1 ins LHS, lane 1
+    2083241987U, // <0,4,2,4>: Cost 2 ins <0,4,2,u>, lane 3
     1813286198U, // <0,4,2,5>: Cost 2 vzipl <0,2,0,2>, RHS
     873254198U,  // <0,4,2,6>: Cost 1 vtrnl LHS, RHS
-    2592257045U, // <0,4,2,7>: Cost 3 vext1 <7,0,4,2>, <7,0,4,2>
+    2083241987U, // <0,4,2,7>: Cost 2 ins <0,4,2,u>, lane 3
     873254216U,  // <0,4,2,u>: Cost 1 vtrnl LHS, RHS
-    3692349590U, // <0,4,3,0>: Cost 4 vext2 <0,2,0,4>, <3,0,1,2>
+    3020811520U, // <0,4,3,0>: Cost 3 vtrnl <0,1,3,3>, <4,5,0,7>
     2753136790U, // <0,4,3,1>: Cost 3 vuzpl <0,2,4,6>, <3,0,1,2>
     2753136801U, // <0,4,3,2>: Cost 3 vuzpl <0,2,4,6>, <3,0,2,4>
-    2753137052U, // <0,4,3,3>: Cost 3 vuzpl <0,2,4,6>, <3,3,3,3>
-    3692349954U, // <0,4,3,4>: Cost 4 vext2 <0,2,0,4>, <3,4,5,6>
-    2753137154U, // <0,4,3,5>: Cost 3 vuzpl <0,2,4,6>, <3,4,5,6>
-    3021458742U, // <0,4,3,6>: Cost 3 vtrnl <0,2,3,1>, RHS
-    3904439296U, // <0,4,3,7>: Cost 4 vuzpr <2,0,2,4>, <1,3,5,7>
-    3021458760U, // <0,4,3,u>: Cost 3 vtrnl <0,2,3,1>, RHS
+    2085928961U, // <0,4,3,3>: Cost 2 ins <0,u,3,3>, lane 1
+    3204800512U, // <0,4,3,4>: Cost 3 ins <u,4,3,4>, lane 0
+    2083659778U, // <0,4,3,5>: Cost 2 ins <0,4,u,5>, lane 2
+    2083667970U, // <0,4,3,6>: Cost 2 ins <0,4,u,6>, lane 2
+    3087183077U, // <0,4,3,7>: Cost 3 vtrnr <0,0,2,3>, <4,4,6,7>
+    2083659778U, // <0,4,3,u>: Cost 2 ins <0,4,u,5>, lane 2
     2753137995U, // <0,4,4,0>: Cost 3 vuzpl <0,2,4,6>, <4,6,0,1>
     2888453090U, // <0,4,4,1>: Cost 3 vzipl <0,4,1,5>, <4,1,5,0>
     2888535100U, // <0,4,4,2>: Cost 3 vzipl <0,4,2,6>, <4,2,6,0>
-    4027891913U, // <0,4,4,3>: Cost 4 vzipr <0,2,0,4>, <0,2,4,3>
-    2753137872U, // <0,4,4,4>: Cost 3 vuzpl <0,2,4,6>, <4,4,4,4>
+    2086002689U, // <0,4,4,3>: Cost 2 ins <0,u,4,3>, lane 1
+    2131132416U, // <0,4,4,4>: Cost 2 ins <u,4,4,4>, lane 0
     1814711606U, // <0,4,4,5>: Cost 2 vzipl <0,4,1,5>, RHS
     1679396150U, // <0,4,4,6>: Cost 2 vuzpl <0,2,4,6>, RHS
-    4172874104U, // <0,4,4,7>: Cost 4 vtrnr <2,0,2,4>, <0,4,5,7>
+    3157131267U, // <0,4,4,7>: Cost 3 ins <0,4,4,u>, lane 3
     1679396168U, // <0,4,4,u>: Cost 2 vuzpl <0,2,4,6>, RHS
     2568388710U, // <0,4,5,0>: Cost 3 vext1 <3,0,4,5>, LHS
     2568389526U, // <0,4,5,1>: Cost 3 vext1 <3,0,4,5>, <1,2,3,0>
-    2753138828U, // <0,4,5,2>: Cost 3 vuzpl <0,2,4,6>, <5,7,2,6>
-    2568390836U, // <0,4,5,3>: Cost 3 vext1 <3,0,4,5>, <3,0,4,5>
+    3204931584U, // <0,4,5,2>: Cost 3 ins <u,4,5,2>, lane 0
+    2086076417U, // <0,4,5,3>: Cost 2 ins <0,u,5,3>, lane 1
     2568391990U, // <0,4,5,4>: Cost 3 vext1 <3,0,4,5>, RHS
-    2718715180U, // <0,4,5,5>: Cost 3 vext3 <5,6,7,0>, <4,5,5,6>
+    2131214336U, // <0,4,5,5>: Cost 2 ins <u,4,5,5>, lane 0
     1618136374U, // <0,4,5,6>: Cost 2 vext3 <1,2,3,0>, RHS
     2830699830U, // <0,4,5,7>: Cost 3 vuzpr <2,0,2,4>, RHS
     1618136392U, // <0,4,5,u>: Cost 2 vext3 <1,2,3,0>, RHS
     2712227146U, // <0,4,6,0>: Cost 3 vext3 <4,6,0,0>, <4,6,0,0>
     2753138977U, // <0,4,6,1>: Cost 3 vuzpl <0,2,4,6>, <6,0,1,2>
     2753138988U, // <0,4,6,2>: Cost 3 vuzpl <0,2,4,6>, <6,0,2,4>
-    3826880899U, // <0,4,6,3>: Cost 4 vuzpl <0,2,4,6>, <6,1,3,1>
+    2086150145U, // <0,4,6,3>: Cost 2 ins <0,u,6,3>, lane 1
     2712522094U, // <0,4,6,4>: Cost 3 vext3 <4,6,4,0>, <4,6,4,0>
-    2753139341U, // <0,4,6,5>: Cost 3 vuzpl <0,2,4,6>, <6,4,5,6>
-    2753139512U, // <0,4,6,6>: Cost 3 vuzpl <0,2,4,6>, <6,6,6,6>
-    2657760081U, // <0,4,6,7>: Cost 3 vext2 <6,7,0,4>, <6,7,0,4>
-    2753139040U, // <0,4,6,u>: Cost 3 vuzpl <0,2,4,6>, <6,0,u,2>
-    4185065260U, // <0,4,7,0>: Cost 4 vtrnr <4,0,5,7>, <2,4,6,0>
+    2083659778U, // <0,4,6,5>: Cost 2 ins <0,4,u,5>, lane 2
+    2131296256U, // <0,4,6,6>: Cost 2 ins <u,4,6,6>, lane 0
+    2131304448U, // <0,4,6,7>: Cost 2 ins <u,4,6,7>, lane 0
+    2083659778U, // <0,4,6,u>: Cost 2 ins <0,4,u,5>, lane 2
+    3021106432U, // <0,4,7,0>: Cost 3 vtrnl <0,1,7,3>, <4,5,0,7>
     2860487502U, // <0,4,7,1>: Cost 3 vuzpr <7,0,1,4>, <6,7,0,1>
-    2753139717U, // <0,4,7,2>: Cost 3 vuzpl <0,2,4,6>, <7,0,2,4>
-    3928330368U, // <0,4,7,3>: Cost 4 vuzpr <6,0,2,4>, <5,7,1,3>
-    3718894950U, // <0,4,7,4>: Cost 4 vext2 <4,6,0,4>, <7,4,5,6>
-    2713259464U, // <0,4,7,5>: Cost 3 vext3 <4,7,5,0>, <4,7,5,0>
-    3021753654U, // <0,4,7,6>: Cost 3 vtrnl <0,2,7,1>, RHS
-    2753140332U, // <0,4,7,7>: Cost 3 vuzpl <0,2,4,6>, <7,7,7,7>
-    2860487502U, // <0,4,7,u>: Cost 3 vuzpr <7,0,1,4>, <6,7,0,1>
-    1947438412U, // <0,4,u,0>: Cost 2 vtrnl LHS, <4,6,0,2>
-    2618611502U, // <0,4,u,1>: Cost 3 vext2 <0,2,0,4>, LHS
+    3157377026U, // <0,4,7,2>: Cost 3 ins <0,4,u,2>, lane 2
+    2086223873U, // <0,4,7,3>: Cost 2 ins <0,u,7,3>, lane 1
+    3205095424U, // <0,4,7,4>: Cost 3 ins <u,4,7,4>, lane 0
+    2083659778U, // <0,4,7,5>: Cost 2 ins <0,4,u,5>, lane 2
+    2131369984U, // <0,4,7,6>: Cost 2 ins <u,4,7,6>, lane 0
+    2752452204U, // <0,4,7,7>: Cost 3 vuzpl <0,1,4,3>, <7,7,7,7>
+    2083659778U, // <0,4,7,u>: Cost 2 ins <0,4,u,5>, lane 2
+    2083168259U, // <0,4,u,0>: Cost 2 ins <0,4,1,u>, lane 3
+    2085765121U, // <0,4,u,1>: Cost 2 ins <0,u,1,1>, lane 1
     1679398702U, // <0,4,u,2>: Cost 2 vuzpl <0,2,4,6>, LHS
-    2753140616U, // <0,4,u,3>: Cost 3 vuzpl <0,2,4,6>, <u,2,3,3>
+    1012113409U, // <0,4,u,3>: Cost 1 ins LHS, lane 1
     1679392972U, // <0,4,u,4>: Cost 2 vuzpl <0,2,4,6>, <0,2,4,6>
     743681334U,  // <0,4,u,5>: Cost 1 vzipl LHS, RHS
     873696566U,  // <0,4,u,6>: Cost 1 vtrnl LHS, RHS
-    2830700073U, // <0,4,u,7>: Cost 3 vuzpr <2,0,2,4>, RHS
+    2083168259U, // <0,4,u,7>: Cost 2 ins <0,4,1,u>, lane 3
     873696584U,  // <0,4,u,u>: Cost 1 vtrnl LHS, RHS
-    2885684860U, // <0,5,0,0>: Cost 3 vzipl <0,0,0,0>, <5,0,7,0>
+    2085683201U, // <0,5,0,0>: Cost 2 ins <0,u,0,0>, lane 1
     2625912934U, // <0,5,0,1>: Cost 3 vext2 <1,4,0,5>, LHS
-    2751889510U, // <0,5,0,2>: Cost 3 vuzpl <0,0,5,7>, LHS
-    3693019384U, // <0,5,0,3>: Cost 4 vext2 <0,3,0,5>, <0,3,0,5>
-    2885685190U, // <0,5,0,4>: Cost 3 vzipl <0,0,0,0>, <5,4,7,6>
-    2836826292U, // <0,5,0,5>: Cost 3 vuzpr <3,0,4,5>, <3,0,4,5>
-    2885685346U, // <0,5,0,6>: Cost 3 vzipl <0,0,0,0>, <5,6,7,0>
+    2085699585U, // <0,5,0,2>: Cost 2 ins <0,u,0,2>, lane 1
+    2085707777U, // <0,5,0,3>: Cost 2 ins <0,u,0,3>, lane 1
+    3159457793U, // <0,5,0,4>: Cost 3 ins <0,u,0,4>, lane 1
+    1678778497U, // <0,5,0,5>: Cost 2 vuzpl <0,1,5,3>, <0,1,5,3>
+    3159474177U, // <0,5,0,6>: Cost 3 ins <0,u,0,6>, lane 1
     2013269302U, // <0,5,0,7>: Cost 2 vtrnr <0,0,0,0>, RHS
-    2013269303U, // <0,5,0,u>: Cost 2 vtrnr <0,0,0,0>, RHS
+    2085699585U, // <0,5,0,u>: Cost 2 ins <0,u,0,2>, lane 1
     1500659814U, // <0,5,1,0>: Cost 2 vext1 <4,0,5,1>, LHS
-    1812778704U, // <0,5,1,1>: Cost 2 vzipl LHS, <5,1,7,3>
-    2886520555U, // <0,5,1,2>: Cost 3 vzipl LHS, <5,2,1,3>
-    2836824166U, // <0,5,1,3>: Cost 3 vuzpr <3,0,4,5>, LHS
+    2085765121U, // <0,5,1,1>: Cost 2 ins <0,u,1,1>, lane 1
+    3159515137U, // <0,5,1,2>: Cost 3 ins <0,u,1,2>, lane 1
+    2085781505U, // <0,5,1,3>: Cost 2 ins <0,u,1,3>, lane 1
     1812778950U, // <0,5,1,4>: Cost 2 vzipl LHS, <5,4,7,6>
-    1812779012U, // <0,5,1,5>: Cost 2 vzipl LHS, <5,5,5,5>
+    2085797889U, // <0,5,1,5>: Cost 2 ins <0,u,1,5>, lane 1
     1812779106U, // <0,5,1,6>: Cost 2 vzipl LHS, <5,6,7,0>
     2013351222U, // <0,5,1,7>: Cost 2 vtrnr <0,0,1,1>, RHS
-    2013351223U, // <0,5,1,u>: Cost 2 vtrnr <0,0,1,1>, RHS
-    2836824982U, // <0,5,2,0>: Cost 3 vuzpr <3,0,4,5>, <1,2,3,0>
+    2085765121U, // <0,5,1,u>: Cost 2 ins <0,u,1,1>, lane 1
+    2085830657U, // <0,5,2,0>: Cost 2 ins <0,u,2,0>, lane 1
     1946996864U, // <0,5,2,1>: Cost 2 vtrnl LHS, <5,7,1,3>
-    3020738694U, // <0,5,2,2>: Cost 3 vtrnl LHS, <5,7,2,0>
-    3020738302U, // <0,5,2,3>: Cost 3 vtrnl LHS, <5,2,3,4>
-    3025383010U, // <0,5,2,4>: Cost 3 vtrnl LHS, <5,0,4,1>
+    2085847041U, // <0,5,2,2>: Cost 2 ins <0,u,2,2>, lane 1
+    1012113409U, // <0,5,2,3>: Cost 1 ins LHS, lane 1
+    2085863425U, // <0,5,2,4>: Cost 2 ins <0,u,2,4>, lane 1
     1946996740U, // <0,5,2,5>: Cost 2 vtrnl LHS, <5,5,5,5>
-    2954135337U, // <0,5,2,6>: Cost 3 vzipr <0,2,0,2>, <2,4,5,6>
+    2085879809U, // <0,5,2,6>: Cost 2 ins <0,u,2,6>, lane 1
     2019478838U, // <0,5,2,7>: Cost 2 vtrnr <1,0,3,2>, RHS
-    2019478839U, // <0,5,2,u>: Cost 2 vtrnr <1,0,3,2>, RHS
+    1012113409U, // <0,5,2,u>: Cost 1 ins LHS, lane 1
     2637858966U, // <0,5,3,0>: Cost 3 vext2 <3,4,0,5>, <3,0,1,2>
-    3699656927U, // <0,5,3,1>: Cost 4 vext2 <1,4,0,5>, <3,1,0,3>
-    4095233618U, // <0,5,3,2>: Cost 4 vtrnl <0,2,3,5>, <5,0,2,3>
-    3699657106U, // <0,5,3,3>: Cost 4 vext2 <1,4,0,5>, <3,3,2,2>
+    3205439488U, // <0,5,3,1>: Cost 3 ins <u,5,3,1>, lane 0
+    3087183153U, // <0,5,3,2>: Cost 3 vtrnr <0,0,2,3>, <4,5,6,2>
+    2085928961U, // <0,5,3,3>: Cost 2 ins <0,u,3,3>, lane 1
     2637859284U, // <0,5,3,4>: Cost 3 vext2 <3,4,0,5>, <3,4,0,5>
-    3904521934U, // <0,5,3,5>: Cost 4 vuzpr <2,0,3,5>, <2,3,4,5>
-    4035185154U, // <0,5,3,6>: Cost 4 vzipr <1,4,0,3>, <3,4,5,6>
-    3099053366U, // <0,5,3,7>: Cost 3 vtrnr <2,0,1,3>, RHS
-    3099053367U, // <0,5,3,u>: Cost 3 vtrnr <2,0,1,3>, RHS
+    3205472256U, // <0,5,3,5>: Cost 3 ins <u,5,3,5>, lane 0
+    3205480448U, // <0,5,3,6>: Cost 3 ins <u,5,3,6>, lane 0
+    2131746816U, // <0,5,3,7>: Cost 2 ins <u,5,3,7>, lane 0
+    2131746816U, // <0,5,3,u>: Cost 2 ins <u,5,3,7>, lane 0
     2888453704U, // <0,5,4,0>: Cost 3 vzipl <0,4,1,5>, <5,0,1,2>
-    3021574272U, // <0,5,4,1>: Cost 3 vtrnl <0,2,4,6>, <5,7,1,3>
-    3021574284U, // <0,5,4,2>: Cost 3 vtrnl <0,2,4,6>, <5,7,2,6>
-    3962195761U, // <0,5,4,3>: Cost 4 vzipl <0,4,1,5>, <5,3,0,1>
+    3159728129U, // <0,5,4,1>: Cost 3 ins <0,u,4,1>, lane 1
+    3159736321U, // <0,5,4,2>: Cost 3 ins <0,u,4,2>, lane 1
+    2086002689U, // <0,5,4,3>: Cost 2 ins <0,u,4,3>, lane 1
     2888454068U, // <0,5,4,4>: Cost 3 vzipl <0,4,1,5>, <5,4,5,6>
     2888454148U, // <0,5,4,5>: Cost 3 vzipl <0,4,1,5>, <5,5,5,5>
-    2751892790U, // <0,5,4,6>: Cost 3 vuzpl <0,0,5,7>, RHS
-    3099135286U, // <0,5,4,7>: Cost 3 vtrnr <2,0,2,4>, RHS
-    2888454352U, // <0,5,4,u>: Cost 3 vzipl <0,4,1,5>, <5,u,1,2>
-    3962826312U, // <0,5,5,0>: Cost 4 vzipl <0,5,1,1>, <5,0,1,2>
+    2086027265U, // <0,5,4,6>: Cost 2 ins <0,u,4,6>, lane 1
+    2131820544U, // <0,5,4,7>: Cost 2 ins <u,5,4,7>, lane 0
+    2086027265U, // <0,5,4,u>: Cost 2 ins <0,u,4,6>, lane 1
+    3205578752U, // <0,5,5,0>: Cost 3 ins <u,5,5,0>, lane 0
     2997291922U, // <0,5,5,1>: Cost 3 vzipr <7,4,0,5>, <4,0,5,1>
-    4070369466U, // <0,5,5,2>: Cost 4 vzipr <7,3,0,5>, <3,0,5,2>
-    4035199186U, // <0,5,5,3>: Cost 4 vzipr <1,4,0,5>, <0,2,5,3>
-    2889109446U, // <0,5,5,4>: Cost 3 vzipl <0,5,1,4>, <5,4,7,6>
-    2718715908U, // <0,5,5,5>: Cost 3 vext3 <5,6,7,0>, <5,5,5,5>
+    2752523939U, // <0,5,5,2>: Cost 3 vuzpl <0,1,5,3>, <5,1,2,3>
+    2086076417U, // <0,5,5,3>: Cost 2 ins <0,u,5,3>, lane 1
+    3205611520U, // <0,5,5,4>: Cost 3 ins <u,5,5,4>, lane 0
+    2131877888U, // <0,5,5,5>: Cost 2 ins <u,5,5,5>, lane 0
     2657767522U, // <0,5,5,6>: Cost 3 vext2 <6,7,0,5>, <5,6,7,0>
-    2836827446U, // <0,5,5,7>: Cost 3 vuzpr <3,0,4,5>, RHS
-    2836827447U, // <0,5,5,u>: Cost 3 vuzpr <3,0,4,5>, RHS
-    2860716130U, // <0,5,6,0>: Cost 3 vuzpr <7,0,4,5>, <5,6,7,0>
-    4055780242U, // <0,5,6,1>: Cost 4 vzipr <4,u,0,6>, <4,0,5,1>
-    3928337740U, // <0,5,6,2>: Cost 4 vuzpr <6,0,2,5>, <4,6,0,2>
-    3785748546U, // <0,5,6,3>: Cost 4 vext3 <4,5,6,0>, <5,6,3,4>
-    2592361782U, // <0,5,6,4>: Cost 3 vext1 <7,0,5,6>, RHS
-    2592362594U, // <0,5,6,5>: Cost 3 vext1 <7,0,5,6>, <5,6,7,0>
-    4029237033U, // <0,5,6,6>: Cost 4 vzipr <0,4,0,6>, <2,4,5,6>
-    1644974178U, // <0,5,6,7>: Cost 2 vext3 <5,6,7,0>, <5,6,7,0>
-    1645047915U, // <0,5,6,u>: Cost 2 vext3 <5,6,u,0>, <5,6,u,0>
+    2131894272U, // <0,5,5,7>: Cost 2 ins <u,5,5,7>, lane 0
+    2086076417U, // <0,5,5,u>: Cost 2 ins <0,u,5,3>, lane 1
+    2131910656U, // <0,5,6,0>: Cost 2 ins <u,5,6,0>, lane 0
+    2131918848U, // <0,5,6,1>: Cost 2 ins <u,5,6,1>, lane 0
+    2131927040U, // <0,5,6,2>: Cost 2 ins <u,5,6,2>, lane 0
+    2131935232U, // <0,5,6,3>: Cost 2 ins <u,5,6,3>, lane 0
+    2131943424U, // <0,5,6,4>: Cost 2 ins <u,5,6,4>, lane 0
+    2131951616U, // <0,5,6,5>: Cost 2 ins <u,5,6,5>, lane 0
+    2131959808U, // <0,5,6,6>: Cost 2 ins <u,5,6,6>, lane 0
+    1058226176U, // <0,5,6,7>: Cost 1 ins RHS, lane 0
+    1058226176U, // <0,5,6,u>: Cost 1 ins RHS, lane 0
     2562506854U, // <0,5,7,0>: Cost 3 vext1 <2,0,5,7>, LHS
     2562507670U, // <0,5,7,1>: Cost 3 vext1 <2,0,5,7>, <1,2,3,0>
     2562508262U, // <0,5,7,2>: Cost 3 vext1 <2,0,5,7>, <2,0,5,7>
-    3636250774U, // <0,5,7,3>: Cost 4 vext1 <2,0,5,7>, <3,0,1,2>
+    2086223873U, // <0,5,7,3>: Cost 2 ins <0,u,7,3>, lane 1
     2562510134U, // <0,5,7,4>: Cost 3 vext1 <2,0,5,7>, RHS
     2718716072U, // <0,5,7,5>: Cost 3 vext3 <5,6,7,0>, <5,7,5,7>
     2718716074U, // <0,5,7,6>: Cost 3 vext3 <5,6,7,0>, <5,7,6,0>
-    3099381046U, // <0,5,7,7>: Cost 3 vtrnr <2,0,5,7>, RHS
-    2562512686U, // <0,5,7,u>: Cost 3 vext1 <2,0,5,7>, LHS
+    2132041728U, // <0,5,7,7>: Cost 2 ins <u,5,7,7>, lane 0
+    2132041728U, // <0,5,7,u>: Cost 2 ins <u,5,7,7>, lane 0
     1500717158U, // <0,5,u,0>: Cost 2 vext1 <4,0,5,u>, LHS
-    1947439232U, // <0,5,u,1>: Cost 2 vtrnl LHS, <5,7,1,3>
-    2562516455U, // <0,5,u,2>: Cost 3 vext1 <2,0,5,u>, <2,0,5,u>
-    2836824733U, // <0,5,u,3>: Cost 3 vuzpr <3,0,4,5>, LHS
+    2085765121U, // <0,5,u,1>: Cost 2 ins <0,u,1,1>, lane 1
+    2085699585U, // <0,5,u,2>: Cost 2 ins <0,u,0,2>, lane 1
+    1012113409U, // <0,5,u,3>: Cost 1 ins LHS, lane 1
     1817423814U, // <0,5,u,4>: Cost 2 vzipl LHS, <5,4,7,6>
-    1947439108U, // <0,5,u,5>: Cost 2 vtrnl LHS, <5,5,5,5>
-    1817423970U, // <0,5,u,6>: Cost 2 vzipl LHS, <5,6,7,0>
-    2019527990U, // <0,5,u,7>: Cost 2 vtrnr <1,0,3,u>, RHS
-    2019527991U, // <0,5,u,u>: Cost 2 vtrnr <1,0,3,u>, RHS
-    2586411110U, // <0,6,0,0>: Cost 3 vext1 <6,0,6,0>, LHS
+    2085797889U, // <0,5,u,5>: Cost 2 ins <0,u,1,5>, lane 1
+    2085879809U, // <0,5,u,6>: Cost 2 ins <0,u,2,6>, lane 1
+    1058226176U, // <0,5,u,7>: Cost 1 ins RHS, lane 0
+    1012113409U, // <0,5,u,u>: Cost 1 ins LHS, lane 1
+    2085683201U, // <0,6,0,0>: Cost 2 ins <0,u,0,0>, lane 1
     2619949158U, // <0,6,0,1>: Cost 3 vext2 <0,4,0,6>, LHS
-    2619949220U, // <0,6,0,2>: Cost 3 vext2 <0,4,0,6>, <0,2,0,2>
-    3785748789U, // <0,6,0,3>: Cost 4 vext3 <4,5,6,0>, <6,0,3,4>
+    2132148224U, // <0,6,0,2>: Cost 2 ins <u,6,0,2>, lane 0
+    2085707777U, // <0,6,0,3>: Cost 2 ins <0,u,0,3>, lane 1
     2619949386U, // <0,6,0,4>: Cost 3 vext2 <0,4,0,6>, <0,4,0,6>
     2586415202U, // <0,6,0,5>: Cost 3 vext1 <6,0,6,0>, <5,6,7,0>
-    2250871116U, // <0,6,0,6>: Cost 3 vrev <6,0,6,0>
+    1678852234U, // <0,6,0,6>: Cost 2 vuzpl <0,1,6,3>, <0,1,6,3>
     1879051574U, // <0,6,0,7>: Cost 2 vzipr <0,0,0,0>, RHS
-    1879051575U, // <0,6,0,u>: Cost 2 vzipr <0,0,0,0>, RHS
+    2132148224U, // <0,6,0,u>: Cost 2 ins <u,6,0,2>, lane 0
     2993278336U, // <0,6,1,0>: Cost 3 vzipr <6,7,0,1>, <4,6,6,0>
-    2886521194U, // <0,6,1,1>: Cost 3 vzipl LHS, <6,1,0,3>
+    2085765121U, // <0,6,1,1>: Cost 2 ins <0,u,1,1>, lane 1
     1812779514U, // <0,6,1,2>: Cost 2 vzipl LHS, <6,2,7,3>
-    2860499046U, // <0,6,1,3>: Cost 3 vuzpr <7,0,1,6>, LHS
-    3019985782U, // <0,6,1,4>: Cost 3 vtrnl <0,0,1,1>, <6,7,4,5>
-    2886521522U, // <0,6,1,5>: Cost 3 vzipl LHS, <6,5,0,7>
+    2085781505U, // <0,6,1,3>: Cost 2 ins <0,u,1,3>, lane 1
+    3159531521U, // <0,6,1,4>: Cost 3 ins <0,u,1,4>, lane 1
+    2085797889U, // <0,6,1,5>: Cost 2 ins <0,u,1,5>, lane 1
     1812779832U, // <0,6,1,6>: Cost 2 vzipl LHS, <6,6,6,6>
     1892994358U, // <0,6,1,7>: Cost 2 vzipr <2,3,0,1>, RHS
     1892994359U, // <0,6,1,u>: Cost 2 vzipr <2,3,0,1>, RHS
     1946997582U, // <0,6,2,0>: Cost 2 vtrnl LHS, <6,7,0,1>
-    3025383713U, // <0,6,2,1>: Cost 3 vtrnl LHS, <6,0,1,2>
-    3025383724U, // <0,6,2,2>: Cost 3 vtrnl LHS, <6,0,2,4>
-    2631894694U, // <0,6,2,3>: Cost 3 vext2 <2,4,0,6>, <2,3,0,1>
+    2085838849U, // <0,6,2,1>: Cost 2 ins <0,u,2,1>, lane 1
+    2085847041U, // <0,6,2,2>: Cost 2 ins <0,u,2,2>, lane 1
+    1012113409U, // <0,6,2,3>: Cost 1 ins LHS, lane 1
     1946997622U, // <0,6,2,4>: Cost 2 vtrnl LHS, <6,7,4,5>
-    3025384077U, // <0,6,2,5>: Cost 3 vtrnl LHS, <6,4,5,6>
-    1946997560U, // <0,6,2,6>: Cost 2 vtrnl LHS, <6,6,6,6>
+    2085871617U, // <0,6,2,5>: Cost 2 ins <0,u,2,5>, lane 1
+    2085879809U, // <0,6,2,6>: Cost 2 ins <0,u,2,6>, lane 1
     1880395062U, // <0,6,2,7>: Cost 2 vzipr <0,2,0,2>, RHS
-    1880395063U, // <0,6,2,u>: Cost 2 vzipr <0,2,0,2>, RHS
+    1012113409U, // <0,6,2,u>: Cost 1 ins LHS, lane 1
     3122942050U, // <0,6,3,0>: Cost 3 vtrnr <6,0,1,3>, <5,6,7,0>
     2250527010U, // <0,6,3,1>: Cost 3 vrev <6,0,1,3>
-    3705637192U, // <0,6,3,2>: Cost 4 vext2 <2,4,0,6>, <3,2,3,0>
-    3693693340U, // <0,6,3,3>: Cost 4 vext2 <0,4,0,6>, <3,3,3,3>
-    2637867477U, // <0,6,3,4>: Cost 3 vext2 <3,4,0,6>, <3,4,0,6>
-    3705637424U, // <0,6,3,5>: Cost 4 vext2 <2,4,0,6>, <3,5,1,7>
-    4196683124U, // <0,6,3,6>: Cost 4 vtrnr <6,0,1,3>, <4,6,4,6>
-    2965425462U, // <0,6,3,7>: Cost 3 vzipr <2,1,0,3>, RHS
-    2965425463U, // <0,6,3,u>: Cost 3 vzipr <2,1,0,3>, RHS
+    3206111232U, // <0,6,3,2>: Cost 3 ins <u,6,3,2>, lane 0
+    2085928961U, // <0,6,3,3>: Cost 2 ins <0,u,3,3>, lane 1
+    3206127616U, // <0,6,3,4>: Cost 3 ins <u,6,3,4>, lane 0
+    3206135808U, // <0,6,3,5>: Cost 3 ins <u,6,3,5>, lane 0
+    3206144000U, // <0,6,3,6>: Cost 3 ins <u,6,3,6>, lane 0
+    2132410368U, // <0,6,3,7>: Cost 2 ins <u,6,3,7>, lane 0
+    2132410368U, // <0,6,3,u>: Cost 2 ins <u,6,3,7>, lane 0
     2888536380U, // <0,6,4,0>: Cost 3 vzipl <0,4,2,6>, <6,0,4,2>
     3021574433U, // <0,6,4,1>: Cost 3 vtrnl <0,2,4,6>, <6,0,1,2>
     3021574444U, // <0,6,4,2>: Cost 3 vtrnl <0,2,4,6>, <6,0,2,4>
-    4095316355U, // <0,6,4,3>: Cost 4 vtrnl <0,2,4,6>, <6,1,3,1>
+    2086002689U, // <0,6,4,3>: Cost 2 ins <0,u,4,3>, lane 1
     2562559286U, // <0,6,4,4>: Cost 3 vext1 <2,0,6,4>, RHS
     3021574797U, // <0,6,4,5>: Cost 3 vtrnl <0,2,4,6>, <6,4,5,6>
-    3021574968U, // <0,6,4,6>: Cost 3 vtrnl <0,2,4,6>, <6,6,6,6>
+    2132475904U, // <0,6,4,6>: Cost 2 ins <u,6,4,6>, lane 0
     2954153270U, // <0,6,4,7>: Cost 3 vzipr <0,2,0,4>, RHS
-    2954153271U, // <0,6,4,u>: Cost 3 vzipr <0,2,0,4>, RHS
+    2132475904U, // <0,6,4,u>: Cost 2 ins <u,6,4,6>, lane 0
     2718716594U, // <0,6,5,0>: Cost 3 vext3 <5,6,7,0>, <6,5,0,7>
-    3648250774U, // <0,6,5,1>: Cost 4 vext1 <4,0,6,5>, <1,2,3,0>
-    3786265284U, // <0,6,5,2>: Cost 4 vext3 <4,6,4,0>, <6,5,2,7>
-    3324432694U, // <0,6,5,3>: Cost 4 vrev <6,0,3,5>
-    3648252831U, // <0,6,5,4>: Cost 4 vext1 <4,0,6,5>, <4,0,6,5>
-    3720237060U, // <0,6,5,5>: Cost 4 vext2 <4,u,0,6>, <5,5,5,5>
-    3720237154U, // <0,6,5,6>: Cost 4 vext2 <4,u,0,6>, <5,6,7,0>
+    3206250496U, // <0,6,5,1>: Cost 3 ins <u,6,5,1>, lane 0
+    3206258688U, // <0,6,5,2>: Cost 3 ins <u,6,5,2>, lane 0
+    2086076417U, // <0,6,5,3>: Cost 2 ins <0,u,5,3>, lane 1
+    3206275072U, // <0,6,5,4>: Cost 3 ins <u,6,5,4>, lane 0
+    3206283264U, // <0,6,5,5>: Cost 3 ins <u,6,5,5>, lane 0
+    3206291456U, // <0,6,5,6>: Cost 3 ins <u,6,5,6>, lane 0
     2961460534U, // <0,6,5,7>: Cost 3 vzipr <1,4,0,5>, RHS
-    2961460535U, // <0,6,5,u>: Cost 3 vzipr <1,4,0,5>, RHS
+    2086076417U, // <0,6,5,u>: Cost 2 ins <0,u,5,3>, lane 1
     2724172540U, // <0,6,6,0>: Cost 3 vext3 <6,6,0,0>, <6,6,0,0>
-    3828314401U, // <0,6,6,1>: Cost 4 vuzpl <0,4,6,1>, <6,0,1,2>
+    2889838972U, // <0,6,6,1>: Cost 3 vzipl <0,6,2,3>, <6,1,2,3>
     2997300124U, // <0,6,6,2>: Cost 3 vzipr <7,4,0,6>, <4,0,6,2>
-    4029235419U, // <0,6,6,3>: Cost 4 vzipr <0,4,0,6>, <0,2,6,3>
-    2753270646U, // <0,6,6,4>: Cost 3 vuzpl <0,2,6,4>, <6,7,4,5>
-    3828347533U, // <0,6,6,5>: Cost 4 vuzpl <0,4,6,5>, <6,4,5,6>
-    2718716728U, // <0,6,6,6>: Cost 3 vext3 <5,6,7,0>, <6,6,6,6>
-    2955496758U, // <0,6,6,7>: Cost 3 vzipr <0,4,0,6>, RHS
-    2955496759U, // <0,6,6,u>: Cost 3 vzipr <0,4,0,6>, RHS
-    2712671054U, // <0,6,7,0>: Cost 3 vext3 <4,6,6,0>, <6,7,0,1>
+    2086150145U, // <0,6,6,3>: Cost 2 ins <0,u,6,3>, lane 1
+    3206348800U, // <0,6,6,4>: Cost 3 ins <u,6,6,4>, lane 0
+    2889839336U, // <0,6,6,5>: Cost 3 vzipl <0,6,2,3>, <6,5,6,7>
+    2132623360U, // <0,6,6,6>: Cost 2 ins <u,6,6,6>, lane 0
+    2132631552U, // <0,6,6,7>: Cost 2 ins <u,6,6,7>, lane 0
+    2086150145U, // <0,6,6,u>: Cost 2 ins <0,u,6,3>, lane 1
+    2132647936U, // <0,6,7,0>: Cost 2 ins <u,6,7,0>, lane 0
     2724909910U, // <0,6,7,1>: Cost 3 vext3 <6,7,1,0>, <6,7,1,0>
-    3636323823U, // <0,6,7,2>: Cost 4 vext1 <2,0,6,7>, <2,0,6,7>
-    2725057384U, // <0,6,7,3>: Cost 3 vext3 <6,7,3,0>, <6,7,3,0>
-    2718716790U, // <0,6,7,4>: Cost 3 vext3 <5,6,7,0>, <6,7,4,5>
+    3206406144U, // <0,6,7,2>: Cost 3 ins <u,6,7,2>, lane 0
+    2086223873U, // <0,6,7,3>: Cost 2 ins <0,u,7,3>, lane 1
+    2132680704U, // <0,6,7,4>: Cost 2 ins <u,6,7,4>, lane 0
     2718716800U, // <0,6,7,5>: Cost 3 vext3 <5,6,7,0>, <6,7,5,6>
-    3792458629U, // <0,6,7,6>: Cost 4 vext3 <5,6,7,0>, <6,7,6,2>
-    2968112438U, // <0,6,7,7>: Cost 3 vzipr <2,5,0,7>, RHS
-    2968112439U, // <0,6,7,u>: Cost 3 vzipr <2,5,0,7>, RHS
-    1947439950U, // <0,6,u,0>: Cost 2 vtrnl LHS, <6,7,0,1>
-    2619954990U, // <0,6,u,1>: Cost 3 vext2 <0,4,0,6>, LHS
-    1817424378U, // <0,6,u,2>: Cost 2 vzipl LHS, <6,2,7,3>
-    2725721017U, // <0,6,u,3>: Cost 3 vext3 <6,u,3,0>, <6,u,3,0>
-    1947439990U, // <0,6,u,4>: Cost 2 vtrnl LHS, <6,7,4,5>
-    2619955354U, // <0,6,u,5>: Cost 3 vext2 <0,4,0,6>, RHS
-    1947439928U, // <0,6,u,6>: Cost 2 vtrnl LHS, <6,6,6,6>
+    3206438912U, // <0,6,7,6>: Cost 3 ins <u,6,7,6>, lane 0
+    2132705280U, // <0,6,7,7>: Cost 2 ins <u,6,7,7>, lane 0
+    2132647936U, // <0,6,7,u>: Cost 2 ins <u,6,7,0>, lane 0
+    2132647936U, // <0,6,u,0>: Cost 2 ins <u,6,7,0>, lane 0
+    2085765121U, // <0,6,u,1>: Cost 2 ins <0,u,1,1>, lane 1
+    2132148224U, // <0,6,u,2>: Cost 2 ins <u,6,0,2>, lane 0
+    1012113409U, // <0,6,u,3>: Cost 1 ins LHS, lane 1
+    2132680704U, // <0,6,u,4>: Cost 2 ins <u,6,7,4>, lane 0
+    2085797889U, // <0,6,u,5>: Cost 2 ins <0,u,1,5>, lane 1
+    2085879809U, // <0,6,u,6>: Cost 2 ins <0,u,2,6>, lane 1
     1880444214U, // <0,6,u,7>: Cost 2 vzipr <0,2,0,u>, RHS
-    1880444215U, // <0,6,u,u>: Cost 2 vzipr <0,2,0,u>, RHS
-    2580512768U, // <0,7,0,0>: Cost 3 vext1 <5,0,7,0>, <0,0,0,0>
-    2632564838U, // <0,7,0,1>: Cost 3 vext2 <2,5,0,7>, LHS
-    2256548865U, // <0,7,0,2>: Cost 3 vrev <7,0,2,0>
-    2952793808U, // <0,7,0,3>: Cost 3 vzipr <0,0,0,0>, <5,1,7,3>
+    1012113409U, // <0,6,u,u>: Cost 1 ins LHS, lane 1
+    2085683201U, // <0,7,0,0>: Cost 2 ins <0,u,0,0>, lane 1
+    2132803584U, // <0,7,0,1>: Cost 2 ins <u,7,0,1>, lane 0
+    2085699585U, // <0,7,0,2>: Cost 2 ins <0,u,0,2>, lane 1
+    2085707777U, // <0,7,0,3>: Cost 2 ins <0,u,0,3>, lane 1
     2580516150U, // <0,7,0,4>: Cost 3 vext1 <5,0,7,0>, RHS
     2580516476U, // <0,7,0,5>: Cost 3 vext1 <5,0,7,0>, <5,0,7,0>
     2586489173U, // <0,7,0,6>: Cost 3 vext1 <6,0,7,0>, <6,0,7,0>
-    2830943718U, // <0,7,0,7>: Cost 3 vuzpr <2,0,5,7>, <2,0,5,7>
-    2632565405U, // <0,7,0,u>: Cost 3 vext2 <2,5,0,7>, LHS
+    1678925971U, // <0,7,0,7>: Cost 2 vuzpl <0,1,7,3>, <0,1,7,3>
+    2132803584U, // <0,7,0,u>: Cost 2 ins <u,7,0,1>, lane 0
     1812780026U, // <0,7,1,0>: Cost 2 vzipl LHS, <7,0,1,2>
-    2993279156U, // <0,7,1,1>: Cost 3 vzipr <6,7,0,1>, <5,7,7,1>
+    2085765121U, // <0,7,1,1>: Cost 2 ins <0,u,1,1>, lane 1
     2632565654U, // <0,7,1,2>: Cost 3 vext2 <2,5,0,7>, <1,2,3,0>
-    2830942310U, // <0,7,1,3>: Cost 3 vuzpr <2,0,5,7>, LHS
+    2132893696U, // <0,7,1,3>: Cost 2 ins <u,7,1,3>, lane 0
     1812780390U, // <0,7,1,4>: Cost 2 vzipl LHS, <7,4,5,6>
-    2580524669U, // <0,7,1,5>: Cost 3 vext1 <5,0,7,1>, <5,0,7,1>
+    2085797889U, // <0,7,1,5>: Cost 2 ins <0,u,1,5>, lane 1
     2586497366U, // <0,7,1,6>: Cost 3 vext1 <6,0,7,1>, <6,0,7,1>
     1812780652U, // <0,7,1,7>: Cost 2 vzipl LHS, <7,7,7,7>
-    1812780674U, // <0,7,1,u>: Cost 2 vzipl LHS, <7,u,1,2>
-    2830943126U, // <0,7,2,0>: Cost 3 vuzpr <2,0,5,7>, <1,2,3,0>
+    2085765121U, // <0,7,1,u>: Cost 2 ins <0,u,1,1>, lane 1
+    2085830657U, // <0,7,2,0>: Cost 2 ins <0,u,2,0>, lane 1
     1182749690U, // <0,7,2,1>: Cost 2 vrev <7,0,1,2>
-    3087175798U, // <0,7,2,2>: Cost 3 vtrnr <0,0,2,2>, <5,7,0,2>
-    2980679376U, // <0,7,2,3>: Cost 3 vzipr <4,6,0,2>, <5,1,7,3>
-    2980679782U, // <0,7,2,4>: Cost 3 vzipr <4,6,0,2>, <5,6,7,4>
+    2085847041U, // <0,7,2,2>: Cost 2 ins <0,u,2,2>, lane 1
+    1012113409U, // <0,7,2,3>: Cost 1 ins LHS, lane 1
+    2085863425U, // <0,7,2,4>: Cost 2 ins <0,u,2,4>, lane 1
     1946998118U, // <0,7,2,5>: Cost 2 vtrnl LHS, <7,4,5,6>
-    2980679622U, // <0,7,2,6>: Cost 3 vzipr <4,6,0,2>, <5,4,7,6>
+    2085879809U, // <0,7,2,6>: Cost 2 ins <0,u,2,6>, lane 1
     1946998380U, // <0,7,2,7>: Cost 2 vtrnl LHS, <7,7,7,7>
-    1183265849U, // <0,7,2,u>: Cost 2 vrev <7,0,u,2>
+    1012113409U, // <0,7,2,u>: Cost 1 ins LHS, lane 1
     2989314146U, // <0,7,3,0>: Cost 3 vzipr <6,1,0,3>, <5,6,7,0>
-    3904685734U, // <0,7,3,1>: Cost 4 vuzpr <2,0,5,7>, <2,3,0,1>
-    3904685744U, // <0,7,3,2>: Cost 4 vuzpr <2,0,5,7>, <2,3,1,2>
-    3904685016U, // <0,7,3,3>: Cost 4 vuzpr <2,0,5,7>, <1,3,1,3>
-    3706309122U, // <0,7,3,4>: Cost 4 vext2 <2,5,0,7>, <3,4,5,6>
-    3904685774U, // <0,7,3,5>: Cost 4 vuzpr <2,0,5,7>, <2,3,4,5>
+    3206766592U, // <0,7,3,1>: Cost 3 ins <u,7,3,1>, lane 0
+    3020813397U, // <0,7,3,2>: Cost 3 vtrnl <0,1,3,3>, <7,1,2,3>
+    2085928961U, // <0,7,3,3>: Cost 2 ins <0,u,3,3>, lane 1
+    3206791168U, // <0,7,3,4>: Cost 3 ins <u,7,3,4>, lane 0
+    3206799360U, // <0,7,3,5>: Cost 3 ins <u,7,3,5>, lane 0
     2639202936U, // <0,7,3,6>: Cost 3 vext2 <3,6,0,7>, <3,6,0,7>
-    3904537600U, // <0,7,3,7>: Cost 4 vuzpr <2,0,3,7>, <1,3,5,7>
-    2640530202U, // <0,7,3,u>: Cost 3 vext2 <3,u,0,7>, <3,u,0,7>
-    2888455162U, // <0,7,4,0>: Cost 3 vzipl <0,4,1,5>, <7,0,1,2>
+    3206815744U, // <0,7,3,7>: Cost 3 ins <u,7,3,7>, lane 0
+    2085928961U, // <0,7,3,u>: Cost 2 ins <0,u,3,3>, lane 1
+    3206832128U, // <0,7,4,0>: Cost 3 ins <u,7,4,0>, lane 0
     2256507900U, // <0,7,4,1>: Cost 3 vrev <7,0,1,4>
     2256581637U, // <0,7,4,2>: Cost 3 vrev <7,0,2,4>
-    4054437584U, // <0,7,4,3>: Cost 4 vzipr <4,6,0,4>, <5,1,7,3>
-    2888455526U, // <0,7,4,4>: Cost 3 vzipl <0,4,1,5>, <7,4,5,6>
-    2632568118U, // <0,7,4,5>: Cost 3 vext2 <2,5,0,7>, RHS
-    2729260393U, // <0,7,4,6>: Cost 3 vext3 <7,4,6,0>, <7,4,6,0>
-    3021575788U, // <0,7,4,7>: Cost 3 vtrnl <0,2,4,6>, <7,7,7,7>
-    2632568361U, // <0,7,4,u>: Cost 3 vext2 <2,5,0,7>, RHS
+    2086002689U, // <0,7,4,3>: Cost 2 ins <0,u,4,3>, lane 1
+    3206864896U, // <0,7,4,4>: Cost 3 ins <u,7,4,4>, lane 0
+    2133131264U, // <0,7,4,5>: Cost 2 ins <u,7,4,5>, lane 0
+    2086027265U, // <0,7,4,6>: Cost 2 ins <0,u,4,6>, lane 1
+    3020887660U, // <0,7,4,7>: Cost 3 vtrnl <0,1,4,3>, <7,7,7,7>
+    2133131264U, // <0,7,4,u>: Cost 2 ins <u,7,4,5>, lane 0
     2993311842U, // <0,7,5,0>: Cost 3 vzipr <6,7,0,5>, <5,6,7,0>
-    3904684501U, // <0,7,5,1>: Cost 4 vuzpr <2,0,5,7>, <0,5,7,1>
-    3904684502U, // <0,7,5,2>: Cost 4 vuzpr <2,0,5,7>, <0,5,7,2>
-    3654297780U, // <0,7,5,3>: Cost 4 vext1 <5,0,7,5>, <3,0,4,5>
+    3206914048U, // <0,7,5,1>: Cost 3 ins <u,7,5,1>, lane 0
+    3020960853U, // <0,7,5,2>: Cost 3 vtrnl <0,1,5,3>, <7,1,2,3>
+    2086076417U, // <0,7,5,3>: Cost 2 ins <0,u,5,3>, lane 1
     2256737304U, // <0,7,5,4>: Cost 3 vrev <7,0,4,5>
-    3654299265U, // <0,7,5,5>: Cost 4 vext1 <5,0,7,5>, <5,0,7,5>
+    3206946816U, // <0,7,5,5>: Cost 3 ins <u,7,5,5>, lane 0
     2718717377U, // <0,7,5,6>: Cost 3 vext3 <5,6,7,0>, <7,5,6,7>
-    2830945590U, // <0,7,5,7>: Cost 3 vuzpr <2,0,5,7>, RHS
-    2830945591U, // <0,7,5,u>: Cost 3 vuzpr <2,0,5,7>, RHS
+    2133221376U, // <0,7,5,7>: Cost 2 ins <u,7,5,7>, lane 0
+    2133221376U, // <0,7,5,u>: Cost 2 ins <u,7,5,7>, lane 0
     2854834274U, // <0,7,6,0>: Cost 3 vuzpr <6,0,5,7>, <5,6,7,0>
     2256524286U, // <0,7,6,1>: Cost 3 vrev <7,0,1,6>
-    3792459246U, // <0,7,6,2>: Cost 4 vext3 <5,6,7,0>, <7,6,2,7>
-    4055781072U, // <0,7,6,3>: Cost 4 vzipr <4,u,0,6>, <5,1,7,3>
-    3963614566U, // <0,7,6,4>: Cost 4 vzipl <0,6,2,7>, <7,4,5,6>
+    3206995968U, // <0,7,6,2>: Cost 3 ins <u,7,6,2>, lane 0
+    2086150145U, // <0,7,6,3>: Cost 2 ins <0,u,6,3>, lane 1
+    3207012352U, // <0,7,6,4>: Cost 3 ins <u,7,6,4>, lane 0
     2656457394U, // <0,7,6,5>: Cost 3 vext2 <6,5,0,7>, <6,5,0,7>
-    4055781318U, // <0,7,6,6>: Cost 4 vzipr <4,u,0,6>, <5,4,7,6>
-    2730661396U, // <0,7,6,7>: Cost 3 vext3 <7,6,7,0>, <7,6,7,0>
-    2658448293U, // <0,7,6,u>: Cost 3 vext2 <6,u,0,7>, <6,u,0,7>
+    3207028736U, // <0,7,6,6>: Cost 3 ins <u,7,6,6>, lane 0
+    2133295104U, // <0,7,6,7>: Cost 2 ins <u,7,6,7>, lane 0
+    2086150145U, // <0,7,6,u>: Cost 2 ins <0,u,6,3>, lane 1
     2992001122U, // <0,7,7,0>: Cost 3 vzipr <6,5,0,7>, <5,6,7,0>
-    2753319930U, // <0,7,7,1>: Cost 3 vuzpl <0,2,7,1>, <7,0,1,2>
-    3654313446U, // <0,7,7,2>: Cost 4 vext1 <5,0,7,7>, <2,0,5,7>
-    3904684611U, // <0,7,7,3>: Cost 4 vuzpr <2,0,5,7>, <0,7,1,3>
-    2890437990U, // <0,7,7,4>: Cost 3 vzipl <0,7,1,4>, <7,4,5,6>
-    2753353062U, // <0,7,7,5>: Cost 3 vuzpl <0,2,7,5>, <7,4,5,6>
+    3207061504U, // <0,7,7,1>: Cost 3 ins <u,7,7,1>, lane 0
+    2752672853U, // <0,7,7,2>: Cost 3 vuzpl <0,1,7,3>, <7,1,2,3>
+    2086223873U, // <0,7,7,3>: Cost 2 ins <0,u,7,3>, lane 1
+    3207086080U, // <0,7,7,4>: Cost 3 ins <u,7,7,4>, lane 0
+    3207094272U, // <0,7,7,5>: Cost 3 ins <u,7,7,5>, lane 0
     2663093724U, // <0,7,7,6>: Cost 3 vext2 <7,6,0,7>, <7,6,0,7>
-    2718717548U, // <0,7,7,7>: Cost 3 vext3 <5,6,7,0>, <7,7,7,7>
-    2664420990U, // <0,7,7,u>: Cost 3 vext2 <7,u,0,7>, <7,u,0,7>
+    2133368832U, // <0,7,7,7>: Cost 2 ins <u,7,7,7>, lane 0
+    2086223873U, // <0,7,7,u>: Cost 2 ins <0,u,7,3>, lane 1
     1817424890U, // <0,7,u,0>: Cost 2 vzipl LHS, <7,0,1,2>
     1182798848U, // <0,7,u,1>: Cost 2 vrev <7,0,1,u>
-    2256614409U, // <0,7,u,2>: Cost 3 vrev <7,0,2,u>
-    2830942877U, // <0,7,u,3>: Cost 3 vuzpr <2,0,5,7>, LHS
+    2085699585U, // <0,7,u,2>: Cost 2 ins <0,u,0,2>, lane 1
+    1012113409U, // <0,7,u,3>: Cost 1 ins LHS, lane 1
     1817425254U, // <0,7,u,4>: Cost 2 vzipl LHS, <7,4,5,6>
-    1947440486U, // <0,7,u,5>: Cost 2 vtrnl LHS, <7,4,5,6>
-    2980728774U, // <0,7,u,6>: Cost 3 vzipr <4,6,0,u>, <5,4,7,6>
-    1947440748U, // <0,7,u,7>: Cost 2 vtrnl LHS, <7,7,7,7>
-    1183315007U, // <0,7,u,u>: Cost 2 vrev <7,0,u,u>
+    2085797889U, // <0,7,u,5>: Cost 2 ins <0,u,1,5>, lane 1
+    2085879809U, // <0,7,u,6>: Cost 2 ins <0,u,2,6>, lane 1
+    2133221376U, // <0,7,u,7>: Cost 2 ins <u,7,5,7>, lane 0
+    1012113409U, // <0,7,u,u>: Cost 1 ins LHS, lane 1
     135053414U,  // <0,u,0,0>: Cost 1 vdup0 LHS
     1678999562U, // <0,u,0,1>: Cost 2 vuzpl LHS, <0,0,1,1>
     605257830U,  // <0,u,0,2>: Cost 1 vuzpl LHS, LHS
-    1879048348U, // <0,u,0,3>: Cost 2 vzipr <0,0,0,0>, LHS
+    1007910914U, // <0,u,0,3>: Cost 1 ins LHS, lane 2
     1678999756U, // <0,u,0,4>: Cost 2 vuzpl LHS, <0,2,4,6>
-    1811945626U, // <0,u,0,5>: Cost 2 vzipl <0,0,0,0>, RHS
+    2081767427U, // <0,u,0,5>: Cost 2 ins <0,2,0,u>, lane 3
     1947506842U, // <0,u,0,6>: Cost 2 vtrnl <0,2,0,2>, RHS
-    1879051592U, // <0,u,0,7>: Cost 2 vzipr <0,0,0,0>, RHS
+    2081767427U, // <0,u,0,7>: Cost 2 ins <0,2,0,u>, lane 3
     605257884U,  // <0,u,0,u>: Cost 1 vuzpl LHS, LHS
     1812821715U, // <0,u,1,0>: Cost 2 vzipl LHS, <u,0,1,2>
     739039022U,  // <0,u,1,1>: Cost 1 vzipl LHS, LHS
     1813264264U, // <0,u,1,2>: Cost 2 vzipl LHS, <u,2,3,3>
-    1679000310U, // <0,u,1,3>: Cost 2 vuzpl LHS, <1,0,3,2>
+    1007910914U, // <0,u,1,3>: Cost 1 ins LHS, lane 2
     1812822079U, // <0,u,1,4>: Cost 2 vzipl LHS, <u,4,5,6>
     739039386U,  // <0,u,1,5>: Cost 1 vzipl LHS, RHS
     1813264592U, // <0,u,1,6>: Cost 2 vzipl LHS, <u,6,3,7>
     1892994376U, // <0,u,1,7>: Cost 2 vzipr <2,3,0,1>, RHS
     739039589U,  // <0,u,1,u>: Cost 1 vzipl LHS, LHS
-    1679001254U, // <0,u,2,0>: Cost 2 vuzpl LHS, <2,3,0,1>
-    1947039443U, // <0,u,2,1>: Cost 2 vtrnl LHS, <u,0,1,2>
+    1007509507U, // <0,u,2,0>: Cost 1 ins LHS, lane 3
+    1007509507U, // <0,u,2,1>: Cost 1 ins LHS, lane 3
     873256750U,  // <0,u,2,2>: Cost 1 vtrnl LHS, LHS
     835584U,     // <0,u,2,3>: Cost 0 copy LHS
-    1679001294U, // <0,u,2,4>: Cost 2 vuzpl LHS, <2,3,4,5>
-    1947039807U, // <0,u,2,5>: Cost 2 vtrnl LHS, <u,4,5,6>
+    1007509507U, // <0,u,2,4>: Cost 1 ins LHS, lane 3
+    1007509507U, // <0,u,2,5>: Cost 1 ins LHS, lane 3
     873257114U,  // <0,u,2,6>: Cost 1 vtrnl LHS, RHS
-    1880395080U, // <0,u,2,7>: Cost 2 vzipr <0,2,0,2>, RHS
+    1007509507U, // <0,u,2,7>: Cost 1 ins LHS, lane 3
     835584U,     // <0,u,2,u>: Cost 0 copy LHS
-    2752743563U, // <0,u,3,0>: Cost 3 vuzpl LHS, <3,0,0,0>
+    2129698816U, // <0,u,3,0>: Cost 2 ins <u,2,3,0>, lane 0
     1679001750U, // <0,u,3,1>: Cost 2 vuzpl LHS, <3,0,1,2>
-    2752743581U, // <0,u,3,2>: Cost 3 vuzpl LHS, <3,0,2,0>
-    1679002012U, // <0,u,3,3>: Cost 2 vuzpl LHS, <3,3,3,3>
-    2752743600U, // <0,u,3,4>: Cost 3 vuzpl LHS, <3,0,4,1>
+    2128388096U, // <0,u,3,2>: Cost 2 ins <u,0,3,2>, lane 0
+    1007910914U, // <0,u,3,3>: Cost 1 ins LHS, lane 2
+    2129731584U, // <0,u,3,4>: Cost 2 ins <u,2,3,4>, lane 0
     1679002114U, // <0,u,3,5>: Cost 2 vuzpl LHS, <3,4,5,6>
-    2752743782U, // <0,u,3,6>: Cost 3 vuzpl LHS, <3,2,6,3>
-    2824832000U, // <0,u,3,7>: Cost 3 vuzpr <1,0,3,u>, <1,3,5,7>
-    1679001813U, // <0,u,3,u>: Cost 2 vuzpl LHS, <3,0,u,2>
-    1679002956U, // <0,u,4,0>: Cost 2 vuzpl LHS, <4,6,0,2>
+    2082340866U, // <0,u,3,6>: Cost 2 ins <0,2,u,6>, lane 2
+    2131746816U, // <0,u,3,7>: Cost 2 ins <u,5,3,7>, lane 0
+    1007910914U, // <0,u,3,u>: Cost 1 ins LHS, lane 2
+    2082062339U, // <0,u,4,0>: Cost 2 ins <0,2,4,u>, lane 3
     1814714158U, // <0,u,4,1>: Cost 2 vzipl <0,4,1,5>, LHS
     1947834158U, // <0,u,4,2>: Cost 2 vtrnl <0,2,4,6>, LHS
-    2954150044U, // <0,u,4,3>: Cost 3 vzipr <0,2,0,4>, LHS
+    1007910914U, // <0,u,4,3>: Cost 1 ins LHS, lane 2
     1947828428U, // <0,u,4,4>: Cost 2 vtrnl <0,2,4,6>, <0,2,4,6>
     1544899894U, // <0,u,4,5>: Cost 2 vext2 <0,2,0,u>, RHS
     605261110U,  // <0,u,4,6>: Cost 1 vuzpl LHS, RHS
-    2954153288U, // <0,u,4,7>: Cost 3 vzipr <0,2,0,4>, RHS
+    2082062339U, // <0,u,4,7>: Cost 2 ins <0,2,4,u>, lane 3
     605261128U,  // <0,u,4,u>: Cost 1 vuzpl LHS, RHS
-    2568683622U, // <0,u,5,0>: Cost 3 vext1 <3,0,u,5>, LHS
-    1679003776U, // <0,u,5,1>: Cost 2 vuzpl LHS, <5,7,1,3>
-    2973403286U, // <0,u,5,2>: Cost 3 vzipr <3,4,0,5>, <3,0,1,2>
-    2691881087U, // <0,u,5,3>: Cost 3 vext3 <1,2,3,0>, <u,5,3,7>
-    2757389922U, // <0,u,5,4>: Cost 3 vuzpl LHS, <5,0,4,1>
-    1679003652U, // <0,u,5,5>: Cost 2 vuzpl LHS, <5,5,5,5>
+    2080964610U, // <0,u,5,0>: Cost 2 ins <0,0,u,0>, lane 2
+    2128527360U, // <0,u,5,1>: Cost 2 ins <u,0,5,1>, lane 0
+    2080980994U, // <0,u,5,2>: Cost 2 ins <0,0,u,2>, lane 2
+    1007910914U, // <0,u,5,3>: Cost 1 ins LHS, lane 2
+    2081660930U, // <0,u,5,4>: Cost 2 ins <0,1,u,4>, lane 2
+    2131214336U, // <0,u,5,5>: Cost 2 ins <u,4,5,5>, lane 0
     1618139290U, // <0,u,5,6>: Cost 2 vext3 <1,2,3,0>, RHS
     1751092534U, // <0,u,5,7>: Cost 2 vuzpr <1,0,3,u>, RHS
-    1751092535U, // <0,u,5,u>: Cost 2 vuzpr <1,0,3,u>, RHS
+    1007910914U, // <0,u,5,u>: Cost 1 ins LHS, lane 2
     1679004494U, // <0,u,6,0>: Cost 2 vuzpl LHS, <6,7,0,1>
-    2889873198U, // <0,u,6,1>: Cost 3 vzipl <0,6,2,7>, LHS
-    2753433904U, // <0,u,6,2>: Cost 3 vuzpl <0,2,u,6>, <6,0,2,u>
-    2955493532U, // <0,u,6,3>: Cost 3 vzipr <0,4,0,6>, LHS
+    2080972802U, // <0,u,6,1>: Cost 2 ins <0,0,u,1>, lane 2
+    2128609280U, // <0,u,6,2>: Cost 2 ins <u,0,6,2>, lane 0
+    1007910914U, // <0,u,6,3>: Cost 1 ins LHS, lane 2
     1679004534U, // <0,u,6,4>: Cost 2 vuzpl LHS, <6,7,4,5>
-    2889873562U, // <0,u,6,5>: Cost 3 vzipl <0,6,2,7>, RHS
-    1679004472U, // <0,u,6,6>: Cost 2 vuzpl LHS, <6,6,6,6>
-    1584051029U, // <0,u,6,7>: Cost 2 vext2 <6,7,0,u>, <6,7,0,u>
-    1584714662U, // <0,u,6,u>: Cost 2 vext2 <6,u,0,u>, <6,u,0,u>
-    2562728038U, // <0,u,7,0>: Cost 3 vext1 <2,0,u,7>, LHS
-    1679004666U, // <0,u,7,1>: Cost 2 vuzpl LHS, <7,0,1,2>
-    2562729473U, // <0,u,7,2>: Cost 3 vext1 <2,0,u,7>, <2,0,u,7>
-    3099378333U, // <0,u,7,3>: Cost 3 vtrnr <2,0,5,7>, LHS
-    2562731318U, // <0,u,7,4>: Cost 3 vext1 <2,0,u,7>, RHS
-    1679005030U, // <0,u,7,5>: Cost 2 vuzpl LHS, <7,4,5,6>
-    2718718261U, // <0,u,7,6>: Cost 3 vext3 <5,6,7,0>, <u,7,6,0>
-    1679005292U, // <0,u,7,7>: Cost 2 vuzpl LHS, <7,7,7,7>
-    1679004729U, // <0,u,7,u>: Cost 2 vuzpl LHS, <7,0,u,2>
+    2083659778U, // <0,u,6,5>: Cost 2 ins <0,4,u,5>, lane 2
+    2082340866U, // <0,u,6,6>: Cost 2 ins <0,2,u,6>, lane 2
+    1058226176U, // <0,u,6,7>: Cost 1 ins RHS, lane 0
+    1007910914U, // <0,u,6,u>: Cost 1 ins LHS, lane 2
+    2132647936U, // <0,u,7,0>: Cost 2 ins <u,6,7,0>, lane 0
+    2080972802U, // <0,u,7,1>: Cost 2 ins <0,0,u,1>, lane 2
+    2080980994U, // <0,u,7,2>: Cost 2 ins <0,0,u,2>, lane 2
+    1007910914U, // <0,u,7,3>: Cost 1 ins LHS, lane 2
+    2132680704U, // <0,u,7,4>: Cost 2 ins <u,6,7,4>, lane 0
+    2083659778U, // <0,u,7,5>: Cost 2 ins <0,4,u,5>, lane 2
+    2082340866U, // <0,u,7,6>: Cost 2 ins <0,2,u,6>, lane 2
+    2132041728U, // <0,u,7,7>: Cost 2 ins <u,5,7,7>, lane 0
+    1007910914U, // <0,u,7,u>: Cost 1 ins LHS, lane 2
     135053414U,  // <0,u,u,0>: Cost 1 vdup0 LHS
     743683886U,  // <0,u,u,1>: Cost 1 vzipl LHS, LHS
     605263662U,  // <0,u,u,2>: Cost 1 vuzpl LHS, LHS
     835584U,     // <0,u,u,3>: Cost 0 copy LHS
-    1679005668U, // <0,u,u,4>: Cost 2 vuzpl LHS, <u,3,4,5>
+    1007509507U, // <0,u,u,4>: Cost 1 ins LHS, lane 3
     743684250U,  // <0,u,u,5>: Cost 1 vzipl LHS, RHS
     605264026U,  // <0,u,u,6>: Cost 1 vuzpl LHS, RHS
-    1880444232U, // <0,u,u,7>: Cost 2 vzipr <0,2,0,u>, RHS
+    1007509507U, // <0,u,u,7>: Cost 1 ins LHS, lane 3
     835584U,     // <0,u,u,u>: Cost 0 copy LHS
-    2689744896U, // <1,0,0,0>: Cost 3 vext3 <0,u,1,1>, <0,0,0,0>
+    2128150528U, // <1,0,0,0>: Cost 2 ins <u,0,0,0>, lane 0
     1818148966U, // <1,0,0,1>: Cost 2 vzipl <1,0,3,2>, LHS
-    2689744916U, // <1,0,0,2>: Cost 3 vext3 <0,u,1,1>, <0,0,2,2>
+    2086952962U, // <1,0,0,2>: Cost 2 ins <1,0,u,2>, lane 2
     2619310332U, // <1,0,0,3>: Cost 3 vext2 <0,3,1,0>, <0,3,1,0>
     2891891026U, // <1,0,0,4>: Cost 3 vzipl <1,0,3,2>, <0,4,1,5>
-    2891891118U, // <1,0,0,5>: Cost 3 vzipl <1,0,3,2>, <0,5,2,7>
-    3965633023U, // <1,0,0,6>: Cost 4 vzipl <1,0,3,2>, <0,6,2,7>
-    2621964864U, // <1,0,0,7>: Cost 3 vext2 <0,7,1,0>, <0,7,1,0>
+    3165437953U, // <1,0,0,5>: Cost 3 ins <1,u,0,5>, lane 1
+    3160154115U, // <1,0,0,6>: Cost 3 ins <1,0,0,u>, lane 3
+    3160154115U, // <1,0,0,7>: Cost 3 ins <1,0,0,u>, lane 3
     1818149533U, // <1,0,0,u>: Cost 2 vzipl <1,0,3,2>, LHS
-    2958180352U, // <1,0,1,0>: Cost 3 vzipr <0,u,1,1>, <0,0,0,0>
+    1745641571U, // <1,0,1,0>: Cost 2 vuzpr <0,1,2,0>, <0,1,2,0>
     1818656870U, // <1,0,1,1>: Cost 2 vzipl <1,1,1,1>, LHS
     1616003174U, // <1,0,1,2>: Cost 2 vext3 <0,u,1,1>, LHS
-    2758099702U, // <1,0,1,3>: Cost 3 vuzpl <1,1,0,0>, <1,0,3,2>
+    2091753473U, // <1,0,1,3>: Cost 2 ins <1,u,1,3>, lane 1
     2556783926U, // <1,0,1,4>: Cost 3 vext1 <1,1,0,1>, RHS
     2760770560U, // <1,0,1,5>: Cost 3 vuzpl <1,5,0,2>, <1,3,5,7>
     2724839566U, // <1,0,1,6>: Cost 3 vext3 <6,7,0,1>, <0,1,6,7>
-    3654415354U, // <1,0,1,7>: Cost 4 vext1 <5,1,0,1>, <7,0,1,2>
+    3165528065U, // <1,0,1,7>: Cost 3 ins <1,u,1,7>, lane 1
     1616003228U, // <1,0,1,u>: Cost 2 vext3 <0,u,1,1>, LHS
     2685690019U, // <1,0,2,0>: Cost 3 vext3 <0,2,0,1>, <0,2,0,1>
     1819459686U, // <1,0,2,1>: Cost 2 vzipl <1,2,3,0>, LHS
-    2893201572U, // <1,0,2,2>: Cost 3 vzipl <1,2,3,0>, <0,2,0,2>
-    2685911230U, // <1,0,2,3>: Cost 3 vext3 <0,2,3,1>, <0,2,3,1>
+    2128314368U, // <1,0,2,2>: Cost 2 ins <u,0,2,2>, lane 0
+    2128322560U, // <1,0,2,3>: Cost 2 ins <u,0,2,3>, lane 0
     2689745100U, // <1,0,2,4>: Cost 3 vext3 <0,u,1,1>, <0,2,4,6>
     2970798548U, // <1,0,2,5>: Cost 3 vzipr <3,0,1,2>, <3,4,0,5>
-    2724839640U, // <1,0,2,6>: Cost 3 vext3 <6,7,0,1>, <0,2,6,0>
+    3165593601U, // <1,0,2,6>: Cost 3 ins <1,u,2,6>, lane 1
     2592625730U, // <1,0,2,7>: Cost 3 vext1 <7,1,0,2>, <7,1,0,2>
     1819460253U, // <1,0,2,u>: Cost 2 vzipl <1,2,3,0>, LHS
     2014101504U, // <1,0,3,0>: Cost 2 vtrnr LHS, <0,0,0,0>
     2014101514U, // <1,0,3,1>: Cost 2 vtrnr LHS, <0,0,1,1>
     67944550U,   // <1,0,3,2>: Cost 1 vrev LHS
-    2568743135U, // <1,0,3,3>: Cost 3 vext1 <3,1,0,3>, <3,1,0,3>
-    3087843350U, // <1,0,3,4>: Cost 3 vtrnr LHS, <0,0,2,4>
-    3026108630U, // <1,0,3,5>: Cost 3 vtrnl <1,0,3,2>, <0,2,5,7>
-    2586661226U, // <1,0,3,6>: Cost 3 vext1 <6,1,0,3>, <6,1,0,3>
-    2592633923U, // <1,0,3,7>: Cost 3 vext1 <7,1,0,3>, <7,1,0,3>
+    2091900929U, // <1,0,3,3>: Cost 2 ins <1,u,3,3>, lane 1
+    2091909121U, // <1,0,3,4>: Cost 2 ins <1,u,3,4>, lane 1
+    2086633475U, // <1,0,3,5>: Cost 2 ins <1,0,3,u>, lane 3
+    2086633475U, // <1,0,3,6>: Cost 2 ins <1,0,3,u>, lane 3
+    2091933697U, // <1,0,3,7>: Cost 2 ins <1,u,3,7>, lane 1
     68386972U,   // <1,0,3,u>: Cost 1 vrev LHS
     2667752338U, // <1,0,4,0>: Cost 3 vext2 <u,4,1,0>, <4,0,5,1>
     2689745234U, // <1,0,4,1>: Cost 3 vext3 <0,u,1,1>, <0,4,1,5>
-    2689745244U, // <1,0,4,2>: Cost 3 vext3 <0,u,1,1>, <0,4,2,6>
-    4028630048U, // <1,0,4,3>: Cost 4 vzipr <0,3,1,4>, <1,4,0,3>
+    2086952962U, // <1,0,4,2>: Cost 2 ins <1,0,u,2>, lane 2
+    2819383641U, // <1,0,4,3>: Cost 3 vuzpr <0,1,2,0>, <0,4,2,3>
     2894569810U, // <1,0,4,4>: Cost 3 vzipl <1,4,3,5>, <0,4,1,5>
     2619313462U, // <1,0,4,5>: Cost 3 vext2 <0,3,1,0>, RHS
     2758102326U, // <1,0,4,6>: Cost 3 vuzpl <1,1,0,0>, RHS
-    3666383940U, // <1,0,4,7>: Cost 4 vext1 <7,1,0,4>, <7,1,0,4>
-    2619313705U, // <1,0,4,u>: Cost 3 vext2 <0,3,1,0>, RHS
+    2819386597U, // <1,0,4,7>: Cost 3 vuzpr <0,1,2,0>, <4,4,6,7>
+    2086952962U, // <1,0,4,u>: Cost 2 ins <1,0,u,2>, lane 2
     2955558912U, // <1,0,5,0>: Cost 3 vzipr <0,4,1,5>, <0,0,0,0>
     1821507686U, // <1,0,5,1>: Cost 2 vzipl <1,5,3,7>, LHS
     1954545766U, // <1,0,5,2>: Cost 2 vtrnl <1,3,5,7>, LHS
-    4029303007U, // <1,0,5,3>: Cost 4 vzipr <0,4,1,5>, <3,1,0,3>
+    3165790209U, // <1,0,5,3>: Cost 3 ins <1,u,5,3>, lane 1
     2955560050U, // <1,0,5,4>: Cost 3 vzipr <0,4,1,5>, <1,5,0,4>
-    4029304710U, // <1,0,5,5>: Cost 4 vzipr <0,4,1,5>, <5,4,0,5>
-    4029301066U, // <1,0,5,6>: Cost 4 vzipr <0,4,1,5>, <0,4,0,6>
-    2825211190U, // <1,0,5,7>: Cost 3 vuzpr <1,1,0,0>, RHS
+    3165806593U, // <1,0,5,5>: Cost 3 ins <1,u,5,5>, lane 1
+    3202310144U, // <1,0,5,6>: Cost 3 ins <u,0,5,6>, lane 0
+    2092081153U, // <1,0,5,7>: Cost 2 ins <1,u,5,7>, lane 1
     1954545820U, // <1,0,5,u>: Cost 2 vtrnl <1,3,5,7>, LHS
-    4027981824U, // <1,0,6,0>: Cost 4 vzipr <0,2,1,6>, <0,0,0,0>
+    3202334720U, // <1,0,6,0>: Cost 3 ins <u,0,6,0>, lane 0
     2895765606U, // <1,0,6,1>: Cost 3 vzipl <1,6,1,7>, LHS
-    3028361318U, // <1,0,6,2>: Cost 3 vtrnl <1,3,6,7>, LHS
-    3969433852U, // <1,0,6,3>: Cost 4 vzipl <1,6,0,7>, <0,3,1,0>
+    2128609280U, // <1,0,6,2>: Cost 2 ins <u,0,6,2>, lane 0
+    2819383803U, // <1,0,6,3>: Cost 3 vuzpr <0,1,2,0>, <0,6,2,3>
     2896060754U, // <1,0,6,4>: Cost 3 vzipl <1,6,5,7>, <0,4,1,5>
-    4047227348U, // <1,0,6,5>: Cost 4 vzipr <3,4,1,6>, <3,4,0,5>
-    4179379676U, // <1,0,6,6>: Cost 4 vtrnr <3,1,0,6>, <2,0,4,6>
-    2657801046U, // <1,0,6,7>: Cost 3 vext2 <6,7,1,0>, <6,7,1,0>
-    3028361372U, // <1,0,6,u>: Cost 3 vtrnl <1,3,6,7>, LHS
+    3029688449U, // <1,0,6,5>: Cost 3 vtrnl <1,5,6,7>, <0,1,5,3>
+    3165888513U, // <1,0,6,6>: Cost 3 ins <1,u,6,6>, lane 1
+    2128650240U, // <1,0,6,7>: Cost 2 ins <u,0,6,7>, lane 0
+    2128609280U, // <1,0,6,u>: Cost 2 ins <u,0,6,2>, lane 0
     2659128312U, // <1,0,7,0>: Cost 3 vext2 <7,0,1,0>, <7,0,1,0>
     2974156454U, // <1,0,7,1>: Cost 3 vzipr <3,5,1,7>, <2,3,0,1>
-    2215460970U, // <1,0,7,2>: Cost 3 vrev <0,1,2,7>
+    2086952962U, // <1,0,7,2>: Cost 2 ins <1,0,u,2>, lane 2
     2861265024U, // <1,0,7,3>: Cost 3 vuzpr <7,1,3,0>, <5,7,1,3>
-    4179757208U, // <1,0,7,4>: Cost 4 vtrnr <3,1,5,7>, <3,0,1,4>
-    2215682181U, // <1,0,7,5>: Cost 3 vrev <0,1,5,7>
+    3202441216U, // <1,0,7,4>: Cost 3 ins <u,0,7,4>, lane 0
+    3165954049U, // <1,0,7,5>: Cost 3 ins <1,u,7,5>, lane 1
     2663110110U, // <1,0,7,6>: Cost 3 vext2 <7,6,1,0>, <7,6,1,0>
-    3834517100U, // <1,0,7,7>: Cost 4 vuzpl <1,5,0,2>, <7,7,7,7>
-    2861633669U, // <1,0,7,u>: Cost 3 vuzpr <7,1,u,0>, <5,7,1,u>
+    3165970433U, // <1,0,7,7>: Cost 3 ins <1,u,7,7>, lane 1
+    2086952962U, // <1,0,7,u>: Cost 2 ins <1,0,u,2>, lane 2
     2014142464U, // <1,0,u,0>: Cost 2 vtrnr LHS, <0,0,0,0>
     2014142474U, // <1,0,u,1>: Cost 2 vtrnr LHS, <0,0,1,1>
     67985515U,   // <1,0,u,2>: Cost 1 vrev LHS
-    2689893028U, // <1,0,u,3>: Cost 3 vext3 <0,u,3,1>, <0,u,3,1>
-    3087884301U, // <1,0,u,4>: Cost 3 vtrnr LHS, <0,0,1,4>
-    2619316378U, // <1,0,u,5>: Cost 3 vext2 <0,3,1,0>, RHS
-    2758105242U, // <1,0,u,6>: Cost 3 vuzpl <1,1,0,0>, RHS
-    2825211433U, // <1,0,u,7>: Cost 3 vuzpr <1,1,0,0>, RHS
+    2091753473U, // <1,0,u,3>: Cost 2 ins <1,u,1,3>, lane 1
+    2091909121U, // <1,0,u,4>: Cost 2 ins <1,u,3,4>, lane 1
+    2086633475U, // <1,0,u,5>: Cost 2 ins <1,0,3,u>, lane 3
+    2086633475U, // <1,0,u,6>: Cost 2 ins <1,0,3,u>, lane 3
+    2091933697U, // <1,0,u,7>: Cost 2 ins <1,u,3,7>, lane 1
     68427937U,   // <1,0,u,u>: Cost 1 vrev LHS
     1818149622U, // <1,1,0,0>: Cost 2 vzipl <1,0,3,2>, <1,0,3,2>
     1548894310U, // <1,1,0,1>: Cost 2 vext2 <0,u,1,1>, LHS
     1684439142U, // <1,1,0,2>: Cost 2 vuzpl <1,1,1,1>, LHS
-    2689745654U, // <1,1,0,3>: Cost 3 vext3 <0,u,1,1>, <1,0,3,2>
+    2087624706U, // <1,1,0,3>: Cost 2 ins <1,1,u,3>, lane 2
     2622636370U, // <1,1,0,4>: Cost 3 vext2 <0,u,1,1>, <0,4,1,5>
     2891891856U, // <1,1,0,5>: Cost 3 vzipl <1,0,3,2>, <1,5,3,7>
-    3696378367U, // <1,1,0,6>: Cost 4 vext2 <0,u,1,1>, <0,6,2,7>
-    4044521974U, // <1,1,0,7>: Cost 4 vzipr <3,0,1,0>, <0,6,1,7>
+    3161391106U, // <1,1,0,6>: Cost 3 ins <1,1,u,6>, lane 2
+    3161399298U, // <1,1,0,7>: Cost 3 ins <1,1,u,7>, lane 2
     1548894866U, // <1,1,0,u>: Cost 2 vext2 <0,u,1,1>, <0,u,1,1>
     1483112550U, // <1,1,1,0>: Cost 2 vext1 <1,1,1,1>, LHS
     202162278U,  // <1,1,1,1>: Cost 1 vdup1 LHS
-    2622636950U, // <1,1,1,2>: Cost 3 vext2 <0,u,1,1>, <1,2,3,0>
+    2087149571U, // <1,1,1,2>: Cost 2 ins <1,1,1,u>, lane 3
     1751548006U, // <1,1,1,3>: Cost 2 vuzpr <1,1,1,1>, LHS
     1483115830U, // <1,1,1,4>: Cost 2 vext1 <1,1,1,1>, RHS
-    2622637200U, // <1,1,1,5>: Cost 3 vext2 <0,u,1,1>, <1,5,3,7>
-    2825290580U, // <1,1,1,6>: Cost 3 vuzpr <1,1,1,1>, <1,1,4,6>
-    3093726046U, // <1,1,1,7>: Cost 3 vtrnr <1,1,1,1>, <1,1,5,7>
+    2087149571U, // <1,1,1,5>: Cost 2 ins <1,1,1,u>, lane 3
+    2087149571U, // <1,1,1,6>: Cost 2 ins <1,1,1,u>, lane 3
+    2087149571U, // <1,1,1,7>: Cost 2 ins <1,1,1,u>, lane 3
     202162278U,  // <1,1,1,u>: Cost 1 vdup1 LHS
-    2758182566U, // <1,1,2,0>: Cost 3 vuzpl <1,1,1,1>, <2,3,0,1>
-    2958852754U, // <1,1,2,1>: Cost 3 vzipr <1,0,1,2>, <0,u,1,1>
+    2128961536U, // <1,1,2,0>: Cost 2 ins <u,1,2,0>, lane 0
+    2128969728U, // <1,1,2,1>: Cost 2 ins <u,1,2,1>, lane 0
     1819460502U, // <1,1,2,2>: Cost 2 vzipl <1,2,3,0>, <1,2,3,0>
-    2622637734U, // <1,1,2,3>: Cost 3 vext2 <0,u,1,1>, <2,3,0,1>
-    2758182606U, // <1,1,2,4>: Cost 3 vuzpl <1,1,1,1>, <2,3,4,5>
-    2893202576U, // <1,1,2,5>: Cost 3 vzipl <1,2,3,0>, <1,5,3,7>
-    2622638010U, // <1,1,2,6>: Cost 3 vext2 <0,u,1,1>, <2,6,3,7>
-    4032595151U, // <1,1,2,7>: Cost 4 vzipr <1,0,1,2>, <1,6,1,7>
-    1819460502U, // <1,1,2,u>: Cost 2 vzipl <1,2,3,0>, <1,2,3,0>
-    3087843418U, // <1,1,3,0>: Cost 3 vtrnr LHS, <0,1,1,0>
+    1055244288U, // <1,1,2,3>: Cost 1 ins LHS, lane 0
+    2128994304U, // <1,1,2,4>: Cost 2 ins <u,1,2,4>, lane 0
+    2129002496U, // <1,1,2,5>: Cost 2 ins <u,1,2,5>, lane 0
+    2129010688U, // <1,1,2,6>: Cost 2 ins <u,1,2,6>, lane 0
+    2129018880U, // <1,1,2,7>: Cost 2 ins <u,1,2,7>, lane 0
+    1055244288U, // <1,1,2,u>: Cost 1 ins LHS, lane 0
+    2091876353U, // <1,1,3,0>: Cost 2 ins <1,u,3,0>, lane 1
     2014102324U, // <1,1,3,1>: Cost 2 vtrnr LHS, <1,1,1,1>
-    3087843420U, // <1,1,3,2>: Cost 3 vtrnr LHS, <0,1,1,2>
+    2091892737U, // <1,1,3,2>: Cost 2 ins <1,u,3,2>, lane 1
     940359782U,  // <1,1,3,3>: Cost 1 vtrnr LHS, LHS
-    2622638594U, // <1,1,3,4>: Cost 3 vext2 <0,u,1,1>, <3,4,5,6>
-    3087843432U, // <1,1,3,5>: Cost 3 vtrnr LHS, <0,1,2,5>
-    3135619195U, // <1,1,3,6>: Cost 3 vtrnr LHS, <0,1,4,6>
-    2825290752U, // <1,1,3,7>: Cost 3 vuzpr <1,1,1,1>, <1,3,5,7>
+    2091909121U, // <1,1,3,4>: Cost 2 ins <1,u,3,4>, lane 1
+    2087297027U, // <1,1,3,5>: Cost 2 ins <1,1,3,u>, lane 3
+    2087297027U, // <1,1,3,6>: Cost 2 ins <1,1,3,u>, lane 3
+    2091933697U, // <1,1,3,7>: Cost 2 ins <1,u,3,7>, lane 1
     940359787U,  // <1,1,3,u>: Cost 1 vtrnr LHS, LHS
     2556878950U, // <1,1,4,0>: Cost 3 vext1 <1,1,1,4>, LHS
-    2221335351U, // <1,1,4,1>: Cost 3 vrev <1,1,1,4>
+    2087608322U, // <1,1,4,1>: Cost 2 ins <1,1,u,1>, lane 2
     2894496662U, // <1,1,4,2>: Cost 3 vzipl <1,4,2,5>, <1,2,3,0>
-    3093749862U, // <1,1,4,3>: Cost 3 vtrnr <1,1,1,4>, LHS
-    2954887424U, // <1,1,4,4>: Cost 3 vzipr <0,3,1,4>, <0,3,1,4>
+    2087624706U, // <1,1,4,3>: Cost 2 ins <1,1,u,3>, lane 2
+    2014109799U, // <1,1,4,4>: Cost 2 vtrnr <0,1,2,4>, <0,1,2,4>
     1548897590U, // <1,1,4,5>: Cost 2 vext2 <0,u,1,1>, RHS
     1684442422U, // <1,1,4,6>: Cost 2 vuzpl <1,1,1,1>, RHS
-    4033275006U, // <1,1,4,7>: Cost 4 vzipr <1,1,1,4>, <1,5,1,7>
+    3161399298U, // <1,1,4,7>: Cost 3 ins <1,1,u,7>, lane 2
     1548897833U, // <1,1,4,u>: Cost 2 vext2 <0,u,1,1>, RHS
     3028288624U, // <1,1,5,0>: Cost 3 vtrnl <1,3,5,7>, <1,5,0,2>
-    2955558922U, // <1,1,5,1>: Cost 3 vzipr <0,4,1,5>, <0,0,1,1>
+    2087608322U, // <1,1,5,1>: Cost 2 ins <1,1,u,1>, lane 2
     2955561110U, // <1,1,5,2>: Cost 3 vzipr <0,4,1,5>, <3,0,1,2>
-    3087859814U, // <1,1,5,3>: Cost 3 vtrnr <0,1,2,5>, LHS
+    2087624706U, // <1,1,5,3>: Cost 2 ins <1,1,u,3>, lane 2
     2955558925U, // <1,1,5,4>: Cost 3 vzipr <0,4,1,5>, <0,0,1,4>
     1881817426U, // <1,1,5,5>: Cost 2 vzipr <0,4,1,5>, <0,4,1,5>
     2670415970U, // <1,1,5,6>: Cost 3 vext2 <u,u,1,1>, <5,6,7,0>
     1751551286U, // <1,1,5,7>: Cost 2 vuzpr <1,1,1,1>, RHS
     1751551287U, // <1,1,5,u>: Cost 2 vuzpr <1,1,1,1>, RHS
-    2758185806U, // <1,1,6,0>: Cost 3 vuzpl <1,1,1,1>, <6,7,0,1>
-    3093988148U, // <1,1,6,1>: Cost 3 vtrnr <1,1,4,6>, <1,1,1,1>
+    3165839361U, // <1,1,6,0>: Cost 3 ins <1,u,6,0>, lane 1
+    2087608322U, // <1,1,6,1>: Cost 2 ins <1,1,u,1>, lane 2
     2973485206U, // <1,1,6,2>: Cost 3 vzipr <3,4,1,6>, <3,0,1,2>
-    3093987430U, // <1,1,6,3>: Cost 3 vtrnr <1,1,4,6>, LHS
+    2087624706U, // <1,1,6,3>: Cost 2 ins <1,1,u,3>, lane 2
     2221572948U, // <1,1,6,4>: Cost 3 vrev <1,1,4,6>
     2955567442U, // <1,1,6,5>: Cost 3 vzipr <0,4,1,6>, <0,4,1,5>
-    2954240177U, // <1,1,6,6>: Cost 3 vzipr <0,2,1,6>, <0,2,1,6>
-    2825291706U, // <1,1,6,7>: Cost 3 vuzpr <1,1,1,1>, <2,6,3,7>
-    2825291707U, // <1,1,6,u>: Cost 3 vuzpr <1,1,1,1>, <2,6,3,u>
+    2014126185U, // <1,1,6,6>: Cost 2 vtrnr <0,1,2,6>, <0,1,2,6>
+    2129313792U, // <1,1,6,7>: Cost 2 ins <u,1,6,7>, lane 0
+    2087624706U, // <1,1,6,u>: Cost 2 ins <1,1,u,3>, lane 2
     2670416890U, // <1,1,7,0>: Cost 3 vext2 <u,u,1,1>, <7,0,1,2>
-    3094070068U, // <1,1,7,1>: Cost 3 vtrnr <1,1,5,7>, <1,1,1,1>
-    4167811884U, // <1,1,7,2>: Cost 4 vtrnr <1,1,5,7>, <1,1,0,2>
-    3094069350U, // <1,1,7,3>: Cost 3 vtrnr <1,1,5,7>, LHS
+    2087608322U, // <1,1,7,1>: Cost 2 ins <1,1,u,1>, lane 2
+    3203088384U, // <1,1,7,2>: Cost 3 ins <u,1,7,2>, lane 0
+    2129354752U, // <1,1,7,3>: Cost 2 ins <u,1,7,3>, lane 0
     2670417254U, // <1,1,7,4>: Cost 3 vext2 <u,u,1,1>, <7,4,5,6>
     2221654878U, // <1,1,7,5>: Cost 3 vrev <1,1,5,7>
-    4167811924U, // <1,1,7,6>: Cost 4 vtrnr <1,1,5,7>, <1,1,4,6>
-    3094070110U, // <1,1,7,7>: Cost 3 vtrnr <1,1,5,7>, <1,1,5,7>
-    3094069355U, // <1,1,7,u>: Cost 3 vtrnr <1,1,5,7>, LHS
+    3161391106U, // <1,1,7,6>: Cost 3 ins <1,1,u,6>, lane 2
+    2014134378U, // <1,1,7,7>: Cost 2 vtrnr <0,1,2,7>, <0,1,2,7>
+    2129354752U, // <1,1,7,u>: Cost 2 ins <u,1,7,3>, lane 0
     1818149622U, // <1,1,u,0>: Cost 2 vzipl <1,0,3,2>, <1,0,3,2>
     202162278U,  // <1,1,u,1>: Cost 1 vdup1 LHS
     1684444974U, // <1,1,u,2>: Cost 2 vuzpl <1,1,1,1>, LHS
@@ -912,30 +912,30 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1684445338U, // <1,1,u,6>: Cost 2 vuzpl <1,1,1,1>, RHS
     1751551529U, // <1,1,u,7>: Cost 2 vuzpr <1,1,1,1>, RHS
     940400747U,  // <1,1,u,u>: Cost 1 vtrnr LHS, LHS
-    2759590052U, // <1,2,0,0>: Cost 3 vuzpl <1,3,2,2>, <0,2,0,2>
+    2088263682U, // <1,2,0,0>: Cost 2 ins <1,2,u,0>, lane 2
     1561509990U, // <1,2,0,1>: Cost 2 vext2 <3,0,1,2>, LHS
-    2618663085U, // <1,2,0,2>: Cost 3 vext2 <0,2,1,2>, <0,2,1,2>
+    2129494016U, // <1,2,0,2>: Cost 2 ins <u,2,0,2>, lane 0
     2954854502U, // <1,2,0,3>: Cost 3 vzipr <0,3,1,0>, LHS
-    2759622860U, // <1,2,0,4>: Cost 3 vuzpl <1,3,2,6>, <0,2,4,6>
-    3965634400U, // <1,2,0,5>: Cost 4 vzipl <1,0,3,2>, <2,5,2,7>
+    2088296450U, // <1,2,0,4>: Cost 2 ins <1,2,u,4>, lane 2
+    3165437953U, // <1,2,0,5>: Cost 3 ins <1,u,0,5>, lane 1
     2891892666U, // <1,2,0,6>: Cost 3 vzipl <1,0,3,2>, <2,6,3,7>
     2659140170U, // <1,2,0,7>: Cost 3 vext2 <7,0,1,2>, <0,7,2,1>
     1561510557U, // <1,2,0,u>: Cost 2 vext2 <3,0,1,2>, LHS
-    2623308516U, // <1,2,1,0>: Cost 3 vext2 <1,0,1,2>, <1,0,1,2>
-    2959507556U, // <1,2,1,1>: Cost 3 vzipr <1,1,1,1>, <0,1,2,1>
-    2958180372U, // <1,2,1,2>: Cost 3 vzipr <0,u,1,1>, <0,0,2,2>
+    2088263682U, // <1,2,1,0>: Cost 2 ins <1,2,u,0>, lane 2
+    2091737089U, // <1,2,1,1>: Cost 2 ins <1,u,1,1>, lane 1
+    1745657957U, // <1,2,1,2>: Cost 2 vuzpr <0,1,2,2>, <0,1,2,2>
     1884438630U, // <1,2,1,3>: Cost 2 vzipr <0,u,1,1>, LHS
-    3026618062U, // <1,2,1,4>: Cost 3 vtrnl <1,1,1,1>, <2,3,4,5>
+    2088296450U, // <1,2,1,4>: Cost 2 ins <1,2,u,4>, lane 2
     2635252880U, // <1,2,1,5>: Cost 3 vext2 <3,0,1,2>, <1,5,3,7>
     2958180700U, // <1,2,1,6>: Cost 3 vzipr <0,u,1,1>, <0,4,2,6>
-    4031922687U, // <1,2,1,7>: Cost 4 vzipr <0,u,1,1>, <0,6,2,7>
+    3165528065U, // <1,2,1,7>: Cost 3 ins <1,u,1,7>, lane 1
     1884438635U, // <1,2,1,u>: Cost 2 vzipr <0,u,1,1>, LHS
-    2893202878U, // <1,2,2,0>: Cost 3 vzipl <1,2,3,0>, <2,0,1,3>
+    2088263682U, // <1,2,2,0>: Cost 2 ins <1,2,u,0>, lane 2
     2893235754U, // <1,2,2,1>: Cost 3 vzipl <1,2,3,4>, <2,1,4,3>
-    2618664552U, // <1,2,2,2>: Cost 3 vext2 <0,2,1,2>, <2,2,2,2>
+    2129641472U, // <1,2,2,2>: Cost 2 ins <u,2,2,2>, lane 0
     1897054310U, // <1,2,2,3>: Cost 2 vzipr <3,0,1,2>, LHS
-    2893235970U, // <1,2,2,4>: Cost 3 vzipl <1,2,3,4>, <2,4,1,3>
-    2893203278U, // <1,2,2,5>: Cost 3 vzipl <1,2,3,0>, <2,5,0,7>
+    2088296450U, // <1,2,2,4>: Cost 2 ins <1,2,u,4>, lane 2
+    3165585409U, // <1,2,2,5>: Cost 3 ins <1,u,2,5>, lane 1
     2893203386U, // <1,2,2,6>: Cost 3 vzipl <1,2,3,0>, <2,6,3,7>
     2994684010U, // <1,2,2,7>: Cost 3 vzipr <7,0,1,2>, <0,1,2,7>
     1897054315U, // <1,2,2,u>: Cost 2 vzipr <3,0,1,2>, LHS
@@ -948,40 +948,40 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2014101708U, // <1,2,3,6>: Cost 2 vtrnr LHS, <0,2,4,6>
     1525011450U, // <1,2,3,7>: Cost 2 vext1 LHS, <7,0,1,2>
     403494702U,  // <1,2,3,u>: Cost 1 vext1 LHS, LHS
-    2641226607U, // <1,2,4,0>: Cost 3 vext2 <4,0,1,2>, <4,0,1,2>
-    3624723446U, // <1,2,4,1>: Cost 4 vext1 <0,1,2,4>, <1,3,4,6>
-    4028629012U, // <1,2,4,2>: Cost 4 vzipr <0,3,1,4>, <0,0,2,2>
+    2088263682U, // <1,2,4,0>: Cost 2 ins <1,2,u,0>, lane 2
+    3162013698U, // <1,2,4,1>: Cost 3 ins <1,2,u,1>, lane 2
+    3162021890U, // <1,2,4,2>: Cost 3 ins <1,2,u,2>, lane 2
     2954887270U, // <1,2,4,3>: Cost 3 vzipr <0,3,1,4>, LHS
-    2659142864U, // <1,2,4,4>: Cost 3 vext2 <7,0,1,2>, <4,4,4,4>
+    2088296450U, // <1,2,4,4>: Cost 2 ins <1,2,u,4>, lane 2
     1561513270U, // <1,2,4,5>: Cost 2 vext2 <3,0,1,2>, RHS
-    2759576886U, // <1,2,4,6>: Cost 3 vuzpl <1,3,2,0>, RHS
+    2129821696U, // <1,2,4,6>: Cost 2 ins <u,2,4,6>, lane 0
     2659143112U, // <1,2,4,7>: Cost 3 vext2 <7,0,1,2>, <4,7,5,0>
     1561513513U, // <1,2,4,u>: Cost 2 vext2 <3,0,1,2>, RHS
-    2550988904U, // <1,2,5,0>: Cost 3 vext1 <0,1,2,5>, <0,1,2,5>
+    2088263682U, // <1,2,5,0>: Cost 2 ins <1,2,u,0>, lane 2
     2550989824U, // <1,2,5,1>: Cost 3 vext1 <0,1,2,5>, <1,3,5,7>
     2955558932U, // <1,2,5,2>: Cost 3 vzipr <0,4,1,5>, <0,0,2,2>
     1881817190U, // <1,2,5,3>: Cost 2 vzipr <0,4,1,5>, LHS
-    2550992182U, // <1,2,5,4>: Cost 3 vext1 <0,1,2,5>, RHS
+    2088296450U, // <1,2,5,4>: Cost 2 ins <1,2,u,4>, lane 2
     2659143684U, // <1,2,5,5>: Cost 3 vext2 <7,0,1,2>, <5,5,5,5>
     2955559260U, // <1,2,5,6>: Cost 3 vzipr <0,4,1,5>, <0,4,2,6>
-    2825817398U, // <1,2,5,7>: Cost 3 vuzpr <1,1,u,2>, RHS
+    2092081153U, // <1,2,5,7>: Cost 2 ins <1,u,5,7>, lane 1
     1881817195U, // <1,2,5,u>: Cost 2 vzipr <0,4,1,5>, LHS
-    2700289945U, // <1,2,6,0>: Cost 3 vext3 <2,6,0,1>, <2,6,0,1>
-    2635256232U, // <1,2,6,1>: Cost 3 vext2 <3,0,1,2>, <6,1,7,2>
+    2088263682U, // <1,2,6,0>: Cost 2 ins <1,2,u,0>, lane 2
+    3162013698U, // <1,2,6,1>: Cost 3 ins <1,2,u,1>, lane 2
     2659144186U, // <1,2,6,2>: Cost 3 vext2 <7,0,1,2>, <6,2,7,3>
     2954240102U, // <1,2,6,3>: Cost 3 vzipr <0,2,1,6>, LHS
-    3763488705U, // <1,2,6,4>: Cost 4 vext3 <0,u,1,1>, <2,6,4,5>
-    3763488716U, // <1,2,6,5>: Cost 4 vext3 <0,u,1,1>, <2,6,5,7>
+    2088296450U, // <1,2,6,4>: Cost 2 ins <1,2,u,4>, lane 2
+    3162046466U, // <1,2,6,5>: Cost 3 ins <1,2,u,5>, lane 2
     2895914938U, // <1,2,6,6>: Cost 3 vzipl <1,6,3,7>, <2,6,3,7>
-    2657817432U, // <1,2,6,7>: Cost 3 vext2 <6,7,1,2>, <6,7,1,2>
-    2954240107U, // <1,2,6,u>: Cost 3 vzipr <0,2,1,6>, LHS
+    2129977344U, // <1,2,6,7>: Cost 2 ins <u,2,6,7>, lane 0
+    2088263682U, // <1,2,6,u>: Cost 2 ins <1,2,u,0>, lane 2
     1585402874U, // <1,2,7,0>: Cost 2 vext2 <7,0,1,2>, <7,0,1,2>
-    2659144770U, // <1,2,7,1>: Cost 3 vext2 <7,0,1,2>, <7,1,0,2>
-    4167811236U, // <1,2,7,2>: Cost 4 vtrnr <1,1,5,7>, <0,2,0,2>
-    2962210918U, // <1,2,7,3>: Cost 3 vzipr <1,5,1,7>, LHS
-    2659145062U, // <1,2,7,4>: Cost 3 vext2 <7,0,1,2>, <7,4,5,6>
-    3301369399U, // <1,2,7,5>: Cost 4 vrev <2,1,5,7>
-    4167811276U, // <1,2,7,6>: Cost 4 vtrnr <1,1,5,7>, <0,2,4,6>
+    3203743744U, // <1,2,7,1>: Cost 3 ins <u,2,7,1>, lane 0
+    3203751936U, // <1,2,7,2>: Cost 3 ins <u,2,7,2>, lane 0
+    2130018304U, // <1,2,7,3>: Cost 2 ins <u,2,7,3>, lane 0
+    2088296450U, // <1,2,7,4>: Cost 2 ins <1,2,u,4>, lane 2
+    3203776512U, // <1,2,7,5>: Cost 3 ins <u,2,7,5>, lane 0
+    3203784704U, // <1,2,7,6>: Cost 3 ins <u,2,7,6>, lane 0
     2659145255U, // <1,2,7,7>: Cost 3 vext2 <7,0,1,2>, <7,7,0,1>
     1590711938U, // <1,2,7,u>: Cost 2 vext2 <7,u,1,2>, <7,u,1,2>
     403529835U,  // <1,2,u,0>: Cost 1 vext1 LHS, LHS
@@ -996,20 +996,20 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1745666048U, // <1,3,0,0>: Cost 2 vuzpr LHS, <0,0,0,0>
     1746108426U, // <1,3,0,1>: Cost 2 vuzpr LHS, <0,0,1,1>
     1745666806U, // <1,3,0,2>: Cost 2 vuzpr LHS, <1,0,3,2>
-    2619334911U, // <1,3,0,3>: Cost 3 vext2 <0,3,1,3>, <0,3,1,3>
+    2088951810U, // <1,3,0,3>: Cost 2 ins <1,3,u,3>, lane 2
     2819850253U, // <1,3,0,4>: Cost 3 vuzpr LHS, <0,0,1,4>
     2758984055U, // <1,3,0,5>: Cost 3 vuzpl <1,2,3,0>, <0,4,5,6>
     2867183658U, // <1,3,0,6>: Cost 3 vuzpr LHS, <0,0,4,6>
-    2592830555U, // <1,3,0,7>: Cost 3 vext1 <7,1,3,0>, <7,1,3,0>
+    2088984578U, // <1,3,0,7>: Cost 2 ins <1,3,u,7>, lane 2
     1745668252U, // <1,3,0,u>: Cost 2 vuzpr LHS, <3,0,1,u>
-    2819850330U, // <1,3,1,0>: Cost 3 vuzpr LHS, <0,1,1,0>
+    2088476675U, // <1,3,1,0>: Cost 2 ins <1,3,1,u>, lane 3
     1745666868U, // <1,3,1,1>: Cost 2 vuzpr LHS, <1,1,1,1>
-    2819850332U, // <1,3,1,2>: Cost 3 vuzpr LHS, <0,1,1,2>
+    2088476675U, // <1,3,1,2>: Cost 2 ins <1,3,1,u>, lane 3
     671924326U,  // <1,3,1,3>: Cost 1 vuzpr LHS, LHS
-    2958181274U, // <1,3,1,4>: Cost 3 vzipr <0,u,1,1>, <1,2,3,4>
-    2819850335U, // <1,3,1,5>: Cost 3 vuzpr LHS, <0,1,1,5>
-    2867183739U, // <1,3,1,6>: Cost 3 vuzpr LHS, <0,1,4,6>
-    2958181520U, // <1,3,1,7>: Cost 3 vzipr <0,u,1,1>, <1,5,3,7>
+    2088476675U, // <1,3,1,4>: Cost 2 ins <1,3,1,u>, lane 3
+    2088476675U, // <1,3,1,5>: Cost 2 ins <1,3,1,u>, lane 3
+    2088476675U, // <1,3,1,6>: Cost 2 ins <1,3,1,u>, lane 3
+    2088984578U, // <1,3,1,7>: Cost 2 ins <1,3,u,7>, lane 2
     671924331U,  // <1,3,1,u>: Cost 1 vuzpr LHS, LHS
     1745666966U, // <1,3,2,0>: Cost 2 vuzpr LHS, <1,2,3,0>
     2819408044U, // <1,3,2,1>: Cost 3 vuzpr LHS, <0,2,1,1>
@@ -1018,11 +1018,11 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1745666970U, // <1,3,2,4>: Cost 2 vuzpr LHS, <1,2,3,4>
     2819408066U, // <1,3,2,5>: Cost 3 vuzpr LHS, <0,2,3,5>
     1745666252U, // <1,3,2,6>: Cost 2 vuzpr LHS, <0,2,4,6>
-    2970797200U, // <1,3,2,7>: Cost 3 vzipr <3,0,1,2>, <1,5,3,7>
+    2088984578U, // <1,3,2,7>: Cost 2 ins <1,3,u,7>, lane 2
     1745666218U, // <1,3,2,u>: Cost 2 vuzpr LHS, <0,2,0,u>
     1483276390U, // <1,3,3,0>: Cost 2 vext1 <1,1,3,3>, LHS
     1745667750U, // <1,3,3,1>: Cost 2 vuzpr LHS, <2,3,0,1>
-    2819408846U, // <1,3,3,2>: Cost 3 vuzpr LHS, <1,3,0,2>
+    2091892737U, // <1,3,3,2>: Cost 2 ins <1,u,3,2>, lane 1
     1745667032U, // <1,3,3,3>: Cost 2 vuzpr LHS, <1,3,1,3>
     1483279670U, // <1,3,3,4>: Cost 2 vext1 <1,1,3,3>, RHS
     1745667790U, // <1,3,3,5>: Cost 2 vuzpr LHS, <2,3,4,5>
@@ -1032,25 +1032,25 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2568970342U, // <1,3,4,0>: Cost 3 vext1 <3,1,3,4>, LHS
     2759019375U, // <1,3,4,1>: Cost 3 vuzpl <1,2,3,4>, <4,0,1,2>
     2759019466U, // <1,3,4,2>: Cost 3 vuzpl <1,2,3,4>, <4,1,2,3>
-    2233428219U, // <1,3,4,3>: Cost 3 vrev <3,1,3,4>
+    2088951810U, // <1,3,4,3>: Cost 2 ins <1,3,u,3>, lane 2
     1793445072U, // <1,3,4,4>: Cost 2 vuzpr LHS, <4,4,4,4>
     1746108754U, // <1,3,4,5>: Cost 2 vuzpr LHS, <0,4,1,5>
     1745668610U, // <1,3,4,6>: Cost 2 vuzpr LHS, <3,4,5,6>
-    2592863327U, // <1,3,4,7>: Cost 3 vext1 <7,1,3,4>, <7,1,3,4>
+    2088984578U, // <1,3,4,7>: Cost 2 ins <1,3,u,7>, lane 2
     1745668612U, // <1,3,4,u>: Cost 2 vuzpr LHS, <3,4,5,u>
-    2955559830U, // <1,3,5,0>: Cost 3 vzipr <0,4,1,5>, <1,2,3,0>
-    3028289686U, // <1,3,5,1>: Cost 3 vtrnl <1,3,5,7>, <3,0,1,2>
-    2955559670U, // <1,3,5,2>: Cost 3 vzipr <0,4,1,5>, <1,0,3,2>
-    2955559752U, // <1,3,5,3>: Cost 3 vzipr <0,4,1,5>, <1,1,3,3>
-    2955559834U, // <1,3,5,4>: Cost 3 vzipr <0,4,1,5>, <1,2,3,4>
+    2088771587U, // <1,3,5,0>: Cost 2 ins <1,3,5,u>, lane 3
+    2088771587U, // <1,3,5,1>: Cost 2 ins <1,3,5,u>, lane 3
+    2088771587U, // <1,3,5,2>: Cost 2 ins <1,3,5,u>, lane 3
+    2088951810U, // <1,3,5,3>: Cost 2 ins <1,3,u,3>, lane 2
+    2088771587U, // <1,3,5,4>: Cost 2 ins <1,3,5,u>, lane 3
     1793445892U, // <1,3,5,5>: Cost 2 vuzpr LHS, <5,5,5,5>
-    2819852136U, // <1,3,5,6>: Cost 3 vuzpr LHS, <2,5,3,6>
+    2088771587U, // <1,3,5,6>: Cost 2 ins <1,3,5,u>, lane 3
     671927606U,  // <1,3,5,7>: Cost 1 vuzpr LHS, RHS
     671927607U,  // <1,3,5,u>: Cost 1 vuzpr LHS, RHS
     1793445986U, // <1,3,6,0>: Cost 2 vuzpr LHS, <5,6,7,0>
     2867185561U, // <1,3,6,1>: Cost 3 vuzpr LHS, <2,6,0,1>
     1793445196U, // <1,3,6,2>: Cost 2 vuzpr LHS, <4,6,0,2>
-    2867185572U, // <1,3,6,3>: Cost 3 vuzpr LHS, <2,6,1,3>
+    2088951810U, // <1,3,6,3>: Cost 2 ins <1,3,u,3>, lane 2
     1793445990U, // <1,3,6,4>: Cost 2 vuzpr LHS, <5,6,7,4>
     2849642738U, // <1,3,6,5>: Cost 3 vuzpr <5,1,7,3>, <u,6,7,5>
     1793445236U, // <1,3,6,6>: Cost 2 vuzpr LHS, <4,6,4,6>
@@ -1074,100 +1074,100 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1745668934U, // <1,3,u,6>: Cost 2 vuzpr LHS, <3,u,5,6>
     671927849U,  // <1,3,u,7>: Cost 1 vuzpr LHS, RHS
     671924898U,  // <1,3,u,u>: Cost 1 vuzpr LHS, LHS
-    2617352205U, // <1,4,0,0>: Cost 3 vext2 <0,0,1,4>, <0,0,1,4>
+    3165396993U, // <1,4,0,0>: Cost 3 ins <1,u,0,0>, lane 1
     2619342950U, // <1,4,0,1>: Cost 3 vext2 <0,3,1,4>, LHS
     2758434918U, // <1,4,0,2>: Cost 3 vuzpl <1,1,4,5>, LHS
     2619343104U, // <1,4,0,3>: Cost 3 vext2 <0,3,1,4>, <0,3,1,4>
-    2617352530U, // <1,4,0,4>: Cost 3 vext2 <0,0,1,4>, <0,4,1,5>
+    3165429761U, // <1,4,0,4>: Cost 3 ins <1,u,0,4>, lane 1
     1818152246U, // <1,4,0,5>: Cost 2 vzipl <1,0,3,2>, RHS
     3026537782U, // <1,4,0,6>: Cost 3 vtrnl <1,1,0,0>, RHS
-    2621997636U, // <1,4,0,7>: Cost 3 vext2 <0,7,1,4>, <0,7,1,4>
+    3162808323U, // <1,4,0,7>: Cost 3 ins <1,4,0,u>, lane 3
     1818152489U, // <1,4,0,u>: Cost 2 vzipl <1,0,3,2>, RHS
-    2892401554U, // <1,4,1,0>: Cost 3 vzipl <1,1,1,1>, <4,0,5,1>
-    2623988535U, // <1,4,1,1>: Cost 3 vext2 <1,1,1,4>, <1,1,1,4>
-    3693085590U, // <1,4,1,2>: Cost 4 vext2 <0,3,1,4>, <1,2,3,0>
-    2825314406U, // <1,4,1,3>: Cost 3 vuzpr <1,1,1,4>, LHS
-    2825315127U, // <1,4,1,4>: Cost 3 vuzpr <1,1,1,4>, <1,1,1,4>
+    3204620288U, // <1,4,1,0>: Cost 3 ins <u,4,1,0>, lane 0
+    2091737089U, // <1,4,1,1>: Cost 2 ins <1,u,1,1>, lane 1
+    3204636672U, // <1,4,1,2>: Cost 3 ins <u,4,1,2>, lane 0
+    2091753473U, // <1,4,1,3>: Cost 2 ins <1,u,1,3>, lane 1
+    1745674343U, // <1,4,1,4>: Cost 2 vuzpr <0,1,2,4>, <0,1,2,4>
     1818660150U, // <1,4,1,5>: Cost 2 vzipl <1,1,1,1>, RHS
     1952877878U, // <1,4,1,6>: Cost 2 vtrnl <1,1,1,1>, RHS
-    3899056990U, // <1,4,1,7>: Cost 4 vuzpr <1,1,1,4>, <1,1,5,7>
+    3165528065U, // <1,4,1,7>: Cost 3 ins <1,u,1,7>, lane 1
     1818660393U, // <1,4,1,u>: Cost 2 vzipl <1,1,1,1>, RHS
     2893237103U, // <1,4,2,0>: Cost 3 vzipl <1,2,3,4>, <4,0,1,2>
     2893237194U, // <1,4,2,1>: Cost 3 vzipl <1,2,3,4>, <4,1,2,3>
-    3693086312U, // <1,4,2,2>: Cost 4 vext2 <0,3,1,4>, <2,2,2,2>
-    2635269798U, // <1,4,2,3>: Cost 3 vext2 <3,0,1,4>, <2,3,0,1>
+    3165560833U, // <1,4,2,2>: Cost 3 ins <1,u,2,2>, lane 1
+    2130976768U, // <1,4,2,3>: Cost 2 ins <u,4,2,3>, lane 0
     2893237467U, // <1,4,2,4>: Cost 3 vzipl <1,2,3,4>, <4,4,5,6>
     1819462966U, // <1,4,2,5>: Cost 2 vzipl <1,2,3,0>, RHS
-    3028012342U, // <1,4,2,6>: Cost 3 vtrnl <1,3,2,0>, RHS
-    4044539762U, // <1,4,2,7>: Cost 4 vzipr <3,0,1,2>, <2,5,4,7>
+    2131001344U, // <1,4,2,6>: Cost 2 ins <u,4,2,6>, lane 0
+    3165601793U, // <1,4,2,7>: Cost 3 ins <1,u,2,7>, lane 1
     1819463209U, // <1,4,2,u>: Cost 2 vzipl <1,2,3,0>, RHS
-    2563063910U, // <1,4,3,0>: Cost 3 vext1 <2,1,4,3>, LHS
+    2091876353U, // <1,4,3,0>: Cost 2 ins <1,u,3,0>, lane 1
     3027454831U, // <1,4,3,1>: Cost 3 vtrnl <1,2,3,4>, <4,0,1,2>
-    3027454922U, // <1,4,3,2>: Cost 3 vtrnl <1,2,3,4>, <4,1,2,3>
-    2837406680U, // <1,4,3,3>: Cost 3 vuzpr <3,1,3,4>, <1,3,1,3>
+    2091892737U, // <1,4,3,2>: Cost 2 ins <1,u,3,2>, lane 1
+    2091900929U, // <1,4,3,3>: Cost 2 ins <1,u,3,3>, lane 1
     2061880528U, // <1,4,3,4>: Cost 2 vtrnr LHS, <4,4,4,4>
     2014101842U, // <1,4,3,5>: Cost 2 vtrnr LHS, <0,4,1,5>
     2014101852U, // <1,4,3,6>: Cost 2 vtrnr LHS, <0,4,2,6>
-    3135620906U, // <1,4,3,7>: Cost 3 vtrnr LHS, <2,4,5,7>
+    2091933697U, // <1,4,3,7>: Cost 2 ins <1,u,3,7>, lane 1
     2014101845U, // <1,4,3,u>: Cost 2 vtrnr LHS, <0,4,1,u>
-    2708622509U, // <1,4,4,0>: Cost 3 vext3 <4,0,5,1>, <4,4,0,5>
-    4029959778U, // <1,4,4,1>: Cost 4 vzipr <0,5,1,4>, <5,0,4,1>
-    3833482186U, // <1,4,4,2>: Cost 4 vuzpl <1,3,4,2>, <4,1,2,3>
-    4028629922U, // <1,4,4,3>: Cost 4 vzipr <0,3,1,4>, <1,2,4,3>
-    2713930960U, // <1,4,4,4>: Cost 3 vext3 <4,u,5,1>, <4,4,4,4>
+    2557100134U, // <1,4,4,0>: Cost 3 vext1 <1,1,4,4>, LHS
+    2557100882U, // <1,4,4,1>: Cost 3 vext1 <1,1,4,4>, <1,1,4,4>
+    3165708289U, // <1,4,4,2>: Cost 3 ins <1,u,4,2>, lane 1
+    2819416409U, // <1,4,4,3>: Cost 3 vuzpr <0,1,2,4>, <0,4,2,3>
+    2131132416U, // <1,4,4,4>: Cost 2 ins <u,4,4,4>, lane 0
     2619346230U, // <1,4,4,5>: Cost 3 vext2 <0,3,1,4>, RHS
     2758438198U, // <1,4,4,6>: Cost 3 vuzpl <1,1,4,5>, RHS
-    4167492689U, // <1,4,4,7>: Cost 4 vtrnr <1,1,1,4>, <1,4,5,7>
-    2619346473U, // <1,4,4,u>: Cost 3 vext2 <0,3,1,4>, RHS
+    2819419365U, // <1,4,4,7>: Cost 3 vuzpr <0,1,2,4>, <4,4,6,7>
+    2131132416U, // <1,4,4,u>: Cost 2 ins <u,4,4,4>, lane 0
     2557108326U, // <1,4,5,0>: Cost 3 vext1 <1,1,4,5>, LHS
     2955558949U, // <1,4,5,1>: Cost 3 vzipr <0,4,1,5>, <0,0,4,1>
-    2551137958U, // <1,4,5,2>: Cost 3 vext1 <0,1,4,5>, <2,3,0,1>
-    4029303043U, // <1,4,5,3>: Cost 4 vzipr <0,4,1,5>, <3,1,4,3>
+    3204931584U, // <1,4,5,2>: Cost 3 ins <u,4,5,2>, lane 0
+    3165790209U, // <1,4,5,3>: Cost 3 ins <1,u,5,3>, lane 1
     2557111606U, // <1,4,5,4>: Cost 3 vext1 <1,1,4,5>, RHS
     1821510966U, // <1,4,5,5>: Cost 2 vzipl <1,5,3,7>, RHS
     1616006454U, // <1,4,5,6>: Cost 2 vext3 <0,u,1,1>, RHS
-    2825317686U, // <1,4,5,7>: Cost 3 vuzpr <1,1,1,4>, RHS
+    2092081153U, // <1,4,5,7>: Cost 2 ins <1,u,5,7>, lane 1
     1616006472U, // <1,4,5,u>: Cost 2 vext3 <0,u,1,1>, RHS
     2557116518U, // <1,4,6,0>: Cost 3 vext1 <1,1,4,6>, LHS
     2557117268U, // <1,4,6,1>: Cost 3 vext1 <1,1,4,6>, <1,1,4,6>
-    2698300764U, // <1,4,6,2>: Cost 3 vext3 <2,3,0,1>, <4,6,2,0>
+    3165855745U, // <1,4,6,2>: Cost 3 ins <1,u,6,2>, lane 1
     2569062662U, // <1,4,6,3>: Cost 3 vext1 <3,1,4,6>, <3,1,4,6>
     2557119798U, // <1,4,6,4>: Cost 3 vext1 <1,1,4,6>, RHS
     2895768886U, // <1,4,6,5>: Cost 3 vzipl <1,6,1,7>, RHS
-    3028364598U, // <1,4,6,6>: Cost 3 vtrnl <1,3,6,7>, RHS
-    2712751498U, // <1,4,6,7>: Cost 3 vext3 <4,6,7,1>, <4,6,7,1>
-    2557122350U, // <1,4,6,u>: Cost 3 vext1 <1,1,4,6>, LHS
+    2131296256U, // <1,4,6,6>: Cost 2 ins <u,4,6,6>, lane 0
+    2131304448U, // <1,4,6,7>: Cost 2 ins <u,4,6,7>, lane 0
+    2131296256U, // <1,4,6,u>: Cost 2 ins <u,4,6,6>, lane 0
     2659161084U, // <1,4,7,0>: Cost 3 vext2 <7,0,1,4>, <7,0,1,4>
-    3834844154U, // <1,4,7,1>: Cost 4 vuzpl <1,5,4,6>, <7,0,1,2>
-    3734230174U, // <1,4,7,2>: Cost 4 vext2 <7,2,1,4>, <7,2,1,4>
+    3165921281U, // <1,4,7,1>: Cost 3 ins <1,u,7,1>, lane 1
+    3205079040U, // <1,4,7,2>: Cost 3 ins <u,4,7,2>, lane 0
     2861297792U, // <1,4,7,3>: Cost 3 vuzpr <7,1,3,4>, <5,7,1,3>
     2669778278U, // <1,4,7,4>: Cost 3 vext2 <u,7,1,4>, <7,4,5,6>
-    2896522550U, // <1,4,7,5>: Cost 3 vzipl <1,7,3,0>, RHS
-    2713341394U, // <1,4,7,6>: Cost 3 vext3 <4,7,6,1>, <4,7,6,1>
-    3834844780U, // <1,4,7,7>: Cost 4 vuzpl <1,5,4,6>, <7,7,7,7>
-    2713488868U, // <1,4,7,u>: Cost 3 vext3 <4,7,u,1>, <4,7,u,1>
-    2557132902U, // <1,4,u,0>: Cost 3 vext1 <1,1,4,u>, LHS
-    2619348782U, // <1,4,u,1>: Cost 3 vext2 <0,3,1,4>, LHS
-    2758440750U, // <1,4,u,2>: Cost 3 vuzpl <1,1,4,5>, LHS
-    2825314973U, // <1,4,u,3>: Cost 3 vuzpr <1,1,1,4>, LHS
+    3205103616U, // <1,4,7,5>: Cost 3 ins <u,4,7,5>, lane 0
+    2131369984U, // <1,4,7,6>: Cost 2 ins <u,4,7,6>, lane 0
+    3165970433U, // <1,4,7,7>: Cost 3 ins <1,u,7,7>, lane 1
+    2131369984U, // <1,4,7,u>: Cost 2 ins <u,4,7,6>, lane 0
+    2091876353U, // <1,4,u,0>: Cost 2 ins <1,u,3,0>, lane 1
+    2091737089U, // <1,4,u,1>: Cost 2 ins <1,u,1,1>, lane 1
+    2091892737U, // <1,4,u,2>: Cost 2 ins <1,u,3,2>, lane 1
+    2091753473U, // <1,4,u,3>: Cost 2 ins <1,u,1,3>, lane 1
     2061921488U, // <1,4,u,4>: Cost 2 vtrnr LHS, <4,4,4,4>
     2014142802U, // <1,4,u,5>: Cost 2 vtrnr LHS, <0,4,1,5>
     2014142812U, // <1,4,u,6>: Cost 2 vtrnr LHS, <0,4,2,6>
-    2825317929U, // <1,4,u,7>: Cost 3 vuzpr <1,1,1,4>, RHS
+    2091933697U, // <1,4,u,7>: Cost 2 ins <1,u,3,7>, lane 1
     2014142805U, // <1,4,u,u>: Cost 2 vtrnr LHS, <0,4,1,u>
     2620014592U, // <1,5,0,0>: Cost 3 vext2 <0,4,1,5>, <0,0,0,0>
     1546272870U, // <1,5,0,1>: Cost 2 vext2 <0,4,1,5>, LHS
     1686110310U, // <1,5,0,2>: Cost 2 vuzpl <1,3,5,7>, LHS
-    3693093121U, // <1,5,0,3>: Cost 4 vext2 <0,3,1,5>, <0,3,1,5>
+    3163471875U, // <1,5,0,3>: Cost 3 ins <1,5,0,u>, lane 3
     1546273106U, // <1,5,0,4>: Cost 2 vext2 <0,4,1,5>, <0,4,1,5>
-    2620678563U, // <1,5,0,5>: Cost 3 vext2 <0,5,1,5>, <0,5,1,5>
-    2891894882U, // <1,5,0,6>: Cost 3 vzipl <1,0,3,2>, <5,6,7,0>
-    3093646646U, // <1,5,0,7>: Cost 3 vtrnr <1,1,0,0>, RHS
+    3165437953U, // <1,5,0,5>: Cost 3 ins <1,u,0,5>, lane 1
+    3164045314U, // <1,5,0,6>: Cost 3 ins <1,5,u,6>, lane 2
+    2090311682U, // <1,5,0,7>: Cost 2 ins <1,5,u,7>, lane 2
     1546273437U, // <1,5,0,u>: Cost 2 vext2 <0,4,1,5>, LHS
     2620015350U, // <1,5,1,0>: Cost 3 vext2 <0,4,1,5>, <1,0,3,2>
-    2620015412U, // <1,5,1,1>: Cost 3 vext2 <0,4,1,5>, <1,1,1,1>
+    2091737089U, // <1,5,1,1>: Cost 2 ins <1,u,1,1>, lane 1
     2620015510U, // <1,5,1,2>: Cost 3 vext2 <0,4,1,5>, <1,2,3,0>
-    2819424358U, // <1,5,1,3>: Cost 3 vuzpr <0,1,2,5>, LHS
+    2091753473U, // <1,5,1,3>: Cost 2 ins <1,u,1,3>, lane 1
     2620015677U, // <1,5,1,4>: Cost 3 vext2 <0,4,1,5>, <1,4,3,5>
     1686111232U, // <1,5,1,5>: Cost 2 vuzpl <1,3,5,7>, <1,3,5,7>
     2958181456U, // <1,5,1,6>: Cost 3 vzipr <0,u,1,1>, <1,4,5,6>
@@ -1176,48 +1176,48 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2759853734U, // <1,5,2,0>: Cost 3 vuzpl <1,3,5,7>, <2,3,0,1>
     2620016163U, // <1,5,2,1>: Cost 3 vext2 <0,4,1,5>, <2,1,3,5>
     2620016232U, // <1,5,2,2>: Cost 3 vext2 <0,4,1,5>, <2,2,2,2>
-    2620016294U, // <1,5,2,3>: Cost 3 vext2 <0,4,1,5>, <2,3,0,1>
+    2131640320U, // <1,5,2,3>: Cost 2 ins <u,5,2,3>, lane 0
     2759853774U, // <1,5,2,4>: Cost 3 vuzpl <1,3,5,7>, <2,3,4,5>
     2994687194U, // <1,5,2,5>: Cost 3 vzipr <7,0,1,2>, <4,4,5,5>
     2620016570U, // <1,5,2,6>: Cost 3 vext2 <0,4,1,5>, <2,6,3,7>
-    3094252854U, // <1,5,2,7>: Cost 3 vtrnr <1,1,u,2>, RHS
-    2620016699U, // <1,5,2,u>: Cost 3 vext2 <0,4,1,5>, <2,u,0,1>
-    2620016790U, // <1,5,3,0>: Cost 3 vext2 <0,4,1,5>, <3,0,1,2>
-    2759854230U, // <1,5,3,1>: Cost 3 vuzpl <1,3,5,7>, <3,0,1,2>
-    3135620208U, // <1,5,3,2>: Cost 3 vtrnr LHS, <1,5,0,2>
-    2620017052U, // <1,5,3,3>: Cost 3 vext2 <0,4,1,5>, <3,3,3,3>
-    2620017154U, // <1,5,3,4>: Cost 3 vext2 <0,4,1,5>, <3,4,5,6>
+    2090311682U, // <1,5,2,7>: Cost 2 ins <1,5,u,7>, lane 2
+    2090311682U, // <1,5,2,u>: Cost 2 ins <1,5,u,7>, lane 2
+    2091876353U, // <1,5,3,0>: Cost 2 ins <1,u,3,0>, lane 1
+    2089951235U, // <1,5,3,1>: Cost 2 ins <1,5,3,u>, lane 3
+    2091892737U, // <1,5,3,2>: Cost 2 ins <1,u,3,2>, lane 1
+    2091900929U, // <1,5,3,3>: Cost 2 ins <1,u,3,3>, lane 1
+    2091909121U, // <1,5,3,4>: Cost 2 ins <1,u,3,4>, lane 1
     2061881348U, // <1,5,3,5>: Cost 2 vtrnr LHS, <5,5,5,5>
-    3087845224U, // <1,5,3,6>: Cost 3 vtrnr LHS, <2,5,3,6>
+    2089951235U, // <1,5,3,6>: Cost 2 ins <1,5,3,u>, lane 3
     940363062U,  // <1,5,3,7>: Cost 1 vtrnr LHS, RHS
     940363063U,  // <1,5,3,u>: Cost 1 vtrnr LHS, RHS
     2620017554U, // <1,5,4,0>: Cost 3 vext2 <0,4,1,5>, <4,0,5,1>
     2620017634U, // <1,5,4,1>: Cost 3 vext2 <0,4,1,5>, <4,1,5,0>
-    3693759551U, // <1,5,4,2>: Cost 4 vext2 <0,4,1,5>, <4,2,6,3>
-    4101942957U, // <1,5,4,3>: Cost 4 vtrnl <1,3,4,5>, <5,1,3,4>
+    3164012546U, // <1,5,4,2>: Cost 3 ins <1,5,u,2>, lane 2
+    3163766787U, // <1,5,4,3>: Cost 3 ins <1,5,4,u>, lane 3
     2575092710U, // <1,5,4,4>: Cost 3 vext1 <4,1,5,4>, <4,1,5,4>
     1546276150U, // <1,5,4,5>: Cost 2 vext2 <0,4,1,5>, RHS
     1686113590U, // <1,5,4,6>: Cost 2 vuzpl <1,3,5,7>, RHS
-    3093753142U, // <1,5,4,7>: Cost 3 vtrnr <1,1,1,4>, RHS
+    2090311682U, // <1,5,4,7>: Cost 2 ins <1,5,u,7>, lane 2
     1546276393U, // <1,5,4,u>: Cost 2 vext2 <0,4,1,5>, RHS
     2955561954U, // <1,5,5,0>: Cost 3 vzipr <0,4,1,5>, <4,1,5,0>
     2955561874U, // <1,5,5,1>: Cost 3 vzipr <0,4,1,5>, <4,0,5,1>
-    4029301674U, // <1,5,5,2>: Cost 4 vzipr <0,4,1,5>, <1,2,5,2>
+    3165782017U, // <1,5,5,2>: Cost 3 ins <1,u,5,2>, lane 1
     2955559851U, // <1,5,5,3>: Cost 3 vzipr <0,4,1,5>, <1,2,5,3>
     2955561958U, // <1,5,5,4>: Cost 3 vzipr <0,4,1,5>, <4,1,5,4>
-    2620018692U, // <1,5,5,5>: Cost 3 vext2 <0,4,1,5>, <5,5,5,5>
+    2131877888U, // <1,5,5,5>: Cost 2 ins <u,5,5,5>, lane 0
     2955561474U, // <1,5,5,6>: Cost 3 vzipr <0,4,1,5>, <3,4,5,6>
-    2819427638U, // <1,5,5,7>: Cost 3 vuzpr <0,1,2,5>, RHS
-    2819427639U, // <1,5,5,u>: Cost 3 vuzpr <0,1,2,5>, RHS
-    2718208036U, // <1,5,6,0>: Cost 3 vext3 <5,6,0,1>, <5,6,0,1>
-    2620019115U, // <1,5,6,1>: Cost 3 vext2 <0,4,1,5>, <6,1,7,5>
-    2667794938U, // <1,5,6,2>: Cost 3 vext2 <u,4,1,5>, <6,2,7,3>
-    4029309867U, // <1,5,6,3>: Cost 4 vzipr <0,4,1,6>, <1,2,5,3>
-    2759857014U, // <1,5,6,4>: Cost 3 vuzpl <1,3,5,7>, <6,7,4,5>
-    4029309788U, // <1,5,6,5>: Cost 4 vzipr <0,4,1,6>, <1,1,5,5>
-    2667795256U, // <1,5,6,6>: Cost 3 vext2 <u,4,1,5>, <6,6,6,6>
-    3093990710U, // <1,5,6,7>: Cost 3 vtrnr <1,1,4,6>, RHS
-    3093990711U, // <1,5,6,u>: Cost 3 vtrnr <1,1,4,6>, RHS
+    2092081153U, // <1,5,5,7>: Cost 2 ins <1,u,5,7>, lane 1
+    2092081153U, // <1,5,5,u>: Cost 2 ins <1,u,5,7>, lane 1
+    2131910656U, // <1,5,6,0>: Cost 2 ins <u,5,6,0>, lane 0
+    2131918848U, // <1,5,6,1>: Cost 2 ins <u,5,6,1>, lane 0
+    2131927040U, // <1,5,6,2>: Cost 2 ins <u,5,6,2>, lane 0
+    2131935232U, // <1,5,6,3>: Cost 2 ins <u,5,6,3>, lane 0
+    2131943424U, // <1,5,6,4>: Cost 2 ins <u,5,6,4>, lane 0
+    2131951616U, // <1,5,6,5>: Cost 2 ins <u,5,6,5>, lane 0
+    2131959808U, // <1,5,6,6>: Cost 2 ins <u,5,6,6>, lane 0
+    1058226176U, // <1,5,6,7>: Cost 1 ins RHS, lane 0
+    1058226176U, // <1,5,6,u>: Cost 1 ins RHS, lane 0
     2557198438U, // <1,5,7,0>: Cost 3 vext1 <1,1,5,7>, LHS
     2557199198U, // <1,5,7,1>: Cost 3 vext1 <1,1,5,7>, <1,1,5,7>
     2569143974U, // <1,5,7,2>: Cost 3 vext1 <3,1,5,7>, <2,3,0,1>
@@ -1225,128 +1225,128 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2557201718U, // <1,5,7,4>: Cost 3 vext1 <1,1,5,7>, RHS
     2759857510U, // <1,5,7,5>: Cost 3 vuzpl <1,3,5,7>, <7,4,5,6>
     2593035086U, // <1,5,7,6>: Cost 3 vext1 <7,1,5,7>, <6,7,0,1>
-    3094072630U, // <1,5,7,7>: Cost 3 vtrnr <1,1,5,7>, RHS
-    2557204270U, // <1,5,7,u>: Cost 3 vext1 <1,1,5,7>, LHS
-    2620020435U, // <1,5,u,0>: Cost 3 vext2 <0,4,1,5>, <u,0,1,2>
+    2132041728U, // <1,5,7,7>: Cost 2 ins <u,5,7,7>, lane 0
+    2132041728U, // <1,5,7,u>: Cost 2 ins <u,5,7,7>, lane 0
+    2091876353U, // <1,5,u,0>: Cost 2 ins <1,u,3,0>, lane 1
     1546278702U, // <1,5,u,1>: Cost 2 vext2 <0,4,1,5>, LHS
     1686116142U, // <1,5,u,2>: Cost 2 vuzpl <1,3,5,7>, LHS
-    2819424925U, // <1,5,u,3>: Cost 3 vuzpr <0,1,2,5>, LHS
+    2091753473U, // <1,5,u,3>: Cost 2 ins <1,u,1,3>, lane 1
     1594054682U, // <1,5,u,4>: Cost 2 vext2 <u,4,1,5>, <u,4,1,5>
     1546279066U, // <1,5,u,5>: Cost 2 vext2 <0,4,1,5>, RHS
     1686116506U, // <1,5,u,6>: Cost 2 vuzpl <1,3,5,7>, RHS
     940404022U,  // <1,5,u,7>: Cost 1 vtrnr LHS, RHS
     940404023U,  // <1,5,u,u>: Cost 1 vtrnr LHS, RHS
-    2724843800U, // <1,6,0,0>: Cost 3 vext3 <6,7,0,1>, <6,0,0,2>
+    3205873664U, // <1,6,0,0>: Cost 3 ins <u,6,0,0>, lane 0
     2618695782U, // <1,6,0,1>: Cost 3 vext2 <0,2,1,6>, LHS
-    2618695857U, // <1,6,0,2>: Cost 3 vext2 <0,2,1,6>, <0,2,1,6>
-    3711680764U, // <1,6,0,3>: Cost 4 vext2 <3,4,1,6>, <0,3,1,0>
+    2132148224U, // <1,6,0,2>: Cost 2 ins <u,6,0,2>, lane 0
+    3087819259U, // <1,6,0,3>: Cost 3 vtrnr <0,1,2,0>, <0,6,2,3>
     2620023123U, // <1,6,0,4>: Cost 3 vext2 <0,4,1,6>, <0,4,1,6>
-    2620686756U, // <1,6,0,5>: Cost 3 vext2 <0,5,1,6>, <0,5,1,6>
-    2621350389U, // <1,6,0,6>: Cost 3 vext2 <0,6,1,6>, <0,6,1,6>
+    3165437953U, // <1,6,0,5>: Cost 3 ins <1,u,0,5>, lane 1
+    3164708866U, // <1,6,0,6>: Cost 3 ins <1,6,u,6>, lane 2
     2954857782U, // <1,6,0,7>: Cost 3 vzipr <0,3,1,0>, RHS
-    2618696349U, // <1,6,0,u>: Cost 3 vext2 <0,2,1,6>, LHS
-    3026621262U, // <1,6,1,0>: Cost 3 vtrnl <1,1,1,1>, <6,7,0,1>
-    2825552692U, // <1,6,1,1>: Cost 3 vuzpr <1,1,4,6>, <1,1,1,1>
+    2132148224U, // <1,6,0,u>: Cost 2 ins <u,6,0,2>, lane 0
+    3205947392U, // <1,6,1,0>: Cost 3 ins <u,6,1,0>, lane 0
+    2091737089U, // <1,6,1,1>: Cost 2 ins <1,u,1,1>, lane 1
     3005959068U, // <1,6,1,2>: Cost 3 vzipr <u,u,1,1>, <4,0,6,2>
-    2825551974U, // <1,6,1,3>: Cost 3 vuzpr <1,1,4,6>, LHS
+    2091753473U, // <1,6,1,3>: Cost 2 ins <1,u,1,3>, lane 1
     2625995820U, // <1,6,1,4>: Cost 3 vext2 <1,4,1,6>, <1,4,1,6>
-    3692438672U, // <1,6,1,5>: Cost 4 vext2 <0,2,1,6>, <1,5,3,7>
-    2825552724U, // <1,6,1,6>: Cost 3 vuzpr <1,1,4,6>, <1,1,4,6>
+    3205988352U, // <1,6,1,5>: Cost 3 ins <u,6,1,5>, lane 0
+    1745690729U, // <1,6,1,6>: Cost 2 vuzpr <0,1,2,6>, <0,1,2,6>
     1884441910U, // <1,6,1,7>: Cost 2 vzipr <0,u,1,1>, RHS
     1884441911U, // <1,6,1,u>: Cost 2 vzipr <0,u,1,1>, RHS
     2721526201U, // <1,6,2,0>: Cost 3 vext3 <6,2,0,1>, <6,2,0,1>
     2994687442U, // <1,6,2,1>: Cost 3 vzipr <7,0,1,2>, <4,7,6,1>
     2994686876U, // <1,6,2,2>: Cost 3 vzipr <7,0,1,2>, <4,0,6,2>
-    2759927738U, // <1,6,2,3>: Cost 3 vuzpl <1,3,6,7>, <2,6,3,7>
-    3899294618U, // <1,6,2,4>: Cost 4 vuzpr <1,1,4,6>, <1,2,3,4>
-    4101804685U, // <1,6,2,5>: Cost 4 vtrnl <1,3,2,6>, <6,4,5,6>
+    2132303872U, // <1,6,2,3>: Cost 2 ins <u,6,2,3>, lane 0
+    3206053888U, // <1,6,2,4>: Cost 3 ins <u,6,2,4>, lane 0
+    3165585409U, // <1,6,2,5>: Cost 3 ins <1,u,2,5>, lane 1
     2618697658U, // <1,6,2,6>: Cost 3 vext2 <0,2,1,6>, <2,6,3,7>
     1897057590U, // <1,6,2,7>: Cost 2 vzipr <3,0,1,2>, RHS
     1897057591U, // <1,6,2,u>: Cost 2 vzipr <3,0,1,2>, RHS
     2061881442U, // <1,6,3,0>: Cost 2 vtrnr LHS, <5,6,7,0>
     2987396400U, // <1,6,3,1>: Cost 3 vzipr <5,7,1,3>, <4,5,6,1>
     2061880652U, // <1,6,3,2>: Cost 2 vtrnr LHS, <4,6,0,2>
-    3135621028U, // <1,6,3,3>: Cost 3 vtrnr LHS, <2,6,1,3>
+    2091900929U, // <1,6,3,3>: Cost 2 ins <1,u,3,3>, lane 1
     2061881446U, // <1,6,3,4>: Cost 2 vtrnr LHS, <5,6,7,4>
     3118078194U, // <1,6,3,5>: Cost 3 vtrnr <5,1,7,3>, <u,6,7,5>
     2061880692U, // <1,6,3,6>: Cost 2 vtrnr LHS, <4,6,4,6>
     2014103482U, // <1,6,3,7>: Cost 2 vtrnr LHS, <2,6,3,7>
     2014103483U, // <1,6,3,u>: Cost 2 vtrnr LHS, <2,6,3,u>
-    2759888204U, // <1,6,4,0>: Cost 3 vuzpl <1,3,6,2>, <4,6,0,2>
-    3693767650U, // <1,6,4,1>: Cost 4 vext2 <0,4,1,6>, <4,1,5,0>
-    3636962877U, // <1,6,4,2>: Cost 4 vext1 <2,1,6,4>, <2,1,6,4>
-    4101951878U, // <1,6,4,3>: Cost 4 vtrnl <1,3,4,6>, <6,1,3,4>
-    2759921012U, // <1,6,4,4>: Cost 3 vuzpl <1,3,6,6>, <4,6,4,6>
+    3206168576U, // <1,6,4,0>: Cost 3 ins <u,6,4,0>, lane 0
+    2761256201U, // <1,6,4,1>: Cost 3 vuzpl <1,5,6,7>, <4,5,1,7>
+    3164676098U, // <1,6,4,2>: Cost 3 ins <1,6,u,2>, lane 2
+    3087852027U, // <1,6,4,3>: Cost 3 vtrnr <0,1,2,4>, <0,6,2,3>
+    3206201344U, // <1,6,4,4>: Cost 3 ins <u,6,4,4>, lane 0
     2618699062U, // <1,6,4,5>: Cost 3 vext2 <0,2,1,6>, RHS
-    2759929142U, // <1,6,4,6>: Cost 3 vuzpl <1,3,6,7>, RHS
+    2132475904U, // <1,6,4,6>: Cost 2 ins <u,6,4,6>, lane 0
     2954890550U, // <1,6,4,7>: Cost 3 vzipr <0,3,1,4>, RHS
-    2618699305U, // <1,6,4,u>: Cost 3 vext2 <0,2,1,6>, RHS
-    3028292430U, // <1,6,5,0>: Cost 3 vtrnl <1,3,5,7>, <6,7,0,1>
-    2575172608U, // <1,6,5,1>: Cost 3 vext1 <4,1,6,5>, <1,3,5,7>
+    2132475904U, // <1,6,4,u>: Cost 2 ins <u,6,4,6>, lane 0
+    3164659714U, // <1,6,5,0>: Cost 3 ins <1,6,u,0>, lane 2
+    3206250496U, // <1,6,5,1>: Cost 3 ins <u,6,5,1>, lane 0
     3003337628U, // <1,6,5,2>: Cost 3 vzipr <u,4,1,5>, <4,0,6,2>
-    2895254095U, // <1,6,5,3>: Cost 3 vzipl <1,5,3,7>, <6,3,7,7>
-    3028292470U, // <1,6,5,4>: Cost 3 vtrnl <1,3,5,7>, <6,7,4,5>
-    4029302577U, // <1,6,5,5>: Cost 4 vzipr <0,4,1,5>, <2,4,6,5>
+    3165790209U, // <1,6,5,3>: Cost 3 ins <1,u,5,3>, lane 1
+    3206275072U, // <1,6,5,4>: Cost 3 ins <u,6,5,4>, lane 0
+    3206283264U, // <1,6,5,5>: Cost 3 ins <u,6,5,5>, lane 0
     3003337956U, // <1,6,5,6>: Cost 3 vzipr <u,4,1,5>, <4,4,6,6>
     1881820470U, // <1,6,5,7>: Cost 2 vzipr <0,4,1,5>, RHS
     1881820471U, // <1,6,5,u>: Cost 2 vzipr <0,4,1,5>, RHS
     2724180733U, // <1,6,6,0>: Cost 3 vext3 <6,6,0,1>, <6,6,0,1>
-    4027983337U, // <1,6,6,1>: Cost 4 vzipr <0,2,1,6>, <2,0,6,1>
-    4027983419U, // <1,6,6,2>: Cost 4 vzipr <0,2,1,6>, <2,1,6,2>
-    4027982772U, // <1,6,6,3>: Cost 4 vzipr <0,2,1,6>, <1,2,6,3>
-    4027983421U, // <1,6,6,4>: Cost 4 vzipr <0,2,1,6>, <2,1,6,4>
-    4029309797U, // <1,6,6,5>: Cost 4 vzipr <0,4,1,6>, <1,1,6,5>
-    2713932600U, // <1,6,6,6>: Cost 3 vext3 <4,u,5,1>, <6,6,6,6>
-    2954243382U, // <1,6,6,7>: Cost 3 vzipr <0,2,1,6>, RHS
-    2954243383U, // <1,6,6,u>: Cost 3 vzipr <0,2,1,6>, RHS
+    2557264742U, // <1,6,6,1>: Cost 3 vext1 <1,1,6,6>, <1,1,6,6>
+    3165855745U, // <1,6,6,2>: Cost 3 ins <1,u,6,2>, lane 1
+    2819432955U, // <1,6,6,3>: Cost 3 vuzpr <0,1,2,6>, <0,6,2,3>
+    3206348800U, // <1,6,6,4>: Cost 3 ins <u,6,6,4>, lane 0
+    3206356992U, // <1,6,6,5>: Cost 3 ins <u,6,6,5>, lane 0
+    2132623360U, // <1,6,6,6>: Cost 2 ins <u,6,6,6>, lane 0
+    2132631552U, // <1,6,6,7>: Cost 2 ins <u,6,6,7>, lane 0
+    2132623360U, // <1,6,6,u>: Cost 2 ins <u,6,6,6>, lane 0
     1651102542U, // <1,6,7,0>: Cost 2 vext3 <6,7,0,1>, <6,7,0,1>
     2724918103U, // <1,6,7,1>: Cost 3 vext3 <6,7,1,1>, <6,7,1,1>
-    2698302306U, // <1,6,7,2>: Cost 3 vext3 <2,3,0,1>, <6,7,2,3>
-    2849443968U, // <1,6,7,3>: Cost 3 vuzpr <5,1,4,6>, <5,7,1,3>
-    2713932662U, // <1,6,7,4>: Cost 3 vext3 <4,u,5,1>, <6,7,4,5>
+    3206406144U, // <1,6,7,2>: Cost 3 ins <u,6,7,2>, lane 0
+    3206414336U, // <1,6,7,3>: Cost 3 ins <u,6,7,3>, lane 0
+    2132680704U, // <1,6,7,4>: Cost 2 ins <u,6,7,4>, lane 0
     2725213051U, // <1,6,7,5>: Cost 3 vext3 <6,7,5,1>, <6,7,5,1>
     2725507979U, // <1,6,7,6>: Cost 3 vext3 <6,u,0,1>, <6,7,6,u>
-    2962214198U, // <1,6,7,7>: Cost 3 vzipr <1,5,1,7>, RHS
+    2132705280U, // <1,6,7,7>: Cost 2 ins <u,6,7,7>, lane 0
     1651692438U, // <1,6,7,u>: Cost 2 vext3 <6,7,u,1>, <6,7,u,1>
     1651766175U, // <1,6,u,0>: Cost 2 vext3 <6,u,0,1>, <6,u,0,1>
-    2618701614U, // <1,6,u,1>: Cost 3 vext2 <0,2,1,6>, LHS
+    2091737089U, // <1,6,u,1>: Cost 2 ins <1,u,1,1>, lane 1
     2061921612U, // <1,6,u,2>: Cost 2 vtrnr LHS, <4,6,0,2>
-    2825552541U, // <1,6,u,3>: Cost 3 vuzpr <1,1,4,6>, LHS
+    2091753473U, // <1,6,u,3>: Cost 2 ins <1,u,1,3>, lane 1
     2061922406U, // <1,6,u,4>: Cost 2 vtrnr LHS, <5,6,7,4>
     2618701978U, // <1,6,u,5>: Cost 3 vext2 <0,2,1,6>, RHS
     2061921652U, // <1,6,u,6>: Cost 2 vtrnr LHS, <4,6,4,6>
     2014144442U, // <1,6,u,7>: Cost 2 vtrnr LHS, <2,6,3,7>
     2014144443U, // <1,6,u,u>: Cost 2 vtrnr LHS, <2,6,3,u>
     2726171632U, // <1,7,0,0>: Cost 3 vext3 <7,0,0,1>, <7,0,0,1>
-    2626666598U, // <1,7,0,1>: Cost 3 vext2 <1,5,1,7>, LHS
-    2819445754U, // <1,7,0,2>: Cost 3 vuzpr <0,1,2,7>, <7,0,1,2>
+    2132803584U, // <1,7,0,1>: Cost 2 ins <u,7,0,1>, lane 0
+    3206553600U, // <1,7,0,2>: Cost 3 ins <u,7,0,2>, lane 0
     2257286235U, // <1,7,0,3>: Cost 3 vrev <7,1,3,0>
     2726466580U, // <1,7,0,4>: Cost 3 vext3 <7,0,4,1>, <7,0,4,1>
-    2620694949U, // <1,7,0,5>: Cost 3 vext2 <0,5,1,7>, <0,5,1,7>
+    3206578176U, // <1,7,0,5>: Cost 3 ins <u,7,0,5>, lane 0
     2621358582U, // <1,7,0,6>: Cost 3 vext2 <0,6,1,7>, <0,6,1,7>
-    2622022215U, // <1,7,0,7>: Cost 3 vext2 <0,7,1,7>, <0,7,1,7>
-    2626667165U, // <1,7,0,u>: Cost 3 vext2 <1,5,1,7>, LHS
+    3165380610U, // <1,7,0,7>: Cost 3 ins <1,7,u,7>, lane 2
+    2132803584U, // <1,7,0,u>: Cost 2 ins <u,7,0,1>, lane 0
     2581184614U, // <1,7,1,0>: Cost 3 vext1 <5,1,7,1>, LHS
-    2825634612U, // <1,7,1,1>: Cost 3 vuzpr <1,1,5,7>, <1,1,1,1>
-    3899376428U, // <1,7,1,2>: Cost 4 vuzpr <1,1,5,7>, <1,1,0,2>
-    2825633894U, // <1,7,1,3>: Cost 3 vuzpr <1,1,5,7>, LHS
+    2091737089U, // <1,7,1,1>: Cost 2 ins <1,u,1,1>, lane 1
+    3206627328U, // <1,7,1,2>: Cost 3 ins <u,7,1,2>, lane 0
+    2132893696U, // <1,7,1,3>: Cost 2 ins <u,7,1,3>, lane 0
     2581187894U, // <1,7,1,4>: Cost 3 vext1 <5,1,7,1>, RHS
     2626667646U, // <1,7,1,5>: Cost 3 vext2 <1,5,1,7>, <1,5,1,7>
     2627331279U, // <1,7,1,6>: Cost 3 vext2 <1,6,1,7>, <1,6,1,7>
-    2825634654U, // <1,7,1,7>: Cost 3 vuzpr <1,1,5,7>, <1,1,5,7>
-    2825633899U, // <1,7,1,u>: Cost 3 vuzpr <1,1,5,7>, LHS
+    1745698922U, // <1,7,1,7>: Cost 2 vuzpr <0,1,2,7>, <0,1,2,7>
+    2132893696U, // <1,7,1,u>: Cost 2 ins <u,7,1,3>, lane 0
     2587164774U, // <1,7,2,0>: Cost 3 vext1 <6,1,7,2>, LHS
     2994687370U, // <1,7,2,1>: Cost 3 vzipr <7,0,1,2>, <4,6,7,1>
-    2970800552U, // <1,7,2,2>: Cost 3 vzipr <3,0,1,2>, <6,1,7,2>
-    2638612134U, // <1,7,2,3>: Cost 3 vext2 <3,5,1,7>, <2,3,0,1>
+    3206701056U, // <1,7,2,2>: Cost 3 ins <u,7,2,2>, lane 0
+    2132967424U, // <1,7,2,3>: Cost 2 ins <u,7,2,3>, lane 0
     2587168054U, // <1,7,2,4>: Cost 3 vext1 <6,1,7,2>, RHS
-    3706382167U, // <1,7,2,5>: Cost 4 vext2 <2,5,1,7>, <2,5,1,7>
+    3206725632U, // <1,7,2,5>: Cost 3 ins <u,7,2,5>, lane 0
     2587169192U, // <1,7,2,6>: Cost 3 vext1 <6,1,7,2>, <6,1,7,2>
     2994688024U, // <1,7,2,7>: Cost 3 vzipr <7,0,1,2>, <5,5,7,7>
-    2587170606U, // <1,7,2,u>: Cost 3 vext1 <6,1,7,2>, LHS
+    2132967424U, // <1,7,2,u>: Cost 2 ins <u,7,2,3>, lane 0
     1507459174U, // <1,7,3,0>: Cost 2 vext1 <5,1,7,3>, LHS
     2061882190U, // <1,7,3,1>: Cost 2 vtrnr LHS, <6,7,0,1>
-    2581202536U, // <1,7,3,2>: Cost 3 vext1 <5,1,7,3>, <2,2,2,2>
+    2091892737U, // <1,7,3,2>: Cost 2 ins <1,u,3,2>, lane 1
     2061881472U, // <1,7,3,3>: Cost 2 vtrnr LHS, <5,7,1,3>
     1507462454U, // <1,7,3,4>: Cost 2 vext1 <5,1,7,3>, RHS
     1507462864U, // <1,7,3,5>: Cost 2 vext1 <5,1,7,3>, <5,1,7,3>
@@ -1354,44 +1354,44 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2061881512U, // <1,7,3,7>: Cost 2 vtrnr LHS, <5,7,5,7>
     1507465006U, // <1,7,3,u>: Cost 2 vext1 <5,1,7,3>, LHS
     2728826164U, // <1,7,4,0>: Cost 3 vext3 <7,4,0,1>, <7,4,0,1>
-    4103279610U, // <1,7,4,1>: Cost 4 vtrnl <1,5,4,6>, <7,0,1,2>
-    3330987094U, // <1,7,4,2>: Cost 4 vrev <7,1,2,4>
+    3165331458U, // <1,7,4,1>: Cost 3 ins <1,7,u,1>, lane 2
+    2644585539U, // <1,7,4,2>: Cost 3 vext2 <4,5,1,7>, <4,2,6,7>
     2257319007U, // <1,7,4,3>: Cost 3 vrev <7,1,3,4>
-    3787674971U, // <1,7,4,4>: Cost 4 vext3 <4,u,5,1>, <7,4,4,4>
-    2626669878U, // <1,7,4,5>: Cost 3 vext2 <1,5,1,7>, RHS
-    2956218310U, // <1,7,4,6>: Cost 3 vzipr <0,5,1,4>, <5,4,7,6>
-    4103280236U, // <1,7,4,7>: Cost 4 vtrnl <1,5,4,6>, <7,7,7,7>
-    2626670121U, // <1,7,4,u>: Cost 3 vext2 <1,5,1,7>, RHS
+    3206864896U, // <1,7,4,4>: Cost 3 ins <u,7,4,4>, lane 0
+    2133131264U, // <1,7,4,5>: Cost 2 ins <u,7,4,5>, lane 0
+    3206881280U, // <1,7,4,6>: Cost 3 ins <u,7,4,6>, lane 0
+    3165380610U, // <1,7,4,7>: Cost 3 ins <1,7,u,7>, lane 2
+    2133131264U, // <1,7,4,u>: Cost 2 ins <u,7,4,5>, lane 0
     2569273446U, // <1,7,5,0>: Cost 3 vext1 <3,1,7,5>, LHS
     3028292602U, // <1,7,5,1>: Cost 3 vtrnl <1,3,5,7>, <7,0,1,2>
-    4102034434U, // <1,7,5,2>: Cost 4 vtrnl <1,3,5,7>, <7,0,2,1>
+    3165782017U, // <1,7,5,2>: Cost 3 ins <1,u,5,2>, lane 1
     3028292704U, // <1,7,5,3>: Cost 3 vtrnl <1,3,5,7>, <7,1,3,5>
     2569276726U, // <1,7,5,4>: Cost 3 vext1 <3,1,7,5>, RHS
     3028292966U, // <1,7,5,5>: Cost 3 vtrnl <1,3,5,7>, <7,4,5,6>
     2651222067U, // <1,7,5,6>: Cost 3 vext2 <5,6,1,7>, <5,6,1,7>
-    2825637174U, // <1,7,5,7>: Cost 3 vuzpr <1,1,5,7>, RHS
-    2825637175U, // <1,7,5,u>: Cost 3 vuzpr <1,1,5,7>, RHS
+    2133221376U, // <1,7,5,7>: Cost 2 ins <u,7,5,7>, lane 0
+    2133221376U, // <1,7,5,u>: Cost 2 ins <u,7,5,7>, lane 0
     2730153430U, // <1,7,6,0>: Cost 3 vext3 <7,6,0,1>, <7,6,0,1>
     2724845022U, // <1,7,6,1>: Cost 3 vext3 <6,7,0,1>, <7,6,1,0>
-    3643025338U, // <1,7,6,2>: Cost 4 vext1 <3,1,7,6>, <2,6,3,7>
-    3117879424U, // <1,7,6,3>: Cost 3 vtrnr <5,1,4,6>, <5,7,1,3>
+    3206995968U, // <1,7,6,2>: Cost 3 ins <u,7,6,2>, lane 0
+    3165347842U, // <1,7,6,3>: Cost 3 ins <1,7,u,3>, lane 2
     2257409130U, // <1,7,6,4>: Cost 3 vrev <7,1,4,6>
-    3654971091U, // <1,7,6,5>: Cost 4 vext1 <5,1,7,6>, <5,1,7,6>
-    3787675153U, // <1,7,6,6>: Cost 4 vext3 <4,u,5,1>, <7,6,6,6>
-    2724845076U, // <1,7,6,7>: Cost 3 vext3 <6,7,0,1>, <7,6,7,0>
-    2725508637U, // <1,7,6,u>: Cost 3 vext3 <6,u,0,1>, <7,6,u,0>
+    3207020544U, // <1,7,6,5>: Cost 3 ins <u,7,6,5>, lane 0
+    3207028736U, // <1,7,6,6>: Cost 3 ins <u,7,6,6>, lane 0
+    2133295104U, // <1,7,6,7>: Cost 2 ins <u,7,6,7>, lane 0
+    2133295104U, // <1,7,6,u>: Cost 2 ins <u,7,6,7>, lane 0
     2730817063U, // <1,7,7,0>: Cost 3 vext3 <7,7,0,1>, <7,7,0,1>
     2861470542U, // <1,7,7,1>: Cost 3 vuzpr <7,1,5,7>, <6,7,0,1>
-    3660949158U, // <1,7,7,2>: Cost 4 vext1 <6,1,7,7>, <2,3,0,1>
+    3165929473U, // <1,7,7,2>: Cost 3 ins <1,u,7,2>, lane 1
     2998046416U, // <1,7,7,3>: Cost 3 vzipr <7,5,1,7>, <5,1,7,3>
-    3631090998U, // <1,7,7,4>: Cost 4 vext1 <1,1,7,7>, RHS
+    3207086080U, // <1,7,7,4>: Cost 3 ins <u,7,7,4>, lane 0
     2257491060U, // <1,7,7,5>: Cost 3 vrev <7,1,5,7>
-    4060508102U, // <1,7,7,6>: Cost 4 vzipr <5,6,1,7>, <5,4,7,6>
-    2713933420U, // <1,7,7,7>: Cost 3 vext3 <4,u,5,1>, <7,7,7,7>
-    2257712271U, // <1,7,7,u>: Cost 3 vrev <7,1,u,7>
+    3207102464U, // <1,7,7,6>: Cost 3 ins <u,7,7,6>, lane 0
+    2133368832U, // <1,7,7,7>: Cost 2 ins <u,7,7,7>, lane 0
+    2133368832U, // <1,7,7,u>: Cost 2 ins <u,7,7,7>, lane 0
     1507500134U, // <1,7,u,0>: Cost 2 vext1 <5,1,7,u>, LHS
     2061923150U, // <1,7,u,1>: Cost 2 vtrnr LHS, <6,7,0,1>
-    2581243496U, // <1,7,u,2>: Cost 3 vext1 <5,1,7,u>, <2,2,2,2>
+    2091892737U, // <1,7,u,2>: Cost 2 ins <1,u,3,2>, lane 1
     2061922432U, // <1,7,u,3>: Cost 2 vtrnr LHS, <5,7,1,3>
     1507503414U, // <1,7,u,4>: Cost 2 vext1 <5,1,7,u>, RHS
     1507503829U, // <1,7,u,5>: Cost 2 vext1 <5,1,7,u>, <5,1,7,u>
@@ -1401,11 +1401,11 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1745707008U, // <1,u,0,0>: Cost 2 vuzpr LHS, <0,0,0,0>
     1745707018U, // <1,u,0,1>: Cost 2 vuzpr LHS, <0,0,1,1>
     1745707028U, // <1,u,0,2>: Cost 2 vuzpr LHS, <0,0,2,2>
-    2954854556U, // <1,u,0,3>: Cost 3 vzipr <0,3,1,0>, LHS
+    2087624706U, // <1,u,0,3>: Cost 2 ins <1,1,u,3>, lane 2
     1546297685U, // <1,u,0,4>: Cost 2 vext2 <0,4,1,u>, <0,4,1,u>
     1818155162U, // <1,u,0,5>: Cost 2 vzipl <1,0,3,2>, RHS
     2891897040U, // <1,u,0,6>: Cost 3 vzipl <1,0,3,2>, <u,6,3,7>
-    2954857800U, // <1,u,0,7>: Cost 3 vzipr <0,3,1,0>, RHS
+    2088984578U, // <1,u,0,7>: Cost 2 ins <1,3,u,7>, lane 2
     1745707025U, // <1,u,0,u>: Cost 2 vuzpr LHS, <0,0,1,u>
     1483112550U, // <1,u,1,0>: Cost 2 vext1 <1,1,1,1>, LHS
     202162278U,  // <1,u,1,1>: Cost 1 vdup1 LHS
@@ -1419,12 +1419,12 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1745707926U, // <1,u,2,0>: Cost 2 vuzpr LHS, <1,2,3,0>
     1819465518U, // <1,u,2,1>: Cost 2 vzipl <1,2,3,0>, LHS
     1745707172U, // <1,u,2,2>: Cost 2 vuzpr LHS, <0,2,0,2>
-    1745708658U, // <1,u,2,3>: Cost 2 vuzpr LHS, <2,2,3,3>
+    1055244288U, // <1,u,2,3>: Cost 1 ins LHS, lane 0
     1745707930U, // <1,u,2,4>: Cost 2 vuzpr LHS, <1,2,3,4>
     1819465882U, // <1,u,2,5>: Cost 2 vzipl <1,2,3,0>, RHS
     1745707212U, // <1,u,2,6>: Cost 2 vuzpr LHS, <0,2,4,6>
     1897057608U, // <1,u,2,7>: Cost 2 vzipr <3,0,1,2>, RHS
-    1745707178U, // <1,u,2,u>: Cost 2 vuzpr LHS, <0,2,0,u>
+    1055244288U, // <1,u,2,u>: Cost 1 ins LHS, lane 0
     403931292U,  // <1,u,3,0>: Cost 1 vext1 LHS, LHS
     2014102162U, // <1,u,3,1>: Cost 2 vtrnr LHS, <0,u,1,1>
     115726126U,  // <1,u,3,2>: Cost 1 vrev LHS
@@ -1434,40 +1434,40 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2014102176U, // <1,u,3,6>: Cost 2 vtrnr LHS, <0,u,2,6>
     940363305U,  // <1,u,3,7>: Cost 1 vtrnr LHS, RHS
     940360354U,  // <1,u,3,u>: Cost 1 vtrnr LHS, LHS
-    2620042157U, // <1,u,4,0>: Cost 3 vext2 <0,4,1,u>, <4,0,u,1>
-    2620042237U, // <1,u,4,1>: Cost 3 vext2 <0,4,1,u>, <4,1,u,0>
-    3026876206U, // <1,u,4,2>: Cost 3 vtrnl <1,1,4,5>, LHS
-    2954887324U, // <1,u,4,3>: Cost 3 vzipr <0,3,1,4>, LHS
+    2088263682U, // <1,u,4,0>: Cost 2 ins <1,2,u,0>, lane 2
+    2087608322U, // <1,u,4,1>: Cost 2 ins <1,1,u,1>, lane 2
+    2086952962U, // <1,u,4,2>: Cost 2 ins <1,0,u,2>, lane 2
+    2087624706U, // <1,u,4,3>: Cost 2 ins <1,1,u,3>, lane 2
     1793486032U, // <1,u,4,4>: Cost 2 vuzpr LHS, <4,4,4,4>
     1745707346U, // <1,u,4,5>: Cost 2 vuzpr LHS, <0,4,1,5>
     1745707356U, // <1,u,4,6>: Cost 2 vuzpr LHS, <0,4,2,6>
-    2954890568U, // <1,u,4,7>: Cost 3 vzipr <0,3,1,4>, RHS
+    2088984578U, // <1,u,4,7>: Cost 2 ins <1,3,u,7>, lane 2
     1745707349U, // <1,u,4,u>: Cost 2 vuzpr LHS, <0,4,1,u>
-    2551431326U, // <1,u,5,0>: Cost 3 vext1 <0,1,u,5>, <0,1,u,5>
+    2088263682U, // <1,u,5,0>: Cost 2 ins <1,2,u,0>, lane 2
     1821513518U, // <1,u,5,1>: Cost 2 vzipl <1,5,3,7>, LHS
     1954551598U, // <1,u,5,2>: Cost 2 vtrnl <1,3,5,7>, LHS
     1881817244U, // <1,u,5,3>: Cost 2 vzipr <0,4,1,5>, LHS
-    2551434550U, // <1,u,5,4>: Cost 3 vext1 <0,1,u,5>, RHS
+    2088296450U, // <1,u,5,4>: Cost 2 ins <1,2,u,4>, lane 2
     1821513882U, // <1,u,5,5>: Cost 2 vzipl <1,5,3,7>, RHS
     1616009370U, // <1,u,5,6>: Cost 2 vext3 <0,u,1,1>, RHS
     671968566U,  // <1,u,5,7>: Cost 1 vuzpr LHS, RHS
     671968567U,  // <1,u,5,u>: Cost 1 vuzpr LHS, RHS
     1793486946U, // <1,u,6,0>: Cost 2 vuzpr LHS, <5,6,7,0>
-    2557412216U, // <1,u,6,1>: Cost 3 vext1 <1,1,u,6>, <1,1,u,6>
+    2087608322U, // <1,u,6,1>: Cost 2 ins <1,1,u,1>, lane 2
     1793486156U, // <1,u,6,2>: Cost 2 vuzpr LHS, <4,6,0,2>
-    2954240156U, // <1,u,6,3>: Cost 3 vzipr <0,2,1,6>, LHS
+    2087624706U, // <1,u,6,3>: Cost 2 ins <1,1,u,3>, lane 2
     1793486950U, // <1,u,6,4>: Cost 2 vuzpr LHS, <5,6,7,4>
-    2895771802U, // <1,u,6,5>: Cost 3 vzipl <1,6,1,7>, RHS
+    2131951616U, // <1,u,6,5>: Cost 2 ins <u,5,6,5>, lane 0
     1793486196U, // <1,u,6,6>: Cost 2 vuzpr LHS, <4,6,4,6>
-    1745708986U, // <1,u,6,7>: Cost 2 vuzpr LHS, <2,6,3,7>
-    1745708987U, // <1,u,6,u>: Cost 2 vuzpr LHS, <2,6,3,u>
+    1058226176U, // <1,u,6,7>: Cost 1 ins RHS, lane 0
+    1058226176U, // <1,u,6,u>: Cost 1 ins RHS, lane 0
     1585452032U, // <1,u,7,0>: Cost 2 vext2 <7,0,1,u>, <7,0,1,u>
     1793487694U, // <1,u,7,1>: Cost 2 vuzpr LHS, <6,7,0,1>
-    2569365158U, // <1,u,7,2>: Cost 3 vext1 <3,1,u,7>, <2,3,0,1>
+    2086952962U, // <1,u,7,2>: Cost 2 ins <1,0,u,2>, lane 2
     1793486976U, // <1,u,7,3>: Cost 2 vuzpr LHS, <5,7,1,3>
-    2557422902U, // <1,u,7,4>: Cost 3 vext1 <1,1,u,7>, RHS
+    2088296450U, // <1,u,7,4>: Cost 2 ins <1,2,u,4>, lane 2
     1793487734U, // <1,u,7,5>: Cost 2 vuzpr LHS, <6,7,4,5>
-    2724845884U, // <1,u,7,6>: Cost 3 vext3 <6,7,0,1>, <u,7,6,7>
+    2131369984U, // <1,u,7,6>: Cost 2 ins <u,4,7,6>, lane 0
     1793487016U, // <1,u,7,7>: Cost 2 vuzpr LHS, <5,7,5,7>
     1590761096U, // <1,u,7,u>: Cost 2 vext2 <7,u,1,u>, <7,u,1,u>
     403972257U,  // <1,u,u,0>: Cost 1 vext1 LHS, LHS
@@ -1479,28 +1479,28 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1745707680U, // <1,u,u,6>: Cost 2 vuzpr LHS, <0,u,2,6>
     671968809U,  // <1,u,u,7>: Cost 1 vuzpr LHS, RHS
     671965858U,  // <1,u,u,u>: Cost 1 vuzpr LHS, LHS
-    2215919778U, // <2,0,0,0>: Cost 3 vrev <0,2,0,0>
-    2685698058U, // <2,0,0,1>: Cost 3 vext3 <0,2,0,2>, <0,0,1,1>
+    2128150528U, // <2,0,0,0>: Cost 2 ins <u,0,0,0>, lane 0
+    2097635329U, // <2,0,0,1>: Cost 2 ins <2,u,0,1>, lane 1
     1691664486U, // <2,0,0,2>: Cost 2 vuzpl <2,3,0,1>, LHS
     2826094014U, // <2,0,0,3>: Cost 3 vuzpr <1,2,3,0>, <2,0,1,3>
     2551467318U, // <2,0,0,4>: Cost 3 vext1 <0,2,0,0>, RHS
     2826094772U, // <2,0,0,5>: Cost 3 vuzpr <1,2,3,0>, <3,0,4,5>
-    2216362200U, // <2,0,0,6>: Cost 3 vrev <0,2,6,0>
+    3171418113U, // <2,0,0,6>: Cost 3 ins <2,u,0,6>, lane 1
     3094529510U, // <2,0,0,7>: Cost 3 vtrnr <1,2,3,0>, <2,0,5,7>
     1691664540U, // <2,0,0,u>: Cost 2 vuzpl <2,3,0,1>, LHS
     2215927971U, // <2,0,1,0>: Cost 3 vrev <0,2,0,1>
-    3088343050U, // <2,0,1,1>: Cost 3 vtrnr <0,2,0,1>, <0,0,1,1>
+    2128232448U, // <2,0,1,1>: Cost 2 ins <u,0,1,1>, lane 0
     1611956326U, // <2,0,1,2>: Cost 2 vext3 <0,2,0,2>, LHS
     1752350822U, // <2,0,1,3>: Cost 2 vuzpr <1,2,3,0>, LHS
     2551475510U, // <2,0,1,4>: Cost 3 vext1 <0,2,0,1>, RHS
     2765407232U, // <2,0,1,5>: Cost 3 vuzpl <2,3,0,1>, <1,3,5,7>
     2587308473U, // <2,0,1,6>: Cost 3 vext1 <6,2,0,1>, <6,2,0,1>
-    2216444130U, // <2,0,1,7>: Cost 3 vrev <0,2,7,1>
+    3166707714U, // <2,0,1,7>: Cost 3 ins <2,0,u,7>, lane 2
     1611956380U, // <2,0,1,u>: Cost 2 vext3 <0,2,0,2>, LHS
     1142194340U, // <2,0,2,0>: Cost 2 vrev <0,2,0,2>
     1825374310U, // <2,0,2,1>: Cost 2 vzipl <2,2,2,2>, LHS
     1959592038U, // <2,0,2,2>: Cost 2 vtrnl <2,2,2,2>, LHS
-    2551482518U, // <2,0,2,3>: Cost 3 vext1 <0,2,0,2>, <3,0,1,2>
+    2128322560U, // <2,0,2,3>: Cost 2 ins <u,0,2,3>, lane 0
     1477741878U, // <2,0,2,4>: Cost 2 vext1 <0,2,0,2>, RHS
     2599259856U, // <2,0,2,5>: Cost 3 vext1 <u,2,0,2>, <5,1,7,3>
     3088351274U, // <2,0,2,6>: Cost 3 vtrnr <0,2,0,2>, <0,0,4,6>
@@ -1509,46 +1509,46 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1879883776U, // <2,0,3,0>: Cost 2 vzipr LHS, <0,0,0,0>
     1879885478U, // <2,0,3,1>: Cost 2 vzipr LHS, <2,3,0,1>
     1879883940U, // <2,0,3,2>: Cost 2 vzipr LHS, <0,2,0,2>
-    2953627871U, // <2,0,3,3>: Cost 3 vzipr LHS, <3,1,0,3>
+    2097872897U, // <2,0,3,3>: Cost 2 ins <2,u,3,3>, lane 1
     2958270630U, // <2,0,3,4>: Cost 3 vzipr LHS, <0,2,0,4>
     2826094286U, // <2,0,3,5>: Cost 3 vuzpr <1,2,3,0>, <2,3,4,5>
     2958270794U, // <2,0,3,6>: Cost 3 vzipr LHS, <0,4,0,6>
-    2826093568U, // <2,0,3,7>: Cost 3 vuzpr <1,2,3,0>, <1,3,5,7>
+    2097905665U, // <2,0,3,7>: Cost 2 ins <2,u,3,7>, lane 1
     1879883946U, // <2,0,3,u>: Cost 2 vzipr LHS, <0,2,0,u>
     2215952550U, // <2,0,4,0>: Cost 3 vrev <0,2,0,4>
     2685698386U, // <2,0,4,1>: Cost 3 vext3 <0,2,0,2>, <0,4,1,5>
     1960427622U, // <2,0,4,2>: Cost 2 vtrnl <2,3,4,5>, LHS
-    3625240726U, // <2,0,4,3>: Cost 4 vext1 <0,2,0,4>, <3,0,1,2>
+    3171688449U, // <2,0,4,3>: Cost 3 ins <2,u,4,3>, lane 1
     2551500086U, // <2,0,4,4>: Cost 3 vext1 <0,2,0,4>, RHS
-    2618723638U, // <2,0,4,5>: Cost 3 vext2 <0,2,2,0>, RHS
+    2097963009U, // <2,0,4,5>: Cost 2 ins <2,u,4,5>, lane 1
     1691667766U, // <2,0,4,6>: Cost 2 vuzpl <2,3,0,1>, RHS
-    4168304102U, // <2,0,4,7>: Cost 4 vtrnr <1,2,3,4>, <2,0,5,7>
+    3171721217U, // <2,0,4,7>: Cost 3 ins <2,u,4,7>, lane 1
     1691667784U, // <2,0,4,u>: Cost 2 vuzpl <2,3,0,1>, RHS
     3033596068U, // <2,0,5,0>: Cost 3 vtrnl <2,2,5,7>, <0,2,0,2>
-    2216034480U, // <2,0,5,1>: Cost 3 vrev <0,2,1,5>
+    2128527360U, // <2,0,5,1>: Cost 2 ins <u,0,5,1>, lane 0
     2955632804U, // <2,0,5,2>: Cost 3 vzipr <0,4,2,5>, <0,2,0,2>
     2216181954U, // <2,0,5,3>: Cost 3 vrev <0,2,3,5>
     2216255691U, // <2,0,5,4>: Cost 3 vrev <0,2,4,5>
     2867900420U, // <2,0,5,5>: Cost 3 vuzpr <u,2,3,0>, <5,5,5,5>
-    4162412586U, // <2,0,5,6>: Cost 4 vtrnr <0,2,4,5>, <0,0,4,6>
+    3202310144U, // <2,0,5,6>: Cost 3 ins <u,0,5,6>, lane 0
     1752354102U, // <2,0,5,7>: Cost 2 vuzpr <1,2,3,0>, RHS
     1752354103U, // <2,0,5,u>: Cost 2 vuzpr <1,2,3,0>, RHS
     3088678912U, // <2,0,6,0>: Cost 3 vtrnr <0,2,4,6>, <0,0,0,0>
     1828143206U, // <2,0,6,1>: Cost 2 vzipl <2,6,3,7>, LHS
-    3088678932U, // <2,0,6,2>: Cost 3 vtrnr <0,2,4,6>, <0,0,2,2>
-    4029384927U, // <2,0,6,3>: Cost 4 vzipr <0,4,2,6>, <3,1,0,3>
+    2128609280U, // <2,0,6,2>: Cost 2 ins <u,0,6,2>, lane 0
+    3171835905U, // <2,0,6,3>: Cost 3 ins <2,u,6,3>, lane 1
     1142522060U, // <2,0,6,4>: Cost 2 vrev <0,2,4,6>
-    3899836353U, // <2,0,6,5>: Cost 4 vuzpr <1,2,3,0>, <2,6,4,5>
+    3171852289U, // <2,0,6,5>: Cost 3 ins <2,u,6,5>, lane 1
     2867899764U, // <2,0,6,6>: Cost 3 vuzpr <u,2,3,0>, <4,6,4,6>
-    2826094522U, // <2,0,6,7>: Cost 3 vuzpr <1,2,3,0>, <2,6,3,7>
+    2128650240U, // <2,0,6,7>: Cost 2 ins <u,0,6,7>, lane 0
     1142817008U, // <2,0,6,u>: Cost 2 vrev <0,2,u,6>
     2659202049U, // <2,0,7,0>: Cost 3 vext2 <7,0,2,0>, <7,0,2,0>
     2867901262U, // <2,0,7,1>: Cost 3 vuzpr <u,2,3,0>, <6,7,0,1>
     2956976292U, // <2,0,7,2>: Cost 3 vzipr <0,6,2,7>, <0,2,0,2>
     2867900544U, // <2,0,7,3>: Cost 3 vuzpr <u,2,3,0>, <5,7,1,3>
-    4174448072U, // <2,0,7,4>: Cost 4 vtrnr <2,2,5,7>, <2,0,2,4>
+    3171917825U, // <2,0,7,4>: Cost 3 ins <2,u,7,4>, lane 1
     2867901302U, // <2,0,7,5>: Cost 3 vuzpr <u,2,3,0>, <6,7,4,5>
-    2216419551U, // <2,0,7,6>: Cost 3 vrev <0,2,6,7>
+    3166699522U, // <2,0,7,6>: Cost 3 ins <2,0,u,6>, lane 2
     2867900584U, // <2,0,7,7>: Cost 3 vuzpr <u,2,3,0>, <5,7,5,7>
     2867900549U, // <2,0,7,u>: Cost 3 vuzpr <u,2,3,0>, <5,7,1,u>
     1879924736U, // <2,0,u,0>: Cost 2 vzipr LHS, <0,0,0,0>
@@ -1556,37 +1556,37 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1879924900U, // <2,0,u,2>: Cost 2 vzipr LHS, <0,2,0,2>
     1752351389U, // <2,0,u,3>: Cost 2 vuzpr <1,2,3,0>, LHS
     1477791030U, // <2,0,u,4>: Cost 2 vext1 <0,2,0,u>, RHS
-    2618726554U, // <2,0,u,5>: Cost 3 vext2 <0,2,2,0>, RHS
+    2097963009U, // <2,0,u,5>: Cost 2 ins <2,u,4,5>, lane 1
     1691670682U, // <2,0,u,6>: Cost 2 vuzpl <2,3,0,1>, RHS
     1752354345U, // <2,0,u,7>: Cost 2 vuzpr <1,2,3,0>, RHS
     1879924906U, // <2,0,u,u>: Cost 2 vzipr LHS, <0,2,0,u>
     2763497636U, // <2,1,0,0>: Cost 3 vuzpl <2,0,1,2>, <0,2,0,2>
-    2819907594U, // <2,1,0,1>: Cost 3 vuzpr <0,2,0,1>, <0,0,1,1>
+    2097635329U, // <2,1,0,1>: Cost 2 ins <2,u,0,1>, lane 1
     2820130966U, // <2,1,0,2>: Cost 3 vuzpr <0,2,3,1>, <3,0,1,2>
     1616823030U, // <2,1,0,3>: Cost 2 vext3 <1,0,3,2>, <1,0,3,2>
     2767487180U, // <2,1,0,4>: Cost 3 vuzpl <2,6,1,3>, <0,2,4,6>
     3033842688U, // <2,1,0,5>: Cost 3 vtrnl <2,3,0,1>, <1,3,5,7>
-    4168269947U, // <2,1,0,6>: Cost 4 vtrnr <1,2,3,0>, <0,1,4,6>
-    2622046794U, // <2,1,0,7>: Cost 3 vext2 <0,7,2,1>, <0,7,2,1>
+    3171418113U, // <2,1,0,6>: Cost 3 ins <2,u,0,6>, lane 1
+    3171426305U, // <2,1,0,7>: Cost 3 ins <2,u,0,7>, lane 1
     1617191715U, // <2,1,0,u>: Cost 2 vext3 <1,0,u,2>, <1,0,u,2>
     2551546028U, // <2,1,1,0>: Cost 3 vext1 <0,2,1,1>, <0,2,1,1>
-    2685698868U, // <2,1,1,1>: Cost 3 vext3 <0,2,0,2>, <1,1,1,1>
+    2128896000U, // <2,1,1,1>: Cost 2 ins <u,1,1,1>, lane 0
     2954938518U, // <2,1,1,2>: Cost 3 vzipr <0,3,2,1>, <3,0,1,2>
-    2819907686U, // <2,1,1,3>: Cost 3 vuzpr <0,2,0,1>, LHS
+    2128912384U, // <2,1,1,3>: Cost 2 ins <u,1,1,3>, lane 0
     2551549238U, // <2,1,1,4>: Cost 3 vext1 <0,2,1,1>, RHS
-    3893649530U, // <2,1,1,5>: Cost 4 vuzpr <0,2,0,1>, <0,1,4,5>
-    3893723259U, // <2,1,1,6>: Cost 4 vuzpr <0,2,1,1>, <0,1,4,6>
-    4162086455U, // <2,1,1,7>: Cost 4 vtrnr <0,2,0,1>, <2,1,5,7>
-    2819907691U, // <2,1,1,u>: Cost 3 vuzpr <0,2,0,1>, LHS
-    2551554221U, // <2,1,2,0>: Cost 3 vext1 <0,2,1,2>, <0,2,1,2>
-    2819907747U, // <2,1,2,1>: Cost 3 vuzpr <0,2,0,1>, <0,2,0,1>
-    2551555688U, // <2,1,2,2>: Cost 3 vext1 <0,2,1,2>, <2,2,2,2>
-    2014609510U, // <2,1,2,3>: Cost 2 vtrnr <0,2,0,2>, LHS
-    2551557430U, // <2,1,2,4>: Cost 3 vext1 <0,2,1,2>, RHS
-    2958262610U, // <2,1,2,5>: Cost 3 vzipr <0,u,2,2>, <0,4,1,5>
-    3893649612U, // <2,1,2,6>: Cost 4 vuzpr <0,2,0,1>, <0,2,4,6>
-    2726249402U, // <2,1,2,7>: Cost 3 vext3 <7,0,1,2>, <1,2,7,0>
-    2014609515U, // <2,1,2,u>: Cost 2 vtrnr <0,2,0,2>, LHS
+    3202670592U, // <2,1,1,5>: Cost 3 ins <u,1,1,5>, lane 0
+    3202678784U, // <2,1,1,6>: Cost 3 ins <u,1,1,6>, lane 0
+    2953612553U, // <2,1,1,7>: Cost 3 vzipr <0,1,2,1>, <4,5,1,7>
+    2128896000U, // <2,1,1,u>: Cost 2 ins <u,1,1,1>, lane 0
+    2128961536U, // <2,1,2,0>: Cost 2 ins <u,1,2,0>, lane 0
+    2128969728U, // <2,1,2,1>: Cost 2 ins <u,1,2,1>, lane 0
+    2128977920U, // <2,1,2,2>: Cost 2 ins <u,1,2,2>, lane 0
+    1055244288U, // <2,1,2,3>: Cost 1 ins LHS, lane 0
+    2128994304U, // <2,1,2,4>: Cost 2 ins <u,1,2,4>, lane 0
+    2129002496U, // <2,1,2,5>: Cost 2 ins <u,1,2,5>, lane 0
+    2129010688U, // <2,1,2,6>: Cost 2 ins <u,1,2,6>, lane 0
+    2129018880U, // <2,1,2,7>: Cost 2 ins <u,1,2,7>, lane 0
+    1055244288U, // <2,1,2,u>: Cost 1 ins LHS, lane 0
     2953625609U, // <2,1,3,0>: Cost 3 vzipr LHS, <0,0,1,0>
     1879883786U, // <2,1,3,1>: Cost 2 vzipr LHS, <0,0,1,1>
     1879885974U, // <2,1,3,2>: Cost 2 vzipr LHS, <3,0,1,2>
@@ -1594,26 +1594,26 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2953625856U, // <2,1,3,4>: Cost 3 vzipr LHS, <0,3,1,4>
     1879884114U, // <2,1,3,5>: Cost 2 vzipr LHS, <0,4,1,5>
     2958270641U, // <2,1,3,6>: Cost 3 vzipr LHS, <0,2,1,6>
-    2958271695U, // <2,1,3,7>: Cost 3 vzipr LHS, <1,6,1,7>
+    2097905665U, // <2,1,3,7>: Cost 2 ins <2,u,3,7>, lane 1
     1879883793U, // <2,1,3,u>: Cost 2 vzipr LHS, <0,0,1,u>
-    2690565154U, // <2,1,4,0>: Cost 3 vext3 <1,0,3,2>, <1,4,0,5>
+    3171663873U, // <2,1,4,0>: Cost 3 ins <2,u,4,0>, lane 1
     3094561588U, // <2,1,4,1>: Cost 3 vtrnr <1,2,3,4>, <1,1,1,1>
     2900378522U, // <2,1,4,2>: Cost 3 vzipl <2,4,1,3>, <1,2,3,4>
     1148404634U, // <2,1,4,3>: Cost 2 vrev <1,2,3,4>
-    3625315638U, // <2,1,4,4>: Cost 4 vext1 <0,2,1,4>, RHS
-    2619395382U, // <2,1,4,5>: Cost 3 vext2 <0,3,2,1>, RHS
+    3171696641U, // <2,1,4,4>: Cost 3 ins <2,u,4,4>, lane 1
+    2097963009U, // <2,1,4,5>: Cost 2 ins <2,u,4,5>, lane 1
     2763500854U, // <2,1,4,6>: Cost 3 vuzpl <2,0,1,2>, RHS
-    4168303454U, // <2,1,4,7>: Cost 4 vtrnr <1,2,3,4>, <1,1,5,7>
+    3171721217U, // <2,1,4,7>: Cost 3 ins <2,u,4,7>, lane 1
     2020819051U, // <2,1,4,u>: Cost 2 vtrnr <1,2,3,4>, LHS
     2551578800U, // <2,1,5,0>: Cost 3 vext1 <0,2,1,5>, <0,2,1,5>
     2551579648U, // <2,1,5,1>: Cost 3 vext1 <0,2,1,5>, <1,3,5,7>
     2901001110U, // <2,1,5,2>: Cost 3 vzipl <2,5,0,7>, <1,2,3,0>
-    2685699216U, // <2,1,5,3>: Cost 3 vext3 <0,2,0,2>, <1,5,3,7>
+    2129207296U, // <2,1,5,3>: Cost 2 ins <u,1,5,3>, lane 0
     2551582006U, // <2,1,5,4>: Cost 3 vext1 <0,2,1,5>, RHS
-    4027383984U, // <2,1,5,5>: Cost 4 vzipr <0,1,2,5>, <0,2,1,5>
-    3661156806U, // <2,1,5,6>: Cost 4 vext1 <6,2,1,5>, <6,2,1,5>
+    3202965504U, // <2,1,5,5>: Cost 3 ins <u,1,5,5>, lane 0
+    3171786753U, // <2,1,5,6>: Cost 3 ins <2,u,5,6>, lane 1
     2819910966U, // <2,1,5,7>: Cost 3 vuzpr <0,2,0,1>, RHS
-    2819910967U, // <2,1,5,u>: Cost 3 vuzpr <0,2,0,1>, RHS
+    2129207296U, // <2,1,5,u>: Cost 2 ins <u,1,5,3>, lane 0
     2551586993U, // <2,1,6,0>: Cost 3 vext1 <0,2,1,6>, <0,2,1,6>
     3088679732U, // <2,1,6,1>: Cost 3 vtrnr <0,2,4,6>, <1,1,1,1>
     2551588794U, // <2,1,6,2>: Cost 3 vext1 <0,2,1,6>, <2,6,3,7>
@@ -1621,98 +1621,98 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2551590198U, // <2,1,6,4>: Cost 3 vext1 <0,2,1,6>, RHS
     2955641170U, // <2,1,6,5>: Cost 3 vzipr <0,4,2,6>, <0,4,1,5>
     2901886177U, // <2,1,6,6>: Cost 3 vzipl <2,6,3,7>, <1,6,3,7>
-    3893651386U, // <2,1,6,7>: Cost 4 vuzpr <0,2,0,1>, <2,6,3,7>
+    2129313792U, // <2,1,6,7>: Cost 2 ins <u,1,6,7>, lane 0
     2014937195U, // <2,1,6,u>: Cost 2 vtrnr <0,2,4,6>, LHS
-    2622051322U, // <2,1,7,0>: Cost 3 vext2 <0,7,2,1>, <7,0,1,2>
-    4030717962U, // <2,1,7,1>: Cost 4 vzipr <0,6,2,7>, <0,0,1,1>
+    3171885057U, // <2,1,7,0>: Cost 3 ins <2,u,7,0>, lane 1
+    3203080192U, // <2,1,7,1>: Cost 3 ins <u,1,7,1>, lane 0
     3001439874U, // <2,1,7,2>: Cost 3 vzipr <u,1,2,7>, <7,u,1,2>
-    3100704870U, // <2,1,7,3>: Cost 3 vtrnr <2,2,5,7>, LHS
-    3732288870U, // <2,1,7,4>: Cost 4 vext2 <6,u,2,1>, <7,4,5,6>
-    4030718290U, // <2,1,7,5>: Cost 4 vzipr <0,6,2,7>, <0,4,1,5>
-    3732289006U, // <2,1,7,6>: Cost 4 vext2 <6,u,2,1>, <7,6,2,7>
-    3929485480U, // <2,1,7,7>: Cost 4 vuzpr <6,2,0,1>, <5,7,5,7>
-    3100704875U, // <2,1,7,u>: Cost 3 vtrnr <2,2,5,7>, LHS
-    2953666569U, // <2,1,u,0>: Cost 3 vzipr LHS, <0,0,1,0>
+    2129354752U, // <2,1,7,3>: Cost 2 ins <u,1,7,3>, lane 0
+    3171917825U, // <2,1,7,4>: Cost 3 ins <2,u,7,4>, lane 1
+    3203112960U, // <2,1,7,5>: Cost 3 ins <u,1,7,5>, lane 0
+    3112722537U, // <2,1,7,6>: Cost 3 vtrnr <4,2,6,7>, <0,1,2,6>
+    3171942401U, // <2,1,7,7>: Cost 3 ins <2,u,7,7>, lane 1
+    2129354752U, // <2,1,7,u>: Cost 2 ins <u,1,7,3>, lane 0
+    2128961536U, // <2,1,u,0>: Cost 2 ins <u,1,2,0>, lane 0
     1879924746U, // <2,1,u,1>: Cost 2 vzipr LHS, <0,0,1,1>
     1879926934U, // <2,1,u,2>: Cost 2 vzipr LHS, <3,0,1,2>
-    1879925720U, // <2,1,u,3>: Cost 2 vzipr LHS, <1,3,1,3>
-    2953666573U, // <2,1,u,4>: Cost 3 vzipr LHS, <0,0,1,4>
+    1055244288U, // <2,1,u,3>: Cost 1 ins LHS, lane 0
+    2128994304U, // <2,1,u,4>: Cost 2 ins <u,1,2,4>, lane 0
     1879925074U, // <2,1,u,5>: Cost 2 vzipr LHS, <0,4,1,5>
-    2953666737U, // <2,1,u,6>: Cost 3 vzipr LHS, <0,2,1,6>
-    2819911209U, // <2,1,u,7>: Cost 3 vuzpr <0,2,0,1>, RHS
-    1879924753U, // <2,1,u,u>: Cost 2 vzipr LHS, <0,0,1,u>
+    2129010688U, // <2,1,u,6>: Cost 2 ins <u,1,2,6>, lane 0
+    2097905665U, // <2,1,u,7>: Cost 2 ins <2,u,3,7>, lane 1
+    1055244288U, // <2,1,u,u>: Cost 1 ins LHS, lane 0
     2020787094U, // <2,2,0,0>: Cost 2 vtrnr <1,2,3,0>, <1,2,3,0>
     1548976230U, // <2,2,0,1>: Cost 2 vext2 <0,u,2,2>, LHS
     1691156582U, // <2,2,0,2>: Cost 2 vuzpl <2,2,2,2>, LHS
-    2685699535U, // <2,2,0,3>: Cost 3 vext3 <0,2,0,2>, <2,0,3,2>
+    2094260226U, // <2,2,0,3>: Cost 2 ins <2,2,u,3>, lane 2
     2819917256U, // <2,2,0,4>: Cost 3 vuzpr <0,2,0,2>, <2,0,2,4>
-    3893657614U, // <2,2,0,5>: Cost 4 vuzpr <0,2,0,2>, <0,0,1,5>
+    3168018434U, // <2,2,0,5>: Cost 3 ins <2,2,u,5>, lane 2
     2819915818U, // <2,2,0,6>: Cost 3 vuzpr <0,2,0,2>, <0,0,4,6>
-    4168270038U, // <2,2,0,7>: Cost 4 vtrnr <1,2,3,0>, <0,2,5,7>
+    3171426305U, // <2,2,0,7>: Cost 3 ins <2,u,0,7>, lane 1
     1548976796U, // <2,2,0,u>: Cost 2 vext2 <0,u,2,2>, <0,u,2,2>
     2622718710U, // <2,2,1,0>: Cost 3 vext2 <0,u,2,2>, <1,0,3,2>
-    3088343203U, // <2,2,1,1>: Cost 3 vtrnr <0,2,0,1>, <0,2,0,1>
-    2622718870U, // <2,2,1,2>: Cost 3 vext2 <0,u,2,2>, <1,2,3,0>
+    1879867492U, // <2,2,1,1>: Cost 2 vzipr <0,1,2,1>, <0,1,2,1>
+    2094252034U, // <2,2,1,2>: Cost 2 ins <2,2,u,2>, lane 2
     1746174054U, // <2,2,1,3>: Cost 2 vuzpr <0,2,0,2>, LHS
-    4162085786U, // <2,2,1,4>: Cost 4 vtrnr <0,2,0,1>, <1,2,3,4>
+    3167526915U, // <2,2,1,4>: Cost 3 ins <2,2,1,u>, lane 3
     2622719120U, // <2,2,1,5>: Cost 3 vext2 <0,u,2,2>, <1,5,3,7>
-    4162085068U, // <2,2,1,6>: Cost 4 vtrnr <0,2,0,1>, <0,2,4,6>
-    4168278230U, // <2,2,1,7>: Cost 4 vtrnr <1,2,3,1>, <0,2,5,7>
+    3203342336U, // <2,2,1,6>: Cost 3 ins <u,2,1,6>, lane 0
+    3168034818U, // <2,2,1,7>: Cost 3 ins <2,2,u,7>, lane 2
     1746174059U, // <2,2,1,u>: Cost 2 vuzpr <0,2,0,2>, LHS
     1489829990U, // <2,2,2,0>: Cost 2 vext1 <2,2,2,2>, LHS
-    2820511595U, // <2,2,2,1>: Cost 3 vuzpr <0,2,u,2>, <u,2,0,1>
+    2093858819U, // <2,2,2,1>: Cost 2 ins <2,2,2,u>, lane 3
     269271142U,  // <2,2,2,2>: Cost 1 vdup2 LHS
     1884520550U, // <2,2,2,3>: Cost 2 vzipr <0,u,2,2>, LHS
     1489833270U, // <2,2,2,4>: Cost 2 vext1 <2,2,2,2>, RHS
-    2819915979U, // <2,2,2,5>: Cost 3 vuzpr <0,2,0,2>, <0,2,4,5>
-    2819915980U, // <2,2,2,6>: Cost 3 vuzpr <0,2,0,2>, <0,2,4,6>
-    3088352904U, // <2,2,2,7>: Cost 3 vtrnr <0,2,0,2>, <2,2,5,7>
+    2093858819U, // <2,2,2,5>: Cost 2 ins <2,2,2,u>, lane 3
+    2093858819U, // <2,2,2,6>: Cost 2 ins <2,2,2,u>, lane 3
+    2093858819U, // <2,2,2,7>: Cost 2 ins <2,2,2,u>, lane 3
     269271142U,  // <2,2,2,u>: Cost 1 vdup2 LHS
-    2953625780U, // <2,2,3,0>: Cost 3 vzipr LHS, <0,2,2,0>
-    2819917478U, // <2,2,3,1>: Cost 3 vuzpr <0,2,0,2>, <2,3,0,1>
+    2129698816U, // <2,2,3,0>: Cost 2 ins <u,2,3,0>, lane 0
+    2093932547U, // <2,2,3,1>: Cost 2 ins <2,2,3,u>, lane 3
     1879885416U, // <2,2,3,2>: Cost 2 vzipr LHS, <2,2,2,2>
     806142054U,  // <2,2,3,3>: Cost 1 vzipr LHS, LHS
-    2953625784U, // <2,2,3,4>: Cost 3 vzipr LHS, <0,2,2,4>
-    2819917518U, // <2,2,3,5>: Cost 3 vuzpr <0,2,0,2>, <2,3,4,5>
+    2129731584U, // <2,2,3,4>: Cost 2 ins <u,2,3,4>, lane 0
+    2093932547U, // <2,2,3,5>: Cost 2 ins <2,2,3,u>, lane 3
     1884528988U, // <2,2,3,6>: Cost 2 vzipr LHS, <0,4,2,6>
-    2819916800U, // <2,2,3,7>: Cost 3 vuzpr <0,2,0,2>, <1,3,5,7>
+    2097905665U, // <2,2,3,7>: Cost 2 ins <2,u,3,7>, lane 1
     806142059U,  // <2,2,3,u>: Cost 1 vzipr LHS, LHS
     2551644344U, // <2,2,4,0>: Cost 3 vext1 <0,2,2,4>, <0,2,2,4>
-    3625386742U, // <2,2,4,1>: Cost 4 vext1 <0,2,2,4>, <1,0,3,2>
-    2551645902U, // <2,2,4,2>: Cost 3 vext1 <0,2,2,4>, <2,3,4,5>
-    2954297446U, // <2,2,4,3>: Cost 3 vzipr <0,2,2,4>, LHS
+    3171672065U, // <2,2,4,1>: Cost 3 ins <2,u,4,1>, lane 1
+    2094252034U, // <2,2,4,2>: Cost 2 ins <2,2,u,2>, lane 2
+    2094260226U, // <2,2,4,3>: Cost 2 ins <2,2,u,3>, lane 2
     2020819866U, // <2,2,4,4>: Cost 2 vtrnr <1,2,3,4>, <1,2,3,4>
     1548979510U, // <2,2,4,5>: Cost 2 vext2 <0,u,2,2>, RHS
     1691159862U, // <2,2,4,6>: Cost 2 vuzpl <2,2,2,2>, RHS
-    4168302806U, // <2,2,4,7>: Cost 4 vtrnr <1,2,3,4>, <0,2,5,7>
+    3171721217U, // <2,2,4,7>: Cost 3 ins <2,u,4,7>, lane 1
     1548979753U, // <2,2,4,u>: Cost 2 vext2 <0,u,2,2>, RHS
-    2617413246U, // <2,2,5,0>: Cost 3 vext2 <0,0,2,2>, <5,0,7,2>
+    3167821827U, // <2,2,5,0>: Cost 3 ins <2,2,5,u>, lane 3
     2670497488U, // <2,2,5,1>: Cost 3 vext2 <u,u,2,2>, <5,1,7,3>
-    3088670884U, // <2,2,5,2>: Cost 3 vtrnr <0,2,4,5>, <0,2,0,2>
-    2953642086U, // <2,2,5,3>: Cost 3 vzipr <0,1,2,5>, LHS
+    2094252034U, // <2,2,5,2>: Cost 2 ins <2,2,u,2>, lane 2
+    2094260226U, // <2,2,5,3>: Cost 2 ins <2,2,u,3>, lane 2
     2228201085U, // <2,2,5,4>: Cost 3 vrev <2,2,4,5>
-    2953642088U, // <2,2,5,5>: Cost 3 vzipr <0,1,2,5>, <0,1,2,5>
+    1879900264U, // <2,2,5,5>: Cost 2 vzipr <0,1,2,5>, <0,1,2,5>
     2670497890U, // <2,2,5,6>: Cost 3 vext2 <u,u,2,2>, <5,6,7,0>
     1746177334U, // <2,2,5,7>: Cost 2 vuzpr <0,2,0,2>, RHS
     1746177335U, // <2,2,5,u>: Cost 2 vuzpr <0,2,0,2>, RHS
     3088679830U, // <2,2,6,0>: Cost 3 vtrnr <0,2,4,6>, <1,2,3,0>
-    4162420899U, // <2,2,6,1>: Cost 4 vtrnr <0,2,4,6>, <0,2,0,1>
-    3088679076U, // <2,2,6,2>: Cost 3 vtrnr <0,2,4,6>, <0,2,0,2>
+    3171819521U, // <2,2,6,1>: Cost 3 ins <2,u,6,1>, lane 1
+    2094252034U, // <2,2,6,2>: Cost 2 ins <2,2,u,2>, lane 2
     1881899110U, // <2,2,6,3>: Cost 2 vzipr <0,4,2,6>, LHS
     3088679078U, // <2,2,6,4>: Cost 3 vtrnr <0,2,4,6>, <0,2,0,4>
-    4162420912U, // <2,2,6,5>: Cost 4 vtrnr <0,2,4,6>, <0,2,1,5>
+    3171852289U, // <2,2,6,5>: Cost 3 ins <2,u,6,5>, lane 1
     2014937292U, // <2,2,6,6>: Cost 2 vtrnr <0,2,4,6>, <0,2,4,6>
-    2819917754U, // <2,2,6,7>: Cost 3 vuzpr <0,2,0,2>, <2,6,3,7>
+    2129977344U, // <2,2,6,7>: Cost 2 ins <u,2,6,7>, lane 0
     1881899115U, // <2,2,6,u>: Cost 2 vzipr <0,4,2,6>, LHS
     2726250474U, // <2,2,7,0>: Cost 3 vext3 <7,0,1,2>, <2,7,0,1>
     2867696462U, // <2,2,7,1>: Cost 3 vuzpr <u,2,0,2>, <6,7,0,1>
-    3100704932U, // <2,2,7,2>: Cost 3 vtrnr <2,2,5,7>, <0,2,0,2>
-    2956976230U, // <2,2,7,3>: Cost 3 vzipr <0,6,2,7>, LHS
+    2094252034U, // <2,2,7,2>: Cost 2 ins <2,2,u,2>, lane 2
+    2130018304U, // <2,2,7,3>: Cost 2 ins <u,2,7,3>, lane 0
     2670499174U, // <2,2,7,4>: Cost 3 vext2 <u,u,2,2>, <7,4,5,6>
     2228291208U, // <2,2,7,5>: Cost 3 vrev <2,2,5,7>
-    4030718300U, // <2,2,7,6>: Cost 4 vzipr <0,6,2,7>, <0,4,2,6>
-    2956976639U, // <2,2,7,7>: Cost 3 vzipr <0,6,2,7>, <0,6,2,7>
-    2956976235U, // <2,2,7,u>: Cost 3 vzipr <0,6,2,7>, LHS
+    3203784704U, // <2,2,7,6>: Cost 3 ins <u,2,7,6>, lane 0
+    1879916650U, // <2,2,7,7>: Cost 2 vzipr <0,1,2,7>, <0,1,2,7>
+    2130018304U, // <2,2,7,u>: Cost 2 ins <u,2,7,3>, lane 0
     2020787094U, // <2,2,u,0>: Cost 2 vtrnr <1,2,3,0>, <1,2,3,0>
     1548982062U, // <2,2,u,1>: Cost 2 vext2 <0,u,2,2>, LHS
     269271142U,  // <2,2,u,2>: Cost 1 vdup2 LHS
@@ -1725,11 +1725,11 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1544339456U, // <2,3,0,0>: Cost 2 vext2 LHS, <0,0,0,0>
     470597734U,  // <2,3,0,1>: Cost 1 vext2 LHS, LHS
     1548984484U, // <2,3,0,2>: Cost 2 vext2 LHS, <0,2,0,2>
-    2619408648U, // <2,3,0,3>: Cost 3 vext2 <0,3,2,3>, <0,3,2,3>
+    2094374915U, // <2,3,0,3>: Cost 2 ins <2,3,0,u>, lane 3
     1548984658U, // <2,3,0,4>: Cost 2 vext2 LHS, <0,4,1,5>
-    3094529742U, // <2,3,0,5>: Cost 3 vtrnr <1,2,3,0>, <2,3,4,5>
-    2622726655U, // <2,3,0,6>: Cost 3 vext2 LHS, <0,6,2,7>
-    3094529024U, // <2,3,0,7>: Cost 3 vtrnr <1,2,3,0>, <1,3,5,7>
+    2094940162U, // <2,3,0,5>: Cost 2 ins <2,3,u,5>, lane 2
+    2094374915U, // <2,3,0,6>: Cost 2 ins <2,3,0,u>, lane 3
+    2094374915U, // <2,3,0,7>: Cost 2 ins <2,3,0,u>, lane 3
     470598301U,  // <2,3,0,u>: Cost 1 vext2 LHS, LHS
     1544340214U, // <2,3,1,0>: Cost 2 vext2 LHS, <1,0,3,2>
     1544340276U, // <2,3,1,1>: Cost 2 vext2 LHS, <1,1,1,1>
@@ -1741,31 +1741,31 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2665858347U, // <2,3,1,7>: Cost 3 vext2 LHS, <1,7,3,0>
     1548985709U, // <2,3,1,u>: Cost 2 vext2 LHS, <1,u,1,3>
     2958263190U, // <2,3,2,0>: Cost 3 vzipr <0,u,2,2>, <1,2,3,0>
-    3088352934U, // <2,3,2,1>: Cost 3 vtrnr <0,2,0,2>, <2,3,0,1>
+    2094907394U, // <2,3,2,1>: Cost 2 ins <2,3,u,1>, lane 2
     1544341096U, // <2,3,2,2>: Cost 2 vext2 LHS, <2,2,2,2>
     1544341158U, // <2,3,2,3>: Cost 2 vext2 LHS, <2,3,0,1>
     2958263194U, // <2,3,2,4>: Cost 3 vzipr <0,u,2,2>, <1,2,3,4>
-    3088352974U, // <2,3,2,5>: Cost 3 vtrnr <0,2,0,2>, <2,3,4,5>
+    2094940162U, // <2,3,2,5>: Cost 2 ins <2,3,u,5>, lane 2
     1548986298U, // <2,3,2,6>: Cost 2 vext2 LHS, <2,6,3,7>
     3088352256U, // <2,3,2,7>: Cost 3 vtrnr <0,2,0,2>, <1,3,5,7>
     1548986427U, // <2,3,2,u>: Cost 2 vext2 LHS, <2,u,0,1>
     1879884694U, // <2,3,3,0>: Cost 2 vzipr LHS, <1,2,3,0>
-    2953625790U, // <2,3,3,1>: Cost 3 vzipr LHS, <0,2,3,1>
+    2094907394U, // <2,3,3,1>: Cost 2 ins <2,3,u,1>, lane 2
     1879884534U, // <2,3,3,2>: Cost 2 vzipr LHS, <1,0,3,2>
     1544341916U, // <2,3,3,3>: Cost 2 vext2 LHS, <3,3,3,3>
     1879884698U, // <2,3,3,4>: Cost 2 vzipr LHS, <1,2,3,4>
-    2953625794U, // <2,3,3,5>: Cost 3 vzipr LHS, <0,2,3,5>
+    2094940162U, // <2,3,3,5>: Cost 2 ins <2,3,u,5>, lane 2
     2953627415U, // <2,3,3,6>: Cost 3 vzipr LHS, <2,4,3,6>
     1884529808U, // <2,3,3,7>: Cost 2 vzipr LHS, <1,5,3,7>
     1879884702U, // <2,3,3,u>: Cost 2 vzipr LHS, <1,2,3,u>
     1483948134U, // <2,3,4,0>: Cost 2 vext1 <1,2,3,4>, LHS
     1483948954U, // <2,3,4,1>: Cost 2 vext1 <1,2,3,4>, <1,2,3,4>
-    2622729276U, // <2,3,4,2>: Cost 3 vext2 LHS, <4,2,6,0>
-    2557692054U, // <2,3,4,3>: Cost 3 vext1 <1,2,3,4>, <3,0,1,2>
+    2094669827U, // <2,3,4,2>: Cost 2 ins <2,3,4,u>, lane 3
+    2094669827U, // <2,3,4,3>: Cost 2 ins <2,3,4,u>, lane 3
     1483951414U, // <2,3,4,4>: Cost 2 vext1 <1,2,3,4>, RHS
     470601014U,  // <2,3,4,5>: Cost 1 vext2 LHS, RHS
     1691241782U, // <2,3,4,6>: Cost 2 vuzpl <2,2,3,3>, RHS
-    3094561792U, // <2,3,4,7>: Cost 3 vtrnr <1,2,3,4>, <1,3,5,7>
+    2094669827U, // <2,3,4,7>: Cost 2 ins <2,3,4,u>, lane 3
     470601257U,  // <2,3,4,u>: Cost 1 vext2 LHS, RHS
     2551726274U, // <2,3,5,0>: Cost 3 vext1 <0,2,3,5>, <0,2,3,5>
     1592118992U, // <2,3,5,1>: Cost 2 vext2 LHS, <5,1,7,3>
@@ -1777,20 +1777,20 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1758350646U, // <2,3,5,7>: Cost 2 vuzpr <2,2,3,3>, RHS
     1758350647U, // <2,3,5,u>: Cost 2 vuzpr <2,2,3,3>, RHS
     2955641750U, // <2,3,6,0>: Cost 3 vzipr <0,4,2,6>, <1,2,3,0>
-    3088680614U, // <2,3,6,1>: Cost 3 vtrnr <0,2,4,6>, <2,3,0,1>
+    2094907394U, // <2,3,6,1>: Cost 2 ins <2,3,u,1>, lane 2
     1592119802U, // <2,3,6,2>: Cost 2 vext2 LHS, <6,2,7,3>
     3088679896U, // <2,3,6,3>: Cost 3 vtrnr <0,2,4,6>, <1,3,1,3>
     2955641754U, // <2,3,6,4>: Cost 3 vzipr <0,4,2,6>, <1,2,3,4>
-    3088680654U, // <2,3,6,5>: Cost 3 vtrnr <0,2,4,6>, <2,3,4,5>
+    2094940162U, // <2,3,6,5>: Cost 2 ins <2,3,u,5>, lane 2
     1592120120U, // <2,3,6,6>: Cost 2 vext2 LHS, <6,6,6,6>
     1592120142U, // <2,3,6,7>: Cost 2 vext2 LHS, <6,7,0,1>
     1592120223U, // <2,3,6,u>: Cost 2 vext2 LHS, <6,u,0,1>
     1592120314U, // <2,3,7,0>: Cost 2 vext2 LHS, <7,0,1,2>
-    2856276814U, // <2,3,7,1>: Cost 3 vuzpr <6,2,7,3>, <6,7,0,1>
+    2094907394U, // <2,3,7,1>: Cost 2 ins <2,3,u,1>, lane 2
     2974892790U, // <2,3,7,2>: Cost 3 vzipr <3,6,2,7>, <1,0,3,2>
     2856276096U, // <2,3,7,3>: Cost 3 vuzpr <6,2,7,3>, <5,7,1,3>
     1592120678U, // <2,3,7,4>: Cost 2 vext2 LHS, <7,4,5,6>
-    2856276854U, // <2,3,7,5>: Cost 3 vuzpr <6,2,7,3>, <6,7,4,5>
+    2094940162U, // <2,3,7,5>: Cost 2 ins <2,3,u,5>, lane 2
     2767672522U, // <2,3,7,6>: Cost 3 vuzpl <2,6,3,7>, <7,2,6,3>
     1592120940U, // <2,3,7,7>: Cost 2 vext2 LHS, <7,7,7,7>
     1592120962U, // <2,3,7,u>: Cost 2 vext2 LHS, <7,u,1,2>
@@ -1804,47 +1804,47 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1879925904U, // <2,3,u,7>: Cost 2 vzipr LHS, <1,5,3,7>
     470604133U,  // <2,3,u,u>: Cost 1 vext2 LHS, LHS
     2826125312U, // <2,4,0,0>: Cost 3 vuzpr <1,2,3,4>, <0,0,0,0>
-    2618753126U, // <2,4,0,1>: Cost 3 vext2 <0,2,2,4>, LHS
+    2097635329U, // <2,4,0,1>: Cost 2 ins <2,u,0,1>, lane 1
     1691992166U, // <2,4,0,2>: Cost 2 vuzpl <2,3,4,5>, LHS
-    2619416841U, // <2,4,0,3>: Cost 3 vext2 <0,3,2,4>, <0,3,2,4>
+    3171393537U, // <2,4,0,3>: Cost 3 ins <2,u,0,3>, lane 1
     2765734092U, // <2,4,0,4>: Cost 3 vuzpl <2,3,4,5>, <0,2,4,6>
     3094528338U, // <2,4,0,5>: Cost 3 vtrnr <1,2,3,0>, <0,4,1,5>
     1960103222U, // <2,4,0,6>: Cost 2 vtrnl <2,3,0,1>, RHS
-    3899868646U, // <2,4,0,7>: Cost 4 vuzpr <1,2,3,4>, <2,0,5,7>
+    3171426305U, // <2,4,0,7>: Cost 3 ins <2,u,0,7>, lane 1
     1960103240U, // <2,4,0,u>: Cost 2 vtrnl <2,3,0,1>, RHS
-    2619417334U, // <2,4,1,0>: Cost 3 vext2 <0,3,2,4>, <1,0,3,2>
+    3204620288U, // <2,4,1,0>: Cost 3 ins <u,4,1,0>, lane 0
     2826126132U, // <2,4,1,1>: Cost 3 vuzpr <1,2,3,4>, <1,1,1,1>
     2625389466U, // <2,4,1,2>: Cost 3 vext2 <1,3,2,4>, <1,2,3,4>
     1752383590U, // <2,4,1,3>: Cost 2 vuzpr <1,2,3,4>, LHS
-    3899867959U, // <2,4,1,4>: Cost 4 vuzpr <1,2,3,4>, <1,1,1,4>
-    2898316598U, // <2,4,1,5>: Cost 3 vzipl <2,1,0,3>, RHS
+    3204653056U, // <2,4,1,4>: Cost 3 ins <u,4,1,4>, lane 0
+    2130919424U, // <2,4,1,5>: Cost 2 ins <u,4,1,5>, lane 0
     3031936310U, // <2,4,1,6>: Cost 3 vtrnl <2,0,1,2>, RHS
-    3899867998U, // <2,4,1,7>: Cost 4 vuzpr <1,2,3,4>, <1,1,5,7>
+    3169361922U, // <2,4,1,7>: Cost 3 ins <2,4,u,7>, lane 2
     1752383595U, // <2,4,1,u>: Cost 2 vuzpr <1,2,3,4>, LHS
     2826126230U, // <2,4,2,0>: Cost 3 vuzpr <1,2,3,4>, <1,2,3,0>
-    4032004133U, // <2,4,2,1>: Cost 4 vzipr <0,u,2,2>, <0,0,4,1>
-    2826125476U, // <2,4,2,2>: Cost 3 vuzpr <1,2,3,4>, <0,2,0,2>
-    2618754766U, // <2,4,2,3>: Cost 3 vext2 <0,2,2,4>, <2,3,4,5>
+    3171524609U, // <2,4,2,1>: Cost 3 ins <2,u,2,1>, lane 1
+    2097790977U, // <2,4,2,2>: Cost 2 ins <2,u,2,2>, lane 1
+    2130976768U, // <2,4,2,3>: Cost 2 ins <u,4,2,3>, lane 0
     1752384410U, // <2,4,2,4>: Cost 2 vuzpr <1,2,3,4>, <1,2,3,4>
     1825377590U, // <2,4,2,5>: Cost 2 vzipl <2,2,2,2>, RHS
     1959595318U, // <2,4,2,6>: Cost 2 vtrnl <2,2,2,2>, RHS
-    3899867350U, // <2,4,2,7>: Cost 4 vuzpr <1,2,3,4>, <0,2,5,7>
+    3171573761U, // <2,4,2,7>: Cost 3 ins <2,u,2,7>, lane 1
     1825377833U, // <2,4,2,u>: Cost 2 vzipl <2,2,2,2>, RHS
     2826127049U, // <2,4,3,0>: Cost 3 vuzpr <1,2,3,4>, <2,3,4,0>
     2958270501U, // <2,4,3,1>: Cost 3 vzipr LHS, <0,0,4,1>
     2958270502U, // <2,4,3,2>: Cost 3 vzipr LHS, <0,0,4,2>
-    2826126296U, // <2,4,3,3>: Cost 3 vuzpr <1,2,3,4>, <1,3,1,3>
+    2097872897U, // <2,4,3,3>: Cost 2 ins <2,u,3,3>, lane 1
     1927662800U, // <2,4,3,4>: Cost 2 vzipr LHS, <4,4,4,4>
     1879885518U, // <2,4,3,5>: Cost 2 vzipr LHS, <2,3,4,5>
     1879883980U, // <2,4,3,6>: Cost 2 vzipr LHS, <0,2,4,6>
-    2826126336U, // <2,4,3,7>: Cost 3 vuzpr <1,2,3,4>, <1,3,5,7>
+    2097905665U, // <2,4,3,7>: Cost 2 ins <2,u,3,7>, lane 1
     1879883982U, // <2,4,3,u>: Cost 2 vzipr LHS, <0,2,4,u>
     2563735654U, // <2,4,4,0>: Cost 3 vext1 <2,2,4,4>, LHS
     2826127824U, // <2,4,4,1>: Cost 3 vuzpr <1,2,3,4>, <3,4,0,1>
     2826127834U, // <2,4,4,2>: Cost 3 vuzpr <1,2,3,4>, <3,4,1,2>
     2826127106U, // <2,4,4,3>: Cost 3 vuzpr <1,2,3,4>, <2,4,1,3>
-    2826127116U, // <2,4,4,4>: Cost 3 vuzpr <1,2,3,4>, <2,4,2,4>
-    2618756406U, // <2,4,4,5>: Cost 3 vext2 <0,2,2,4>, RHS
+    2131132416U, // <2,4,4,4>: Cost 2 ins <u,4,4,4>, lane 0
+    2097963009U, // <2,4,4,5>: Cost 2 ins <2,u,4,5>, lane 1
     1691995446U, // <2,4,4,6>: Cost 2 vuzpl <2,3,4,5>, RHS
     3094562602U, // <2,4,4,7>: Cost 3 vtrnr <1,2,3,4>, <2,4,5,7>
     1691995464U, // <2,4,4,u>: Cost 2 vuzpl <2,3,4,5>, RHS
@@ -1853,7 +1853,7 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2563745405U, // <2,4,5,2>: Cost 3 vext1 <2,2,4,5>, <2,2,4,5>
     2765737726U, // <2,4,5,3>: Cost 3 vuzpl <2,3,4,5>, <5,2,3,4>
     2551803190U, // <2,4,5,4>: Cost 3 vext1 <0,2,4,5>, RHS
-    2901003574U, // <2,4,5,5>: Cost 3 vzipl <2,5,0,7>, RHS
+    2131214336U, // <2,4,5,5>: Cost 2 ins <u,4,5,5>, lane 0
     1611959606U, // <2,4,5,6>: Cost 2 vext3 <0,2,0,2>, RHS
     1752386870U, // <2,4,5,7>: Cost 2 vuzpr <1,2,3,4>, RHS
     1611959624U, // <2,4,5,u>: Cost 2 vext3 <0,2,0,2>, RHS
@@ -1863,20 +1863,20 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2551810198U, // <2,4,6,3>: Cost 3 vext1 <0,2,4,6>, <3,0,1,2>
     1478069558U, // <2,4,6,4>: Cost 2 vext1 <0,2,4,6>, RHS
     1828146486U, // <2,4,6,5>: Cost 2 vzipl <2,6,3,7>, RHS
-    2551812920U, // <2,4,6,6>: Cost 3 vext1 <0,2,4,6>, <6,6,6,6>
-    2826127290U, // <2,4,6,7>: Cost 3 vuzpr <1,2,3,4>, <2,6,3,7>
+    2131296256U, // <2,4,6,6>: Cost 2 ins <u,4,6,6>, lane 0
+    2131304448U, // <2,4,6,7>: Cost 2 ins <u,4,6,7>, lane 0
     1478072110U, // <2,4,6,u>: Cost 2 vext1 <0,2,4,6>, LHS
     2659234821U, // <2,4,7,0>: Cost 3 vext2 <7,0,2,4>, <7,0,2,4>
     2867934030U, // <2,4,7,1>: Cost 3 vuzpr <u,2,3,4>, <6,7,0,1>
-    4186390854U, // <2,4,7,2>: Cost 4 vtrnr <4,2,5,7>, <0,4,0,2>
+    3169320962U, // <2,4,7,2>: Cost 3 ins <2,4,u,2>, lane 2
     2867933312U, // <2,4,7,3>: Cost 3 vuzpr <u,2,3,4>, <5,7,1,3>
-    2826129546U, // <2,4,7,4>: Cost 3 vuzpr <1,2,3,4>, <5,7,2,4>
+    3205095424U, // <2,4,7,4>: Cost 3 ins <u,4,7,4>, lane 0
     2726251976U, // <2,4,7,5>: Cost 3 vext3 <7,0,1,2>, <4,7,5,0>
-    2726251986U, // <2,4,7,6>: Cost 3 vext3 <7,0,1,2>, <4,7,6,1>
+    2131369984U, // <2,4,7,6>: Cost 2 ins <u,4,7,6>, lane 0
     2867933352U, // <2,4,7,7>: Cost 3 vuzpr <u,2,3,4>, <5,7,5,7>
-    2726252003U, // <2,4,7,u>: Cost 3 vext3 <7,0,1,2>, <4,7,u,0>
+    2131369984U, // <2,4,7,u>: Cost 2 ins <u,4,7,6>, lane 0
     1478082766U, // <2,4,u,0>: Cost 2 vext1 <0,2,4,u>, <0,2,4,u>
-    2953672429U, // <2,4,u,1>: Cost 3 vzipr LHS, <u,0,4,1>
+    2097635329U, // <2,4,u,1>: Cost 2 ins <2,u,0,1>, lane 1
     1691997998U, // <2,4,u,2>: Cost 2 vuzpl <2,3,4,5>, LHS
     1752384157U, // <2,4,u,3>: Cost 2 vuzpr <1,2,3,4>, LHS
     1478085942U, // <2,4,u,4>: Cost 2 vext1 <0,2,4,u>, RHS
@@ -1885,27 +1885,27 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1752387113U, // <2,4,u,7>: Cost 2 vuzpr <1,2,3,4>, RHS
     1879924942U, // <2,4,u,u>: Cost 2 vzipr LHS, <0,2,4,u>
     2765160612U, // <2,5,0,0>: Cost 3 vuzpl <2,2,5,7>, <0,2,0,2>
-    2618097768U, // <2,5,0,1>: Cost 3 vext2 <0,1,2,5>, <0,1,2,5>
+    2097635329U, // <2,5,0,1>: Cost 2 ins <2,u,0,1>, lane 1
     2620088484U, // <2,5,0,2>: Cost 3 vext2 <0,4,2,5>, <0,2,0,2>
     2619425034U, // <2,5,0,3>: Cost 3 vext2 <0,3,2,5>, <0,3,2,5>
     2620088667U, // <2,5,0,4>: Cost 3 vext2 <0,4,2,5>, <0,4,2,5>
     3136335876U, // <2,5,0,5>: Cost 3 vtrnr <u,2,3,0>, <5,5,5,5>
-    4028008962U, // <2,5,0,6>: Cost 4 vzipr <0,2,2,0>, <3,4,5,6>
+    3171418113U, // <2,5,0,6>: Cost 3 ins <2,u,0,6>, lane 1
     2020789558U, // <2,5,0,7>: Cost 2 vtrnr <1,2,3,0>, RHS
     2020789559U, // <2,5,0,u>: Cost 2 vtrnr <1,2,3,0>, RHS
     2599616614U, // <2,5,1,0>: Cost 3 vext1 <u,2,5,1>, LHS
-    3691840308U, // <2,5,1,1>: Cost 4 vext2 <0,1,2,5>, <1,1,1,1>
+    3205292032U, // <2,5,1,1>: Cost 3 ins <u,5,1,1>, lane 0
     2626061206U, // <2,5,1,2>: Cost 3 vext2 <1,4,2,5>, <1,2,3,0>
     2618098688U, // <2,5,1,3>: Cost 3 vext2 <0,1,2,5>, <1,3,5,7>
     2626061364U, // <2,5,1,4>: Cost 3 vext2 <1,4,2,5>, <1,4,2,5>
     2599620736U, // <2,5,1,5>: Cost 3 vext1 <u,2,5,1>, <5,7,1,3>
-    4028680706U, // <2,5,1,6>: Cost 4 vzipr <0,3,2,1>, <3,4,5,6>
-    3088346422U, // <2,5,1,7>: Cost 3 vtrnr <0,2,0,1>, RHS
-    3088346423U, // <2,5,1,u>: Cost 3 vtrnr <0,2,0,1>, RHS
-    2575736934U, // <2,5,2,0>: Cost 3 vext1 <4,2,5,2>, LHS
+    3205332992U, // <2,5,1,6>: Cost 3 ins <u,5,1,6>, lane 0
+    2131599360U, // <2,5,1,7>: Cost 2 ins <u,5,1,7>, lane 0
+    2131599360U, // <2,5,1,u>: Cost 2 ins <u,5,1,7>, lane 0
+    3171516417U, // <2,5,2,0>: Cost 3 ins <2,u,2,0>, lane 1
     3006040978U, // <2,5,2,1>: Cost 3 vzipr <u,u,2,2>, <4,0,5,1>
-    2820235428U, // <2,5,2,2>: Cost 3 vuzpr <0,2,4,5>, <0,2,0,2>
-    2765825650U, // <2,5,2,3>: Cost 3 vuzpl <2,3,5,7>, <2,2,3,3>
+    2097790977U, // <2,5,2,2>: Cost 2 ins <2,u,2,2>, lane 1
+    2131640320U, // <2,5,2,3>: Cost 2 ins <u,5,2,3>, lane 0
     2632034061U, // <2,5,2,4>: Cost 3 vext2 <2,4,2,5>, <2,4,2,5>
     2820014256U, // <2,5,2,5>: Cost 3 vuzpr <0,2,1,5>, <0,2,1,5>
     2958264834U, // <2,5,2,6>: Cost 3 vzipr <0,u,2,2>, <3,4,5,6>
@@ -1914,65 +1914,65 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2958273506U, // <2,5,3,0>: Cost 3 vzipr LHS, <4,1,5,0>
     1927662482U, // <2,5,3,1>: Cost 2 vzipr LHS, <4,0,5,1>
     2899955454U, // <2,5,3,2>: Cost 3 vzipl <2,3,4,5>, <5,2,3,4>
-    2958271403U, // <2,5,3,3>: Cost 3 vzipr LHS, <1,2,5,3>
+    2097872897U, // <2,5,3,3>: Cost 2 ins <2,u,3,3>, lane 1
     2619427330U, // <2,5,3,4>: Cost 3 vext2 <0,3,2,5>, <3,4,5,6>
     1927662810U, // <2,5,3,5>: Cost 2 vzipr LHS, <4,4,5,5>
     1879886338U, // <2,5,3,6>: Cost 2 vzipr LHS, <3,4,5,6>
     1879884800U, // <2,5,3,7>: Cost 2 vzipr LHS, <1,3,5,7>
     1879884801U, // <2,5,3,u>: Cost 2 vzipr LHS, <1,3,5,u>
     2569781350U, // <2,5,4,0>: Cost 3 vext1 <3,2,5,4>, LHS
-    3034173568U, // <2,5,4,1>: Cost 3 vtrnl <2,3,4,5>, <5,7,1,3>
+    3171672065U, // <2,5,4,1>: Cost 3 ins <2,u,4,1>, lane 1
     2569782990U, // <2,5,4,2>: Cost 3 vext1 <3,2,5,4>, <2,3,4,5>
     3034173182U, // <2,5,4,3>: Cost 3 vtrnl <2,3,4,5>, <5,2,3,4>
     2569784630U, // <2,5,4,4>: Cost 3 vext1 <3,2,5,4>, RHS
-    2618101046U, // <2,5,4,5>: Cost 3 vext2 <0,1,2,5>, RHS
+    2097963009U, // <2,5,4,5>: Cost 2 ins <2,u,4,5>, lane 1
     2820164098U, // <2,5,4,6>: Cost 3 vuzpr <0,2,3,5>, <3,4,5,6>
     2020822326U, // <2,5,4,7>: Cost 2 vtrnr <1,2,3,4>, RHS
     2020822327U, // <2,5,4,u>: Cost 2 vtrnr <1,2,3,4>, RHS
     2599649382U, // <2,5,5,0>: Cost 3 vext1 <u,2,5,5>, LHS
     3003411346U, // <2,5,5,1>: Cost 3 vzipr <u,4,2,5>, <4,0,5,1>
-    4027384584U, // <2,5,5,2>: Cost 4 vzipr <0,1,2,5>, <1,0,5,2>
-    4027385476U, // <2,5,5,3>: Cost 4 vzipr <0,1,2,5>, <2,2,5,3>
+    2563819142U, // <2,5,5,2>: Cost 3 vext1 <2,2,5,5>, <2,2,5,5>
+    2953642113U, // <2,5,5,3>: Cost 3 vzipr <0,1,2,5>, <0,1,5,3>
     2599652662U, // <2,5,5,4>: Cost 3 vext1 <u,2,5,5>, RHS
-    2712244228U, // <2,5,5,5>: Cost 3 vext3 <4,6,0,2>, <5,5,5,5>
+    2131877888U, // <2,5,5,5>: Cost 2 ins <u,5,5,5>, lane 0
     2954971650U, // <2,5,5,6>: Cost 3 vzipr <0,3,2,5>, <3,4,5,6>
-    2953643008U, // <2,5,5,7>: Cost 3 vzipr <0,1,2,5>, <1,3,5,7>
-    2820017463U, // <2,5,5,u>: Cost 3 vuzpr <0,2,1,5>, RHS
-    2575769702U, // <2,5,6,0>: Cost 3 vext1 <4,2,5,6>, LHS
-    3003419538U, // <2,5,6,1>: Cost 3 vzipr <u,4,2,6>, <4,0,5,1>
-    2655924730U, // <2,5,6,2>: Cost 3 vext2 <6,4,2,5>, <6,2,7,3>
-    4029383595U, // <2,5,6,3>: Cost 4 vzipr <0,4,2,6>, <1,2,5,3>
-    2655924849U, // <2,5,6,4>: Cost 3 vext2 <6,4,2,5>, <6,4,2,5>
-    3136458756U, // <2,5,6,5>: Cost 3 vtrnr <u,2,4,6>, <5,5,5,5>
-    2955643394U, // <2,5,6,6>: Cost 3 vzipr <0,4,2,6>, <3,4,5,6>
-    2014940470U, // <2,5,6,7>: Cost 2 vtrnr <0,2,4,6>, RHS
-    2014940471U, // <2,5,6,u>: Cost 2 vtrnr <0,2,4,6>, RHS
+    2131894272U, // <2,5,5,7>: Cost 2 ins <u,5,5,7>, lane 0
+    2131877888U, // <2,5,5,u>: Cost 2 ins <u,5,5,5>, lane 0
+    2131910656U, // <2,5,6,0>: Cost 2 ins <u,5,6,0>, lane 0
+    2131918848U, // <2,5,6,1>: Cost 2 ins <u,5,6,1>, lane 0
+    2131927040U, // <2,5,6,2>: Cost 2 ins <u,5,6,2>, lane 0
+    2131935232U, // <2,5,6,3>: Cost 2 ins <u,5,6,3>, lane 0
+    2131943424U, // <2,5,6,4>: Cost 2 ins <u,5,6,4>, lane 0
+    2131951616U, // <2,5,6,5>: Cost 2 ins <u,5,6,5>, lane 0
+    2131959808U, // <2,5,6,6>: Cost 2 ins <u,5,6,6>, lane 0
+    1058226176U, // <2,5,6,7>: Cost 1 ins RHS, lane 0
+    1058226176U, // <2,5,6,u>: Cost 1 ins RHS, lane 0
     2563833958U, // <2,5,7,0>: Cost 3 vext1 <2,2,5,7>, LHS
     2712244352U, // <2,5,7,1>: Cost 3 vext3 <4,6,0,2>, <5,7,1,3>
     2563835528U, // <2,5,7,2>: Cost 3 vext1 <2,2,5,7>, <2,2,5,7>
-    3637577878U, // <2,5,7,3>: Cost 4 vext1 <2,2,5,7>, <3,0,1,2>
+    2953658497U, // <2,5,7,3>: Cost 3 vzipr <0,1,2,7>, <0,1,5,3>
     2563837238U, // <2,5,7,4>: Cost 3 vext1 <2,2,5,7>, RHS
     2712244392U, // <2,5,7,5>: Cost 3 vext3 <4,6,0,2>, <5,7,5,7>
     2712244396U, // <2,5,7,6>: Cost 3 vext3 <4,6,0,2>, <5,7,6,2>
-    3100708150U, // <2,5,7,7>: Cost 3 vtrnr <2,2,5,7>, RHS
-    2563839790U, // <2,5,7,u>: Cost 3 vext1 <2,2,5,7>, LHS
-    2958314466U, // <2,5,u,0>: Cost 3 vzipr LHS, <4,1,5,0>
+    2132041728U, // <2,5,7,7>: Cost 2 ins <u,5,7,7>, lane 0
+    2132041728U, // <2,5,7,u>: Cost 2 ins <u,5,7,7>, lane 0
+    2131910656U, // <2,5,u,0>: Cost 2 ins <u,5,6,0>, lane 0
     1927703442U, // <2,5,u,1>: Cost 2 vzipr LHS, <4,0,5,1>
-    2763839278U, // <2,5,u,2>: Cost 3 vuzpl <2,0,5,7>, LHS
-    2953672521U, // <2,5,u,3>: Cost 3 vzipr LHS, <u,1,5,3>
-    2622748735U, // <2,5,u,4>: Cost 3 vext2 <0,u,2,5>, <u,4,5,6>
+    2097790977U, // <2,5,u,2>: Cost 2 ins <2,u,2,2>, lane 1
+    2097872897U, // <2,5,u,3>: Cost 2 ins <2,u,3,3>, lane 1
+    2131943424U, // <2,5,u,4>: Cost 2 ins <u,5,6,4>, lane 0
     1927703770U, // <2,5,u,5>: Cost 2 vzipr LHS, <4,4,5,5>
     1879927298U, // <2,5,u,6>: Cost 2 vzipr LHS, <3,4,5,6>
-    1879925760U, // <2,5,u,7>: Cost 2 vzipr LHS, <1,3,5,7>
-    1879925761U, // <2,5,u,u>: Cost 2 vzipr LHS, <1,3,5,u>
+    1058226176U, // <2,5,u,7>: Cost 1 ins RHS, lane 0
+    1058226176U, // <2,5,u,u>: Cost 1 ins RHS, lane 0
     2820243456U, // <2,6,0,0>: Cost 3 vuzpr <0,2,4,6>, <0,0,0,0>
     1546354790U, // <2,6,0,1>: Cost 2 vext2 <0,4,2,6>, LHS
-    2820243476U, // <2,6,0,2>: Cost 3 vuzpr <0,2,4,6>, <0,0,2,2>
-    3693838588U, // <2,6,0,3>: Cost 4 vext2 <0,4,2,6>, <0,3,1,0>
+    2132148224U, // <2,6,0,2>: Cost 2 ins <u,6,0,2>, lane 0
+    3171393537U, // <2,6,0,3>: Cost 3 ins <2,u,0,3>, lane 1
     1546355036U, // <2,6,0,4>: Cost 2 vext2 <0,4,2,6>, <0,4,2,6>
-    3694502317U, // <2,6,0,5>: Cost 4 vext2 <0,5,2,6>, <0,5,2,6>
+    3170672642U, // <2,6,0,5>: Cost 3 ins <2,6,u,5>, lane 2
     3136335220U, // <2,6,0,6>: Cost 3 vtrnr <u,2,3,0>, <4,6,4,6>
-    2954267958U, // <2,6,0,7>: Cost 3 vzipr <0,2,2,0>, RHS
+    2096947202U, // <2,6,0,7>: Cost 2 ins <2,6,u,7>, lane 2
     1546355357U, // <2,6,0,u>: Cost 2 vext2 <0,4,2,6>, LHS
     2620097270U, // <2,6,1,0>: Cost 3 vext2 <0,4,2,6>, <1,0,3,2>
     2820244276U, // <2,6,1,1>: Cost 3 vuzpr <0,2,4,6>, <1,1,1,1>
@@ -1980,40 +1980,40 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1746501734U, // <2,6,1,3>: Cost 2 vuzpr <0,2,4,6>, LHS
     2620097598U, // <2,6,1,4>: Cost 3 vext2 <0,4,2,6>, <1,4,3,6>
     2620097680U, // <2,6,1,5>: Cost 3 vext2 <0,4,2,6>, <1,5,3,7>
-    3893765713U, // <2,6,1,6>: Cost 4 vuzpr <0,2,1,6>, <2,1,u,6>
-    2954939702U, // <2,6,1,7>: Cost 3 vzipr <0,3,2,1>, RHS
+    3205996544U, // <2,6,1,6>: Cost 3 ins <u,6,1,6>, lane 0
+    2096947202U, // <2,6,1,7>: Cost 2 ins <2,6,u,7>, lane 2
     1746501739U, // <2,6,1,u>: Cost 2 vuzpr <0,2,4,6>, LHS
     2820244374U, // <2,6,2,0>: Cost 3 vuzpr <0,2,4,6>, <1,2,3,0>
-    2712244676U, // <2,6,2,1>: Cost 3 vext3 <4,6,0,2>, <6,2,1,3>
-    2820243620U, // <2,6,2,2>: Cost 3 vuzpr <0,2,4,6>, <0,2,0,2>
-    2820245106U, // <2,6,2,3>: Cost 3 vuzpr <0,2,4,6>, <2,2,3,3>
+    3171524609U, // <2,6,2,1>: Cost 3 ins <2,u,2,1>, lane 1
+    2097790977U, // <2,6,2,2>: Cost 2 ins <2,u,2,2>, lane 1
+    2132303872U, // <2,6,2,3>: Cost 2 ins <u,6,2,3>, lane 0
     2820243622U, // <2,6,2,4>: Cost 3 vuzpr <0,2,4,6>, <0,2,0,4>
-    2712244716U, // <2,6,2,5>: Cost 3 vext3 <4,6,0,2>, <6,2,5,7>
+    3171557377U, // <2,6,2,5>: Cost 3 ins <2,u,2,5>, lane 1
     1746501836U, // <2,6,2,6>: Cost 2 vuzpr <0,2,4,6>, <0,2,4,6>
     1884523830U, // <2,6,2,7>: Cost 2 vzipr <0,u,2,2>, RHS
     1884523831U, // <2,6,2,u>: Cost 2 vzipr <0,u,2,2>, RHS
-    2620098710U, // <2,6,3,0>: Cost 3 vext2 <0,4,2,6>, <3,0,1,2>
-    2820245158U, // <2,6,3,1>: Cost 3 vuzpr <0,2,4,6>, <2,3,0,1>
+    2096586755U, // <2,6,3,0>: Cost 2 ins <2,6,3,u>, lane 3
+    2096586755U, // <2,6,3,1>: Cost 2 ins <2,6,3,u>, lane 3
     1927662492U, // <2,6,3,2>: Cost 2 vzipr LHS, <4,0,6,2>
-    2820244440U, // <2,6,3,3>: Cost 3 vuzpr <0,2,4,6>, <1,3,1,3>
-    2620099074U, // <2,6,3,4>: Cost 3 vext2 <0,4,2,6>, <3,4,5,6>
-    2820245198U, // <2,6,3,5>: Cost 3 vuzpr <0,2,4,6>, <2,3,4,5>
+    2097872897U, // <2,6,3,3>: Cost 2 ins <2,u,3,3>, lane 1
+    2096586755U, // <2,6,3,4>: Cost 2 ins <2,6,3,u>, lane 3
+    2096586755U, // <2,6,3,5>: Cost 2 ins <2,6,3,u>, lane 3
     1927662820U, // <2,6,3,6>: Cost 2 vzipr LHS, <4,4,6,6>
     806145334U,  // <2,6,3,7>: Cost 1 vzipr LHS, RHS
     806145335U,  // <2,6,3,u>: Cost 1 vzipr LHS, RHS
     2820245292U, // <2,6,4,0>: Cost 3 vuzpr <0,2,4,6>, <2,4,6,0>
-    2620099566U, // <2,6,4,1>: Cost 3 vext2 <0,4,2,6>, <4,1,6,3>
+    3171672065U, // <2,6,4,1>: Cost 3 ins <2,u,4,1>, lane 1
     2820243782U, // <2,6,4,2>: Cost 3 vuzpr <0,2,4,6>, <0,4,0,2>
-    3893985616U, // <2,6,4,3>: Cost 4 vuzpr <0,2,4,6>, <0,4,1,3>
+    3171688449U, // <2,6,4,3>: Cost 3 ins <2,u,4,3>, lane 1
     2820243784U, // <2,6,4,4>: Cost 3 vuzpr <0,2,4,6>, <0,4,0,4>
     1546358070U, // <2,6,4,5>: Cost 2 vext2 <0,4,2,6>, RHS
-    2820243804U, // <2,6,4,6>: Cost 3 vuzpr <0,2,4,6>, <0,4,2,6>
-    2954300726U, // <2,6,4,7>: Cost 3 vzipr <0,2,2,4>, RHS
+    2132475904U, // <2,6,4,6>: Cost 2 ins <u,6,4,6>, lane 0
+    2096947202U, // <2,6,4,7>: Cost 2 ins <2,6,u,7>, lane 2
     1546358313U, // <2,6,4,u>: Cost 2 vext2 <0,4,2,6>, RHS
-    3693841992U, // <2,6,5,0>: Cost 4 vext2 <0,4,2,6>, <5,0,1,2>
+    3170476035U, // <2,6,5,0>: Cost 3 ins <2,6,5,u>, lane 3
     2667876048U, // <2,6,5,1>: Cost 3 vext2 <u,4,2,6>, <5,1,7,3>
-    2712244932U, // <2,6,5,2>: Cost 3 vext3 <4,6,0,2>, <6,5,2,7>
-    3643607400U, // <2,6,5,3>: Cost 4 vext1 <3,2,6,5>, <3,2,6,5>
+    3206258688U, // <2,6,5,2>: Cost 3 ins <u,6,5,2>, lane 0
+    3170656258U, // <2,6,5,3>: Cost 3 ins <2,6,u,3>, lane 2
     2252091873U, // <2,6,5,4>: Cost 3 vrev <6,2,4,5>
     2868023300U, // <2,6,5,5>: Cost 3 vuzpr <u,2,4,6>, <5,5,5,5>
     2667876450U, // <2,6,5,6>: Cost 3 vext2 <u,4,2,6>, <5,6,7,0>
@@ -2025,19 +2025,19 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2820245412U, // <2,6,6,3>: Cost 3 vuzpr <0,2,4,6>, <2,6,1,3>
     2955643968U, // <2,6,6,4>: Cost 3 vzipr <0,4,2,6>, <4,2,6,4>
     2820246899U, // <2,6,6,5>: Cost 3 vuzpr <0,2,4,6>, <4,6,4,5>
-    2820245424U, // <2,6,6,6>: Cost 3 vuzpr <0,2,4,6>, <2,6,2,6>
+    2132623360U, // <2,6,6,6>: Cost 2 ins <u,6,6,6>, lane 0
     1881902390U, // <2,6,6,7>: Cost 2 vzipr <0,4,2,6>, RHS
     1881902391U, // <2,6,6,u>: Cost 2 vzipr <0,4,2,6>, RHS
-    2712245070U, // <2,6,7,0>: Cost 3 vext3 <4,6,0,2>, <6,7,0,1>
+    2132647936U, // <2,6,7,0>: Cost 2 ins <u,6,7,0>, lane 0
     2724926296U, // <2,6,7,1>: Cost 3 vext3 <6,7,1,2>, <6,7,1,2>
     3124596044U, // <2,6,7,2>: Cost 3 vtrnr <6,2,5,7>, <4,6,0,2>
     2868023424U, // <2,6,7,3>: Cost 3 vuzpr <u,2,4,6>, <5,7,1,3>
-    2712245110U, // <2,6,7,4>: Cost 3 vext3 <4,6,0,2>, <6,7,4,5>
+    2132680704U, // <2,6,7,4>: Cost 2 ins <u,6,7,4>, lane 0
     2252181996U, // <2,6,7,5>: Cost 3 vrev <6,2,5,7>
     2725294981U, // <2,6,7,6>: Cost 3 vext3 <6,7,6,2>, <6,7,6,2>
-    2956979510U, // <2,6,7,7>: Cost 3 vzipr <0,6,2,7>, RHS
-    2956979511U, // <2,6,7,u>: Cost 3 vzipr <0,6,2,7>, RHS
-    2820244860U, // <2,6,u,0>: Cost 3 vuzpr <0,2,4,6>, <1,u,3,0>
+    2132705280U, // <2,6,7,7>: Cost 2 ins <u,6,7,7>, lane 0
+    2132647936U, // <2,6,7,u>: Cost 2 ins <u,6,7,0>, lane 0
+    2096586755U, // <2,6,u,0>: Cost 2 ins <2,6,3,u>, lane 3
     1546360622U, // <2,6,u,1>: Cost 2 vext2 <0,4,2,6>, LHS
     1927703452U, // <2,6,u,2>: Cost 2 vzipr LHS, <4,0,6,2>
     1746502301U, // <2,6,u,3>: Cost 2 vuzpr <0,2,4,6>, LHS
@@ -2056,23 +2056,23 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     3136336040U, // <2,7,0,7>: Cost 3 vtrnr <u,2,3,0>, <5,7,5,7>
     1653027897U, // <2,7,0,u>: Cost 2 vext3 <7,0,u,2>, <7,0,u,2>
     2639348470U, // <2,7,1,0>: Cost 3 vext2 <3,6,2,7>, <1,0,3,2>
-    3695174452U, // <2,7,1,1>: Cost 4 vext2 <0,6,2,7>, <1,1,1,1>
-    3695174550U, // <2,7,1,2>: Cost 4 vext2 <0,6,2,7>, <1,2,3,0>
-    2832269414U, // <2,7,1,3>: Cost 3 vuzpr <2,2,5,7>, LHS
+    3206619136U, // <2,7,1,1>: Cost 3 ins <u,7,1,1>, lane 0
+    3206627328U, // <2,7,1,2>: Cost 3 ins <u,7,1,2>, lane 0
+    2132893696U, // <2,7,1,3>: Cost 2 ins <u,7,1,3>, lane 0
     2599767350U, // <2,7,1,4>: Cost 3 vext1 <u,2,7,1>, RHS
-    3693184144U, // <2,7,1,5>: Cost 4 vext2 <0,3,2,7>, <1,5,3,7>
-    2627405016U, // <2,7,1,6>: Cost 3 vext2 <1,6,2,7>, <1,6,2,7>
+    3206651904U, // <2,7,1,5>: Cost 3 ins <u,7,1,5>, lane 0
+    3171344386U, // <2,7,1,6>: Cost 3 ins <2,7,u,6>, lane 2
     2599769082U, // <2,7,1,7>: Cost 3 vext1 <u,2,7,1>, <7,0,1,2>
-    2832269419U, // <2,7,1,u>: Cost 3 vuzpr <2,2,5,7>, LHS
+    2132893696U, // <2,7,1,u>: Cost 2 ins <u,7,1,3>, lane 0
     2581856358U, // <2,7,2,0>: Cost 3 vext1 <5,2,7,2>, LHS
     3136131918U, // <2,7,2,1>: Cost 3 vtrnr <u,2,0,2>, <6,7,0,1>
-    2832269476U, // <2,7,2,2>: Cost 3 vuzpr <2,2,5,7>, <0,2,0,2>
-    3136131200U, // <2,7,2,3>: Cost 3 vtrnr <u,2,0,2>, <5,7,1,3>
+    2097790977U, // <2,7,2,2>: Cost 2 ins <2,u,2,2>, lane 1
+    2132967424U, // <2,7,2,3>: Cost 2 ins <u,7,2,3>, lane 0
     2581859638U, // <2,7,2,4>: Cost 3 vext1 <5,2,7,2>, RHS
     2632714080U, // <2,7,2,5>: Cost 3 vext2 <2,5,2,7>, <2,5,2,7>
     2633377713U, // <2,7,2,6>: Cost 3 vext2 <2,6,2,7>, <2,6,2,7>
-    2832270984U, // <2,7,2,7>: Cost 3 vuzpr <2,2,5,7>, <2,2,5,7>
-    2634704979U, // <2,7,2,u>: Cost 3 vext2 <2,u,2,7>, <2,u,2,7>
+    1770548291U, // <2,7,2,7>: Cost 2 vuzpr <4,2,6,7>, <4,2,6,7>
+    2097790977U, // <2,7,2,u>: Cost 2 ins <2,u,2,2>, lane 1
     1514094694U, // <2,7,3,0>: Cost 2 vext1 <6,2,7,3>, LHS
     2569921680U, // <2,7,3,1>: Cost 3 vext1 <3,2,7,3>, <1,5,3,7>
     2587838056U, // <2,7,3,2>: Cost 3 vext1 <6,2,7,3>, <2,2,2,2>
@@ -2084,22 +2084,22 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1514100526U, // <2,7,3,u>: Cost 2 vext1 <6,2,7,3>, LHS
     2581872742U, // <2,7,4,0>: Cost 3 vext1 <5,2,7,4>, LHS
     2581873562U, // <2,7,4,1>: Cost 3 vext1 <5,2,7,4>, <1,2,3,4>
-    3974452410U, // <2,7,4,2>: Cost 4 vzipl <2,4,5,7>, <7,2,4,5>
+    3171680257U, // <2,7,4,2>: Cost 3 ins <2,u,4,2>, lane 1
     2257982640U, // <2,7,4,3>: Cost 3 vrev <7,2,3,4>
     2581876022U, // <2,7,4,4>: Cost 3 vext1 <5,2,7,4>, RHS
-    2621435190U, // <2,7,4,5>: Cost 3 vext2 <0,6,2,7>, RHS
+    2133131264U, // <2,7,4,5>: Cost 2 ins <u,7,4,5>, lane 0
     2712245609U, // <2,7,4,6>: Cost 3 vext3 <4,6,0,2>, <7,4,6,0>
     3136368808U, // <2,7,4,7>: Cost 3 vtrnr <u,2,3,4>, <5,7,5,7>
-    2621435433U, // <2,7,4,u>: Cost 3 vext2 <0,6,2,7>, RHS
+    2133131264U, // <2,7,4,u>: Cost 2 ins <u,7,4,5>, lane 0
     2729497990U, // <2,7,5,0>: Cost 3 vext3 <7,5,0,2>, <7,5,0,2>
-    3974968416U, // <2,7,5,1>: Cost 4 vzipl <2,5,3,7>, <7,1,3,5>
-    3906013064U, // <2,7,5,2>: Cost 4 vuzpr <2,2,5,7>, <2,5,7,2>
+    3206914048U, // <2,7,5,1>: Cost 3 ins <u,7,5,1>, lane 0
+    2844290353U, // <2,7,5,2>: Cost 3 vuzpr <4,2,6,7>, <4,5,6,2>
     2991469050U, // <2,7,5,3>: Cost 3 vzipr <6,4,2,5>, <6,2,7,3>
     2599800118U, // <2,7,5,4>: Cost 3 vext1 <u,2,7,5>, RHS
-    3785987510U, // <2,7,5,5>: Cost 4 vext3 <4,6,0,2>, <7,5,5,5>
-    4109997260U, // <2,7,5,6>: Cost 4 vtrnl <2,6,5,7>, <7,2,6,5>
-    2832272694U, // <2,7,5,7>: Cost 3 vuzpr <2,2,5,7>, RHS
-    2832272695U, // <2,7,5,u>: Cost 3 vuzpr <2,2,5,7>, RHS
+    3206946816U, // <2,7,5,5>: Cost 3 ins <u,7,5,5>, lane 0
+    3206955008U, // <2,7,5,6>: Cost 3 ins <u,7,5,6>, lane 0
+    2133221376U, // <2,7,5,7>: Cost 2 ins <u,7,5,7>, lane 0
+    2133221376U, // <2,7,5,u>: Cost 2 ins <u,7,5,7>, lane 0
     2581889126U, // <2,7,6,0>: Cost 3 vext1 <5,2,7,6>, LHS
     3136459598U, // <2,7,6,1>: Cost 3 vtrnr <u,2,4,6>, <6,7,0,1>
     2901890250U, // <2,7,6,2>: Cost 3 vzipl <2,6,3,7>, <7,2,6,3>
@@ -2107,23 +2107,23 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2581892406U, // <2,7,6,4>: Cost 3 vext1 <5,2,7,6>, RHS
     2581892900U, // <2,7,6,5>: Cost 3 vext1 <5,2,7,6>, <5,2,7,6>
     2587865597U, // <2,7,6,6>: Cost 3 vext1 <6,2,7,6>, <6,2,7,6>
-    3136458920U, // <2,7,6,7>: Cost 3 vtrnr <u,2,4,6>, <5,7,5,7>
-    2581894958U, // <2,7,6,u>: Cost 3 vext1 <5,2,7,6>, LHS
+    2133295104U, // <2,7,6,7>: Cost 2 ins <u,7,6,7>, lane 0
+    2133295104U, // <2,7,6,u>: Cost 2 ins <u,7,6,7>, lane 0
     2726254119U, // <2,7,7,0>: Cost 3 vext3 <7,0,1,2>, <7,7,0,1>
-    2765919226U, // <2,7,7,1>: Cost 3 vuzpl <2,3,7,0>, <7,0,1,2>
-    4030719475U, // <2,7,7,2>: Cost 4 vzipr <0,6,2,7>, <2,0,7,2>
+    3207061504U, // <2,7,7,1>: Cost 3 ins <u,7,7,1>, lane 0
+    2563983002U, // <2,7,7,2>: Cost 3 vext1 <2,2,7,7>, <2,2,7,7>
     2998784506U, // <2,7,7,3>: Cost 3 vzipr <7,6,2,7>, <6,2,7,3>
     2599816502U, // <2,7,7,4>: Cost 3 vext1 <u,2,7,7>, RHS
-    2765952358U, // <2,7,7,5>: Cost 3 vuzpl <2,3,7,4>, <7,4,5,6>
+    3207094272U, // <2,7,7,5>: Cost 3 ins <u,7,7,5>, lane 0
     2663241198U, // <2,7,7,6>: Cost 3 vext2 <7,6,2,7>, <7,6,2,7>
-    2712245868U, // <2,7,7,7>: Cost 3 vext3 <4,6,0,2>, <7,7,7,7>
-    2731415152U, // <2,7,7,u>: Cost 3 vext3 <7,7,u,2>, <7,7,u,2>
+    2133368832U, // <2,7,7,7>: Cost 2 ins <u,7,7,7>, lane 0
+    2133368832U, // <2,7,7,u>: Cost 2 ins <u,7,7,7>, lane 0
     1514135654U, // <2,7,u,0>: Cost 2 vext1 <6,2,7,u>, LHS
     1657820802U, // <2,7,u,1>: Cost 2 vext3 <7,u,1,2>, <7,u,1,2>
-    2903217372U, // <2,7,u,2>: Cost 3 vzipl <2,u,3,7>, <7,2,u,3>
+    2097790977U, // <2,7,u,2>: Cost 2 ins <2,u,2,2>, lane 1
     1927704272U, // <2,7,u,3>: Cost 2 vzipr LHS, <5,1,7,3>
     1514138934U, // <2,7,u,4>: Cost 2 vext1 <6,2,7,u>, RHS
-    2621438106U, // <2,7,u,5>: Cost 3 vext2 <0,6,2,7>, RHS
+    2133131264U, // <2,7,u,5>: Cost 2 ins <u,7,4,5>, lane 0
     1514140159U, // <2,7,u,6>: Cost 2 vext1 <6,2,7,u>, <6,2,7,u>
     1927704600U, // <2,7,u,7>: Cost 2 vzipr LHS, <5,5,7,7>
     1514141486U, // <2,7,u,u>: Cost 2 vext1 <6,2,7,u>, LHS
@@ -2132,7 +2132,7 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1544380580U, // <2,u,0,2>: Cost 2 vext2 LHS, <0,2,0,2>
     2020786845U, // <2,u,0,3>: Cost 2 vtrnr <1,2,3,0>, LHS
     1544380754U, // <2,u,0,4>: Cost 2 vext2 LHS, <0,4,1,5>
-    3094528662U, // <2,u,0,5>: Cost 3 vtrnr <1,2,3,0>, <0,u,1,5>
+    2094940162U, // <2,u,0,5>: Cost 2 ins <2,3,u,5>, lane 2
     1960106138U, // <2,u,0,6>: Cost 2 vtrnl <2,3,0,1>, RHS
     2020789801U, // <2,u,0,7>: Cost 2 vtrnr <1,2,3,0>, RHS
     470639261U,  // <2,u,0,u>: Cost 1 vext2 LHS, LHS
@@ -2143,17 +2143,17 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2618123325U, // <2,u,1,4>: Cost 3 vext2 LHS, <1,4,3,5>
     1544381584U, // <2,u,1,5>: Cost 2 vext2 LHS, <1,5,3,7>
     2618123489U, // <2,u,1,6>: Cost 3 vext2 LHS, <1,6,3,7>
-    3088346665U, // <2,u,1,7>: Cost 3 vtrnr <0,2,0,1>, RHS
+    2096947202U, // <2,u,1,7>: Cost 2 ins <2,6,u,7>, lane 2
     1544381823U, // <2,u,1,u>: Cost 2 vext2 LHS, <1,u,3,3>
     1478328556U, // <2,u,2,0>: Cost 2 vext1 <0,2,u,2>, <0,2,u,2>
     1825380142U, // <2,u,2,1>: Cost 2 vzipl <2,2,2,2>, LHS
     269271142U,  // <2,u,2,2>: Cost 1 vdup2 LHS
-    1544382118U, // <2,u,2,3>: Cost 2 vext2 LHS, <2,3,0,1>
+    1055244288U, // <2,u,2,3>: Cost 1 ins LHS, lane 0
     1478331702U, // <2,u,2,4>: Cost 2 vext1 <0,2,u,2>, RHS
     1825380506U, // <2,u,2,5>: Cost 2 vzipl <2,2,2,2>, RHS
     1544382394U, // <2,u,2,6>: Cost 2 vext2 LHS, <2,6,3,7>
     2014613033U, // <2,u,2,7>: Cost 2 vtrnr <0,2,0,2>, RHS
-    269271142U,  // <2,u,2,u>: Cost 1 vdup2 LHS
+    1055244288U, // <2,u,2,u>: Cost 1 ins LHS, lane 0
     1544382614U, // <2,u,3,0>: Cost 2 vext2 LHS, <3,0,1,2>
     1879885550U, // <2,u,3,1>: Cost 2 vzipr LHS, <2,3,u,1>
     1879884012U, // <2,u,3,2>: Cost 2 vzipr LHS, <0,2,u,2>
@@ -2174,8 +2174,8 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     470642217U,  // <2,u,4,u>: Cost 1 vext2 LHS, RHS
     2552094959U, // <2,u,5,0>: Cost 3 vext1 <0,2,u,5>, <0,2,u,5>
     1592159952U, // <2,u,5,1>: Cost 2 vext2 LHS, <5,1,7,3>
-    3032274734U, // <2,u,5,2>: Cost 3 vtrnl <2,0,5,7>, LHS
-    2953642140U, // <2,u,5,3>: Cost 3 vzipr <0,1,2,5>, LHS
+    2094252034U, // <2,u,5,2>: Cost 2 ins <2,2,u,2>, lane 2
+    2094260226U, // <2,u,5,3>: Cost 2 ins <2,2,u,3>, lane 2
     1592160198U, // <2,u,5,4>: Cost 2 vext2 LHS, <5,4,7,6>
     1592160260U, // <2,u,5,5>: Cost 2 vext2 LHS, <5,5,5,5>
     1611962522U, // <2,u,5,6>: Cost 2 vext3 <0,2,0,2>, RHS
@@ -2188,15 +2188,15 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1478364470U, // <2,u,6,4>: Cost 2 vext1 <0,2,u,6>, RHS
     1828149402U, // <2,u,6,5>: Cost 2 vzipl <2,6,3,7>, RHS
     1592161080U, // <2,u,6,6>: Cost 2 vext2 LHS, <6,6,6,6>
-    2014940713U, // <2,u,6,7>: Cost 2 vtrnr <0,2,4,6>, RHS
-    2014937762U, // <2,u,6,u>: Cost 2 vtrnr <0,2,4,6>, LHS
+    1058226176U, // <2,u,6,7>: Cost 1 ins RHS, lane 0
+    1058226176U, // <2,u,6,u>: Cost 1 ins RHS, lane 0
     1592161274U, // <2,u,7,0>: Cost 2 vext2 LHS, <7,0,1,2>
-    2714163467U, // <2,u,7,1>: Cost 3 vext3 <4,u,u,2>, <u,7,1,3>
-    2564056739U, // <2,u,7,2>: Cost 3 vext1 <2,2,u,7>, <2,2,u,7>
-    2956976284U, // <2,u,7,3>: Cost 3 vzipr <0,6,2,7>, LHS
+    2094907394U, // <2,u,7,1>: Cost 2 ins <2,3,u,1>, lane 2
+    2094252034U, // <2,u,7,2>: Cost 2 ins <2,2,u,2>, lane 2
+    2129354752U, // <2,u,7,3>: Cost 2 ins <u,1,7,3>, lane 0
     1592161638U, // <2,u,7,4>: Cost 2 vext2 LHS, <7,4,5,6>
-    2714163507U, // <2,u,7,5>: Cost 3 vext3 <4,u,u,2>, <u,7,5,7>
-    2768041167U, // <2,u,7,6>: Cost 3 vuzpl <2,6,u,7>, <7,2,6,u>
+    2094940162U, // <2,u,7,5>: Cost 2 ins <2,3,u,5>, lane 2
+    2131369984U, // <2,u,7,6>: Cost 2 ins <u,4,7,6>, lane 0
     1592161900U, // <2,u,7,7>: Cost 2 vext2 LHS, <7,7,7,7>
     1592161922U, // <2,u,7,u>: Cost 2 vext2 LHS, <7,u,1,2>
     1879925699U, // <2,u,u,0>: Cost 2 vzipr LHS, <1,2,u,0>
@@ -2213,36 +2213,36 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1611890708U, // <3,0,0,2>: Cost 2 vext3 LHS, <0,0,2,2>
     2960312624U, // <3,0,0,3>: Cost 3 vzipr <1,2,3,0>, <3,2,0,3>
     2689835045U, // <3,0,0,4>: Cost 3 vext3 LHS, <0,0,4,1>
-    2685190196U, // <3,0,0,5>: Cost 3 vext3 LHS, <0,0,5,7>
-    3763576887U, // <3,0,0,6>: Cost 4 vext3 LHS, <0,0,6,1>
-    2960312142U, // <3,0,0,7>: Cost 3 vzipr <1,2,3,0>, <2,5,0,7>
+    3177381889U, // <3,0,0,5>: Cost 3 ins <3,u,0,5>, lane 1
+    3177390081U, // <3,0,0,6>: Cost 3 ins <3,u,0,6>, lane 1
+    3177398273U, // <3,0,0,7>: Cost 3 ins <3,u,0,7>, lane 1
     1616093258U, // <3,0,0,u>: Cost 2 vext3 LHS, <0,0,u,2>
     1490337894U, // <3,0,1,0>: Cost 2 vext1 <2,3,0,1>, LHS
-    2685632602U, // <3,0,1,1>: Cost 3 vext3 LHS, <0,1,1,0>
+    2128232448U, // <3,0,1,1>: Cost 2 ins <u,0,1,1>, lane 0
     537706598U,  // <3,0,1,2>: Cost 1 vext3 LHS, LHS
-    2820636774U, // <3,0,1,3>: Cost 3 vuzpr <0,3,1,0>, LHS
+    2098429955U, // <3,0,1,3>: Cost 2 ins <3,0,1,u>, lane 3
     1490341174U, // <3,0,1,4>: Cost 2 vext1 <2,3,0,1>, RHS
-    2624767120U, // <3,0,1,5>: Cost 3 vext2 <1,2,3,0>, <1,5,3,7>
-    3100952028U, // <3,0,1,6>: Cost 3 vtrnr <2,3,0,1>, <2,0,4,6>
-    2593944803U, // <3,0,1,7>: Cost 3 vext1 <7,3,0,1>, <7,3,0,1>
+    2098429955U, // <3,0,1,5>: Cost 2 ins <3,0,1,u>, lane 3
+    2098429955U, // <3,0,1,6>: Cost 2 ins <3,0,1,u>, lane 3
+    2098429955U, // <3,0,1,7>: Cost 2 ins <3,0,1,u>, lane 3
     537706652U,  // <3,0,1,u>: Cost 1 vext3 LHS, LHS
     1611890852U, // <3,0,2,0>: Cost 2 vext3 LHS, <0,2,0,2>
     2685632684U, // <3,0,2,1>: Cost 3 vext3 LHS, <0,2,1,1>
-    2685632692U, // <3,0,2,2>: Cost 3 vext3 LHS, <0,2,2,0>
-    2685632702U, // <3,0,2,3>: Cost 3 vext3 LHS, <0,2,3,1>
+    2128314368U, // <3,0,2,2>: Cost 2 ins <u,0,2,2>, lane 0
+    2128322560U, // <3,0,2,3>: Cost 2 ins <u,0,2,3>, lane 0
     1611890892U, // <3,0,2,4>: Cost 2 vext3 LHS, <0,2,4,6>
     2959000610U, // <3,0,2,5>: Cost 3 vzipr <1,0,3,2>, <1,4,0,5>
     2624767930U, // <3,0,2,6>: Cost 3 vext2 <1,2,3,0>, <2,6,3,7>
-    2685632738U, // <3,0,2,7>: Cost 3 vext3 LHS, <0,2,7,1>
+    3177545729U, // <3,0,2,7>: Cost 3 ins <3,u,2,7>, lane 1
     1611890924U, // <3,0,2,u>: Cost 2 vext3 LHS, <0,2,u,2>
     2820636924U, // <3,0,3,0>: Cost 3 vuzpr <0,3,1,0>, <0,3,1,0>
     1832091750U, // <3,0,3,1>: Cost 2 vzipl <3,3,3,3>, LHS
     1966309478U, // <3,0,3,2>: Cost 2 vtrnl <3,3,3,3>, LHS
-    2624768412U, // <3,0,3,3>: Cost 3 vext2 <1,2,3,0>, <3,3,3,3>
+    2103844865U, // <3,0,3,3>: Cost 2 ins <3,u,3,3>, lane 1
     2624768514U, // <3,0,3,4>: Cost 3 vext2 <1,2,3,0>, <3,4,5,6>
     2772716034U, // <3,0,3,5>: Cost 3 vuzpl <3,5,0,2>, <3,4,5,6>
-    2624768632U, // <3,0,3,6>: Cost 3 vext2 <1,2,3,0>, <3,6,0,7>
-    3894379520U, // <3,0,3,7>: Cost 4 vuzpr <0,3,1,0>, <1,3,5,7>
+    3177611265U, // <3,0,3,6>: Cost 3 ins <3,u,3,6>, lane 1
+    3177619457U, // <3,0,3,7>: Cost 3 ins <3,u,3,7>, lane 1
     1832092317U, // <3,0,3,u>: Cost 2 vzipl <3,3,3,3>, LHS
     2689835334U, // <3,0,4,0>: Cost 3 vext3 LHS, <0,4,0,2>
     1611891026U, // <3,0,4,1>: Cost 2 vext3 LHS, <0,4,1,5>
@@ -2251,43 +2251,43 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2689835373U, // <3,0,4,4>: Cost 3 vext3 LHS, <0,4,4,5>
     1551027510U, // <3,0,4,5>: Cost 2 vext2 <1,2,3,0>, RHS
     2769382710U, // <3,0,4,6>: Cost 3 vuzpl <3,0,0,0>, RHS
-    4034086734U, // <3,0,4,7>: Cost 4 vzipr <1,2,3,4>, <2,5,0,7>
+    3177693185U, // <3,0,4,7>: Cost 3 ins <3,u,4,7>, lane 1
     1616093586U, // <3,0,4,u>: Cost 2 vext3 LHS, <0,4,u,6>
     3101278208U, // <3,0,5,0>: Cost 3 vtrnr <2,3,4,5>, <0,0,0,0>
-    3101278218U, // <3,0,5,1>: Cost 3 vtrnr <2,3,4,5>, <0,0,1,1>
+    2128527360U, // <3,0,5,1>: Cost 2 ins <u,0,5,1>, lane 0
     1967145062U, // <3,0,5,2>: Cost 2 vtrnl <3,4,5,6>, LHS
     3040886978U, // <3,0,5,3>: Cost 3 vtrnl <3,4,5,6>, <0,2,3,5>
     3040886988U, // <3,0,5,4>: Cost 3 vtrnl <3,4,5,6>, <0,2,4,6>
     2666573828U, // <3,0,5,5>: Cost 3 vext2 <u,2,3,0>, <5,5,5,5>
-    2732966354U, // <3,0,5,6>: Cost 3 vext3 LHS, <0,5,6,7>
+    2104016897U, // <3,0,5,6>: Cost 2 ins <3,u,5,6>, lane 1
     2820640054U, // <3,0,5,7>: Cost 3 vuzpr <0,3,1,0>, RHS
     1967145116U, // <3,0,5,u>: Cost 2 vtrnl <3,4,5,6>, LHS
-    2685190637U, // <3,0,6,0>: Cost 3 vext3 LHS, <0,6,0,7>
+    3202334720U, // <3,0,6,0>: Cost 3 ins <u,0,6,0>, lane 0
     2907635814U, // <3,0,6,1>: Cost 3 vzipl <3,6,0,7>, LHS
-    2689835519U, // <3,0,6,2>: Cost 3 vext3 LHS, <0,6,2,7>
-    4113350851U, // <3,0,6,3>: Cost 4 vtrnl <3,2,6,3>, <0,2,3,6>
-    3290669341U, // <3,0,6,4>: Cost 4 vrev <0,3,4,6>
-    3981525422U, // <3,0,6,5>: Cost 4 vzipl <3,6,2,7>, <0,5,2,7>
+    2128609280U, // <3,0,6,2>: Cost 2 ins <u,0,6,2>, lane 0
+    3177807873U, // <3,0,6,3>: Cost 3 ins <3,u,6,3>, lane 1
+    3202367488U, // <3,0,6,4>: Cost 3 ins <u,0,6,4>, lane 0
+    3172663298U, // <3,0,6,5>: Cost 3 ins <3,0,u,5>, lane 2
     2666574648U, // <3,0,6,6>: Cost 3 vext2 <u,2,3,0>, <6,6,6,6>
-    2856912826U, // <3,0,6,7>: Cost 3 vuzpr <6,3,7,0>, <2,6,3,7>
-    2689835573U, // <3,0,6,u>: Cost 3 vext3 LHS, <0,6,u,7>
+    2128650240U, // <3,0,6,7>: Cost 2 ins <u,0,6,7>, lane 0
+    2128609280U, // <3,0,6,u>: Cost 2 ins <u,0,6,2>, lane 0
     3095396352U, // <3,0,7,0>: Cost 3 vtrnr <1,3,5,7>, <0,0,0,0>
     3095396362U, // <3,0,7,1>: Cost 3 vtrnr <1,3,5,7>, <0,0,1,1>
-    3095396372U, // <3,0,7,2>: Cost 3 vtrnr <1,3,5,7>, <0,0,2,2>
-    4169139646U, // <3,0,7,3>: Cost 4 vtrnr <1,3,5,7>, <2,0,1,3>
+    2098896898U, // <3,0,7,2>: Cost 2 ins <3,0,u,2>, lane 2
+    3177881601U, // <3,0,7,3>: Cost 3 ins <3,u,7,3>, lane 1
     2666575206U, // <3,0,7,4>: Cost 3 vext2 <u,2,3,0>, <7,4,5,6>
-    4169138190U, // <3,0,7,5>: Cost 4 vtrnr <1,3,5,7>, <0,0,1,5>
-    4169138218U, // <3,0,7,6>: Cost 4 vtrnr <1,3,5,7>, <0,0,4,6>
+    3177897985U, // <3,0,7,5>: Cost 3 ins <3,u,7,5>, lane 1
+    3202457600U, // <3,0,7,6>: Cost 3 ins <u,0,7,6>, lane 0
     2666575468U, // <3,0,7,7>: Cost 3 vext2 <u,2,3,0>, <7,7,7,7>
-    3095396369U, // <3,0,7,u>: Cost 3 vtrnr <1,3,5,7>, <0,0,1,u>
+    2098896898U, // <3,0,7,u>: Cost 2 ins <3,0,u,2>, lane 2
     1616093834U, // <3,0,u,0>: Cost 2 vext3 LHS, <0,u,0,2>
     1611891346U, // <3,0,u,1>: Cost 2 vext3 LHS, <0,u,1,1>
     537707165U,  // <3,0,u,2>: Cost 1 vext3 LHS, LHS
-    2820637341U, // <3,0,u,3>: Cost 3 vuzpr <0,3,1,0>, LHS
+    2098429955U, // <3,0,u,3>: Cost 2 ins <3,0,1,u>, lane 3
     1616093874U, // <3,0,u,4>: Cost 2 vext3 LHS, <0,u,4,6>
     1551030426U, // <3,0,u,5>: Cost 2 vext2 <1,2,3,0>, RHS
-    2624772304U, // <3,0,u,6>: Cost 3 vext2 <1,2,3,0>, <u,6,3,7>
-    2820640297U, // <3,0,u,7>: Cost 3 vuzpr <0,3,1,0>, RHS
+    2098429955U, // <3,0,u,6>: Cost 2 ins <3,0,1,u>, lane 3
+    2098429955U, // <3,0,u,7>: Cost 2 ins <3,0,1,u>, lane 3
     537707219U,  // <3,0,u,u>: Cost 1 vext3 LHS, LHS
     2552201468U, // <3,1,0,0>: Cost 3 vext1 <0,3,1,0>, <0,3,1,0>
     2618802278U, // <3,1,0,1>: Cost 3 vext2 <0,2,3,1>, LHS
@@ -2296,26 +2296,26 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2552204598U, // <3,1,0,4>: Cost 3 vext1 <0,3,1,0>, RHS
     2960310610U, // <3,1,0,5>: Cost 3 vzipr <1,2,3,0>, <0,4,1,5>
     2832516572U, // <3,1,0,6>: Cost 3 vuzpr <2,3,0,1>, <2,0,4,6>
-    4034053246U, // <3,1,0,7>: Cost 4 vzipr <1,2,3,0>, <1,5,1,7>
+    3177398273U, // <3,1,0,7>: Cost 3 ins <3,u,0,7>, lane 1
     1611891491U, // <3,1,0,u>: Cost 2 vext3 LHS, <1,0,u,2>
     2689835819U, // <3,1,1,0>: Cost 3 vext3 LHS, <1,1,0,1>
     1611449140U, // <3,1,1,1>: Cost 2 vext3 LHS, <1,1,1,1>
-    2954348694U, // <3,1,1,2>: Cost 3 vzipr <0,2,3,1>, <3,0,1,2>
+    2103689217U, // <3,1,1,2>: Cost 2 ins <3,u,1,2>, lane 1
     1611891528U, // <3,1,1,3>: Cost 2 vext3 LHS, <1,1,3,3>
     2689835859U, // <3,1,1,4>: Cost 3 vext3 LHS, <1,1,4,5>
     2689835868U, // <3,1,1,5>: Cost 3 vext3 LHS, <1,1,5,5>
-    3763577699U, // <3,1,1,6>: Cost 4 vext3 LHS, <1,1,6,3>
+    3177463809U, // <3,1,1,6>: Cost 3 ins <3,u,1,6>, lane 1
     3100952848U, // <3,1,1,7>: Cost 3 vtrnr <2,3,0,1>, <3,1,5,7>
     1611891573U, // <3,1,1,u>: Cost 2 vext3 LHS, <1,1,u,3>
-    2958999642U, // <3,1,2,0>: Cost 3 vzipr <1,0,3,2>, <0,1,1,0>
-    2689835911U, // <3,1,2,1>: Cost 3 vext3 LHS, <1,2,1,3>
-    2959001750U, // <3,1,2,2>: Cost 3 vzipr <1,0,3,2>, <3,0,1,2>
-    1611449238U, // <3,1,2,3>: Cost 2 vext3 LHS, <1,2,3,0>
-    2832515994U, // <3,1,2,4>: Cost 3 vuzpr <2,3,0,1>, <1,2,3,4>
-    2689835947U, // <3,1,2,5>: Cost 3 vext3 LHS, <1,2,5,3>
-    2832515276U, // <3,1,2,6>: Cost 3 vuzpr <2,3,0,1>, <0,2,4,6>
-    2732966842U, // <3,1,2,7>: Cost 3 vext3 LHS, <1,2,7,0>
-    1611891651U, // <3,1,2,u>: Cost 2 vext3 LHS, <1,2,u,0>
+    2128961536U, // <3,1,2,0>: Cost 2 ins <u,1,2,0>, lane 0
+    2128969728U, // <3,1,2,1>: Cost 2 ins <u,1,2,1>, lane 0
+    2128977920U, // <3,1,2,2>: Cost 2 ins <u,1,2,2>, lane 0
+    1055244288U, // <3,1,2,3>: Cost 1 ins LHS, lane 0
+    2128994304U, // <3,1,2,4>: Cost 2 ins <u,1,2,4>, lane 0
+    2129002496U, // <3,1,2,5>: Cost 2 ins <u,1,2,5>, lane 0
+    2129010688U, // <3,1,2,6>: Cost 2 ins <u,1,2,6>, lane 0
+    2129018880U, // <3,1,2,7>: Cost 2 ins <u,1,2,7>, lane 0
+    1055244288U, // <3,1,2,u>: Cost 1 ins LHS, lane 0
     1484456038U, // <3,1,3,0>: Cost 2 vext1 <1,3,1,3>, LHS
     1611891672U, // <3,1,3,1>: Cost 2 vext3 LHS, <1,3,1,3>
     2685633502U, // <3,1,3,2>: Cost 3 vext3 LHS, <1,3,2,0>
@@ -2328,11 +2328,11 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2552234240U, // <3,1,4,0>: Cost 3 vext1 <0,3,1,4>, <0,3,1,4>
     2960343050U, // <3,1,4,1>: Cost 3 vzipr <1,2,3,4>, <0,0,1,1>
     2960345238U, // <3,1,4,2>: Cost 3 vzipr <1,2,3,4>, <3,0,1,2>
-    2685633597U, // <3,1,4,3>: Cost 3 vext3 LHS, <1,4,3,5>
+    2129133568U, // <3,1,4,3>: Cost 2 ins <u,1,4,3>, lane 0
     2552237366U, // <3,1,4,4>: Cost 3 vext1 <0,3,1,4>, RHS
     2618805558U, // <3,1,4,5>: Cost 3 vext2 <0,2,3,1>, RHS
     1695730998U, // <3,1,4,6>: Cost 2 vuzpl <3,0,1,2>, RHS
-    4034086014U, // <3,1,4,7>: Cost 4 vzipr <1,2,3,4>, <1,5,1,7>
+    3177693185U, // <3,1,4,7>: Cost 3 ins <3,u,4,7>, lane 1
     1695731016U, // <3,1,4,u>: Cost 2 vuzpl <3,0,1,2>, RHS
     2689836143U, // <3,1,5,0>: Cost 3 vext3 LHS, <1,5,0,1>
     2564187280U, // <3,1,5,1>: Cost 3 vext1 <2,3,1,5>, <1,5,3,7>
@@ -2340,23 +2340,23 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1611891856U, // <3,1,5,3>: Cost 2 vext3 LHS, <1,5,3,7>
     2689836183U, // <3,1,5,4>: Cost 3 vext3 LHS, <1,5,4,5>
     2961678674U, // <3,1,5,5>: Cost 3 vzipr <1,4,3,5>, <0,4,1,5>
-    4169048187U, // <3,1,5,6>: Cost 4 vtrnr <1,3,4,5>, <0,1,4,6>
+    2104016897U, // <3,1,5,6>: Cost 2 ins <3,u,5,6>, lane 1
     1758776630U, // <3,1,5,7>: Cost 2 vuzpr <2,3,0,1>, RHS
     1611891901U, // <3,1,5,u>: Cost 2 vext3 LHS, <1,5,u,7>
     2907783926U, // <3,1,6,0>: Cost 3 vzipl <3,6,2,7>, <1,0,3,2>
     2689836239U, // <3,1,6,1>: Cost 3 vext3 LHS, <1,6,1,7>
     2222752740U, // <3,1,6,2>: Cost 3 vrev <1,3,2,6>
-    2685633761U, // <3,1,6,3>: Cost 3 vext3 LHS, <1,6,3,7>
+    2129281024U, // <3,1,6,3>: Cost 2 ins <u,1,6,3>, lane 0
     2222900214U, // <3,1,6,4>: Cost 3 vrev <1,3,4,6>
     2689836275U, // <3,1,6,5>: Cost 3 vext3 LHS, <1,6,5,7>
     2868350324U, // <3,1,6,6>: Cost 3 vuzpr <u,3,0,1>, <4,6,4,6>
-    2832517050U, // <3,1,6,7>: Cost 3 vuzpr <2,3,0,1>, <2,6,3,7>
-    2685633806U, // <3,1,6,u>: Cost 3 vext3 LHS, <1,6,u,7>
-    2769474787U, // <3,1,7,0>: Cost 3 vuzpl <3,0,1,2>, <7,3,0,1>
+    2129313792U, // <3,1,6,7>: Cost 2 ins <u,1,6,7>, lane 0
+    2129281024U, // <3,1,6,u>: Cost 2 ins <u,1,6,3>, lane 0
+    3177857025U, // <3,1,7,0>: Cost 3 ins <3,u,7,0>, lane 1
     3095397172U, // <3,1,7,1>: Cost 3 vtrnr <1,3,5,7>, <1,1,1,1>
     2962360470U, // <3,1,7,2>: Cost 3 vzipr <1,5,3,7>, <3,0,1,2>
     2021654630U, // <3,1,7,3>: Cost 2 vtrnr <1,3,5,7>, LHS
-    3631975734U, // <3,1,7,4>: Cost 4 vext1 <1,3,1,7>, RHS
+    3177889793U, // <3,1,7,4>: Cost 3 ins <3,u,7,4>, lane 1
     1149240320U, // <3,1,7,5>: Cost 2 vrev <1,3,5,7>
     2223055881U, // <3,1,7,6>: Cost 3 vrev <1,3,6,7>
     2868351144U, // <3,1,7,7>: Cost 3 vuzpr <u,3,0,1>, <5,7,5,7>
@@ -2364,29 +2364,29 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1484496998U, // <3,1,u,0>: Cost 2 vext1 <1,3,1,u>, LHS
     1611892077U, // <3,1,u,1>: Cost 2 vext3 LHS, <1,u,1,3>
     1695733550U, // <3,1,u,2>: Cost 2 vuzpl <3,0,1,2>, LHS
-    1611892092U, // <3,1,u,3>: Cost 2 vext3 LHS, <1,u,3,0>
+    1055244288U, // <3,1,u,3>: Cost 1 ins LHS, lane 0
     1484500278U, // <3,1,u,4>: Cost 2 vext1 <1,3,1,u>, RHS
     1611892117U, // <3,1,u,5>: Cost 2 vext3 LHS, <1,u,5,7>
     1695733914U, // <3,1,u,6>: Cost 2 vuzpl <3,0,1,2>, RHS
     1758776873U, // <3,1,u,7>: Cost 2 vuzpr <2,3,0,1>, RHS
-    1611892140U, // <3,1,u,u>: Cost 2 vext3 LHS, <1,u,u,3>
+    1055244288U, // <3,1,u,u>: Cost 1 ins LHS, lane 0
     2623455232U, // <3,2,0,0>: Cost 3 vext2 <1,0,3,2>, <0,0,0,0>
     1549713510U, // <3,2,0,1>: Cost 2 vext2 <1,0,3,2>, LHS
-    2689836484U, // <3,2,0,2>: Cost 3 vext3 LHS, <2,0,2,0>
+    2129494016U, // <3,2,0,2>: Cost 2 ins <u,2,0,2>, lane 0
     1886568550U, // <3,2,0,3>: Cost 2 vzipr <1,2,3,0>, LHS
     2623455570U, // <3,2,0,4>: Cost 3 vext2 <1,0,3,2>, <0,4,1,5>
     2960311348U, // <3,2,0,5>: Cost 3 vzipr <1,2,3,0>, <1,4,2,5>
     2689836524U, // <3,2,0,6>: Cost 3 vext3 LHS, <2,0,6,4>
-    2229044964U, // <3,2,0,7>: Cost 3 vrev <2,3,7,0>
+    3177398273U, // <3,2,0,7>: Cost 3 ins <3,u,0,7>, lane 1
     1549714077U, // <3,2,0,u>: Cost 2 vext2 <1,0,3,2>, LHS
     1549714166U, // <3,2,1,0>: Cost 2 vext2 <1,0,3,2>, <1,0,3,2>
     2623456052U, // <3,2,1,1>: Cost 3 vext2 <1,0,3,2>, <1,1,1,1>
-    2689836568U, // <3,2,1,2>: Cost 3 vext3 LHS, <2,1,2,3>
+    2103689217U, // <3,2,1,2>: Cost 2 ins <3,u,1,2>, lane 1
     2685634079U, // <3,2,1,3>: Cost 3 vext3 LHS, <2,1,3,1>
     2552286518U, // <3,2,1,4>: Cost 3 vext1 <0,3,2,1>, RHS
     2623456400U, // <3,2,1,5>: Cost 3 vext2 <1,0,3,2>, <1,5,3,7>
     2689836604U, // <3,2,1,6>: Cost 3 vext3 LHS, <2,1,6,3>
-    4034060718U, // <3,2,1,7>: Cost 4 vzipr <1,2,3,1>, <0,5,2,7>
+    3177472001U, // <3,2,1,7>: Cost 3 ins <3,u,1,7>, lane 1
     1155385070U, // <3,2,1,u>: Cost 2 vrev <2,3,u,1>
     2689836629U, // <3,2,2,0>: Cost 3 vext3 LHS, <2,2,0,1>
     2689836640U, // <3,2,2,1>: Cost 3 vext3 LHS, <2,2,1,3>
@@ -2395,11 +2395,11 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2689836669U, // <3,2,2,4>: Cost 3 vext3 LHS, <2,2,4,5>
     2689836680U, // <3,2,2,5>: Cost 3 vext3 LHS, <2,2,5,7>
     2689836685U, // <3,2,2,6>: Cost 3 vext3 LHS, <2,2,6,3>
-    2958999982U, // <3,2,2,7>: Cost 3 vzipr <1,0,3,2>, <0,5,2,7>
+    3177545729U, // <3,2,2,7>: Cost 3 ins <3,u,2,7>, lane 1
     1611892383U, // <3,2,2,u>: Cost 2 vext3 LHS, <2,2,u,3>
     1611450022U, // <3,2,3,0>: Cost 2 vext3 LHS, <2,3,0,1>
     2685191854U, // <3,2,3,1>: Cost 3 vext3 LHS, <2,3,1,0>
-    2685191865U, // <3,2,3,2>: Cost 3 vext3 LHS, <2,3,2,2>
+    1696475377U, // <3,2,3,2>: Cost 2 vuzpl <3,1,2,3>, <3,1,2,3>
     1885929574U, // <3,2,3,3>: Cost 2 vzipr <1,1,3,3>, LHS
     1611450062U, // <3,2,3,4>: Cost 2 vext3 LHS, <2,3,4,5>
     2732967635U, // <3,2,3,5>: Cost 3 vext3 LHS, <2,3,5,1>
@@ -2412,8 +2412,8 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1886601318U, // <3,2,4,3>: Cost 2 vzipr <1,2,3,4>, LHS
     2960344034U, // <3,2,4,4>: Cost 3 vzipr <1,2,3,4>, <1,3,2,4>
     1549716790U, // <3,2,4,5>: Cost 2 vext2 <1,0,3,2>, RHS
-    2689836844U, // <3,2,4,6>: Cost 3 vext3 LHS, <2,4,6,0>
-    2229077736U, // <3,2,4,7>: Cost 3 vrev <2,3,7,4>
+    2129821696U, // <3,2,4,6>: Cost 2 ins <u,2,4,6>, lane 0
+    3177693185U, // <3,2,4,7>: Cost 3 ins <3,u,4,7>, lane 1
     1549717033U, // <3,2,4,u>: Cost 2 vext2 <1,0,3,2>, RHS
     2552316170U, // <3,2,5,0>: Cost 3 vext1 <0,3,2,5>, <0,3,2,5>
     2228643507U, // <3,2,5,1>: Cost 3 vrev <2,3,1,5>
@@ -2421,7 +2421,7 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2685634408U, // <3,2,5,3>: Cost 3 vext3 LHS, <2,5,3,6>
     1155122894U, // <3,2,5,4>: Cost 2 vrev <2,3,4,5>
     2665263108U, // <3,2,5,5>: Cost 3 vext2 <u,0,3,2>, <5,5,5,5>
-    2689836932U, // <3,2,5,6>: Cost 3 vext3 LHS, <2,5,6,7>
+    2104016897U, // <3,2,5,6>: Cost 2 ins <3,u,5,6>, lane 1
     2826554678U, // <3,2,5,7>: Cost 3 vuzpr <1,3,0,2>, RHS
     1155417842U, // <3,2,5,u>: Cost 2 vrev <2,3,u,5>
     2689836953U, // <3,2,6,0>: Cost 3 vext3 LHS, <2,6,0,1>
@@ -2431,10 +2431,10 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2689836993U, // <3,2,6,4>: Cost 3 vext3 LHS, <2,6,4,5>
     2689837004U, // <3,2,6,5>: Cost 3 vext3 LHS, <2,6,5,7>
     2689837013U, // <3,2,6,6>: Cost 3 vext3 LHS, <2,6,6,7>
-    2856929210U, // <3,2,6,7>: Cost 3 vuzpr <6,3,7,2>, <2,6,3,7>
+    2129977344U, // <3,2,6,7>: Cost 2 ins <u,2,6,7>, lane 0
     1611892711U, // <3,2,6,u>: Cost 2 vext3 LHS, <2,6,u,7>
     3095397270U, // <3,2,7,0>: Cost 3 vtrnr <1,3,5,7>, <1,2,3,0>
-    2623460419U, // <3,2,7,1>: Cost 3 vext2 <1,0,3,2>, <7,1,0,3>
+    3203743744U, // <3,2,7,1>: Cost 3 ins <u,2,7,1>, lane 0
     3095396516U, // <3,2,7,2>: Cost 3 vtrnr <1,3,5,7>, <0,2,0,2>
     1888616550U, // <3,2,7,3>: Cost 2 vzipr <1,5,3,7>, LHS
     3095397274U, // <3,2,7,4>: Cost 3 vtrnr <1,3,5,7>, <1,2,3,4>
@@ -2444,53 +2444,53 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1888616555U, // <3,2,7,u>: Cost 2 vzipr <1,5,3,7>, LHS
     1611892795U, // <3,2,u,0>: Cost 2 vext3 LHS, <2,u,0,1>
     1549719342U, // <3,2,u,1>: Cost 2 vext2 <1,0,3,2>, LHS
-    1611449960U, // <3,2,u,2>: Cost 2 vext3 LHS, <2,2,2,2>
+    2129494016U, // <3,2,u,2>: Cost 2 ins <u,2,0,2>, lane 0
     1611892824U, // <3,2,u,3>: Cost 2 vext3 LHS, <2,u,3,3>
     1611892835U, // <3,2,u,4>: Cost 2 vext3 LHS, <2,u,4,5>
     1549719706U, // <3,2,u,5>: Cost 2 vext2 <1,0,3,2>, RHS
-    2689837168U, // <3,2,u,6>: Cost 3 vext3 LHS, <2,u,6,0>
-    2826554921U, // <3,2,u,7>: Cost 3 vuzpr <1,3,0,2>, RHS
+    2129821696U, // <3,2,u,6>: Cost 2 ins <u,2,4,6>, lane 0
+    2129977344U, // <3,2,u,7>: Cost 2 ins <u,2,6,7>, lane 0
     1611892867U, // <3,2,u,u>: Cost 2 vext3 LHS, <2,u,u,1>
     1886569366U, // <3,3,0,0>: Cost 2 vzipr <1,2,3,0>, <1,2,3,0>
     1611450518U, // <3,3,0,1>: Cost 2 vext3 LHS, <3,0,1,2>
     1697874022U, // <3,3,0,2>: Cost 2 vuzpl <3,3,3,3>, LHS
-    2960311112U, // <3,3,0,3>: Cost 3 vzipr <1,2,3,0>, <1,1,3,3>
+    2100895746U, // <3,3,0,3>: Cost 2 ins <3,3,u,3>, lane 2
     2685634736U, // <3,3,0,4>: Cost 3 vext3 LHS, <3,0,4,1>
     3041151490U, // <3,3,0,5>: Cost 3 vtrnl <3,5,0,2>, <3,4,5,6>
-    3763579075U, // <3,3,0,6>: Cost 4 vext3 LHS, <3,0,6,2>
+    3177390081U, // <3,3,0,6>: Cost 3 ins <3,u,0,6>, lane 1
     2960311440U, // <3,3,0,7>: Cost 3 vzipr <1,2,3,0>, <1,5,3,7>
     1611450581U, // <3,3,0,u>: Cost 2 vext3 LHS, <3,0,u,2>
     2685192415U, // <3,3,1,0>: Cost 3 vext3 LHS, <3,1,0,3>
     1550385992U, // <3,3,1,1>: Cost 2 vext2 <1,1,3,3>, <1,1,3,3>
-    2685192433U, // <3,3,1,2>: Cost 3 vext3 LHS, <3,1,2,3>
+    2103689217U, // <3,3,1,2>: Cost 2 ins <3,u,1,2>, lane 1
     1752891494U, // <3,3,1,3>: Cost 2 vuzpr <1,3,1,3>, LHS
     2826635515U, // <3,3,1,4>: Cost 3 vuzpr <1,3,1,3>, <3,1,3,4>
     2685634828U, // <3,3,1,5>: Cost 3 vext3 LHS, <3,1,5,3>
-    3759376661U, // <3,3,1,6>: Cost 4 vext3 LHS, <3,1,6,3>
+    3177463809U, // <3,3,1,6>: Cost 3 ins <3,u,1,6>, lane 1
     3100951552U, // <3,3,1,7>: Cost 3 vtrnr <2,3,0,1>, <1,3,5,7>
     1752891499U, // <3,3,1,u>: Cost 2 vuzpr <1,3,1,3>, LHS
     2959000470U, // <3,3,2,0>: Cost 3 vzipr <1,0,3,2>, <1,2,3,0>
     2959000471U, // <3,3,2,1>: Cost 3 vzipr <1,0,3,2>, <1,2,3,1>
     1885258486U, // <3,3,2,2>: Cost 2 vzipr <1,0,3,2>, <1,0,3,2>
-    2685192520U, // <3,3,2,3>: Cost 3 vext3 LHS, <3,2,3,0>
+    2130313216U, // <3,3,2,3>: Cost 2 ins <u,3,2,3>, lane 0
     2959000474U, // <3,3,2,4>: Cost 3 vzipr <1,0,3,2>, <1,2,3,4>
     2732968286U, // <3,3,2,5>: Cost 3 vext3 LHS, <3,2,5,4>
     2685634918U, // <3,3,2,6>: Cost 3 vext3 LHS, <3,2,6,3>
     2959000720U, // <3,3,2,7>: Cost 3 vzipr <1,0,3,2>, <1,5,3,7>
     1561004120U, // <3,3,2,u>: Cost 2 vext2 <2,u,3,3>, <2,u,3,3>
     1496547430U, // <3,3,3,0>: Cost 2 vext1 <3,3,3,3>, LHS
-    2624129256U, // <3,3,3,1>: Cost 3 vext2 <1,1,3,3>, <3,1,1,3>
-    2959672054U, // <3,3,3,2>: Cost 3 vzipr <1,1,3,3>, <1,0,3,2>
+    2100568067U, // <3,3,3,1>: Cost 2 ins <3,3,3,u>, lane 3
+    2100568067U, // <3,3,3,2>: Cost 2 ins <3,3,3,u>, lane 3
     336380006U,  // <3,3,3,3>: Cost 1 vdup3 LHS
     1496550710U, // <3,3,3,4>: Cost 2 vext1 <3,3,3,3>, RHS
-    2826634958U, // <3,3,3,5>: Cost 3 vuzpr <1,3,1,3>, <2,3,4,5>
-    2838727080U, // <3,3,3,6>: Cost 3 vuzpr <3,3,3,3>, <3,3,4,6>
-    2959672464U, // <3,3,3,7>: Cost 3 vzipr <1,1,3,3>, <1,5,3,7>
+    2100568067U, // <3,3,3,5>: Cost 2 ins <3,3,3,u>, lane 3
+    2100568067U, // <3,3,3,6>: Cost 2 ins <3,3,3,u>, lane 3
+    2100568067U, // <3,3,3,7>: Cost 2 ins <3,3,3,u>, lane 3
     336380006U,  // <3,3,3,u>: Cost 1 vdup3 LHS
     2960343958U, // <3,3,4,0>: Cost 3 vzipr <1,2,3,4>, <1,2,3,0>
     2558354411U, // <3,3,4,1>: Cost 3 vext1 <1,3,3,4>, <1,3,3,4>
     2960343798U, // <3,3,4,2>: Cost 3 vzipr <1,2,3,4>, <1,0,3,2>
-    2960343880U, // <3,3,4,3>: Cost 3 vzipr <1,2,3,4>, <1,1,3,3>
+    2100895746U, // <3,3,4,3>: Cost 2 ins <3,3,u,3>, lane 2
     1886602138U, // <3,3,4,4>: Cost 2 vzipr <1,2,3,4>, <1,2,3,4>
     1611893250U, // <3,3,4,5>: Cost 2 vext3 LHS, <3,4,5,6>
     1697877302U, // <3,3,4,6>: Cost 2 vuzpl <3,3,3,3>, RHS
@@ -2499,28 +2499,28 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2558361702U, // <3,3,5,0>: Cost 3 vext1 <1,3,3,5>, LHS
     2558362604U, // <3,3,5,1>: Cost 3 vext1 <1,3,3,5>, <1,3,3,5>
     2558363342U, // <3,3,5,2>: Cost 3 vext1 <1,3,3,5>, <2,3,4,5>
-    3101279192U, // <3,3,5,3>: Cost 3 vtrnr <2,3,4,5>, <1,3,1,3>
+    2100895746U, // <3,3,5,3>: Cost 2 ins <3,3,u,3>, lane 2
     2558364982U, // <3,3,5,4>: Cost 3 vext1 <1,3,3,5>, RHS
     2027538126U, // <3,3,5,5>: Cost 2 vtrnr <2,3,4,5>, <2,3,4,5>
-    2665934946U, // <3,3,5,6>: Cost 3 vext2 <u,1,3,3>, <5,6,7,0>
+    2104016897U, // <3,3,5,6>: Cost 2 ins <3,u,5,6>, lane 1
     1752894774U, // <3,3,5,7>: Cost 2 vuzpr <1,3,1,3>, RHS
     1752894775U, // <3,3,5,u>: Cost 2 vuzpr <1,3,1,3>, RHS
     2732968568U, // <3,3,6,0>: Cost 3 vext3 LHS, <3,6,0,7>
-    4029456574U, // <3,3,6,1>: Cost 4 vzipr <0,4,3,6>, <0,2,3,1>
+    3204333568U, // <3,3,6,1>: Cost 3 ins <u,3,6,1>, lane 0
     2732968586U, // <3,3,6,2>: Cost 3 vext3 LHS, <3,6,2,7>
-    3107260828U, // <3,3,6,3>: Cost 3 vtrnr <3,3,4,6>, <3,3,3,3>
+    2100895746U, // <3,3,6,3>: Cost 2 ins <3,3,u,3>, lane 2
     2234845608U, // <3,3,6,4>: Cost 3 vrev <3,3,4,6>
-    3763579557U, // <3,3,6,5>: Cost 4 vext3 LHS, <3,6,5,7>
-    2960360348U, // <3,3,6,6>: Cost 3 vzipr <1,2,3,6>, <1,2,3,6>
-    2826635194U, // <3,3,6,7>: Cost 3 vuzpr <1,3,1,3>, <2,6,3,7>
-    2826635195U, // <3,3,6,u>: Cost 3 vuzpr <1,3,1,3>, <2,6,3,u>
+    3204366336U, // <3,3,6,5>: Cost 3 ins <u,3,6,5>, lane 0
+    1967893085U, // <3,3,6,6>: Cost 2 vtrnl <3,5,6,7>, <3,5,6,7>
+    2130640896U, // <3,3,6,7>: Cost 2 ins <u,3,6,7>, lane 0
+    2100895746U, // <3,3,6,u>: Cost 2 ins <3,3,u,3>, lane 2
     2558378086U, // <3,3,7,0>: Cost 3 vext1 <1,3,3,7>, LHS
     2558378990U, // <3,3,7,1>: Cost 3 vext1 <1,3,3,7>, <1,3,3,7>
     2962359030U, // <3,3,7,2>: Cost 3 vzipr <1,5,3,7>, <1,0,3,2>
-    3095397336U, // <3,3,7,3>: Cost 3 vtrnr <1,3,5,7>, <1,3,1,3>
+    2100895746U, // <3,3,7,3>: Cost 2 ins <3,3,u,3>, lane 2
     2558381366U, // <3,3,7,4>: Cost 3 vext1 <1,3,3,7>, RHS
     3095398094U, // <3,3,7,5>: Cost 3 vtrnr <1,3,5,7>, <2,3,4,5>
-    4169139172U, // <3,3,7,6>: Cost 4 vtrnr <1,3,5,7>, <1,3,2,6>
+    3174662146U, // <3,3,7,6>: Cost 3 ins <3,3,u,6>, lane 2
     2021655552U, // <3,3,7,7>: Cost 2 vtrnr <1,3,5,7>, <1,3,5,7>
     2021655552U, // <3,3,7,u>: Cost 2 vtrnr <1,3,5,7>, <1,3,5,7>
     1886569366U, // <3,3,u,0>: Cost 2 vzipr <1,2,3,0>, <1,2,3,0>
@@ -2535,38 +2535,38 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2624798720U, // <3,4,0,0>: Cost 3 vext2 <1,2,3,4>, <0,0,0,0>
     1551056998U, // <3,4,0,1>: Cost 2 vext2 <1,2,3,4>, LHS
     2624798884U, // <3,4,0,2>: Cost 3 vext2 <1,2,3,4>, <0,2,0,2>
-    2903690372U, // <3,4,0,3>: Cost 3 vzipl <3,0,1,2>, <4,3,5,0>
+    3177365505U, // <3,4,0,3>: Cost 3 ins <3,u,0,3>, lane 1
     2624799058U, // <3,4,0,4>: Cost 3 vext2 <1,2,3,4>, <0,4,1,5>
     1829948726U, // <3,4,0,5>: Cost 2 vzipl <3,0,1,2>, RHS
     1659227036U, // <3,4,0,6>: Cost 2 vext3 LHS, <4,0,6,2>
-    4038035314U, // <3,4,0,7>: Cost 4 vzipr <1,u,3,0>, <2,5,4,7>
+    3177398273U, // <3,4,0,7>: Cost 3 ins <3,u,0,7>, lane 1
     1551057565U, // <3,4,0,u>: Cost 2 vext2 <1,2,3,4>, LHS
     2624799478U, // <3,4,1,0>: Cost 3 vext2 <1,2,3,4>, <1,0,3,2>
     2624799540U, // <3,4,1,1>: Cost 3 vext2 <1,2,3,4>, <1,1,1,1>
     1551057818U, // <3,4,1,2>: Cost 2 vext2 <1,2,3,4>, <1,2,3,4>
     2820669542U, // <3,4,1,3>: Cost 3 vuzpr <0,3,1,4>, LHS
     2564377910U, // <3,4,1,4>: Cost 3 vext1 <2,3,4,1>, RHS
-    2689838050U, // <3,4,1,5>: Cost 3 vext3 LHS, <4,1,5,0>
+    2130919424U, // <3,4,1,5>: Cost 2 ins <u,4,1,5>, lane 0
     1964166454U, // <3,4,1,6>: Cost 2 vtrnl <3,0,1,2>, RHS
-    2628117807U, // <3,4,1,7>: Cost 3 vext2 <1,7,3,4>, <1,7,3,4>
+    3177472001U, // <3,4,1,7>: Cost 3 ins <3,u,1,7>, lane 1
     1555039616U, // <3,4,1,u>: Cost 2 vext2 <1,u,3,4>, <1,u,3,4>
-    3894412182U, // <3,4,2,0>: Cost 4 vuzpr <0,3,1,4>, <1,2,3,0>
+    3204694016U, // <3,4,2,0>: Cost 3 ins <u,4,2,0>, lane 0
     2624800298U, // <3,4,2,1>: Cost 3 vext2 <1,2,3,4>, <2,1,4,3>
     2624800360U, // <3,4,2,2>: Cost 3 vext2 <1,2,3,4>, <2,2,2,2>
-    2624800422U, // <3,4,2,3>: Cost 3 vext2 <1,2,3,4>, <2,3,0,1>
+    2130976768U, // <3,4,2,3>: Cost 2 ins <u,4,2,3>, lane 0
     2826716058U, // <3,4,2,4>: Cost 3 vuzpr <1,3,2,4>, <1,2,3,4>
     2959001294U, // <3,4,2,5>: Cost 3 vzipr <1,0,3,2>, <2,3,4,5>
-    2689838140U, // <3,4,2,6>: Cost 3 vext3 LHS, <4,2,6,0>
-    2634090504U, // <3,4,2,7>: Cost 3 vext2 <2,7,3,4>, <2,7,3,4>
-    2689838158U, // <3,4,2,u>: Cost 3 vext3 LHS, <4,2,u,0>
+    2131001344U, // <3,4,2,6>: Cost 2 ins <u,4,2,6>, lane 0
+    3177545729U, // <3,4,2,7>: Cost 3 ins <3,u,2,7>, lane 1
+    2131001344U, // <3,4,2,u>: Cost 2 ins <u,4,2,6>, lane 0
     2624800918U, // <3,4,3,0>: Cost 3 vext2 <1,2,3,4>, <3,0,1,2>
     2636081403U, // <3,4,3,1>: Cost 3 vext2 <3,1,3,4>, <3,1,3,4>
     2636745036U, // <3,4,3,2>: Cost 3 vext2 <3,2,3,4>, <3,2,3,4>
-    2624801180U, // <3,4,3,3>: Cost 3 vext2 <1,2,3,4>, <3,3,3,3>
+    2103844865U, // <3,4,3,3>: Cost 2 ins <3,u,3,3>, lane 1
     2820669696U, // <3,4,3,4>: Cost 3 vuzpr <0,3,1,4>, <0,3,1,4>
     1832095030U, // <3,4,3,5>: Cost 2 vzipl <3,3,3,3>, RHS
     1966312758U, // <3,4,3,6>: Cost 2 vtrnl <3,3,3,3>, RHS
-    3894412288U, // <3,4,3,7>: Cost 4 vuzpr <0,3,1,4>, <1,3,5,7>
+    3177619457U, // <3,4,3,7>: Cost 3 ins <3,u,3,7>, lane 1
     1832095273U, // <3,4,3,u>: Cost 2 vzipl <3,3,3,3>, RHS
     2960344777U, // <3,4,4,0>: Cost 3 vzipr <1,2,3,4>, <2,3,4,0>
     2960344778U, // <3,4,4,1>: Cost 3 vzipr <1,2,3,4>, <2,3,4,1>
@@ -2575,16 +2575,16 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1659227344U, // <3,4,4,4>: Cost 2 vext3 LHS, <4,4,4,4>
     1551060278U, // <3,4,4,5>: Cost 2 vext2 <1,2,3,4>, RHS
     1659227364U, // <3,4,4,6>: Cost 2 vext3 LHS, <4,4,6,6>
-    2960344946U, // <3,4,4,7>: Cost 3 vzipr <1,2,3,4>, <2,5,4,7>
+    3177693185U, // <3,4,4,7>: Cost 3 ins <3,u,4,7>, lane 1
     1551060521U, // <3,4,4,u>: Cost 2 vext2 <1,2,3,4>, RHS
     1490665574U, // <3,4,5,0>: Cost 2 vext1 <2,3,4,5>, LHS
-    2689838341U, // <3,4,5,1>: Cost 3 vext3 LHS, <4,5,1,3>
+    2101379075U, // <3,4,5,1>: Cost 2 ins <3,4,5,u>, lane 3
     1490667214U, // <3,4,5,2>: Cost 2 vext1 <2,3,4,5>, <2,3,4,5>
-    2564409494U, // <3,4,5,3>: Cost 3 vext1 <2,3,4,5>, <3,0,1,2>
+    2101379075U, // <3,4,5,3>: Cost 2 ins <3,4,5,u>, lane 3
     1490668854U, // <3,4,5,4>: Cost 2 vext1 <2,3,4,5>, RHS
-    2689838381U, // <3,4,5,5>: Cost 3 vext3 LHS, <4,5,5,7>
+    2131214336U, // <3,4,5,5>: Cost 2 ins <u,4,5,5>, lane 0
     537709878U,  // <3,4,5,6>: Cost 1 vext3 LHS, RHS
-    2820672822U, // <3,4,5,7>: Cost 3 vuzpr <0,3,1,4>, RHS
+    2101379075U, // <3,4,5,7>: Cost 2 ins <3,4,5,u>, lane 3
     537709896U,  // <3,4,5,u>: Cost 1 vext3 LHS, RHS
     1659227468U, // <3,4,6,0>: Cost 2 vext3 LHS, <4,6,0,2>
     2689838422U, // <3,4,6,1>: Cost 3 vext3 LHS, <4,6,1,3>
@@ -2592,26 +2592,26 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2558446082U, // <3,4,6,3>: Cost 3 vext1 <1,3,4,6>, <3,4,5,6>
     1659227508U, // <3,4,6,4>: Cost 2 vext3 LHS, <4,6,4,6>
     2689838462U, // <3,4,6,5>: Cost 3 vext3 LHS, <4,6,5,7>
-    2689838471U, // <3,4,6,6>: Cost 3 vext3 LHS, <4,6,6,7>
-    2856945594U, // <3,4,6,7>: Cost 3 vuzpr <6,3,7,4>, <2,6,3,7>
+    2131296256U, // <3,4,6,6>: Cost 2 ins <u,4,6,6>, lane 0
+    2131304448U, // <3,4,6,7>: Cost 2 ins <u,4,6,7>, lane 0
     1659227540U, // <3,4,6,u>: Cost 2 vext3 LHS, <4,6,u,2>
     2666607610U, // <3,4,7,0>: Cost 3 vext2 <u,2,3,4>, <7,0,1,2>
     2659972191U, // <3,4,7,1>: Cost 3 vext2 <7,1,3,4>, <7,1,3,4>
     2660635824U, // <3,4,7,2>: Cost 3 vext2 <7,2,3,4>, <7,2,3,4>
-    4169139970U, // <3,4,7,3>: Cost 4 vtrnr <1,3,5,7>, <2,4,1,3>
+    3177881601U, // <3,4,7,3>: Cost 3 ins <3,u,7,3>, lane 1
     2666607974U, // <3,4,7,4>: Cost 3 vext2 <u,2,3,4>, <7,4,5,6>
     3095396690U, // <3,4,7,5>: Cost 3 vtrnr <1,3,5,7>, <0,4,1,5>
-    3095396700U, // <3,4,7,6>: Cost 3 vtrnr <1,3,5,7>, <0,4,2,6>
+    2131369984U, // <3,4,7,6>: Cost 2 ins <u,4,7,6>, lane 0
     2666608236U, // <3,4,7,7>: Cost 3 vext2 <u,2,3,4>, <7,7,7,7>
-    3095396693U, // <3,4,7,u>: Cost 3 vtrnr <1,3,5,7>, <0,4,1,u>
+    2131369984U, // <3,4,7,u>: Cost 2 ins <u,4,7,6>, lane 0
     1490690150U, // <3,4,u,0>: Cost 2 vext1 <2,3,4,u>, LHS
     1551062830U, // <3,4,u,1>: Cost 2 vext2 <1,2,3,4>, LHS
     1490691793U, // <3,4,u,2>: Cost 2 vext1 <2,3,4,u>, <2,3,4,u>
-    2820670109U, // <3,4,u,3>: Cost 3 vuzpr <0,3,1,4>, LHS
+    2101379075U, // <3,4,u,3>: Cost 2 ins <3,4,5,u>, lane 3
     1490693430U, // <3,4,u,4>: Cost 2 vext1 <2,3,4,u>, RHS
     1551063194U, // <3,4,u,5>: Cost 2 vext2 <1,2,3,4>, RHS
     537710121U,  // <3,4,u,6>: Cost 1 vext3 LHS, RHS
-    2820673065U, // <3,4,u,7>: Cost 3 vuzpr <0,3,1,4>, RHS
+    2101379075U, // <3,4,u,7>: Cost 2 ins <3,4,5,u>, lane 3
     537710139U,  // <3,4,u,u>: Cost 1 vext3 LHS, RHS
     2832842752U, // <3,5,0,0>: Cost 3 vuzpr <2,3,4,5>, <0,0,0,0>
     2618835046U, // <3,5,0,1>: Cost 3 vext2 <0,2,3,5>, LHS
@@ -2620,30 +2620,30 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2689838690U, // <3,5,0,4>: Cost 3 vext3 LHS, <5,0,4,1>
     2732969579U, // <3,5,0,5>: Cost 3 vext3 LHS, <5,0,5,1>
     2960310647U, // <3,5,0,6>: Cost 3 vzipr <1,2,3,0>, <0,4,5,6>
-    3089075510U, // <3,5,0,7>: Cost 3 vtrnr <0,3,1,0>, RHS
+    2131525632U, // <3,5,0,7>: Cost 2 ins <u,5,0,7>, lane 0
     1698709660U, // <3,5,0,u>: Cost 2 vuzpl <3,4,5,6>, LHS
     2594308198U, // <3,5,1,0>: Cost 3 vext1 <7,3,5,1>, LHS
     2832843572U, // <3,5,1,1>: Cost 3 vuzpr <2,3,4,5>, <1,1,1,1>
-    2624807835U, // <3,5,1,2>: Cost 3 vext2 <1,2,3,5>, <1,2,3,5>
+    2103689217U, // <3,5,1,2>: Cost 2 ins <3,u,1,2>, lane 1
     1759101030U, // <3,5,1,3>: Cost 2 vuzpr <2,3,4,5>, LHS
     2626135101U, // <3,5,1,4>: Cost 3 vext2 <1,4,3,5>, <1,4,3,5>
     2772452352U, // <3,5,1,5>: Cost 3 vuzpl <3,4,5,6>, <1,3,5,7>
-    4028090882U, // <3,5,1,6>: Cost 4 vzipr <0,2,3,1>, <3,4,5,6>
+    3205332992U, // <3,5,1,6>: Cost 3 ins <u,5,1,6>, lane 0
     2027212086U, // <3,5,1,7>: Cost 2 vtrnr <2,3,0,1>, RHS
     2027212087U, // <3,5,1,u>: Cost 2 vtrnr <2,3,0,1>, RHS
     2832843670U, // <3,5,2,0>: Cost 3 vuzpr <2,3,4,5>, <1,2,3,0>
     2630116899U, // <3,5,2,1>: Cost 3 vext2 <2,1,3,5>, <2,1,3,5>
     2832842916U, // <3,5,2,2>: Cost 3 vuzpr <2,3,4,5>, <0,2,0,2>
-    2625472206U, // <3,5,2,3>: Cost 3 vext2 <1,3,3,5>, <2,3,4,5>
+    2131640320U, // <3,5,2,3>: Cost 2 ins <u,5,2,3>, lane 0
     2832842936U, // <3,5,2,4>: Cost 3 vuzpr <2,3,4,5>, <0,2,2,4>
     2715938575U, // <3,5,2,5>: Cost 3 vext3 <5,2,5,3>, <5,2,5,3>
     2959002114U, // <3,5,2,6>: Cost 3 vzipr <1,0,3,2>, <3,4,5,6>
-    2958999766U, // <3,5,2,7>: Cost 3 vzipr <1,0,3,2>, <0,2,5,7>
-    2958999767U, // <3,5,2,u>: Cost 3 vzipr <1,0,3,2>, <0,2,5,u>
+    2131673088U, // <3,5,2,7>: Cost 2 ins <u,5,2,7>, lane 0
+    2131640320U, // <3,5,2,u>: Cost 2 ins <u,5,2,3>, lane 0
     2772453922U, // <3,5,3,0>: Cost 3 vuzpl <3,4,5,6>, <3,5,0,2>
     2832844454U, // <3,5,3,1>: Cost 3 vuzpr <2,3,4,5>, <2,3,0,1>
-    3699214668U, // <3,5,3,2>: Cost 4 vext2 <1,3,3,5>, <3,2,3,4>
-    2832843736U, // <3,5,3,3>: Cost 3 vuzpr <2,3,4,5>, <1,3,1,3>
+    3177578497U, // <3,5,3,2>: Cost 3 ins <3,u,3,2>, lane 1
+    2103844865U, // <3,5,3,3>: Cost 2 ins <3,u,3,3>, lane 1
     2618837506U, // <3,5,3,4>: Cost 3 vext2 <0,2,3,5>, <3,4,5,6>
     1759102670U, // <3,5,3,5>: Cost 2 vuzpr <2,3,4,5>, <2,3,4,5>
     2959673858U, // <3,5,3,6>: Cost 3 vzipr <1,1,3,3>, <3,4,5,6>
@@ -2652,7 +2652,7 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2832845308U, // <3,5,4,0>: Cost 3 vuzpr <2,3,4,5>, <3,4,5,0>
     2732969871U, // <3,5,4,1>: Cost 3 vext3 LHS, <5,4,1,5>
     2832844536U, // <3,5,4,2>: Cost 3 vuzpr <2,3,4,5>, <2,4,0,2>
-    2772454762U, // <3,5,4,3>: Cost 3 vuzpl <3,4,5,6>, <4,6,3,5>
+    3177660417U, // <3,5,4,3>: Cost 3 ins <3,u,4,3>, lane 1
     2832845312U, // <3,5,4,4>: Cost 3 vuzpr <2,3,4,5>, <3,4,5,4>
     2618838326U, // <3,5,4,5>: Cost 3 vext2 <0,2,3,5>, RHS
     1698712886U, // <3,5,4,6>: Cost 2 vuzpl <3,4,5,6>, RHS
@@ -2664,18 +2664,18 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2832845356U, // <3,5,5,3>: Cost 3 vuzpr <2,3,4,5>, <3,5,1,3>
     2570456374U, // <3,5,5,4>: Cost 3 vext1 <3,3,5,5>, RHS
     1659228164U, // <3,5,5,5>: Cost 2 vext3 LHS, <5,5,5,5>
-    2954381826U, // <3,5,5,6>: Cost 3 vzipr <0,2,3,5>, <3,4,5,6>
+    2104016897U, // <3,5,5,6>: Cost 2 ins <3,u,5,6>, lane 1
     1759104310U, // <3,5,5,7>: Cost 2 vuzpr <2,3,4,5>, RHS
     1759104311U, // <3,5,5,u>: Cost 2 vuzpr <2,3,4,5>, RHS
-    2732970020U, // <3,5,6,0>: Cost 3 vext3 LHS, <5,6,0,1>
-    2732970035U, // <3,5,6,1>: Cost 3 vext3 LHS, <5,6,1,7>
-    2868677964U, // <3,5,6,2>: Cost 3 vuzpr <u,3,4,5>, <4,6,0,2>
-    2732970050U, // <3,5,6,3>: Cost 3 vext3 LHS, <5,6,3,4>
-    2772455986U, // <3,5,6,4>: Cost 3 vuzpl <3,4,5,6>, <6,3,4,5>
-    2732970071U, // <3,5,6,5>: Cost 3 vext3 LHS, <5,6,5,7>
-    2968324610U, // <3,5,6,6>: Cost 3 vzipr <2,5,3,6>, <3,4,5,6>
-    1659228258U, // <3,5,6,7>: Cost 2 vext3 LHS, <5,6,7,0>
-    1659228267U, // <3,5,6,u>: Cost 2 vext3 LHS, <5,6,u,0>
+    2131910656U, // <3,5,6,0>: Cost 2 ins <u,5,6,0>, lane 0
+    2131918848U, // <3,5,6,1>: Cost 2 ins <u,5,6,1>, lane 0
+    2131927040U, // <3,5,6,2>: Cost 2 ins <u,5,6,2>, lane 0
+    2131935232U, // <3,5,6,3>: Cost 2 ins <u,5,6,3>, lane 0
+    2131943424U, // <3,5,6,4>: Cost 2 ins <u,5,6,4>, lane 0
+    2131951616U, // <3,5,6,5>: Cost 2 ins <u,5,6,5>, lane 0
+    2131959808U, // <3,5,6,6>: Cost 2 ins <u,5,6,6>, lane 0
+    1058226176U, // <3,5,6,7>: Cost 1 ins RHS, lane 0
+    1058226176U, // <3,5,6,u>: Cost 1 ins RHS, lane 0
     1484783718U, // <3,5,7,0>: Cost 2 vext1 <1,3,5,7>, LHS
     1484784640U, // <3,5,7,1>: Cost 2 vext1 <1,3,5,7>, <1,3,5,7>
     2558527080U, // <3,5,7,2>: Cost 3 vext1 <1,3,5,7>, <2,2,2,2>
@@ -2692,42 +2692,42 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1484795190U, // <3,5,u,4>: Cost 2 vext1 <1,3,5,u>, RHS
     1659228409U, // <3,5,u,5>: Cost 2 vext3 LHS, <5,u,5,7>
     1698715802U, // <3,5,u,6>: Cost 2 vuzpl <3,4,5,6>, RHS
-    2021371190U, // <3,5,u,7>: Cost 2 vtrnr <1,3,1,u>, RHS
-    2021371191U, // <3,5,u,u>: Cost 2 vtrnr <1,3,1,u>, RHS
+    1058226176U, // <3,5,u,7>: Cost 1 ins RHS, lane 0
+    1058226176U, // <3,5,u,u>: Cost 1 ins RHS, lane 0
     2732970264U, // <3,6,0,0>: Cost 3 vext3 LHS, <6,0,0,2>
     2689839393U, // <3,6,0,1>: Cost 3 vext3 LHS, <6,0,1,2>
-    2689839404U, // <3,6,0,2>: Cost 3 vext3 LHS, <6,0,2,4>
-    4034053692U, // <3,6,0,3>: Cost 4 vzipr <1,2,3,0>, <2,1,6,3>
+    2132148224U, // <3,6,0,2>: Cost 2 ins <u,6,0,2>, lane 0
+    3177365505U, // <3,6,0,3>: Cost 3 ins <3,u,0,3>, lane 1
     2689839420U, // <3,6,0,4>: Cost 3 vext3 LHS, <6,0,4,2>
     2732970314U, // <3,6,0,5>: Cost 3 vext3 LHS, <6,0,5,7>
     2732970316U, // <3,6,0,6>: Cost 3 vext3 LHS, <6,0,6,0>
     1886571830U, // <3,6,0,7>: Cost 2 vzipr <1,2,3,0>, RHS
     1886571831U, // <3,6,0,u>: Cost 2 vzipr <1,2,3,0>, RHS
     2720878954U, // <3,6,1,0>: Cost 3 vext3 <6,1,0,3>, <6,1,0,3>
-    3763581297U, // <3,6,1,1>: Cost 4 vext3 LHS, <6,1,1,1>
-    2624816028U, // <3,6,1,2>: Cost 3 vext2 <1,2,3,6>, <1,2,3,6>
+    3205955584U, // <3,6,1,1>: Cost 3 ins <u,6,1,1>, lane 0
+    2103689217U, // <3,6,1,2>: Cost 2 ins <3,u,1,2>, lane 1
     2826731622U, // <3,6,1,3>: Cost 3 vuzpr <1,3,2,6>, LHS
     2626143294U, // <3,6,1,4>: Cost 3 vext2 <1,4,3,6>, <1,4,3,6>
-    3763581335U, // <3,6,1,5>: Cost 4 vext3 LHS, <6,1,5,3>
+    3205988352U, // <3,6,1,5>: Cost 3 ins <u,6,1,5>, lane 0
     2721321376U, // <3,6,1,6>: Cost 3 vext3 <6,1,6,3>, <6,1,6,3>
     2954349878U, // <3,6,1,7>: Cost 3 vzipr <0,2,3,1>, RHS
-    2954349879U, // <3,6,1,u>: Cost 3 vzipr <0,2,3,1>, RHS
+    2103689217U, // <3,6,1,u>: Cost 2 ins <3,u,1,2>, lane 1
     2594390118U, // <3,6,2,0>: Cost 3 vext1 <7,3,6,2>, LHS
     2721616324U, // <3,6,2,1>: Cost 3 vext3 <6,2,1,3>, <6,2,1,3>
     2630788725U, // <3,6,2,2>: Cost 3 vext2 <2,2,3,6>, <2,2,3,6>
-    2832852594U, // <3,6,2,3>: Cost 3 vuzpr <2,3,4,6>, <2,2,3,3>
+    2132303872U, // <3,6,2,3>: Cost 2 ins <u,6,2,3>, lane 0
     2632115991U, // <3,6,2,4>: Cost 3 vext2 <2,4,3,6>, <2,4,3,6>
     2632779624U, // <3,6,2,5>: Cost 3 vext2 <2,5,3,6>, <2,5,3,6>
     2826731724U, // <3,6,2,6>: Cost 3 vuzpr <1,3,2,6>, <0,2,4,6>
     1885261110U, // <3,6,2,7>: Cost 2 vzipr <1,0,3,2>, RHS
     1885261111U, // <3,6,2,u>: Cost 2 vzipr <1,0,3,2>, RHS
     3136876642U, // <3,6,3,0>: Cost 3 vtrnr <u,3,1,3>, <5,6,7,0>
-    4168812441U, // <3,6,3,1>: Cost 4 vtrnr <1,3,1,3>, <2,6,0,1>
+    3206103040U, // <3,6,3,1>: Cost 3 ins <u,6,3,1>, lane 0
     3001478044U, // <3,6,3,2>: Cost 3 vzipr <u,1,3,3>, <4,0,6,2>
-    2838825372U, // <3,6,3,3>: Cost 3 vuzpr <3,3,4,6>, <3,3,3,3>
+    2103844865U, // <3,6,3,3>: Cost 2 ins <3,u,3,3>, lane 1
     2632780290U, // <3,6,3,4>: Cost 3 vext2 <2,5,3,6>, <3,4,5,6>
-    4168812481U, // <3,6,3,5>: Cost 4 vtrnr <1,3,1,3>, <2,6,4,5>
-    2826732516U, // <3,6,3,6>: Cost 3 vuzpr <1,3,2,6>, <1,3,2,6>
+    3206135808U, // <3,6,3,5>: Cost 3 ins <u,6,3,5>, lane 0
+    1699457629U, // <3,6,3,6>: Cost 2 vuzpl <3,5,6,7>, <3,5,6,7>
     1885932854U, // <3,6,3,7>: Cost 2 vzipr <1,1,3,3>, RHS
     1885932855U, // <3,6,3,u>: Cost 2 vzipr <1,1,3,3>, RHS
     2732970588U, // <3,6,4,0>: Cost 3 vext3 LHS, <6,4,0,2>
@@ -2736,22 +2736,22 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2906673714U, // <3,6,4,3>: Cost 3 vzipl <3,4,5,6>, <6,3,4,5>
     2732970628U, // <3,6,4,4>: Cost 3 vext3 LHS, <6,4,4,6>
     2689839757U, // <3,6,4,5>: Cost 3 vext3 LHS, <6,4,5,6>
-    2826881538U, // <3,6,4,6>: Cost 3 vuzpr <1,3,4,6>, <3,4,5,6>
+    2132475904U, // <3,6,4,6>: Cost 2 ins <u,6,4,6>, lane 0
     1886604598U, // <3,6,4,7>: Cost 2 vzipr <1,2,3,4>, RHS
     1886604599U, // <3,6,4,u>: Cost 2 vzipr <1,2,3,4>, RHS
     2576498790U, // <3,6,5,0>: Cost 3 vext1 <4,3,6,5>, LHS
-    4175021977U, // <3,6,5,1>: Cost 4 vtrnr <2,3,4,5>, <2,6,0,1>
+    3206250496U, // <3,6,5,1>: Cost 3 ins <u,6,5,1>, lane 0
     2732970692U, // <3,6,5,2>: Cost 3 vext3 LHS, <6,5,2,7>
     2576501250U, // <3,6,5,3>: Cost 3 vext1 <4,3,6,5>, <3,4,5,6>
     3040891442U, // <3,6,5,4>: Cost 3 vtrnl <3,4,5,6>, <6,3,4,5>
-    4175022008U, // <3,6,5,5>: Cost 4 vtrnr <2,3,4,5>, <2,6,3,5>
-    2732970728U, // <3,6,5,6>: Cost 3 vext3 LHS, <6,5,6,7>
+    3206283264U, // <3,6,5,5>: Cost 3 ins <u,6,5,5>, lane 0
+    2104016897U, // <3,6,5,6>: Cost 2 ins <3,u,5,6>, lane 1
     2954382646U, // <3,6,5,7>: Cost 3 vzipr <0,2,3,5>, RHS
-    2954382647U, // <3,6,5,u>: Cost 3 vzipr <0,2,3,5>, RHS
+    2104016897U, // <3,6,5,u>: Cost 2 ins <3,u,5,6>, lane 1
     2732970748U, // <3,6,6,0>: Cost 3 vext3 LHS, <6,6,0,0>
     2724270856U, // <3,6,6,1>: Cost 3 vext3 <6,6,1,3>, <6,6,1,3>
     2732970768U, // <3,6,6,2>: Cost 3 vext3 LHS, <6,6,2,2>
-    4032112998U, // <3,6,6,3>: Cost 4 vzipr <0,u,3,6>, <3,2,6,3>
+    3177807873U, // <3,6,6,3>: Cost 3 ins <3,u,6,3>, lane 1
     2732970788U, // <3,6,6,4>: Cost 3 vext3 LHS, <6,6,4,4>
     2732970800U, // <3,6,6,5>: Cost 3 vext3 LHS, <6,6,5,7>
     1659228984U, // <3,6,6,6>: Cost 2 vext3 LHS, <6,6,6,6>
@@ -2768,11 +2768,11 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1888619831U, // <3,6,7,u>: Cost 2 vzipr <1,5,3,7>, RHS
     1659229087U, // <3,6,u,0>: Cost 2 vext3 LHS, <6,u,0,1>
     2689840041U, // <3,6,u,1>: Cost 3 vext3 LHS, <6,u,1,2>
-    2558609339U, // <3,6,u,2>: Cost 3 vext1 <1,3,6,u>, <2,6,3,u>
-    2826732189U, // <3,6,u,3>: Cost 3 vuzpr <1,3,2,6>, LHS
+    2132148224U, // <3,6,u,2>: Cost 2 ins <u,6,0,2>, lane 0
+    2132303872U, // <3,6,u,3>: Cost 2 ins <u,6,2,3>, lane 0
     1659229127U, // <3,6,u,4>: Cost 2 vext3 LHS, <6,u,4,5>
     2689840081U, // <3,6,u,5>: Cost 3 vext3 LHS, <6,u,5,6>
-    1659228984U, // <3,6,u,6>: Cost 2 vext3 LHS, <6,6,6,6>
+    2132475904U, // <3,6,u,6>: Cost 2 ins <u,6,4,6>, lane 0
     1885310262U, // <3,6,u,7>: Cost 2 vzipr <1,0,3,u>, RHS
     1885310263U, // <3,6,u,u>: Cost 2 vzipr <1,0,3,u>, RHS
     2826960896U, // <3,7,0,0>: Cost 3 vuzpr <1,3,5,7>, <0,0,0,0>
@@ -2786,7 +2786,7 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1553072797U, // <3,7,0,u>: Cost 2 vext2 <1,5,3,7>, LHS
     2626814710U, // <3,7,1,0>: Cost 3 vext2 <1,5,3,7>, <1,0,3,2>
     2826961716U, // <3,7,1,1>: Cost 3 vuzpr <1,3,5,7>, <1,1,1,1>
-    2626814870U, // <3,7,1,2>: Cost 3 vext2 <1,5,3,7>, <1,2,3,0>
+    2103689217U, // <3,7,1,2>: Cost 2 ins <3,u,1,2>, lane 1
     1753219174U, // <3,7,1,3>: Cost 2 vuzpr <1,3,5,7>, LHS
     2582514998U, // <3,7,1,4>: Cost 3 vext1 <5,3,7,1>, RHS
     1553073296U, // <3,7,1,5>: Cost 2 vext2 <1,5,3,7>, <1,5,3,7>
@@ -2794,9 +2794,9 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2727367810U, // <3,7,1,7>: Cost 3 vext3 <7,1,7,3>, <7,1,7,3>
     1753219179U, // <3,7,1,u>: Cost 2 vuzpr <1,3,5,7>, LHS
     2826961814U, // <3,7,2,0>: Cost 3 vuzpr <1,3,5,7>, <1,2,3,0>
-    2959003747U, // <3,7,2,1>: Cost 3 vzipr <1,0,3,2>, <5,6,7,1>
+    3206692864U, // <3,7,2,1>: Cost 3 ins <u,7,2,1>, lane 0
     2826961060U, // <3,7,2,2>: Cost 3 vuzpr <1,3,5,7>, <0,2,0,2>
-    2826962546U, // <3,7,2,3>: Cost 3 vuzpr <1,3,5,7>, <2,2,3,3>
+    2132967424U, // <3,7,2,3>: Cost 2 ins <u,7,2,3>, lane 0
     2826961818U, // <3,7,2,4>: Cost 3 vuzpr <1,3,5,7>, <1,2,3,4>
     2826961072U, // <3,7,2,5>: Cost 3 vuzpr <1,3,5,7>, <0,2,1,5>
     1559709626U, // <3,7,2,6>: Cost 2 vext2 <2,6,3,7>, <2,6,3,7>
@@ -2805,7 +2805,7 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2626816150U, // <3,7,3,0>: Cost 3 vext2 <1,5,3,7>, <3,0,1,2>
     2826962598U, // <3,7,3,1>: Cost 3 vuzpr <1,3,5,7>, <2,3,0,1>
     2633451878U, // <3,7,3,2>: Cost 3 vext2 <2,6,3,7>, <3,2,6,3>
-    2826961880U, // <3,7,3,3>: Cost 3 vuzpr <1,3,5,7>, <1,3,1,3>
+    2103844865U, // <3,7,3,3>: Cost 2 ins <3,u,3,3>, lane 1
     2626816514U, // <3,7,3,4>: Cost 3 vext2 <1,5,3,7>, <3,4,5,6>
     2826962638U, // <3,7,3,5>: Cost 3 vuzpr <1,3,5,7>, <2,3,4,5>
     2639424147U, // <3,7,3,6>: Cost 3 vext2 <3,6,3,7>, <3,6,3,7>
@@ -2826,7 +2826,7 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2626817903U, // <3,7,5,3>: Cost 3 vext2 <1,5,3,7>, <5,3,7,0>
     2826963555U, // <3,7,5,4>: Cost 3 vuzpr <1,3,5,7>, <3,5,7,4>
     2826962044U, // <3,7,5,5>: Cost 3 vuzpr <1,3,5,7>, <1,5,1,5>
-    2826962072U, // <3,7,5,6>: Cost 3 vuzpr <1,3,5,7>, <1,5,4,6>
+    2104016897U, // <3,7,5,6>: Cost 2 ins <3,u,5,6>, lane 1
     1753222454U, // <3,7,5,7>: Cost 2 vuzpr <1,3,5,7>, RHS
     1753222455U, // <3,7,5,u>: Cost 2 vuzpr <1,3,5,7>, RHS
     2732971478U, // <3,7,6,0>: Cost 3 vext3 LHS, <7,6,0,1>
@@ -2836,8 +2836,8 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2732971518U, // <3,7,6,4>: Cost 3 vext3 LHS, <7,6,4,5>
     2732971526U, // <3,7,6,5>: Cost 3 vext3 LHS, <7,6,5,4>
     2732971537U, // <3,7,6,6>: Cost 3 vext3 LHS, <7,6,6,6>
-    2826962874U, // <3,7,6,7>: Cost 3 vuzpr <1,3,5,7>, <2,6,3,7>
-    2826962875U, // <3,7,6,u>: Cost 3 vuzpr <1,3,5,7>, <2,6,3,u>
+    2133295104U, // <3,7,6,7>: Cost 2 ins <u,7,6,7>, lane 0
+    2133295104U, // <3,7,6,u>: Cost 2 ins <u,7,6,7>, lane 0
     2962362223U, // <3,7,7,0>: Cost 3 vzipr <1,5,3,7>, <5,3,7,0>
     2826965109U, // <3,7,7,1>: Cost 3 vuzpr <1,3,5,7>, <5,7,0,1>
     2968998474U, // <3,7,7,2>: Cost 3 vzipr <2,6,3,7>, <6,3,7,2>
@@ -2849,7 +2849,7 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1659229804U, // <3,7,7,u>: Cost 2 vext3 LHS, <7,7,7,7>
     2826962300U, // <3,7,u,0>: Cost 3 vuzpr <1,3,5,7>, <1,u,3,0>
     1553078062U, // <3,7,u,1>: Cost 2 vext2 <1,5,3,7>, LHS
-    2826961546U, // <3,7,u,2>: Cost 3 vuzpr <1,3,5,7>, <0,u,0,2>
+    2103689217U, // <3,7,u,2>: Cost 2 ins <3,u,1,2>, lane 1
     1753219741U, // <3,7,u,3>: Cost 2 vuzpr <1,3,5,7>, LHS
     2826962304U, // <3,7,u,4>: Cost 3 vuzpr <1,3,5,7>, <1,u,3,4>
     1553078426U, // <3,7,u,5>: Cost 2 vext2 <1,5,3,7>, RHS
@@ -2875,14 +2875,14 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2027212329U, // <3,u,1,7>: Cost 2 vtrnr <2,3,0,1>, RHS
     537712484U,  // <3,u,1,u>: Cost 1 vext3 LHS, LHS
     1659672428U, // <3,u,2,0>: Cost 2 vext3 LHS, <u,2,0,2>
-    2689841014U, // <3,u,2,1>: Cost 3 vext3 LHS, <u,2,1,3>
+    2128969728U, // <3,u,2,1>: Cost 2 ins <u,1,2,1>, lane 0
     1557063287U, // <3,u,2,2>: Cost 2 vext2 <2,2,3,u>, <2,2,3,u>
-    1616099205U, // <3,u,2,3>: Cost 2 vext3 LHS, <u,2,3,0>
+    1055244288U, // <3,u,2,3>: Cost 1 ins LHS, lane 0
     1659672468U, // <3,u,2,4>: Cost 2 vext3 LHS, <u,2,4,6>
-    2689841054U, // <3,u,2,5>: Cost 3 vext3 LHS, <u,2,5,7>
+    2129002496U, // <3,u,2,5>: Cost 2 ins <u,1,2,5>, lane 0
     1559717819U, // <3,u,2,6>: Cost 2 vext2 <2,6,3,u>, <2,6,3,u>
     1885261128U, // <3,u,2,7>: Cost 2 vzipr <1,0,3,2>, RHS
-    1616099253U, // <3,u,2,u>: Cost 2 vext3 LHS, <u,2,u,3>
+    1055244288U, // <3,u,2,u>: Cost 1 ins LHS, lane 0
     1611896764U, // <3,u,3,0>: Cost 2 vext3 LHS, <u,3,0,1>
     1616541639U, // <3,u,3,1>: Cost 2 vext3 LHS, <u,3,1,3>
     1966315310U, // <3,u,3,2>: Cost 2 vtrnl <3,3,3,3>, LHS
@@ -2902,7 +2902,7 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1886604616U, // <3,u,4,7>: Cost 2 vzipr <1,2,3,4>, RHS
     1611896922U, // <3,u,4,u>: Cost 2 vext3 LHS, <u,4,u,6>
     1490960486U, // <3,u,5,0>: Cost 2 vext1 <2,3,u,5>, LHS
-    2689841257U, // <3,u,5,1>: Cost 3 vext3 LHS, <u,5,1,3>
+    2128527360U, // <3,u,5,1>: Cost 2 ins <u,0,5,1>, lane 0
     1490962162U, // <3,u,5,2>: Cost 2 vext1 <2,3,u,5>, <2,3,u,5>
     1616541823U, // <3,u,5,3>: Cost 2 vext3 LHS, <u,5,3,7>
     1490963766U, // <3,u,5,4>: Cost 2 vext1 <2,3,u,5>, RHS
@@ -2911,158 +2911,158 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1752935734U, // <3,u,5,7>: Cost 2 vuzpr <1,3,1,u>, RHS
     537712812U,  // <3,u,5,u>: Cost 1 vext3 LHS, RHS
     1663875248U, // <3,u,6,0>: Cost 2 vext3 LHS, <u,6,0,2>
-    2690283706U, // <3,u,6,1>: Cost 3 vext3 LHS, <u,6,1,3>
-    2689841351U, // <3,u,6,2>: Cost 3 vext3 LHS, <u,6,2,7>
+    2131918848U, // <3,u,6,1>: Cost 2 ins <u,5,6,1>, lane 0
+    2128609280U, // <3,u,6,2>: Cost 2 ins <u,0,6,2>, lane 0
     1616099536U, // <3,u,6,3>: Cost 2 vext3 LHS, <u,6,3,7>
     1663875288U, // <3,u,6,4>: Cost 2 vext3 LHS, <u,6,4,6>
-    2690283746U, // <3,u,6,5>: Cost 3 vext3 LHS, <u,6,5,7>
-    1659228984U, // <3,u,6,6>: Cost 2 vext3 LHS, <6,6,6,6>
-    1659230445U, // <3,u,6,7>: Cost 2 vext3 LHS, <u,6,7,0>
-    1616099581U, // <3,u,6,u>: Cost 2 vext3 LHS, <u,6,u,7>
+    2131951616U, // <3,u,6,5>: Cost 2 ins <u,5,6,5>, lane 0
+    2131296256U, // <3,u,6,6>: Cost 2 ins <u,4,6,6>, lane 0
+    1058226176U, // <3,u,6,7>: Cost 1 ins RHS, lane 0
+    1058226176U, // <3,u,6,u>: Cost 1 ins RHS, lane 0
     1485004902U, // <3,u,7,0>: Cost 2 vext1 <1,3,u,7>, LHS
     1485005851U, // <3,u,7,1>: Cost 2 vext1 <1,3,u,7>, <1,3,u,7>
-    3095397002U, // <3,u,7,2>: Cost 3 vtrnr <1,3,5,7>, <0,u,0,2>
+    2098896898U, // <3,u,7,2>: Cost 2 ins <3,0,u,2>, lane 2
     2021655197U, // <3,u,7,3>: Cost 2 vtrnr <1,3,5,7>, LHS
     1485008182U, // <3,u,7,4>: Cost 2 vext1 <1,3,u,7>, RHS
     1659230515U, // <3,u,7,5>: Cost 2 vext3 LHS, <u,7,5,7>
-    3095397024U, // <3,u,7,6>: Cost 3 vtrnr <1,3,5,7>, <0,u,2,6>
+    2131369984U, // <3,u,7,6>: Cost 2 ins <u,4,7,6>, lane 0
     2021658153U, // <3,u,7,7>: Cost 2 vtrnr <1,3,5,7>, RHS
     2021655202U, // <3,u,7,u>: Cost 2 vtrnr <1,3,5,7>, LHS
     1616099665U, // <3,u,u,0>: Cost 2 vext3 LHS, <u,u,0,1>
     1611897179U, // <3,u,u,1>: Cost 2 vext3 LHS, <u,u,1,2>
     537712997U,  // <3,u,u,2>: Cost 1 vext3 LHS, LHS
-    336380006U,  // <3,u,u,3>: Cost 1 vdup3 LHS
+    1055244288U, // <3,u,u,3>: Cost 1 ins LHS, lane 0
     1616099705U, // <3,u,u,4>: Cost 2 vext3 LHS, <u,u,4,5>
     1611897219U, // <3,u,u,5>: Cost 2 vext3 LHS, <u,u,5,6>
     537713037U,  // <3,u,u,6>: Cost 1 vext3 LHS, RHS
-    1885310280U, // <3,u,u,7>: Cost 2 vzipr <1,0,3,u>, RHS
+    1058226176U, // <3,u,u,7>: Cost 1 ins RHS, lane 0
     537713051U,  // <3,u,u,u>: Cost 1 vext3 LHS, LHS
-    2691907584U, // <4,0,0,0>: Cost 3 vext3 <1,2,3,4>, <0,0,0,0>
-    1836204134U, // <4,0,0,1>: Cost 2 vzipl <4,0,5,1>, LHS
+    2128150528U, // <4,0,0,0>: Cost 2 ins <u,0,0,0>, lane 0
+    2104860674U, // <4,0,0,1>: Cost 2 ins <4,0,u,1>, lane 2
     1705607270U, // <4,0,0,2>: Cost 2 vuzpl <4,6,0,2>, LHS
-    4040764425U, // <4,0,0,3>: Cost 4 vzipr <2,3,4,0>, <4,2,0,3>
+    3178070019U, // <4,0,0,3>: Cost 3 ins <4,0,0,u>, lane 3
     2909946194U, // <4,0,0,4>: Cost 3 vzipl <4,0,5,1>, <0,4,1,5>
-    2909946270U, // <4,0,0,5>: Cost 3 vzipl <4,0,5,1>, <0,5,1,0>
-    3695264266U, // <4,0,0,6>: Cost 4 vext2 <0,6,4,0>, <0,6,4,0>
-    4040764753U, // <4,0,0,7>: Cost 4 vzipr <2,3,4,0>, <4,6,0,7>
+    3178070019U, // <4,0,0,5>: Cost 3 ins <4,0,0,u>, lane 3
+    3183362049U, // <4,0,0,6>: Cost 3 ins <4,u,0,6>, lane 1
+    2109628417U, // <4,0,0,7>: Cost 2 ins <4,u,0,7>, lane 1
     1705607324U, // <4,0,0,u>: Cost 2 vuzpl <4,6,0,2>, LHS
     2570715238U, // <4,0,1,0>: Cost 3 vext1 <3,4,0,1>, LHS
-    2570716058U, // <4,0,1,1>: Cost 3 vext1 <3,4,0,1>, <1,2,3,4>
+    2128232448U, // <4,0,1,1>: Cost 2 ins <u,0,1,1>, lane 0
     1618165862U, // <4,0,1,2>: Cost 2 vext3 <1,2,3,4>, LHS
     2833612902U, // <4,0,1,3>: Cost 3 vuzpr <2,4,6,0>, LHS
     2570718518U, // <4,0,1,4>: Cost 3 vext1 <3,4,0,1>, RHS
     2779350016U, // <4,0,1,5>: Cost 3 vuzpl <4,6,0,2>, <1,3,5,7>
-    2779350020U, // <4,0,1,6>: Cost 3 vuzpl <4,6,0,2>, <1,3,6,2>
-    2594608436U, // <4,0,1,7>: Cost 3 vext1 <7,4,0,1>, <7,4,0,1>
+    3202015232U, // <4,0,1,6>: Cost 3 ins <u,0,1,6>, lane 0
+    2109702145U, // <4,0,1,7>: Cost 2 ins <4,u,1,7>, lane 1
     1618165916U, // <4,0,1,u>: Cost 2 vext3 <1,2,3,4>, LHS
     2685714598U, // <4,0,2,0>: Cost 3 vext3 <0,2,0,4>, <0,2,0,4>
-    2911289446U, // <4,0,2,1>: Cost 3 vzipl <4,2,5,3>, LHS
-    2685862072U, // <4,0,2,2>: Cost 3 vext3 <0,2,2,4>, <0,2,2,4>
-    2631476937U, // <4,0,2,3>: Cost 3 vext2 <2,3,4,0>, <2,3,4,0>
+    2104860674U, // <4,0,2,1>: Cost 2 ins <4,0,u,1>, lane 2
+    2128314368U, // <4,0,2,2>: Cost 2 ins <u,0,2,2>, lane 0
+    2128322560U, // <4,0,2,3>: Cost 2 ins <u,0,2,3>, lane 0
     2685714636U, // <4,0,2,4>: Cost 3 vext3 <0,2,0,4>, <0,2,4,6>
-    3894968523U, // <4,0,2,5>: Cost 4 vuzpr <0,4,0,0>, <0,2,4,5>
+    3044622465U, // <4,0,2,5>: Cost 3 vtrnl <4,1,2,3>, <0,1,5,3>
     2833613004U, // <4,0,2,6>: Cost 3 vuzpr <2,4,6,0>, <0,2,4,6>
-    3853092743U, // <4,0,2,7>: Cost 4 vuzpl <4,6,0,2>, <2,5,7,1>
-    2686304494U, // <4,0,2,u>: Cost 3 vext3 <0,2,u,4>, <0,2,u,4>
-    3632529510U, // <4,0,3,0>: Cost 4 vext1 <1,4,0,3>, LHS
-    2686451968U, // <4,0,3,1>: Cost 3 vext3 <0,3,1,4>, <0,3,1,4>
-    3047997542U, // <4,0,3,2>: Cost 3 vtrnl <4,6,3,1>, LHS
+    2109775873U, // <4,0,2,7>: Cost 2 ins <4,u,2,7>, lane 1
+    2104860674U, // <4,0,2,u>: Cost 2 ins <4,0,u,1>, lane 2
+    3202113536U, // <4,0,3,0>: Cost 3 ins <u,0,3,0>, lane 0
+    2104860674U, // <4,0,3,1>: Cost 2 ins <4,0,u,1>, lane 2
+    2128388096U, // <4,0,3,2>: Cost 2 ins <u,0,3,2>, lane 0
     2779351452U, // <4,0,3,3>: Cost 3 vuzpl <4,6,0,2>, <3,3,3,3>
-    4028178598U, // <4,0,3,4>: Cost 4 vzipr <0,2,4,3>, <0,2,0,4>
+    3178627074U, // <4,0,3,4>: Cost 3 ins <4,0,u,4>, lane 2
     2839512782U, // <4,0,3,5>: Cost 3 vuzpr <3,4,5,0>, <2,3,4,5>
-    2779351557U, // <4,0,3,6>: Cost 3 vuzpl <4,6,0,2>, <3,4,6,0>
-    3907355648U, // <4,0,3,7>: Cost 4 vuzpr <2,4,6,0>, <1,3,5,7>
-    2839733969U, // <4,0,3,u>: Cost 3 vuzpr <3,4,u,0>, <2,3,4,u>
+    3178643458U, // <4,0,3,6>: Cost 3 ins <4,0,u,6>, lane 2
+    2109849601U, // <4,0,3,7>: Cost 2 ins <4,u,3,7>, lane 1
+    2104860674U, // <4,0,3,u>: Cost 2 ins <4,0,u,1>, lane 2
     1705610572U, // <4,0,4,0>: Cost 2 vuzpl <4,6,0,2>, <4,6,0,2>
-    1838809190U, // <4,0,4,1>: Cost 2 vzipl <4,4,4,4>, LHS
+    2104860674U, // <4,0,4,1>: Cost 2 ins <4,0,u,1>, lane 2
     1974370406U, // <4,0,4,2>: Cost 2 vtrnl <4,6,4,6>, LHS
-    3626567830U, // <4,0,4,3>: Cost 4 vext1 <0,4,0,4>, <3,0,1,2>
-    2552827190U, // <4,0,4,4>: Cost 3 vext1 <0,4,0,4>, RHS
+    3178364931U, // <4,0,4,3>: Cost 3 ins <4,0,4,u>, lane 3
+    2109898753U, // <4,0,4,4>: Cost 2 ins <4,u,4,4>, lane 1
     2631478582U, // <4,0,4,5>: Cost 3 vext2 <2,3,4,0>, RHS
     1705610550U, // <4,0,4,6>: Cost 2 vuzpl <4,6,0,2>, RHS
-    3853094282U, // <4,0,4,7>: Cost 4 vuzpl <4,6,0,2>, <4,6,7,1>
+    2109923329U, // <4,0,4,7>: Cost 2 ins <4,u,4,7>, lane 1
     1705610568U, // <4,0,4,u>: Cost 2 vuzpl <4,6,0,2>, RHS
     1839644672U, // <4,0,5,0>: Cost 2 vzipl RHS, <0,0,0,0>
     765902950U,  // <4,0,5,1>: Cost 1 vzipl RHS, LHS
     1839644836U, // <4,0,5,2>: Cost 2 vzipl RHS, <0,2,0,2>
-    2570750420U, // <4,0,5,3>: Cost 3 vext1 <3,4,0,5>, <3,4,0,5>
+    2104696835U, // <4,0,5,3>: Cost 2 ins <4,0,5,u>, lane 3
     1839645010U, // <4,0,5,4>: Cost 2 vzipl RHS, <0,4,1,5>
-    2913386926U, // <4,0,5,5>: Cost 3 vzipl RHS, <0,5,2,7>
-    2913386998U, // <4,0,5,6>: Cost 3 vzipl RHS, <0,6,1,7>
-    2833616182U, // <4,0,5,7>: Cost 3 vuzpr <2,4,6,0>, RHS
+    2109980673U, // <4,0,5,5>: Cost 2 ins <4,u,5,5>, lane 1
+    2104696835U, // <4,0,5,6>: Cost 2 ins <4,0,5,u>, lane 3
+    2104696835U, // <4,0,5,7>: Cost 2 ins <4,0,5,u>, lane 3
     765903517U,  // <4,0,5,u>: Cost 1 vzipl RHS, LHS
     1973862400U, // <4,0,6,0>: Cost 2 vtrnl RHS, <0,0,0,0>
     1973862410U, // <4,0,6,1>: Cost 2 vtrnl RHS, <0,0,1,1>
     900120678U,  // <4,0,6,2>: Cost 1 vtrnl RHS, LHS
-    3047604414U, // <4,0,6,3>: Cost 3 vtrnl RHS, <0,2,3,1>
+    2104770563U, // <4,0,6,3>: Cost 2 ins <4,0,6,u>, lane 3
     1973862604U, // <4,0,6,4>: Cost 2 vtrnl RHS, <0,2,4,6>
-    3047604438U, // <4,0,6,5>: Cost 3 vtrnl RHS, <0,2,5,7>
-    3047604446U, // <4,0,6,6>: Cost 3 vtrnl RHS, <0,2,6,6>
-    2779353594U, // <4,0,6,7>: Cost 3 vuzpl <4,6,0,2>, <6,2,7,3>
+    2104770563U, // <4,0,6,5>: Cost 2 ins <4,0,6,u>, lane 3
+    2110062593U, // <4,0,6,6>: Cost 2 ins <4,u,6,6>, lane 1
+    1036328961U, // <4,0,6,7>: Cost 1 ins RHS, lane 1
     900120732U,  // <4,0,6,u>: Cost 1 vtrnl RHS, LHS
-    4175773696U, // <4,0,7,0>: Cost 4 vtrnr <2,4,5,7>, <0,0,0,0>
-    2779354106U, // <4,0,7,1>: Cost 3 vuzpl <4,6,0,2>, <7,0,1,2>
-    3048292454U, // <4,0,7,2>: Cost 3 vtrnl <4,6,7,1>, LHS
-    3853096028U, // <4,0,7,3>: Cost 4 vuzpl <4,6,0,2>, <7,1,3,1>
-    4030865574U, // <4,0,7,4>: Cost 4 vzipr <0,6,4,7>, <0,2,0,4>
+    3202408448U, // <4,0,7,0>: Cost 3 ins <u,0,7,0>, lane 0
+    2104860674U, // <4,0,7,1>: Cost 2 ins <4,0,u,1>, lane 2
+    2104868866U, // <4,0,7,2>: Cost 2 ins <4,0,u,2>, lane 2
+    3114049557U, // <4,0,7,3>: Cost 3 vtrnr <4,4,6,7>, <0,0,2,3>
+    3178627074U, // <4,0,7,4>: Cost 3 ins <4,0,u,4>, lane 2
     2779354470U, // <4,0,7,5>: Cost 3 vuzpl <4,6,0,2>, <7,4,5,6>
     2779354473U, // <4,0,7,6>: Cost 3 vuzpl <4,6,0,2>, <7,4,6,0>
-    2779354732U, // <4,0,7,7>: Cost 3 vuzpl <4,6,0,2>, <7,7,7,7>
-    2779354169U, // <4,0,7,u>: Cost 3 vuzpl <4,6,0,2>, <7,0,u,2>
+    2110144513U, // <4,0,7,7>: Cost 2 ins <4,u,7,7>, lane 1
+    2104860674U, // <4,0,7,u>: Cost 2 ins <4,0,u,1>, lane 2
     1974009856U, // <4,0,u,0>: Cost 2 vtrnl RHS, <0,0,0,0>
     767893606U,  // <4,0,u,1>: Cost 1 vzipl RHS, LHS
     900268134U,  // <4,0,u,2>: Cost 1 vtrnl RHS, LHS
-    2833613469U, // <4,0,u,3>: Cost 3 vuzpr <2,4,6,0>, LHS
+    2104696835U, // <4,0,u,3>: Cost 2 ins <4,0,5,u>, lane 3
     1974010060U, // <4,0,u,4>: Cost 2 vtrnl RHS, <0,2,4,6>
-    2631481498U, // <4,0,u,5>: Cost 3 vext2 <2,3,4,0>, RHS
+    2109980673U, // <4,0,u,5>: Cost 2 ins <4,u,5,5>, lane 1
     1705613466U, // <4,0,u,6>: Cost 2 vuzpl <4,6,0,2>, RHS
-    2833616425U, // <4,0,u,7>: Cost 3 vuzpr <2,4,6,0>, RHS
+    1036328961U, // <4,0,u,7>: Cost 1 ins RHS, lane 1
     900268188U,  // <4,0,u,u>: Cost 1 vtrnl RHS, LHS
     2600640614U, // <4,1,0,0>: Cost 3 vext1 <u,4,1,0>, LHS
     2622857318U, // <4,1,0,1>: Cost 3 vext2 <0,u,4,1>, LHS
-    2775441510U, // <4,1,0,2>: Cost 3 vuzpl <4,0,1,2>, LHS
-    2691908342U, // <4,1,0,3>: Cost 3 vext3 <1,2,3,4>, <1,0,3,2>
+    2109587457U, // <4,1,0,2>: Cost 2 ins <4,u,0,2>, lane 1
+    2128838656U, // <4,1,0,3>: Cost 2 ins <u,1,0,3>, lane 0
     2622857554U, // <4,1,0,4>: Cost 3 vext2 <0,u,4,1>, <0,4,1,5>
     3047785472U, // <4,1,0,5>: Cost 3 vtrnl <4,6,0,2>, <1,3,5,7>
-    3047785476U, // <4,1,0,6>: Cost 3 vtrnl <4,6,0,2>, <1,3,6,2>
-    3936783220U, // <4,1,0,7>: Cost 4 vuzpr <7,4,0,1>, <4,0,1,7>
-    2622857901U, // <4,1,0,u>: Cost 3 vext2 <0,u,4,1>, <0,u,4,1>
-    3626615118U, // <4,1,1,0>: Cost 4 vext1 <0,4,1,1>, <0,4,1,1>
-    2691097399U, // <4,1,1,1>: Cost 3 vext3 <1,1,1,4>, <1,1,1,4>
+    3183362049U, // <4,1,0,6>: Cost 3 ins <4,u,0,6>, lane 1
+    2109628417U, // <4,1,0,7>: Cost 2 ins <4,u,0,7>, lane 1
+    2109587457U, // <4,1,0,u>: Cost 2 ins <4,u,0,2>, lane 1
+    3202629632U, // <4,1,1,0>: Cost 3 ins <u,1,1,0>, lane 0
+    2128896000U, // <4,1,1,1>: Cost 2 ins <u,1,1,1>, lane 0
     2631484314U, // <4,1,1,2>: Cost 3 vext2 <2,3,4,1>, <1,2,3,4>
-    2691908424U, // <4,1,1,3>: Cost 3 vext3 <1,2,3,4>, <1,1,3,3>
-    3626618166U, // <4,1,1,4>: Cost 4 vext1 <0,4,1,1>, RHS
+    2128912384U, // <4,1,1,3>: Cost 2 ins <u,1,1,3>, lane 0
+    3202662400U, // <4,1,1,4>: Cost 3 ins <u,1,1,4>, lane 0
     2958401874U, // <4,1,1,5>: Cost 3 vzipr <0,u,4,1>, <0,4,1,5>
-    3696600307U, // <4,1,1,6>: Cost 4 vext2 <0,u,4,1>, <1,6,5,7>
-    4032146778U, // <4,1,1,7>: Cost 4 vzipr <0,u,4,1>, <4,6,1,7>
-    2691908469U, // <4,1,1,u>: Cost 3 vext3 <1,2,3,4>, <1,1,u,3>
-    2570797158U, // <4,1,2,0>: Cost 3 vext1 <3,4,1,2>, LHS
-    2570797978U, // <4,1,2,1>: Cost 3 vext1 <3,4,1,2>, <1,2,3,4>
-    3696600680U, // <4,1,2,2>: Cost 4 vext2 <0,u,4,1>, <2,2,2,2>
-    1618166682U, // <4,1,2,3>: Cost 2 vext3 <1,2,3,4>, <1,2,3,4>
-    2839151514U, // <4,1,2,4>: Cost 3 vuzpr <3,4,0,1>, <1,2,3,4>
-    4032151890U, // <4,1,2,5>: Cost 4 vzipr <0,u,4,2>, <0,4,1,5>
-    3894976716U, // <4,1,2,6>: Cost 4 vuzpr <0,4,0,1>, <0,2,4,6>
-    3668432190U, // <4,1,2,7>: Cost 4 vext1 <7,4,1,2>, <7,4,1,2>
-    1618535367U, // <4,1,2,u>: Cost 2 vext3 <1,2,u,4>, <1,2,u,4>
+    2778801323U, // <4,1,1,6>: Cost 3 vuzpl <4,5,1,7>, <1,5,6,7>
+    2109702145U, // <4,1,1,7>: Cost 2 ins <4,u,1,7>, lane 1
+    2128896000U, // <4,1,1,u>: Cost 2 ins <u,1,1,1>, lane 0
+    2128961536U, // <4,1,2,0>: Cost 2 ins <u,1,2,0>, lane 0
+    2128969728U, // <4,1,2,1>: Cost 2 ins <u,1,2,1>, lane 0
+    2128977920U, // <4,1,2,2>: Cost 2 ins <u,1,2,2>, lane 0
+    1055244288U, // <4,1,2,3>: Cost 1 ins LHS, lane 0
+    2128994304U, // <4,1,2,4>: Cost 2 ins <u,1,2,4>, lane 0
+    2129002496U, // <4,1,2,5>: Cost 2 ins <u,1,2,5>, lane 0
+    2129010688U, // <4,1,2,6>: Cost 2 ins <u,1,2,6>, lane 0
+    2129018880U, // <4,1,2,7>: Cost 2 ins <u,1,2,7>, lane 0
+    1055244288U, // <4,1,2,u>: Cost 1 ins LHS, lane 0
     2564833382U, // <4,1,3,0>: Cost 3 vext1 <2,4,1,3>, LHS
     2691908568U, // <4,1,3,1>: Cost 3 vext3 <1,2,3,4>, <1,3,1,3>
     2691908578U, // <4,1,3,2>: Cost 3 vext3 <1,2,3,4>, <1,3,2,4>
-    2692572139U, // <4,1,3,3>: Cost 3 vext3 <1,3,3,4>, <1,3,3,4>
+    2129059840U, // <4,1,3,3>: Cost 2 ins <u,1,3,3>, lane 0
     2564836662U, // <4,1,3,4>: Cost 3 vext1 <2,4,1,3>, RHS
     2691908608U, // <4,1,3,5>: Cost 3 vext3 <1,2,3,4>, <1,3,5,7>
     2588725862U, // <4,1,3,6>: Cost 3 vext1 <6,4,1,3>, <6,4,1,3>
-    3912893440U, // <4,1,3,7>: Cost 4 vuzpr <3,4,0,1>, <1,3,5,7>
-    2691908631U, // <4,1,3,u>: Cost 3 vext3 <1,2,3,4>, <1,3,u,3>
+    2109849601U, // <4,1,3,7>: Cost 2 ins <4,u,3,7>, lane 1
+    2129059840U, // <4,1,3,u>: Cost 2 ins <u,1,3,3>, lane 0
     2600673382U, // <4,1,4,0>: Cost 3 vext1 <u,4,1,4>, LHS
-    2839153104U, // <4,1,4,1>: Cost 3 vuzpr <3,4,0,1>, <3,4,0,1>
+    1705061641U, // <4,1,4,1>: Cost 2 vuzpl <4,5,1,7>, <4,5,1,7>
     2912641946U, // <4,1,4,2>: Cost 3 vzipl <4,4,5,6>, <1,2,3,4>
     2040135782U, // <4,1,4,3>: Cost 2 vtrnr <4,4,4,4>, LHS
-    2600676560U, // <4,1,4,4>: Cost 3 vext1 <u,4,1,4>, <4,4,4,4>
+    2109898753U, // <4,1,4,4>: Cost 2 ins <4,u,4,4>, lane 1
     2622860598U, // <4,1,4,5>: Cost 3 vext2 <0,u,4,1>, RHS
-    2775444790U, // <4,1,4,6>: Cost 3 vuzpl <4,0,1,2>, RHS
-    3912894250U, // <4,1,4,7>: Cost 4 vuzpr <3,4,0,1>, <2,4,5,7>
-    2040135787U, // <4,1,4,u>: Cost 2 vtrnr <4,4,4,4>, LHS
+    2109915137U, // <4,1,4,6>: Cost 2 ins <4,u,4,6>, lane 1
+    2109923329U, // <4,1,4,7>: Cost 2 ins <4,u,4,7>, lane 1
+    2109915137U, // <4,1,4,u>: Cost 2 ins <4,u,4,6>, lane 1
     1479164242U, // <4,1,5,0>: Cost 2 vext1 <0,4,1,5>, <0,4,1,5>
     1839645492U, // <4,1,5,1>: Cost 2 vzipl RHS, <1,1,1,1>
     1839645590U, // <4,1,5,2>: Cost 2 vzipl RHS, <1,2,3,0>
@@ -3070,376 +3070,376 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1479167286U, // <4,1,5,4>: Cost 2 vext1 <0,4,1,5>, RHS
     1839645840U, // <4,1,5,5>: Cost 2 vzipl RHS, <1,5,3,7>
     3089776763U, // <4,1,5,6>: Cost 3 vtrnr <0,4,1,5>, <0,1,4,6>
-    2839153974U, // <4,1,5,7>: Cost 3 vuzpr <3,4,0,1>, RHS
+    2109997057U, // <4,1,5,7>: Cost 2 ins <4,u,5,7>, lane 1
     1479169838U, // <4,1,5,u>: Cost 2 vext1 <0,4,1,5>, LHS
-    2552914259U, // <4,1,6,0>: Cost 3 vext1 <0,4,1,6>, <0,4,1,6>
+    2110013441U, // <4,1,6,0>: Cost 2 ins <4,u,6,0>, lane 1
     1973863220U, // <4,1,6,1>: Cost 2 vtrnl RHS, <1,1,1,1>
-    2954463382U, // <4,1,6,2>: Cost 3 vzipr <0,2,4,6>, <3,0,1,2>
+    2110029825U, // <4,1,6,2>: Cost 2 ins <4,u,6,2>, lane 1
     2016116838U, // <4,1,6,3>: Cost 2 vtrnr <0,4,2,6>, LHS
-    2552917302U, // <4,1,6,4>: Cost 3 vext1 <0,4,1,6>, RHS
+    2110046209U, // <4,1,6,4>: Cost 2 ins <4,u,6,4>, lane 1
     1973863424U, // <4,1,6,5>: Cost 2 vtrnl RHS, <1,3,5,7>
-    3047605257U, // <4,1,6,6>: Cost 3 vtrnl RHS, <1,3,6,7>
-    2594723138U, // <4,1,6,7>: Cost 3 vext1 <7,4,1,6>, <7,4,1,6>
-    2016116843U, // <4,1,6,u>: Cost 2 vtrnr <0,4,2,6>, LHS
+    2110062593U, // <4,1,6,6>: Cost 2 ins <4,u,6,6>, lane 1
+    1036328961U, // <4,1,6,7>: Cost 1 ins RHS, lane 1
+    1036328961U, // <4,1,6,u>: Cost 1 ins RHS, lane 1
     2659357716U, // <4,1,7,0>: Cost 3 vext2 <7,0,4,1>, <7,0,4,1>
-    4169802548U, // <4,1,7,1>: Cost 4 vtrnr <1,4,5,7>, <1,1,1,1>
-    4042147990U, // <4,1,7,2>: Cost 4 vzipr <2,5,4,7>, <3,0,1,2>
-    3102031974U, // <4,1,7,3>: Cost 3 vtrnr <2,4,5,7>, LHS
+    3203080192U, // <4,1,7,1>: Cost 3 ins <u,1,7,1>, lane 0
+    3203088384U, // <4,1,7,2>: Cost 3 ins <u,1,7,2>, lane 0
+    2129354752U, // <4,1,7,3>: Cost 2 ins <u,1,7,3>, lane 0
     2664666470U, // <4,1,7,4>: Cost 3 vext2 <7,u,4,1>, <7,4,5,6>
-    3297387601U, // <4,1,7,5>: Cost 4 vrev <1,4,5,7>
-    3853178218U, // <4,1,7,6>: Cost 4 vuzpl <4,6,1,3>, <7,4,6,1>
-    3853162092U, // <4,1,7,7>: Cost 4 vuzpl <4,6,1,1>, <7,7,7,7>
-    3102031979U, // <4,1,7,u>: Cost 3 vtrnr <2,4,5,7>, LHS
+    3203112960U, // <4,1,7,5>: Cost 3 ins <u,1,7,5>, lane 0
+    3114049641U, // <4,1,7,6>: Cost 3 vtrnr <4,4,6,7>, <0,1,2,6>
+    2110144513U, // <4,1,7,7>: Cost 2 ins <4,u,7,7>, lane 1
+    2129354752U, // <4,1,7,u>: Cost 2 ins <u,1,7,3>, lane 0
     1479188821U, // <4,1,u,0>: Cost 2 vext1 <0,4,1,u>, <0,4,1,u>
     1974010676U, // <4,1,u,1>: Cost 2 vtrnl RHS, <1,1,1,1>
     1841636246U, // <4,1,u,2>: Cost 2 vzipl RHS, <1,2,3,0>
-    2016059494U, // <4,1,u,3>: Cost 2 vtrnr <0,4,1,u>, LHS
+    1055244288U, // <4,1,u,3>: Cost 1 ins LHS, lane 0
     1479191862U, // <4,1,u,4>: Cost 2 vext1 <0,4,1,u>, RHS
     1974010880U, // <4,1,u,5>: Cost 2 vtrnl RHS, <1,3,5,7>
-    2775447706U, // <4,1,u,6>: Cost 3 vuzpl <4,0,1,2>, RHS
-    2839154217U, // <4,1,u,7>: Cost 3 vuzpr <3,4,0,1>, RHS
-    1479194414U, // <4,1,u,u>: Cost 2 vext1 <0,4,1,u>, LHS
+    2109915137U, // <4,1,u,6>: Cost 2 ins <4,u,4,6>, lane 1
+    1036328961U, // <4,1,u,7>: Cost 1 ins RHS, lane 1
+    1055244288U, // <4,1,u,u>: Cost 1 ins LHS, lane 0
     3047786150U, // <4,2,0,0>: Cost 3 vtrnl <4,6,0,2>, <2,3,0,1>
     2622865510U, // <4,2,0,1>: Cost 3 vext2 <0,u,4,2>, LHS
-    2622865612U, // <4,2,0,2>: Cost 3 vext2 <0,u,4,2>, <0,2,4,6>
+    2129494016U, // <4,2,0,2>: Cost 2 ins <u,2,0,2>, lane 0
     2967019622U, // <4,2,0,3>: Cost 3 vzipr <2,3,4,0>, LHS
     2635473244U, // <4,2,0,4>: Cost 3 vext2 <3,0,4,2>, <0,4,2,6>
     2909947747U, // <4,2,0,5>: Cost 3 vzipl <4,0,5,1>, <2,5,3,1>
     2696775148U, // <4,2,0,6>: Cost 3 vext3 <2,0,6,4>, <2,0,6,4>
-    4121528199U, // <4,2,0,7>: Cost 4 vtrnl <4,6,0,2>, <2,5,7,1>
-    2622866094U, // <4,2,0,u>: Cost 3 vext2 <0,u,4,2>, <0,u,4,2>
-    3696607990U, // <4,2,1,0>: Cost 4 vext2 <0,u,4,2>, <1,0,3,2>
-    3894985524U, // <4,2,1,1>: Cost 4 vuzpr <0,4,0,2>, <1,1,1,1>
-    4032143380U, // <4,2,1,2>: Cost 4 vzipr <0,u,4,1>, <0,0,2,2>
+    2109628417U, // <4,2,0,7>: Cost 2 ins <4,u,0,7>, lane 1
+    2129494016U, // <4,2,0,u>: Cost 2 ins <u,2,0,2>, lane 0
+    3203293184U, // <4,2,1,0>: Cost 3 ins <u,2,1,0>, lane 0
+    3203301376U, // <4,2,1,1>: Cost 3 ins <u,2,1,1>, lane 0
+    3203309568U, // <4,2,1,2>: Cost 3 ins <u,2,1,2>, lane 0
     2821242982U, // <4,2,1,3>: Cost 3 vuzpr <0,4,0,2>, LHS
     2691909162U, // <4,2,1,4>: Cost 3 vext3 <1,2,3,4>, <2,1,4,3>
-    3696608400U, // <4,2,1,5>: Cost 4 vext2 <0,u,4,2>, <1,5,3,7>
-    4163412172U, // <4,2,1,6>: Cost 4 vtrnr <0,4,0,1>, <0,2,4,6>
-    3303458614U, // <4,2,1,7>: Cost 4 vrev <2,4,7,1>
-    2821242987U, // <4,2,1,u>: Cost 3 vuzpr <0,4,0,2>, LHS
+    3203334144U, // <4,2,1,5>: Cost 3 ins <u,2,1,5>, lane 0
+    3203342336U, // <4,2,1,6>: Cost 3 ins <u,2,1,6>, lane 0
+    2109702145U, // <4,2,1,7>: Cost 2 ins <4,u,1,7>, lane 1
+    2109702145U, // <4,2,1,u>: Cost 2 ins <4,u,1,7>, lane 1
     2229208824U, // <4,2,2,0>: Cost 3 vrev <2,4,0,2>
-    3696608828U, // <4,2,2,1>: Cost 4 vext2 <0,u,4,2>, <2,1,6,3>
-    2691909224U, // <4,2,2,2>: Cost 3 vext3 <1,2,3,4>, <2,2,2,2>
-    2958409830U, // <4,2,2,3>: Cost 3 vzipr <0,u,4,2>, LHS
+    2911397400U, // <4,2,2,1>: Cost 3 vzipl <4,2,6,7>, <2,1,2,3>
+    2129641472U, // <4,2,2,2>: Cost 2 ins <u,2,2,2>, lane 0
+    2129649664U, // <4,2,2,3>: Cost 2 ins <u,2,2,3>, lane 0
     2697954940U, // <4,2,2,4>: Cost 3 vext3 <2,2,4,4>, <2,2,4,4>
-    3696609156U, // <4,2,2,5>: Cost 4 vext2 <0,u,4,2>, <2,5,6,7>
+    2911397764U, // <4,2,2,5>: Cost 3 vzipl <4,2,6,7>, <2,5,6,7>
     2821243084U, // <4,2,2,6>: Cost 3 vuzpr <0,4,0,2>, <0,2,4,6>
-    4163423290U, // <4,2,2,7>: Cost 4 vtrnr <0,4,0,2>, <4,2,5,7>
-    2958409835U, // <4,2,2,u>: Cost 3 vzipr <0,u,4,2>, LHS
-    2691909286U, // <4,2,3,0>: Cost 3 vext3 <1,2,3,4>, <2,3,0,1>
+    2109775873U, // <4,2,2,7>: Cost 2 ins <4,u,2,7>, lane 1
+    2129641472U, // <4,2,2,u>: Cost 2 ins <u,2,2,2>, lane 0
+    2129698816U, // <4,2,3,0>: Cost 2 ins <u,2,3,0>, lane 0
     2229290754U, // <4,2,3,1>: Cost 3 vrev <2,4,1,3>
-    3626706546U, // <4,2,3,2>: Cost 4 vext1 <0,4,2,3>, <2,2,3,3>
-    2691909316U, // <4,2,3,3>: Cost 3 vext3 <1,2,3,4>, <2,3,3,4>
-    2685863630U, // <4,2,3,4>: Cost 3 vext3 <0,2,2,4>, <2,3,4,5>
+    3203457024U, // <4,2,3,2>: Cost 3 ins <u,2,3,2>, lane 0
+    2129723392U, // <4,2,3,3>: Cost 2 ins <u,2,3,3>, lane 0
+    2129731584U, // <4,2,3,4>: Cost 2 ins <u,2,3,4>, lane 0
     2833188558U, // <4,2,3,5>: Cost 3 vuzpr <2,4,0,2>, <2,3,4,5>
-    3894985700U, // <4,2,3,6>: Cost 4 vuzpr <0,4,0,2>, <1,3,2,6>
-    2698839784U, // <4,2,3,7>: Cost 3 vext3 <2,3,7,4>, <2,3,7,4>
-    2691909358U, // <4,2,3,u>: Cost 3 vext3 <1,2,3,4>, <2,3,u,1>
+    3203489792U, // <4,2,3,6>: Cost 3 ins <u,2,3,6>, lane 0
+    2109849601U, // <4,2,3,7>: Cost 2 ins <4,u,3,7>, lane 1
+    2129698816U, // <4,2,3,u>: Cost 2 ins <u,2,3,0>, lane 0
     2564915302U, // <4,2,4,0>: Cost 3 vext1 <2,4,2,4>, LHS
     2564916122U, // <4,2,4,1>: Cost 3 vext1 <2,4,2,4>, <1,2,3,4>
-    2821243206U, // <4,2,4,2>: Cost 3 vuzpr <0,4,0,2>, <0,4,0,2>
+    1702448074U, // <4,2,4,2>: Cost 2 vuzpl <4,1,2,3>, <4,1,2,3>
     1905918054U, // <4,2,4,3>: Cost 2 vzipr <4,4,4,4>, LHS
-    2564918582U, // <4,2,4,4>: Cost 3 vext1 <2,4,2,4>, RHS
+    2109898753U, // <4,2,4,4>: Cost 2 ins <4,u,4,4>, lane 1
     2622868790U, // <4,2,4,5>: Cost 3 vext2 <0,u,4,2>, RHS
-    3089694924U, // <4,2,4,6>: Cost 3 vtrnr <0,4,0,4>, <0,2,4,6>
-    3912976170U, // <4,2,4,7>: Cost 4 vuzpr <3,4,1,2>, <2,4,5,7>
-    1905918059U, // <4,2,4,u>: Cost 2 vzipr <4,4,4,4>, LHS
+    2129821696U, // <4,2,4,6>: Cost 2 ins <u,2,4,6>, lane 0
+    2109923329U, // <4,2,4,7>: Cost 2 ins <4,u,4,7>, lane 1
+    2129821696U, // <4,2,4,u>: Cost 2 ins <u,2,4,6>, lane 0
     3089777558U, // <4,2,5,0>: Cost 3 vtrnr <0,4,1,5>, <1,2,3,0>
-    2558952500U, // <4,2,5,1>: Cost 3 vext1 <1,4,2,5>, <1,4,2,5>
+    2109947905U, // <4,2,5,1>: Cost 2 ins <4,u,5,1>, lane 1
     1839646312U, // <4,2,5,2>: Cost 2 vzipl RHS, <2,2,2,2>
     1893318758U, // <4,2,5,3>: Cost 2 vzipr <2,3,4,5>, LHS
     3089777562U, // <4,2,5,4>: Cost 3 vtrnr <0,4,1,5>, <1,2,3,4>
-    2913388366U, // <4,2,5,5>: Cost 3 vzipl RHS, <2,5,0,7>
+    2109980673U, // <4,2,5,5>: Cost 2 ins <4,u,5,5>, lane 1
     1839646650U, // <4,2,5,6>: Cost 2 vzipl RHS, <2,6,3,7>
-    2821246262U, // <4,2,5,7>: Cost 3 vuzpr <0,4,0,2>, RHS
+    2109997057U, // <4,2,5,7>: Cost 2 ins <4,u,5,7>, lane 1
     1893318763U, // <4,2,5,u>: Cost 2 vzipr <2,3,4,5>, LHS
     1479246172U, // <4,2,6,0>: Cost 2 vext1 <0,4,2,6>, <0,4,2,6>
-    2552988406U, // <4,2,6,1>: Cost 3 vext1 <0,4,2,6>, <1,0,3,2>
+    2110021633U, // <4,2,6,1>: Cost 2 ins <4,u,6,1>, lane 1
     1973864040U, // <4,2,6,2>: Cost 2 vtrnl RHS, <2,2,2,2>
     1880719462U, // <4,2,6,3>: Cost 2 vzipr <0,2,4,6>, LHS
     1479249206U, // <4,2,6,4>: Cost 2 vext1 <0,4,2,6>, RHS
-    2229610281U, // <4,2,6,5>: Cost 3 vrev <2,4,5,6>
-    2954461532U, // <4,2,6,6>: Cost 3 vzipr <0,2,4,6>, <0,4,2,6>
-    2658702198U, // <4,2,6,7>: Cost 3 vext2 <6,u,4,2>, <6,7,4,5>
-    1880719467U, // <4,2,6,u>: Cost 2 vzipr <0,2,4,6>, LHS
+    2110054401U, // <4,2,6,5>: Cost 2 ins <4,u,6,5>, lane 1
+    2110062593U, // <4,2,6,6>: Cost 2 ins <4,u,6,6>, lane 1
+    1036328961U, // <4,2,6,7>: Cost 1 ins RHS, lane 1
+    1036328961U, // <4,2,6,u>: Cost 1 ins RHS, lane 1
     2659365909U, // <4,2,7,0>: Cost 3 vext2 <7,0,4,2>, <7,0,4,2>
-    3853227002U, // <4,2,7,1>: Cost 4 vuzpl <4,6,2,0>, <7,0,1,2>
-    4175773860U, // <4,2,7,2>: Cost 4 vtrnr <2,4,5,7>, <0,2,0,2>
-    2968404070U, // <4,2,7,3>: Cost 3 vzipr <2,5,4,7>, LHS
+    3203743744U, // <4,2,7,1>: Cost 3 ins <u,2,7,1>, lane 0
+    3203751936U, // <4,2,7,2>: Cost 3 ins <u,2,7,2>, lane 0
+    2130018304U, // <4,2,7,3>: Cost 2 ins <u,2,7,3>, lane 0
     3102032794U, // <4,2,7,4>: Cost 3 vtrnr <2,4,5,7>, <1,2,3,4>
     2229618474U, // <4,2,7,5>: Cost 3 vrev <2,4,5,7>
-    4175773900U, // <4,2,7,6>: Cost 4 vtrnr <2,4,5,7>, <0,2,4,6>
-    3853227628U, // <4,2,7,7>: Cost 4 vuzpl <4,6,2,0>, <7,7,7,7>
-    2229839685U, // <4,2,7,u>: Cost 3 vrev <2,4,u,7>
+    3203784704U, // <4,2,7,6>: Cost 3 ins <u,2,7,6>, lane 0
+    2110144513U, // <4,2,7,7>: Cost 2 ins <4,u,7,7>, lane 1
+    2130018304U, // <4,2,7,u>: Cost 2 ins <u,2,7,3>, lane 0
     1479262558U, // <4,2,u,0>: Cost 2 vext1 <0,4,2,u>, <0,4,2,u>
-    2553004790U, // <4,2,u,1>: Cost 3 vext1 <0,4,2,u>, <1,0,3,2>
+    2109947905U, // <4,2,u,1>: Cost 2 ins <4,u,5,1>, lane 1
     1974011496U, // <4,2,u,2>: Cost 2 vtrnl RHS, <2,2,2,2>
     1880735846U, // <4,2,u,3>: Cost 2 vzipr <0,2,4,u>, LHS
     1479265590U, // <4,2,u,4>: Cost 2 vext1 <0,4,2,u>, RHS
-    2622871706U, // <4,2,u,5>: Cost 3 vext2 <0,u,4,2>, RHS
+    2109980673U, // <4,2,u,5>: Cost 2 ins <4,u,5,5>, lane 1
     1841637306U, // <4,2,u,6>: Cost 2 vzipl RHS, <2,6,3,7>
-    2821246505U, // <4,2,u,7>: Cost 3 vuzpr <0,4,0,2>, RHS
-    1880735851U, // <4,2,u,u>: Cost 2 vzipr <0,2,4,u>, LHS
-    2909948054U, // <4,3,0,0>: Cost 3 vzipl <4,0,5,1>, <3,0,1,2>
-    2691909782U, // <4,3,0,1>: Cost 3 vext3 <1,2,3,4>, <3,0,1,2>
-    2702452897U, // <4,3,0,2>: Cost 3 vext3 <3,0,2,4>, <3,0,2,4>
+    1036328961U, // <4,2,u,7>: Cost 1 ins RHS, lane 1
+    1036328961U, // <4,2,u,u>: Cost 1 ins RHS, lane 1
+    3203883008U, // <4,3,0,0>: Cost 3 ins <u,3,0,0>, lane 0
+    2130149376U, // <4,3,0,1>: Cost 2 ins <u,3,0,1>, lane 0
+    2109587457U, // <4,3,0,2>: Cost 2 ins <4,u,0,2>, lane 1
     3047786908U, // <4,3,0,3>: Cost 3 vtrnl <4,6,0,2>, <3,3,3,3>
     2967020442U, // <4,3,0,4>: Cost 3 vzipr <2,3,4,0>, <1,2,3,4>
     2235533820U, // <4,3,0,5>: Cost 3 vrev <3,4,5,0>
-    2235607557U, // <4,3,0,6>: Cost 3 vrev <3,4,6,0>
-    4040762512U, // <4,3,0,7>: Cost 4 vzipr <2,3,4,0>, <1,5,3,7>
-    2691909845U, // <4,3,0,u>: Cost 3 vext3 <1,2,3,4>, <3,0,u,2>
+    3183362049U, // <4,3,0,6>: Cost 3 ins <4,u,0,6>, lane 1
+    2109628417U, // <4,3,0,7>: Cost 2 ins <4,u,0,7>, lane 1
+    2130149376U, // <4,3,0,u>: Cost 2 ins <u,3,0,1>, lane 0
     2235173328U, // <4,3,1,0>: Cost 3 vrev <3,4,0,1>
-    3764840678U, // <4,3,1,1>: Cost 4 vext3 <1,1,1,4>, <3,1,1,1>
+    3203964928U, // <4,3,1,1>: Cost 3 ins <u,3,1,1>, lane 0
     2630173594U, // <4,3,1,2>: Cost 3 vext2 <2,1,4,3>, <1,2,3,4>
-    2833268838U, // <4,3,1,3>: Cost 3 vuzpr <2,4,1,3>, LHS
+    2130239488U, // <4,3,1,3>: Cost 2 ins <u,3,1,3>, lane 0
     2967028634U, // <4,3,1,4>: Cost 3 vzipr <2,3,4,1>, <1,2,3,4>
-    4032144445U, // <4,3,1,5>: Cost 4 vzipr <0,u,4,1>, <1,4,3,5>
-    3777153302U, // <4,3,1,6>: Cost 4 vext3 <3,1,6,4>, <3,1,6,4>
-    4032144528U, // <4,3,1,7>: Cost 4 vzipr <0,u,4,1>, <1,5,3,7>
-    2833268843U, // <4,3,1,u>: Cost 3 vuzpr <2,4,1,3>, LHS
-    3626770785U, // <4,3,2,0>: Cost 4 vext1 <0,4,3,2>, <0,4,3,2>
+    3203997696U, // <4,3,1,5>: Cost 3 ins <u,3,1,5>, lane 0
+    2821398633U, // <4,3,1,6>: Cost 3 vuzpr <0,4,2,3>, <0,1,2,6>
+    2109702145U, // <4,3,1,7>: Cost 2 ins <4,u,1,7>, lane 1
+    2130239488U, // <4,3,1,u>: Cost 2 ins <u,3,1,3>, lane 0
+    3204030464U, // <4,3,2,0>: Cost 3 ins <u,3,2,0>, lane 0
     2630174250U, // <4,3,2,1>: Cost 3 vext2 <2,1,4,3>, <2,1,4,3>
-    4032152310U, // <4,3,2,2>: Cost 4 vzipr <0,u,4,2>, <1,0,3,2>
-    2703853900U, // <4,3,2,3>: Cost 3 vext3 <3,2,3,4>, <3,2,3,4>
+    3204046848U, // <4,3,2,2>: Cost 3 ins <u,3,2,2>, lane 0
+    2130313216U, // <4,3,2,3>: Cost 2 ins <u,3,2,3>, lane 0
     2833269658U, // <4,3,2,4>: Cost 3 vuzpr <2,4,1,3>, <1,2,3,4>
     3101624014U, // <4,3,2,5>: Cost 3 vtrnr <2,4,0,2>, <2,3,4,5>
-    4163421156U, // <4,3,2,6>: Cost 4 vtrnr <0,4,0,2>, <1,3,2,6>
-    4163421184U, // <4,3,2,7>: Cost 4 vtrnr <0,4,0,2>, <1,3,5,7>
-    2634819681U, // <4,3,2,u>: Cost 3 vext2 <2,u,4,3>, <2,u,4,3>
-    2911930518U, // <4,3,3,0>: Cost 3 vzipl <4,3,5,0>, <3,0,1,2>
+    3204079616U, // <4,3,2,6>: Cost 3 ins <u,3,2,6>, lane 0
+    2109775873U, // <4,3,2,7>: Cost 2 ins <4,u,2,7>, lane 1
+    2130313216U, // <4,3,2,u>: Cost 2 ins <u,3,2,3>, lane 0
+    3204104192U, // <4,3,3,0>: Cost 3 ins <u,3,3,0>, lane 0
     2779564182U, // <4,3,3,1>: Cost 3 vuzpl <4,6,3,1>, <3,0,1,2>
     2636810580U, // <4,3,3,2>: Cost 3 vext2 <3,2,4,3>, <3,2,4,3>
-    2691910044U, // <4,3,3,3>: Cost 3 vext3 <1,2,3,4>, <3,3,3,3>
+    2130386944U, // <4,3,3,3>: Cost 2 ins <u,3,3,3>, lane 0
     2965717914U, // <4,3,3,4>: Cost 3 vzipr <2,1,4,3>, <1,2,3,4>
     2779597314U, // <4,3,3,5>: Cost 3 vuzpl <4,6,3,5>, <3,4,5,6>
-    3703917212U, // <4,3,3,6>: Cost 4 vext2 <2,1,4,3>, <3,6,4,7>
-    3769633220U, // <4,3,3,7>: Cost 4 vext3 <1,u,3,4>, <3,3,7,7>
-    2640792378U, // <4,3,3,u>: Cost 3 vext2 <3,u,4,3>, <3,u,4,3>
+    2778950237U, // <4,3,3,6>: Cost 3 vuzpl <4,5,3,7>, <3,5,6,7>
+    2109849601U, // <4,3,3,7>: Cost 2 ins <4,u,3,7>, lane 1
+    2130386944U, // <4,3,3,u>: Cost 2 ins <u,3,3,3>, lane 0
     2691910096U, // <4,3,4,0>: Cost 3 vext3 <1,2,3,4>, <3,4,0,1>
     2691910106U, // <4,3,4,1>: Cost 3 vext3 <1,2,3,4>, <3,4,1,2>
-    2564990741U, // <4,3,4,2>: Cost 3 vext1 <2,4,3,4>, <2,4,3,4>
-    2833270530U, // <4,3,4,3>: Cost 3 vuzpr <2,4,1,3>, <2,4,1,3>
-    2691910136U, // <4,3,4,4>: Cost 3 vext3 <1,2,3,4>, <3,4,4,5>
-    2686454274U, // <4,3,4,5>: Cost 3 vext3 <0,3,1,4>, <3,4,5,6>
-    2779565366U, // <4,3,4,6>: Cost 3 vuzpl <4,6,3,1>, RHS
-    2979660944U, // <4,3,4,7>: Cost 3 vzipr <4,4,4,4>, <1,5,3,7>
-    2691910168U, // <4,3,4,u>: Cost 3 vext3 <1,2,3,4>, <3,4,u,1>
+    3183624193U, // <4,3,4,2>: Cost 3 ins <4,u,4,2>, lane 1
+    1747657049U, // <4,3,4,3>: Cost 2 vuzpr <0,4,2,3>, <0,4,2,3>
+    2109898753U, // <4,3,4,4>: Cost 2 ins <4,u,4,4>, lane 1
+    2130477056U, // <4,3,4,5>: Cost 2 ins <u,3,4,5>, lane 0
+    2109915137U, // <4,3,4,6>: Cost 2 ins <4,u,4,6>, lane 1
+    2109923329U, // <4,3,4,7>: Cost 2 ins <4,u,4,7>, lane 1
+    2130477056U, // <4,3,4,u>: Cost 2 ins <u,3,4,5>, lane 0
     1839646870U, // <4,3,5,0>: Cost 2 vzipl RHS, <3,0,1,2>
-    3089778342U, // <4,3,5,1>: Cost 3 vtrnr <0,4,1,5>, <2,3,0,1>
+    2109947905U, // <4,3,5,1>: Cost 2 ins <4,u,5,1>, lane 1
     2967061238U, // <4,3,5,2>: Cost 3 vzipr <2,3,4,5>, <1,0,3,2>
     1839647132U, // <4,3,5,3>: Cost 2 vzipl RHS, <3,3,3,3>
     1839647234U, // <4,3,5,4>: Cost 2 vzipl RHS, <3,4,5,6>
-    3089777653U, // <4,3,5,5>: Cost 3 vtrnr <0,4,1,5>, <1,3,4,5>
+    2109980673U, // <4,3,5,5>: Cost 2 ins <4,u,5,5>, lane 1
     2913389176U, // <4,3,5,6>: Cost 3 vzipl RHS, <3,6,0,7>
-    3089777664U, // <4,3,5,7>: Cost 3 vtrnr <0,4,1,5>, <1,3,5,7>
+    2130567168U, // <4,3,5,7>: Cost 2 ins <u,3,5,7>, lane 0
     1839647518U, // <4,3,5,u>: Cost 2 vzipl RHS, <3,u,1,2>
-    2954462102U, // <4,3,6,0>: Cost 3 vzipr <0,2,4,6>, <1,2,3,0>
+    2110013441U, // <4,3,6,0>: Cost 2 ins <4,u,6,0>, lane 1
     1973864598U, // <4,3,6,1>: Cost 2 vtrnl RHS, <3,0,1,2>
-    2954461942U, // <4,3,6,2>: Cost 3 vzipr <0,2,4,6>, <1,0,3,2>
+    2110029825U, // <4,3,6,2>: Cost 2 ins <4,u,6,2>, lane 1
     1973864860U, // <4,3,6,3>: Cost 2 vtrnl RHS, <3,3,3,3>
-    2954462106U, // <4,3,6,4>: Cost 3 vzipr <0,2,4,6>, <1,2,3,4>
+    2110046209U, // <4,3,6,4>: Cost 2 ins <4,u,6,4>, lane 1
     1161841154U, // <4,3,6,5>: Cost 2 vrev <3,4,5,6>
-    2954462108U, // <4,3,6,6>: Cost 3 vzipr <0,2,4,6>, <1,2,3,6>
-    2954462352U, // <4,3,6,7>: Cost 3 vzipr <0,2,4,6>, <1,5,3,7>
-    1162062365U, // <4,3,6,u>: Cost 2 vrev <3,4,u,6>
-    3769633475U, // <4,3,7,0>: Cost 4 vext3 <1,u,3,4>, <3,7,0,1>
-    3769633486U, // <4,3,7,1>: Cost 4 vext3 <1,u,3,4>, <3,7,1,3>
+    2110062593U, // <4,3,6,6>: Cost 2 ins <4,u,6,6>, lane 1
+    1036328961U, // <4,3,6,7>: Cost 1 ins RHS, lane 1
+    1036328961U, // <4,3,6,u>: Cost 1 ins RHS, lane 1
+    3204399104U, // <4,3,7,0>: Cost 3 ins <u,3,7,0>, lane 0
+    3204407296U, // <4,3,7,1>: Cost 3 ins <u,3,7,1>, lane 0
     2660701368U, // <4,3,7,2>: Cost 3 vext2 <7,2,4,3>, <7,2,4,3>
-    3769633508U, // <4,3,7,3>: Cost 4 vext3 <1,u,3,4>, <3,7,3,7>
+    3204423680U, // <4,3,7,3>: Cost 3 ins <u,3,7,3>, lane 0
     2968404890U, // <4,3,7,4>: Cost 3 vzipr <2,5,4,7>, <1,2,3,4>
-    3769633526U, // <4,3,7,5>: Cost 4 vext3 <1,u,3,4>, <3,7,5,7>
-    4048784828U, // <4,3,7,6>: Cost 4 vzipr <3,6,4,7>, <4,7,3,6>
-    4175627264U, // <4,3,7,7>: Cost 4 vtrnr <2,4,3,7>, <1,3,5,7>
-    2664683166U, // <4,3,7,u>: Cost 3 vext2 <7,u,4,3>, <7,u,4,3>
+    3204440064U, // <4,3,7,5>: Cost 3 ins <u,3,7,5>, lane 0
+    2778953153U, // <4,3,7,6>: Cost 3 vuzpl <4,5,3,7>, <7,5,6,7>
+    2110144513U, // <4,3,7,7>: Cost 2 ins <4,u,7,7>, lane 1
+    2110144513U, // <4,3,7,u>: Cost 2 ins <4,u,7,7>, lane 1
     1841637526U, // <4,3,u,0>: Cost 2 vzipl RHS, <3,0,1,2>
     1974012054U, // <4,3,u,1>: Cost 2 vtrnl RHS, <3,0,1,2>
-    2954478326U, // <4,3,u,2>: Cost 3 vzipr <0,2,4,u>, <1,0,3,2>
+    2109587457U, // <4,3,u,2>: Cost 2 ins <4,u,0,2>, lane 1
     1974012316U, // <4,3,u,3>: Cost 2 vtrnl RHS, <3,3,3,3>
     1841637890U, // <4,3,u,4>: Cost 2 vzipl RHS, <3,4,5,6>
     1161857540U, // <4,3,u,5>: Cost 2 vrev <3,4,5,u>
-    3047754086U, // <4,3,u,6>: Cost 3 vtrnl RHS, <3,2,6,3>
-    2954478736U, // <4,3,u,7>: Cost 3 vzipr <0,2,4,u>, <1,5,3,7>
-    1162078751U, // <4,3,u,u>: Cost 2 vrev <3,4,u,u>
+    2109915137U, // <4,3,u,6>: Cost 2 ins <4,u,4,6>, lane 1
+    1036328961U, // <4,3,u,7>: Cost 1 ins RHS, lane 1
+    1036328961U, // <4,3,u,u>: Cost 1 ins RHS, lane 1
     1974046028U, // <4,4,0,0>: Cost 2 vtrnl <4,6,0,2>, <4,6,0,2>
     1570373734U, // <4,4,0,1>: Cost 2 vext2 <4,4,4,4>, LHS
     1705934950U, // <4,4,0,2>: Cost 2 vuzpl <4,6,4,6>, LHS
-    3760196480U, // <4,4,0,3>: Cost 4 vext3 <0,3,1,4>, <4,0,3,1>
-    2778333388U, // <4,4,0,4>: Cost 3 vuzpl <4,4,4,4>, <0,2,4,6>
-    1836207414U, // <4,4,0,5>: Cost 2 vzipl <4,0,5,1>, RHS
+    3180724227U, // <4,4,0,3>: Cost 3 ins <4,4,0,u>, lane 3
+    2107539458U, // <4,4,0,4>: Cost 2 ins <4,4,u,4>, lane 2
+    2107547650U, // <4,4,0,5>: Cost 2 ins <4,4,u,5>, lane 2
     1974046006U, // <4,4,0,6>: Cost 2 vtrnl <4,6,0,2>, RHS
-    4040763250U, // <4,4,0,7>: Cost 4 vzipr <2,3,4,0>, <2,5,4,7>
+    2109628417U, // <4,4,0,7>: Cost 2 ins <4,u,0,7>, lane 1
     1974046024U, // <4,4,0,u>: Cost 2 vtrnl <4,6,0,2>, RHS
-    2644116214U, // <4,4,1,0>: Cost 3 vext2 <4,4,4,4>, <1,0,3,2>
-    2958402221U, // <4,4,1,1>: Cost 3 vzipr <0,u,4,1>, <0,u,4,1>
+    3204620288U, // <4,4,1,0>: Cost 3 ins <u,4,1,0>, lane 0
+    1836665802U, // <4,4,1,1>: Cost 2 vzipl <4,1,2,3>, <4,1,2,3>
     2691910602U, // <4,4,1,2>: Cost 3 vext3 <1,2,3,4>, <4,1,2,3>
     1771700326U, // <4,4,1,3>: Cost 2 vuzpr <4,4,4,4>, LHS
-    2644116540U, // <4,4,1,4>: Cost 3 vext2 <4,4,4,4>, <1,4,3,4>
-    2910407990U, // <4,4,1,5>: Cost 3 vzipl <4,1,2,3>, RHS
-    3043880246U, // <4,4,1,6>: Cost 3 vtrnl <4,0,1,2>, RHS
-    4040771442U, // <4,4,1,7>: Cost 4 vzipr <2,3,4,1>, <2,5,4,7>
-    1771700331U, // <4,4,1,u>: Cost 2 vuzpr <4,4,4,4>, LHS
+    2107539458U, // <4,4,1,4>: Cost 2 ins <4,4,u,4>, lane 2
+    2130919424U, // <4,4,1,5>: Cost 2 ins <u,4,1,5>, lane 0
+    2107555842U, // <4,4,1,6>: Cost 2 ins <4,4,u,6>, lane 2
+    2109702145U, // <4,4,1,7>: Cost 2 ins <4,u,1,7>, lane 1
+    2130919424U, // <4,4,1,u>: Cost 2 ins <u,4,1,5>, lane 0
     2779678374U, // <4,4,2,0>: Cost 3 vuzpl <4,6,4,6>, <2,3,0,1>
-    3765652499U, // <4,4,2,1>: Cost 4 vext3 <1,2,3,4>, <4,2,1,4>
-    3089678662U, // <4,4,2,2>: Cost 3 vtrnr <0,4,0,2>, <0,4,0,2>
-    2631509709U, // <4,4,2,3>: Cost 3 vext2 <2,3,4,4>, <2,3,4,4>
-    2833351578U, // <4,4,2,4>: Cost 3 vuzpr <2,4,2,4>, <1,2,3,4>
-    2970355406U, // <4,4,2,5>: Cost 3 vzipr <2,u,4,2>, <2,3,4,5>
-    2821259468U, // <4,4,2,6>: Cost 3 vuzpr <0,4,0,4>, <0,2,4,6>
-    4181411626U, // <4,4,2,7>: Cost 4 vtrnr <3,4,1,2>, <2,4,5,7>
-    2833793230U, // <4,4,2,u>: Cost 3 vuzpr <2,4,u,4>, <0,2,4,u>
-    2644117654U, // <4,4,3,0>: Cost 3 vext2 <4,4,4,4>, <3,0,1,2>
+    3044625673U, // <4,4,2,1>: Cost 3 vtrnl <4,1,2,3>, <4,5,1,7>
+    1970883530U, // <4,4,2,2>: Cost 2 vtrnl <4,1,2,3>, <4,1,2,3>
+    2130976768U, // <4,4,2,3>: Cost 2 ins <u,4,2,3>, lane 0
+    2107539458U, // <4,4,2,4>: Cost 2 ins <4,4,u,4>, lane 2
+    2107547650U, // <4,4,2,5>: Cost 2 ins <4,4,u,5>, lane 2
+    2131001344U, // <4,4,2,6>: Cost 2 ins <u,4,2,6>, lane 0
+    2109775873U, // <4,4,2,7>: Cost 2 ins <4,u,2,7>, lane 1
+    2107547650U, // <4,4,2,u>: Cost 2 ins <4,4,u,5>, lane 2
+    3181248514U, // <4,4,3,0>: Cost 3 ins <4,4,u,0>, lane 2
     2779678870U, // <4,4,3,1>: Cost 3 vuzpl <4,6,4,6>, <3,0,1,2>
-    3704588628U, // <4,4,3,2>: Cost 4 vext2 <2,2,4,4>, <3,2,4,3>
-    2965718570U, // <4,4,3,3>: Cost 3 vzipr <2,1,4,3>, <2,1,4,3>
-    2638146039U, // <4,4,3,4>: Cost 3 vext2 <3,4,4,4>, <3,4,4,4>
-    2839545550U, // <4,4,3,5>: Cost 3 vuzpr <3,4,5,4>, <2,3,4,5>
-    3048000822U, // <4,4,3,6>: Cost 3 vtrnl <4,6,3,1>, RHS
-    2845443072U, // <4,4,3,7>: Cost 3 vuzpr <4,4,4,4>, <1,3,5,7>
-    2839766737U, // <4,4,3,u>: Cost 3 vuzpr <3,4,u,4>, <2,3,4,u>
+    3181264898U, // <4,4,3,2>: Cost 3 ins <4,4,u,2>, lane 2
+    1880031352U, // <4,4,3,3>: Cost 2 vzipr <0,1,4,3>, <0,1,4,3>
+    2107539458U, // <4,4,3,4>: Cost 2 ins <4,4,u,4>, lane 2
+    2107547650U, // <4,4,3,5>: Cost 2 ins <4,4,u,5>, lane 2
+    2107555842U, // <4,4,3,6>: Cost 2 ins <4,4,u,6>, lane 2
+    2109849601U, // <4,4,3,7>: Cost 2 ins <4,u,3,7>, lane 1
+    2107547650U, // <4,4,3,u>: Cost 2 ins <4,4,u,5>, lane 2
     1503264870U, // <4,4,4,0>: Cost 2 vext1 <4,4,4,4>, LHS
-    2577007350U, // <4,4,4,1>: Cost 3 vext1 <4,4,4,4>, <1,0,3,2>
-    2577008232U, // <4,4,4,2>: Cost 3 vext1 <4,4,4,4>, <2,2,2,2>
-    2571037175U, // <4,4,4,3>: Cost 3 vext1 <3,4,4,4>, <3,4,4,4>
+    2107277315U, // <4,4,4,1>: Cost 2 ins <4,4,4,u>, lane 3
+    2107277315U, // <4,4,4,2>: Cost 2 ins <4,4,4,u>, lane 3
+    2107277315U, // <4,4,4,3>: Cost 2 ins <4,4,4,u>, lane 3
     161926454U,  // <4,4,4,4>: Cost 1 vdup0 RHS
-    1570377014U, // <4,4,4,5>: Cost 2 vext2 <4,4,4,4>, RHS
+    2107547650U, // <4,4,4,5>: Cost 2 ins <4,4,u,5>, lane 2
     1705938230U, // <4,4,4,6>: Cost 2 vuzpl <4,6,4,6>, RHS
-    2594927963U, // <4,4,4,7>: Cost 3 vext1 <7,4,4,4>, <7,4,4,4>
+    2109923329U, // <4,4,4,7>: Cost 2 ins <4,u,4,7>, lane 1
     161926454U,  // <4,4,4,u>: Cost 1 vdup0 RHS
     1839647634U, // <4,4,5,0>: Cost 2 vzipl RHS, <4,0,5,1>
-    2571043738U, // <4,4,5,1>: Cost 3 vext1 <3,4,4,5>, <1,2,3,4>
-    2913389621U, // <4,4,5,2>: Cost 3 vzipl RHS, <4,2,5,2>
-    2571045368U, // <4,4,5,3>: Cost 3 vext1 <3,4,4,5>, <3,4,4,5>
+    2109947905U, // <4,4,5,1>: Cost 2 ins <4,u,5,1>, lane 1
+    2107351043U, // <4,4,5,2>: Cost 2 ins <4,4,5,u>, lane 3
+    2107351043U, // <4,4,5,3>: Cost 2 ins <4,4,5,u>, lane 3
     1839647952U, // <4,4,5,4>: Cost 2 vzipl RHS, <4,4,4,4>
     765906230U,  // <4,4,5,5>: Cost 1 vzipl RHS, RHS
     1618169142U, // <4,4,5,6>: Cost 2 vext3 <1,2,3,4>, RHS
-    1771703606U, // <4,4,5,7>: Cost 2 vuzpr <4,4,4,4>, RHS
+    2107351043U, // <4,4,5,7>: Cost 2 ins <4,4,5,u>, lane 3
     765906473U,  // <4,4,5,u>: Cost 1 vzipl RHS, RHS
     1973865804U, // <4,4,6,0>: Cost 2 vtrnl RHS, <4,6,0,2>
-    3047607151U, // <4,4,6,1>: Cost 3 vtrnl RHS, <4,0,1,2>
-    2565080864U, // <4,4,6,2>: Cost 3 vext1 <2,4,4,6>, <2,4,4,6>
-    3047607654U, // <4,4,6,3>: Cost 3 vtrnl RHS, <4,6,3,1>
+    2107424771U, // <4,4,6,1>: Cost 2 ins <4,4,6,u>, lane 3
+    2110029825U, // <4,4,6,2>: Cost 2 ins <4,u,6,2>, lane 1
+    2107424771U, // <4,4,6,3>: Cost 2 ins <4,4,6,u>, lane 3
     1973865680U, // <4,4,6,4>: Cost 2 vtrnl RHS, <4,4,4,4>
     1973865362U, // <4,4,6,5>: Cost 2 vtrnl RHS, <4,0,5,1>
     900123958U,  // <4,4,6,6>: Cost 1 vtrnl RHS, RHS
-    3047607690U, // <4,4,6,7>: Cost 3 vtrnl RHS, <4,6,7,1>
+    1036328961U, // <4,4,6,7>: Cost 1 ins RHS, lane 1
     900123976U,  // <4,4,6,u>: Cost 1 vtrnl RHS, RHS
-    2644120570U, // <4,4,7,0>: Cost 3 vext2 <4,4,4,4>, <7,0,1,2>
+    3181248514U, // <4,4,7,0>: Cost 3 ins <4,4,u,0>, lane 2
     2779681786U, // <4,4,7,1>: Cost 3 vuzpl <4,6,4,6>, <7,0,1,2>
-    3638830881U, // <4,4,7,2>: Cost 4 vext1 <2,4,4,7>, <2,4,4,7>
-    2845446272U, // <4,4,7,3>: Cost 3 vuzpr <4,4,4,4>, <5,7,1,3>
-    2662036827U, // <4,4,7,4>: Cost 3 vext2 <7,4,4,4>, <7,4,4,4>
-    2779682150U, // <4,4,7,5>: Cost 3 vuzpl <4,6,4,6>, <7,4,5,6>
-    2779682157U, // <4,4,7,6>: Cost 3 vuzpl <4,6,4,6>, <7,4,6,4>
-    3102033706U, // <4,4,7,7>: Cost 3 vtrnr <2,4,5,7>, <2,4,5,7>
-    2779681849U, // <4,4,7,u>: Cost 3 vuzpl <4,6,4,6>, <7,0,u,2>
+    3181264898U, // <4,4,7,2>: Cost 3 ins <4,4,u,2>, lane 2
+    2845442636U, // <4,4,7,3>: Cost 3 vuzpr <4,4,4,4>, <0,7,2,3>
+    2107539458U, // <4,4,7,4>: Cost 2 ins <4,4,u,4>, lane 2
+    2107547650U, // <4,4,7,5>: Cost 2 ins <4,4,u,5>, lane 2
+    2131369984U, // <4,4,7,6>: Cost 2 ins <u,4,7,6>, lane 0
+    2040311013U, // <4,4,7,7>: Cost 2 vtrnr <4,4,6,7>, <4,4,6,7>
+    2107547650U, // <4,4,7,u>: Cost 2 ins <4,4,u,5>, lane 2
     1974013260U, // <4,4,u,0>: Cost 2 vtrnl RHS, <4,6,0,2>
-    1570379566U, // <4,4,u,1>: Cost 2 vext2 <4,4,4,4>, LHS
+    2109947905U, // <4,4,u,1>: Cost 2 ins <4,u,5,1>, lane 1
     1705940782U, // <4,4,u,2>: Cost 2 vuzpl <4,6,4,6>, LHS
-    1771700893U, // <4,4,u,3>: Cost 2 vuzpr <4,4,4,4>, LHS
+    2107351043U, // <4,4,u,3>: Cost 2 ins <4,4,5,u>, lane 3
     161926454U,  // <4,4,u,4>: Cost 1 vdup0 RHS
     767896886U,  // <4,4,u,5>: Cost 1 vzipl RHS, RHS
     900271414U,  // <4,4,u,6>: Cost 1 vtrnl RHS, RHS
-    1771703849U, // <4,4,u,7>: Cost 2 vuzpr <4,4,4,4>, RHS
+    1036328961U, // <4,4,u,7>: Cost 1 ins RHS, lane 1
     900271432U,  // <4,4,u,u>: Cost 1 vtrnl RHS, RHS
-    2821341184U, // <4,5,0,0>: Cost 3 vuzpr <0,4,1,5>, <0,0,0,0>
+    2108170242U, // <4,5,0,0>: Cost 2 ins <4,5,u,0>, lane 2
     1557774438U, // <4,5,0,1>: Cost 2 vext2 <2,3,4,5>, LHS
     1707294822U, // <4,5,0,2>: Cost 2 vuzpl <4,u,5,1>, LHS
-    2571078140U, // <4,5,0,3>: Cost 3 vext1 <3,4,5,0>, <3,4,5,0>
-    2821341197U, // <4,5,0,4>: Cost 3 vuzpr <0,4,1,5>, <0,0,1,4>
-    3047788548U, // <4,5,0,5>: Cost 3 vtrnl <4,6,0,2>, <5,5,5,5>
-    3047788716U, // <4,5,0,6>: Cost 3 vtrnl <4,6,0,2>, <5,7,6,2>
-    3102051638U, // <4,5,0,7>: Cost 3 vtrnr <2,4,6,0>, RHS
-    1557775005U, // <4,5,0,u>: Cost 2 vext2 <2,3,4,5>, LHS
-    2821344226U, // <4,5,1,0>: Cost 3 vuzpr <0,4,1,5>, <4,1,5,0>
-    2821341266U, // <4,5,1,1>: Cost 3 vuzpr <0,4,1,5>, <0,1,0,1>
-    2821341267U, // <4,5,1,2>: Cost 3 vuzpr <0,4,1,5>, <0,1,0,2>
+    2108194818U, // <4,5,0,3>: Cost 2 ins <4,5,u,3>, lane 2
+    2108203010U, // <4,5,0,4>: Cost 2 ins <4,5,u,4>, lane 2
+    2108211202U, // <4,5,0,5>: Cost 2 ins <4,5,u,5>, lane 2
+    2108219394U, // <4,5,0,6>: Cost 2 ins <4,5,u,6>, lane 2
+    1034485762U, // <4,5,0,7>: Cost 1 ins RHS, lane 2
+    1034485762U, // <4,5,0,u>: Cost 1 ins RHS, lane 2
+    2108170242U, // <4,5,1,0>: Cost 2 ins <4,5,u,0>, lane 2
+    2108178434U, // <4,5,1,1>: Cost 2 ins <4,5,u,1>, lane 2
+    2108186626U, // <4,5,1,2>: Cost 2 ins <4,5,u,2>, lane 2
     1747599462U, // <4,5,1,3>: Cost 2 vuzpr <0,4,1,5>, LHS
-    2821344230U, // <4,5,1,4>: Cost 3 vuzpr <0,4,1,5>, <4,1,5,4>
-    2821342755U, // <4,5,1,5>: Cost 3 vuzpr <0,4,1,5>, <2,1,3,5>
-    2821341307U, // <4,5,1,6>: Cost 3 vuzpr <0,4,1,5>, <0,1,4,6>
-    3107589430U, // <4,5,1,7>: Cost 3 vtrnr <3,4,0,1>, RHS
-    1747599467U, // <4,5,1,u>: Cost 2 vuzpr <0,4,1,5>, LHS
-    2821342102U, // <4,5,2,0>: Cost 3 vuzpr <0,4,1,5>, <1,2,3,0>
-    3692652056U, // <4,5,2,1>: Cost 4 vext2 <0,2,4,5>, <2,1,2,3>
-    2821341348U, // <4,5,2,2>: Cost 3 vuzpr <0,4,1,5>, <0,2,0,2>
+    2108203010U, // <4,5,1,4>: Cost 2 ins <4,5,u,4>, lane 2
+    2108211202U, // <4,5,1,5>: Cost 2 ins <4,5,u,5>, lane 2
+    2108219394U, // <4,5,1,6>: Cost 2 ins <4,5,u,6>, lane 2
+    1034485762U, // <4,5,1,7>: Cost 1 ins RHS, lane 2
+    1034485762U, // <4,5,1,u>: Cost 1 ins RHS, lane 2
+    2108170242U, // <4,5,2,0>: Cost 2 ins <4,5,u,0>, lane 2
+    2108178434U, // <4,5,2,1>: Cost 2 ins <4,5,u,1>, lane 2
+    2108186626U, // <4,5,2,2>: Cost 2 ins <4,5,u,2>, lane 2
     1557776078U, // <4,5,2,3>: Cost 2 vext2 <2,3,4,5>, <2,3,4,5>
-    2821342106U, // <4,5,2,4>: Cost 3 vuzpr <0,4,1,5>, <1,2,3,4>
-    3692652384U, // <4,5,2,5>: Cost 4 vext2 <0,2,4,5>, <2,5,2,7>
-    2821341388U, // <4,5,2,6>: Cost 3 vuzpr <0,4,1,5>, <0,2,4,6>
-    3089681718U, // <4,5,2,7>: Cost 3 vtrnr <0,4,0,2>, RHS
-    1561094243U, // <4,5,2,u>: Cost 2 vext2 <2,u,4,5>, <2,u,4,5>
-    2631518358U, // <4,5,3,0>: Cost 3 vext2 <2,3,4,5>, <3,0,1,2>
-    2821342886U, // <4,5,3,1>: Cost 3 vuzpr <0,4,1,5>, <2,3,0,1>
-    2631518540U, // <4,5,3,2>: Cost 3 vext2 <2,3,4,5>, <3,2,3,4>
-    2821342168U, // <4,5,3,3>: Cost 3 vuzpr <0,4,1,5>, <1,3,1,3>
-    2821347263U, // <4,5,3,4>: Cost 3 vuzpr <0,4,1,5>, <u,3,0,4>
-    2821342197U, // <4,5,3,5>: Cost 3 vuzpr <0,4,1,5>, <1,3,4,5>
-    2658060980U, // <4,5,3,6>: Cost 3 vext2 <6,7,4,5>, <3,6,7,4>
-    2821342208U, // <4,5,3,7>: Cost 3 vuzpr <0,4,1,5>, <1,3,5,7>
-    2821342173U, // <4,5,3,u>: Cost 3 vuzpr <0,4,1,5>, <1,3,1,u>
-    2571108454U, // <4,5,4,0>: Cost 3 vext1 <3,4,5,4>, LHS
-    3048116352U, // <4,5,4,1>: Cost 3 vtrnl <4,6,4,6>, <5,7,1,3>
-    2571110094U, // <4,5,4,2>: Cost 3 vext1 <3,4,5,4>, <2,3,4,5>
-    2571110912U, // <4,5,4,3>: Cost 3 vext1 <3,4,5,4>, <3,4,5,4>
-    2571111734U, // <4,5,4,4>: Cost 3 vext1 <3,4,5,4>, RHS
+    2108203010U, // <4,5,2,4>: Cost 2 ins <4,5,u,4>, lane 2
+    2108211202U, // <4,5,2,5>: Cost 2 ins <4,5,u,5>, lane 2
+    2108219394U, // <4,5,2,6>: Cost 2 ins <4,5,u,6>, lane 2
+    1034485762U, // <4,5,2,7>: Cost 1 ins RHS, lane 2
+    1034485762U, // <4,5,2,u>: Cost 1 ins RHS, lane 2
+    2108170242U, // <4,5,3,0>: Cost 2 ins <4,5,u,0>, lane 2
+    2108178434U, // <4,5,3,1>: Cost 2 ins <4,5,u,1>, lane 2
+    2108186626U, // <4,5,3,2>: Cost 2 ins <4,5,u,2>, lane 2
+    2108194818U, // <4,5,3,3>: Cost 2 ins <4,5,u,3>, lane 2
+    2108203010U, // <4,5,3,4>: Cost 2 ins <4,5,u,4>, lane 2
+    2108211202U, // <4,5,3,5>: Cost 2 ins <4,5,u,5>, lane 2
+    2108219394U, // <4,5,3,6>: Cost 2 ins <4,5,u,6>, lane 2
+    1034485762U, // <4,5,3,7>: Cost 1 ins RHS, lane 2
+    1034485762U, // <4,5,3,u>: Cost 1 ins RHS, lane 2
+    2108170242U, // <4,5,4,0>: Cost 2 ins <4,5,u,0>, lane 2
+    2108178434U, // <4,5,4,1>: Cost 2 ins <4,5,u,1>, lane 2
+    2108186626U, // <4,5,4,2>: Cost 2 ins <4,5,u,2>, lane 2
+    2108194818U, // <4,5,4,3>: Cost 2 ins <4,5,u,3>, lane 2
+    2109898753U, // <4,5,4,4>: Cost 2 ins <4,u,4,4>, lane 1
     1747599698U, // <4,5,4,5>: Cost 2 vuzpr <0,4,1,5>, <0,4,1,5>
     1707298102U, // <4,5,4,6>: Cost 2 vuzpl <4,u,5,1>, RHS
-    2040139062U, // <4,5,4,7>: Cost 2 vtrnr <4,4,4,4>, RHS
-    1557777961U, // <4,5,4,u>: Cost 2 vext2 <2,3,4,5>, RHS
+    1034485762U, // <4,5,4,7>: Cost 1 ins RHS, lane 2
+    1034485762U, // <4,5,4,u>: Cost 1 ins RHS, lane 2
     1503346790U, // <4,5,5,0>: Cost 2 vext1 <4,4,5,5>, LHS
     1839656656U, // <4,5,5,1>: Cost 2 vzipl RHS, <5,1,7,3>
-    2967063038U, // <4,5,5,2>: Cost 3 vzipr <2,3,4,5>, <3,4,5,2>
-    2821344517U, // <4,5,5,3>: Cost 3 vuzpr <0,4,1,5>, <4,5,1,3>
+    2108186626U, // <4,5,5,2>: Cost 2 ins <4,5,u,2>, lane 2
+    2108194818U, // <4,5,5,3>: Cost 2 ins <4,5,u,3>, lane 2
     1839648710U, // <4,5,5,4>: Cost 2 vzipl RHS, <5,4,7,6>
     1839648772U, // <4,5,5,5>: Cost 2 vzipl RHS, <5,5,5,5>
     1839648866U, // <4,5,5,6>: Cost 2 vzipl RHS, <5,6,7,0>
-    1747602742U, // <4,5,5,7>: Cost 2 vuzpr <0,4,1,5>, RHS
-    1747602743U, // <4,5,5,u>: Cost 2 vuzpr <0,4,1,5>, RHS
-    1497383014U, // <4,5,6,0>: Cost 2 vext1 <3,4,5,6>, LHS
-    1973866624U, // <4,5,6,1>: Cost 2 vtrnl RHS, <5,7,1,3>
-    2565154601U, // <4,5,6,2>: Cost 3 vext1 <2,4,5,6>, <2,4,5,6>
-    1497385474U, // <4,5,6,3>: Cost 2 vext1 <3,4,5,6>, <3,4,5,6>
-    1497386294U, // <4,5,6,4>: Cost 2 vext1 <3,4,5,6>, RHS
-    1973866500U, // <4,5,6,5>: Cost 2 vtrnl RHS, <5,5,5,5>
-    2954463746U, // <4,5,6,6>: Cost 3 vzipr <0,2,4,6>, <3,4,5,6>
+    1034485762U, // <4,5,5,7>: Cost 1 ins RHS, lane 2
+    1034485762U, // <4,5,5,u>: Cost 1 ins RHS, lane 2
+    1034346499U, // <4,5,6,0>: Cost 1 ins RHS, lane 3
+    1034346499U, // <4,5,6,1>: Cost 1 ins RHS, lane 3
+    1034346499U, // <4,5,6,2>: Cost 1 ins RHS, lane 3
+    1034346499U, // <4,5,6,3>: Cost 1 ins RHS, lane 3
+    1034346499U, // <4,5,6,4>: Cost 1 ins RHS, lane 3
+    1034346499U, // <4,5,6,5>: Cost 1 ins RHS, lane 3
+    1034346499U, // <4,5,6,6>: Cost 1 ins RHS, lane 3
     27705344U,   // <4,5,6,7>: Cost 0 copy RHS
     27705344U,   // <4,5,6,u>: Cost 0 copy RHS
-    2565161062U, // <4,5,7,0>: Cost 3 vext1 <2,4,5,7>, LHS
-    2565161882U, // <4,5,7,1>: Cost 3 vext1 <2,4,5,7>, <1,2,3,4>
-    2565162794U, // <4,5,7,2>: Cost 3 vext1 <2,4,5,7>, <2,4,5,7>
-    2661381387U, // <4,5,7,3>: Cost 3 vext2 <7,3,4,5>, <7,3,4,5>
-    2565164342U, // <4,5,7,4>: Cost 3 vext1 <2,4,5,7>, RHS
-    2780403046U, // <4,5,7,5>: Cost 3 vuzpl <4,7,5,4>, <7,4,5,6>
-    2718748846U, // <4,5,7,6>: Cost 3 vext3 <5,6,7,4>, <5,7,6,4>
-    3102035254U, // <4,5,7,7>: Cost 3 vtrnr <2,4,5,7>, RHS
-    2565166894U, // <4,5,7,u>: Cost 3 vext1 <2,4,5,7>, LHS
-    1497399398U, // <4,5,u,0>: Cost 2 vext1 <3,4,5,u>, LHS
-    1557780270U, // <4,5,u,1>: Cost 2 vext2 <2,3,4,5>, LHS
-    1707300654U, // <4,5,u,2>: Cost 2 vuzpl <4,u,5,1>, LHS
-    1747600029U, // <4,5,u,3>: Cost 2 vuzpr <0,4,1,5>, LHS
-    1497402678U, // <4,5,u,4>: Cost 2 vext1 <3,4,5,u>, RHS
-    1557780634U, // <4,5,u,5>: Cost 2 vext2 <2,3,4,5>, RHS
-    1707301018U, // <4,5,u,6>: Cost 2 vuzpl <4,u,5,1>, RHS
+    2108170242U, // <4,5,7,0>: Cost 2 ins <4,5,u,0>, lane 2
+    2108178434U, // <4,5,7,1>: Cost 2 ins <4,5,u,1>, lane 2
+    2108186626U, // <4,5,7,2>: Cost 2 ins <4,5,u,2>, lane 2
+    2108194818U, // <4,5,7,3>: Cost 2 ins <4,5,u,3>, lane 2
+    2108203010U, // <4,5,7,4>: Cost 2 ins <4,5,u,4>, lane 2
+    2108211202U, // <4,5,7,5>: Cost 2 ins <4,5,u,5>, lane 2
+    2108219394U, // <4,5,7,6>: Cost 2 ins <4,5,u,6>, lane 2
+    1034485762U, // <4,5,7,7>: Cost 1 ins RHS, lane 2
+    1034485762U, // <4,5,7,u>: Cost 1 ins RHS, lane 2
+    1034346499U, // <4,5,u,0>: Cost 1 ins RHS, lane 3
+    1034346499U, // <4,5,u,1>: Cost 1 ins RHS, lane 3
+    1034346499U, // <4,5,u,2>: Cost 1 ins RHS, lane 3
+    1034346499U, // <4,5,u,3>: Cost 1 ins RHS, lane 3
+    1034346499U, // <4,5,u,4>: Cost 1 ins RHS, lane 3
+    1034346499U, // <4,5,u,5>: Cost 1 ins RHS, lane 3
+    1034346499U, // <4,5,u,6>: Cost 1 ins RHS, lane 3
     27705344U,   // <4,5,u,7>: Cost 0 copy RHS
     27705344U,   // <4,5,u,u>: Cost 0 copy RHS
     1705426944U, // <4,6,0,0>: Cost 2 vuzpl RHS, <0,0,0,0>
     1545175142U, // <4,6,0,1>: Cost 2 vext2 <0,2,4,6>, LHS
     631685222U,  // <4,6,0,2>: Cost 1 vuzpl RHS, LHS
-    2779168958U, // <4,6,0,3>: Cost 3 vuzpl RHS, <0,2,3,1>
+    2108309507U, // <4,6,0,3>: Cost 2 ins <4,6,0,u>, lane 3
     1705427148U, // <4,6,0,4>: Cost 2 vuzpl RHS, <0,2,4,6>
-    2779168982U, // <4,6,0,5>: Cost 3 vuzpl RHS, <0,2,5,7>
-    2779168990U, // <4,6,0,6>: Cost 3 vuzpl RHS, <0,2,6,6>
-    2967022902U, // <4,6,0,7>: Cost 3 vzipr <2,3,4,0>, RHS
+    2108309507U, // <4,6,0,5>: Cost 2 ins <4,6,0,u>, lane 3
+    2108882946U, // <4,6,0,6>: Cost 2 ins <4,6,u,6>, lane 2
+    2108309507U, // <4,6,0,7>: Cost 2 ins <4,6,0,u>, lane 3
     631685276U,  // <4,6,0,u>: Cost 1 vuzpl RHS, LHS
     2618917622U, // <4,6,1,0>: Cost 3 vext2 <0,2,4,6>, <1,0,3,2>
     1705427764U, // <4,6,1,1>: Cost 2 vuzpl RHS, <1,1,1,1>
-    2618917782U, // <4,6,1,2>: Cost 3 vext2 <0,2,4,6>, <1,2,3,0>
+    2108850178U, // <4,6,1,2>: Cost 2 ins <4,6,u,2>, lane 2
     1747681382U, // <4,6,1,3>: Cost 2 vuzpr <0,4,2,6>, LHS
     2779169619U, // <4,6,1,4>: Cost 3 vuzpl RHS, <1,1,4,5>
     1705427968U, // <4,6,1,5>: Cost 2 vuzpl RHS, <1,3,5,7>
-    2779169801U, // <4,6,1,6>: Cost 3 vuzpl RHS, <1,3,6,7>
-    2958404918U, // <4,6,1,7>: Cost 3 vzipr <0,u,4,1>, RHS
+    2108882946U, // <4,6,1,6>: Cost 2 ins <4,6,u,6>, lane 2
+    2109702145U, // <4,6,1,7>: Cost 2 ins <4,u,1,7>, lane 1
     1747681387U, // <4,6,1,u>: Cost 2 vuzpr <0,4,2,6>, LHS
     1705428646U, // <4,6,2,0>: Cost 2 vuzpl RHS, <2,3,0,1>
     2779170237U, // <4,6,2,1>: Cost 3 vuzpl RHS, <2,0,1,2>
@@ -3447,26 +3447,26 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1705428594U, // <4,6,2,3>: Cost 2 vuzpl RHS, <2,2,3,3>
     1705428686U, // <4,6,2,4>: Cost 2 vuzpl RHS, <2,3,4,5>
     2839560386U, // <4,6,2,5>: Cost 3 vuzpr <3,4,5,6>, <0,2,3,5>
-    2618918842U, // <4,6,2,6>: Cost 3 vext2 <0,2,4,6>, <2,6,3,7>
-    2958413110U, // <4,6,2,7>: Cost 3 vzipr <0,u,4,2>, RHS
+    2108882946U, // <4,6,2,6>: Cost 2 ins <4,6,u,6>, lane 2
+    2109775873U, // <4,6,2,7>: Cost 2 ins <4,u,2,7>, lane 1
     1705428639U, // <4,6,2,u>: Cost 2 vuzpl RHS, <2,2,u,3>
     2618919062U, // <4,6,3,0>: Cost 3 vext2 <0,2,4,6>, <3,0,1,2>
     1705429142U, // <4,6,3,1>: Cost 2 vuzpl RHS, <3,0,1,2>
-    2779170973U, // <4,6,3,2>: Cost 3 vuzpl RHS, <3,0,2,0>
+    2108850178U, // <4,6,3,2>: Cost 2 ins <4,6,u,2>, lane 2
     1705429404U, // <4,6,3,3>: Cost 2 vuzpl RHS, <3,3,3,3>
     2618919426U, // <4,6,3,4>: Cost 3 vext2 <0,2,4,6>, <3,4,5,6>
     1705429506U, // <4,6,3,5>: Cost 2 vuzpl RHS, <3,4,5,6>
-    2839561206U, // <4,6,3,6>: Cost 3 vuzpr <3,4,5,6>, <1,3,4,6>
-    2821424128U, // <4,6,3,7>: Cost 3 vuzpr <0,4,2,6>, <1,3,5,7>
+    2108882946U, // <4,6,3,6>: Cost 2 ins <4,6,u,6>, lane 2
+    2132410368U, // <4,6,3,7>: Cost 2 ins <u,6,3,7>, lane 0
     1705429205U, // <4,6,3,u>: Cost 2 vuzpl RHS, <3,0,u,2>
     1705430348U, // <4,6,4,0>: Cost 2 vuzpl RHS, <4,6,0,2>
-    2779171695U, // <4,6,4,1>: Cost 3 vuzpl RHS, <4,0,1,2>
-    2565211952U, // <4,6,4,2>: Cost 3 vext1 <2,4,6,4>, <2,4,6,4>
-    2779172198U, // <4,6,4,3>: Cost 3 vuzpl RHS, <4,6,3,1>
+    2108604419U, // <4,6,4,1>: Cost 2 ins <4,6,4,u>, lane 3
+    2108850178U, // <4,6,4,2>: Cost 2 ins <4,6,u,2>, lane 2
+    2108604419U, // <4,6,4,3>: Cost 2 ins <4,6,4,u>, lane 3
     1705430224U, // <4,6,4,4>: Cost 2 vuzpl RHS, <4,4,4,4>
     1545178422U, // <4,6,4,5>: Cost 2 vext2 <0,2,4,6>, RHS
     631688502U,  // <4,6,4,6>: Cost 1 vuzpl RHS, RHS
-    1905921334U, // <4,6,4,7>: Cost 2 vzipr <4,4,4,4>, RHS
+    2108604419U, // <4,6,4,7>: Cost 2 ins <4,6,4,u>, lane 3
     631688520U,  // <4,6,4,u>: Cost 1 vuzpl RHS, RHS
     2839563567U, // <4,6,5,0>: Cost 3 vuzpr <3,4,5,6>, <4,5,6,0>
     1705439360U, // <4,6,5,1>: Cost 2 vuzpl RHS, <5,7,1,3>
@@ -3478,21 +3478,21 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1747684662U, // <4,6,5,7>: Cost 2 vuzpr <0,4,2,6>, RHS
     1747684663U, // <4,6,5,u>: Cost 2 vuzpr <0,4,2,6>, RHS
     1705431886U, // <4,6,6,0>: Cost 2 vuzpl RHS, <6,7,0,1>
-    2821425049U, // <4,6,6,1>: Cost 3 vuzpr <0,4,2,6>, <2,6,0,1>
-    2779173164U, // <4,6,6,2>: Cost 3 vuzpl RHS, <6,0,2,4>
-    2954464319U, // <4,6,6,3>: Cost 3 vzipr <0,2,4,6>, <4,2,6,3>
+    2110021633U, // <4,6,6,1>: Cost 2 ins <4,u,6,1>, lane 1
+    2110029825U, // <4,6,6,2>: Cost 2 ins <4,u,6,2>, lane 1
+    2110038017U, // <4,6,6,3>: Cost 2 ins <4,u,6,3>, lane 1
     1705431926U, // <4,6,6,4>: Cost 2 vuzpl RHS, <6,7,4,5>
-    2821425089U, // <4,6,6,5>: Cost 3 vuzpr <0,4,2,6>, <2,6,4,5>
+    2110054401U, // <4,6,6,5>: Cost 2 ins <4,u,6,5>, lane 1
     1705431864U, // <4,6,6,6>: Cost 2 vuzpl RHS, <6,6,6,6>
-    1880722742U, // <4,6,6,7>: Cost 2 vzipr <0,2,4,6>, RHS
-    1880722743U, // <4,6,6,u>: Cost 2 vzipr <0,2,4,6>, RHS
-    2779173871U, // <4,6,7,0>: Cost 3 vuzpl RHS, <7,0,0,0>
+    1036328961U, // <4,6,6,7>: Cost 1 ins RHS, lane 1
+    1036328961U, // <4,6,6,u>: Cost 1 ins RHS, lane 1
+    2132647936U, // <4,6,7,0>: Cost 2 ins <u,6,7,0>, lane 0
     1705432058U, // <4,6,7,1>: Cost 2 vuzpl RHS, <7,0,1,2>
-    2779173889U, // <4,6,7,2>: Cost 3 vuzpl RHS, <7,0,2,0>
+    2108850178U, // <4,6,7,2>: Cost 2 ins <4,6,u,2>, lane 2
     2779173980U, // <4,6,7,3>: Cost 3 vuzpl RHS, <7,1,3,1>
-    2779173908U, // <4,6,7,4>: Cost 3 vuzpl RHS, <7,0,4,1>
+    2132680704U, // <4,6,7,4>: Cost 2 ins <u,6,7,4>, lane 0
     1705432422U, // <4,6,7,5>: Cost 2 vuzpl RHS, <7,4,5,6>
-    2779174090U, // <4,6,7,6>: Cost 3 vuzpl RHS, <7,2,6,3>
+    2108882946U, // <4,6,7,6>: Cost 2 ins <4,6,u,6>, lane 2
     1705432684U, // <4,6,7,7>: Cost 2 vuzpl RHS, <7,7,7,7>
     1705432121U, // <4,6,7,u>: Cost 2 vuzpl RHS, <7,0,u,2>
     1705433020U, // <4,6,u,0>: Cost 2 vuzpl RHS, <u,3,0,1>
@@ -3502,133 +3502,133 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1705433060U, // <4,6,u,4>: Cost 2 vuzpl RHS, <u,3,4,5>
     1545181338U, // <4,6,u,5>: Cost 2 vext2 <0,2,4,6>, RHS
     631691418U,  // <4,6,u,6>: Cost 1 vuzpl RHS, RHS
-    1880739126U, // <4,6,u,7>: Cost 2 vzipr <0,2,4,u>, RHS
+    1036328961U, // <4,6,u,7>: Cost 1 ins RHS, lane 1
     631691108U,  // <4,6,u,u>: Cost 1 vuzpl RHS, LHS
-    2909950970U, // <4,7,0,0>: Cost 3 vzipl <4,0,5,1>, <7,0,1,2>
-    2632859750U, // <4,7,0,1>: Cost 3 vext2 <2,5,4,7>, LHS
-    2779856998U, // <4,7,0,2>: Cost 3 vuzpl <4,6,7,1>, LHS
-    3701293312U, // <4,7,0,3>: Cost 4 vext2 <1,6,4,7>, <0,3,1,4>
-    2909951288U, // <4,7,0,4>: Cost 3 vzipl <4,0,5,1>, <7,4,0,5>
+    3206537216U, // <4,7,0,0>: Cost 3 ins <u,7,0,0>, lane 0
+    2132803584U, // <4,7,0,1>: Cost 2 ins <u,7,0,1>, lane 0
+    2109587457U, // <4,7,0,2>: Cost 2 ins <4,u,0,2>, lane 1
+    2845614101U, // <4,7,0,3>: Cost 3 vuzpr <4,4,6,7>, <0,0,2,3>
+    3206569984U, // <4,7,0,4>: Cost 3 ins <u,7,0,4>, lane 0
     3047789926U, // <4,7,0,5>: Cost 3 vtrnl <4,6,0,2>, <7,4,5,6>
     3047789929U, // <4,7,0,6>: Cost 3 vtrnl <4,6,0,2>, <7,4,6,0>
-    3047790188U, // <4,7,0,7>: Cost 3 vtrnl <4,6,0,2>, <7,7,7,7>
-    2632860317U, // <4,7,0,u>: Cost 3 vext2 <2,5,4,7>, LHS
+    2109628417U, // <4,7,0,7>: Cost 2 ins <4,u,0,7>, lane 1
+    2132803584U, // <4,7,0,u>: Cost 2 ins <u,7,0,1>, lane 0
     2259064116U, // <4,7,1,0>: Cost 3 vrev <7,4,0,1>
-    3901367092U, // <4,7,1,1>: Cost 4 vuzpr <1,4,5,7>, <1,1,1,1>
+    3206619136U, // <4,7,1,1>: Cost 3 ins <u,7,1,1>, lane 0
     2632860570U, // <4,7,1,2>: Cost 3 vext2 <2,5,4,7>, <1,2,3,4>
-    2833596518U, // <4,7,1,3>: Cost 3 vuzpr <2,4,5,7>, LHS
-    3901367095U, // <4,7,1,4>: Cost 4 vuzpr <1,4,5,7>, <1,1,1,4>
-    3700630681U, // <4,7,1,5>: Cost 4 vext2 <1,5,4,7>, <1,5,4,7>
+    2132893696U, // <4,7,1,3>: Cost 2 ins <u,7,1,3>, lane 0
+    3206643712U, // <4,7,1,4>: Cost 3 ins <u,7,1,4>, lane 0
+    3206651904U, // <4,7,1,5>: Cost 3 ins <u,7,1,5>, lane 0
     2988265414U, // <4,7,1,6>: Cost 3 vzipr <5,u,4,1>, <5,4,7,6>
-    4121597548U, // <4,7,1,7>: Cost 4 vtrnl <4,6,1,1>, <7,7,7,7>
-    2833596523U, // <4,7,1,u>: Cost 3 vuzpr <2,4,5,7>, LHS
-    3907339158U, // <4,7,2,0>: Cost 4 vuzpr <2,4,5,7>, <1,2,3,0>
-    3706603050U, // <4,7,2,1>: Cost 4 vext2 <2,5,4,7>, <2,1,4,3>
-    3907338404U, // <4,7,2,2>: Cost 4 vuzpr <2,4,5,7>, <0,2,0,2>
-    2727744688U, // <4,7,2,3>: Cost 3 vext3 <7,2,3,4>, <7,2,3,4>
+    2109702145U, // <4,7,1,7>: Cost 2 ins <4,u,1,7>, lane 1
+    2132893696U, // <4,7,1,u>: Cost 2 ins <u,7,1,3>, lane 0
+    3206684672U, // <4,7,2,0>: Cost 3 ins <u,7,2,0>, lane 0
+    3206692864U, // <4,7,2,1>: Cost 3 ins <u,7,2,1>, lane 0
+    3206701056U, // <4,7,2,2>: Cost 3 ins <u,7,2,2>, lane 0
+    2132967424U, // <4,7,2,3>: Cost 2 ins <u,7,2,3>, lane 0
     2833597338U, // <4,7,2,4>: Cost 3 vuzpr <2,4,5,7>, <1,2,3,4>
     2632861554U, // <4,7,2,5>: Cost 3 vext2 <2,5,4,7>, <2,5,4,7>
-    3907338444U, // <4,7,2,6>: Cost 4 vuzpr <2,4,5,7>, <0,2,4,6>
-    4121663084U, // <4,7,2,7>: Cost 4 vtrnl <4,6,2,0>, <7,7,7,7>
-    2634852453U, // <4,7,2,u>: Cost 3 vext2 <2,u,4,7>, <2,u,4,7>
-    3907339977U, // <4,7,3,0>: Cost 4 vuzpr <2,4,5,7>, <2,3,4,0>
-    3907339942U, // <4,7,3,1>: Cost 4 vuzpr <2,4,5,7>, <2,3,0,1>
-    3706603860U, // <4,7,3,2>: Cost 4 vext2 <2,5,4,7>, <3,2,4,3>
-    3907339224U, // <4,7,3,3>: Cost 4 vuzpr <2,4,5,7>, <1,3,1,3>
+    3206733824U, // <4,7,2,6>: Cost 3 ins <u,7,2,6>, lane 0
+    2109775873U, // <4,7,2,7>: Cost 2 ins <4,u,2,7>, lane 1
+    2132967424U, // <4,7,2,u>: Cost 2 ins <u,7,2,3>, lane 0
+    3206758400U, // <4,7,3,0>: Cost 3 ins <u,7,3,0>, lane 0
+    3206766592U, // <4,7,3,1>: Cost 3 ins <u,7,3,1>, lane 0
+    3047388245U, // <4,7,3,2>: Cost 3 vtrnl <4,5,3,7>, <7,1,2,3>
+    3206782976U, // <4,7,3,3>: Cost 3 ins <u,7,3,3>, lane 0
     2989609062U, // <4,7,3,4>: Cost 3 vzipr <6,1,4,3>, <5,6,7,4>
-    2638834251U, // <4,7,3,5>: Cost 3 vext2 <3,5,4,7>, <3,5,4,7>
+    3206799360U, // <4,7,3,5>: Cost 3 ins <u,7,3,5>, lane 0
     2639497884U, // <4,7,3,6>: Cost 3 vext2 <3,6,4,7>, <3,6,4,7>
-    3907191808U, // <4,7,3,7>: Cost 4 vuzpr <2,4,3,7>, <1,3,5,7>
-    2640825150U, // <4,7,3,u>: Cost 3 vext2 <3,u,4,7>, <3,u,4,7>
+    2109849601U, // <4,7,3,7>: Cost 2 ins <4,u,3,7>, lane 1
+    2109849601U, // <4,7,3,u>: Cost 2 ins <4,u,3,7>, lane 1
     2583199846U, // <4,7,4,0>: Cost 3 vext1 <5,4,7,4>, LHS
     3048117242U, // <4,7,4,1>: Cost 3 vtrnl <4,6,4,6>, <7,0,1,2>
-    3907340762U, // <4,7,4,2>: Cost 4 vuzpr <2,4,5,7>, <3,4,1,2>
-    2979663568U, // <4,7,4,3>: Cost 3 vzipr <4,4,4,4>, <5,1,7,3>
-    2583203024U, // <4,7,4,4>: Cost 3 vext1 <5,4,7,4>, <4,4,4,4>
-    2632863030U, // <4,7,4,5>: Cost 3 vext2 <2,5,4,7>, RHS
-    3048117613U, // <4,7,4,6>: Cost 3 vtrnl <4,6,4,6>, <7,4,6,4>
-    2833598250U, // <4,7,4,7>: Cost 3 vuzpr <2,4,5,7>, <2,4,5,7>
-    2632863273U, // <4,7,4,u>: Cost 3 vext2 <2,5,4,7>, RHS
+    3183624193U, // <4,7,4,2>: Cost 3 ins <4,u,4,2>, lane 1
+    2979659923U, // <4,7,4,3>: Cost 3 vzipr <4,4,4,4>, <0,1,7,3>
+    2109898753U, // <4,7,4,4>: Cost 2 ins <4,u,4,4>, lane 1
+    2133131264U, // <4,7,4,5>: Cost 2 ins <u,7,4,5>, lane 0
+    2109915137U, // <4,7,4,6>: Cost 2 ins <4,u,4,6>, lane 1
+    1771875557U, // <4,7,4,7>: Cost 2 vuzpr <4,4,6,7>, <4,4,6,7>
+    2133131264U, // <4,7,4,u>: Cost 2 ins <u,7,4,5>, lane 0
     1839649786U, // <4,7,5,0>: Cost 2 vzipl RHS, <7,0,1,2>
-    2913391683U, // <4,7,5,1>: Cost 3 vzipl RHS, <7,1,0,3>
+    2109947905U, // <4,7,5,1>: Cost 2 ins <4,u,5,1>, lane 1
     2913391781U, // <4,7,5,2>: Cost 3 vzipl RHS, <7,2,2,2>
     2913391843U, // <4,7,5,3>: Cost 3 vzipl RHS, <7,3,0,1>
     1839650150U, // <4,7,5,4>: Cost 2 vzipl RHS, <7,4,5,6>
-    2913392047U, // <4,7,5,5>: Cost 3 vzipl RHS, <7,5,4,7>
+    2109980673U, // <4,7,5,5>: Cost 2 ins <4,u,5,5>, lane 1
     2913392145U, // <4,7,5,6>: Cost 3 vzipl RHS, <7,6,6,6>
     1839650412U, // <4,7,5,7>: Cost 2 vzipl RHS, <7,7,7,7>
     1839650434U, // <4,7,5,u>: Cost 2 vzipl RHS, <7,u,1,2>
     1509474406U, // <4,7,6,0>: Cost 2 vext1 <5,4,7,6>, LHS
     1973867514U, // <4,7,6,1>: Cost 2 vtrnl RHS, <7,0,1,2>
-    3047609345U, // <4,7,6,2>: Cost 3 vtrnl RHS, <7,0,2,0>
-    3047609436U, // <4,7,6,3>: Cost 3 vtrnl RHS, <7,1,3,1>
+    2110029825U, // <4,7,6,2>: Cost 2 ins <4,u,6,2>, lane 1
+    2110038017U, // <4,7,6,3>: Cost 2 ins <4,u,6,3>, lane 1
     1509477686U, // <4,7,6,4>: Cost 2 vext1 <5,4,7,6>, RHS
     1973867878U, // <4,7,6,5>: Cost 2 vtrnl RHS, <7,4,5,6>
-    3047609546U, // <4,7,6,6>: Cost 3 vtrnl RHS, <7,2,6,3>
-    1973868140U, // <4,7,6,7>: Cost 2 vtrnl RHS, <7,7,7,7>
-    1973867577U, // <4,7,6,u>: Cost 2 vtrnl RHS, <7,0,u,2>
+    2110062593U, // <4,7,6,6>: Cost 2 ins <4,u,6,6>, lane 1
+    1036328961U, // <4,7,6,7>: Cost 1 ins RHS, lane 1
+    1036328961U, // <4,7,6,u>: Cost 1 ins RHS, lane 1
     2914587642U, // <4,7,7,0>: Cost 3 vzipl <4,7,5,0>, <7,0,1,2>
     2779862010U, // <4,7,7,1>: Cost 3 vuzpl <4,6,7,1>, <7,0,1,2>
-    4042149826U, // <4,7,7,2>: Cost 4 vzipr <2,5,4,7>, <5,4,7,2>
-    3907341735U, // <4,7,7,3>: Cost 4 vuzpr <2,4,5,7>, <4,7,1,3>
+    2779247701U, // <4,7,7,2>: Cost 3 vuzpl <4,5,7,7>, <7,1,2,3>
+    3207077888U, // <4,7,7,3>: Cost 3 ins <u,7,7,3>, lane 0
     2914620774U, // <4,7,7,4>: Cost 3 vzipl <4,7,5,4>, <7,4,5,6>
     2779895142U, // <4,7,7,5>: Cost 3 vuzpl <4,6,7,5>, <7,4,5,6>
     2992295878U, // <4,7,7,6>: Cost 3 vzipr <6,5,4,7>, <5,4,7,6>
-    2779911788U, // <4,7,7,7>: Cost 3 vuzpl <4,6,7,7>, <7,7,7,7>
-    2779919417U, // <4,7,7,u>: Cost 3 vuzpl <4,6,7,u>, <7,0,u,2>
+    2133368832U, // <4,7,7,7>: Cost 2 ins <u,7,7,7>, lane 0
+    2133368832U, // <4,7,7,u>: Cost 2 ins <u,7,7,7>, lane 0
     1841640442U, // <4,7,u,0>: Cost 2 vzipl RHS, <7,0,1,2>
     1974014970U, // <4,7,u,1>: Cost 2 vtrnl RHS, <7,0,1,2>
-    3047756801U, // <4,7,u,2>: Cost 3 vtrnl RHS, <7,0,2,0>
-    2833597085U, // <4,7,u,3>: Cost 3 vuzpr <2,4,5,7>, LHS
+    2109587457U, // <4,7,u,2>: Cost 2 ins <4,u,0,2>, lane 1
+    2132893696U, // <4,7,u,3>: Cost 2 ins <u,7,1,3>, lane 0
     1841640806U, // <4,7,u,4>: Cost 2 vzipl RHS, <7,4,5,6>
     1974015334U, // <4,7,u,5>: Cost 2 vtrnl RHS, <7,4,5,6>
-    3047757002U, // <4,7,u,6>: Cost 3 vtrnl RHS, <7,2,6,3>
-    1974015596U, // <4,7,u,7>: Cost 2 vtrnl RHS, <7,7,7,7>
-    1974015033U, // <4,7,u,u>: Cost 2 vtrnl RHS, <7,0,u,2>
+    2109915137U, // <4,7,u,6>: Cost 2 ins <4,u,4,6>, lane 1
+    1036328961U, // <4,7,u,7>: Cost 1 ins RHS, lane 1
+    1036328961U, // <4,7,u,u>: Cost 1 ins RHS, lane 1
     1705574400U, // <4,u,0,0>: Cost 2 vuzpl RHS, <0,0,0,0>
     1545191526U, // <4,u,0,1>: Cost 2 vext2 <0,2,4,u>, LHS
     631832678U,  // <4,u,0,2>: Cost 1 vuzpl RHS, LHS
-    2691913445U, // <4,u,0,3>: Cost 3 vext3 <1,2,3,4>, <u,0,3,2>
+    2108309507U, // <4,u,0,3>: Cost 2 ins <4,6,0,u>, lane 3
     1705574604U, // <4,u,0,4>: Cost 2 vuzpl RHS, <0,2,4,6>
-    1836210330U, // <4,u,0,5>: Cost 2 vzipl <4,0,5,1>, RHS
+    2107547650U, // <4,u,0,5>: Cost 2 ins <4,4,u,5>, lane 2
     1974048922U, // <4,u,0,6>: Cost 2 vtrnl <4,6,0,2>, RHS
-    2967022920U, // <4,u,0,7>: Cost 3 vzipr <2,3,4,0>, RHS
+    1034485762U, // <4,u,0,7>: Cost 1 ins RHS, lane 2
     631832732U,  // <4,u,0,u>: Cost 1 vuzpl RHS, LHS
-    2618934006U, // <4,u,1,0>: Cost 3 vext2 <0,2,4,u>, <1,0,3,2>
+    2108170242U, // <4,u,1,0>: Cost 2 ins <4,5,u,0>, lane 2
     1705575220U, // <4,u,1,1>: Cost 2 vuzpl RHS, <1,1,1,1>
     1618171694U, // <4,u,1,2>: Cost 2 vext3 <1,2,3,4>, LHS
     1747624038U, // <4,u,1,3>: Cost 2 vuzpr <0,4,1,u>, LHS
-    2821368833U, // <4,u,1,4>: Cost 3 vuzpr <0,4,1,u>, <4,1,u,4>
+    2107539458U, // <4,u,1,4>: Cost 2 ins <4,4,u,4>, lane 2
     1705575424U, // <4,u,1,5>: Cost 2 vuzpl RHS, <1,3,5,7>
-    3043883162U, // <4,u,1,6>: Cost 3 vtrnl <4,0,1,2>, RHS
-    2958404936U, // <4,u,1,7>: Cost 3 vzipr <0,u,4,1>, RHS
-    1747624043U, // <4,u,1,u>: Cost 2 vuzpr <0,4,1,u>, LHS
+    2107555842U, // <4,u,1,6>: Cost 2 ins <4,4,u,6>, lane 2
+    1034485762U, // <4,u,1,7>: Cost 1 ins RHS, lane 2
+    1034485762U, // <4,u,1,u>: Cost 1 ins RHS, lane 2
     1705576102U, // <4,u,2,0>: Cost 2 vuzpl RHS, <2,3,0,1>
-    2630215215U, // <4,u,2,1>: Cost 3 vext2 <2,1,4,u>, <2,1,4,u>
+    2104860674U, // <4,u,2,1>: Cost 2 ins <4,0,u,1>, lane 2
     1705576040U, // <4,u,2,2>: Cost 2 vuzpl RHS, <2,2,2,2>
-    1557800657U, // <4,u,2,3>: Cost 2 vext2 <2,3,4,u>, <2,3,4,u>
+    1055244288U, // <4,u,2,3>: Cost 1 ins LHS, lane 0
     1705576142U, // <4,u,2,4>: Cost 2 vuzpl RHS, <2,3,4,5>
-    2632869747U, // <4,u,2,5>: Cost 3 vext2 <2,5,4,u>, <2,5,4,u>
-    2618935226U, // <4,u,2,6>: Cost 3 vext2 <0,2,4,u>, <2,6,3,7>
-    3089681961U, // <4,u,2,7>: Cost 3 vtrnr <0,4,0,2>, RHS
-    1561118822U, // <4,u,2,u>: Cost 2 vext2 <2,u,4,u>, <2,u,4,u>
-    2618935446U, // <4,u,3,0>: Cost 3 vext2 <0,2,4,u>, <3,0,1,2>
+    2107547650U, // <4,u,2,5>: Cost 2 ins <4,4,u,5>, lane 2
+    2131001344U, // <4,u,2,6>: Cost 2 ins <u,4,2,6>, lane 0
+    1034485762U, // <4,u,2,7>: Cost 1 ins RHS, lane 2
+    1055244288U, // <4,u,2,u>: Cost 1 ins LHS, lane 0
+    2129698816U, // <4,u,3,0>: Cost 2 ins <u,2,3,0>, lane 0
     1705576598U, // <4,u,3,1>: Cost 2 vuzpl RHS, <3,0,1,2>
-    2691913681U, // <4,u,3,2>: Cost 3 vext3 <1,2,3,4>, <u,3,2,4>
+    2128388096U, // <4,u,3,2>: Cost 2 ins <u,0,3,2>, lane 0
     1705576860U, // <4,u,3,3>: Cost 2 vuzpl RHS, <3,3,3,3>
-    2618935810U, // <4,u,3,4>: Cost 3 vext2 <0,2,4,u>, <3,4,5,6>
+    2129731584U, // <4,u,3,4>: Cost 2 ins <u,2,3,4>, lane 0
     1705576962U, // <4,u,3,5>: Cost 2 vuzpl RHS, <3,4,5,6>
-    2639506077U, // <4,u,3,6>: Cost 3 vext2 <3,6,4,u>, <3,6,4,u>
-    2821366784U, // <4,u,3,7>: Cost 3 vuzpr <0,4,1,u>, <1,3,5,7>
-    1705576661U, // <4,u,3,u>: Cost 2 vuzpl RHS, <3,0,u,2>
+    2107555842U, // <4,u,3,6>: Cost 2 ins <4,4,u,6>, lane 2
+    1034485762U, // <4,u,3,7>: Cost 1 ins RHS, lane 2
+    1034485762U, // <4,u,3,u>: Cost 1 ins RHS, lane 2
     1705577804U, // <4,u,4,0>: Cost 2 vuzpl RHS, <4,6,0,2>
-    1838815022U, // <4,u,4,1>: Cost 2 vzipl <4,4,4,4>, LHS
+    2104860674U, // <4,u,4,1>: Cost 2 ins <4,0,u,1>, lane 2
     1974376238U, // <4,u,4,2>: Cost 2 vtrnl <4,6,4,6>, LHS
-    1905918108U, // <4,u,4,3>: Cost 2 vzipr <4,4,4,4>, LHS
+    2108604419U, // <4,u,4,3>: Cost 2 ins <4,6,4,u>, lane 3
     161926454U,  // <4,u,4,4>: Cost 1 vdup0 RHS
     1545194806U, // <4,u,4,5>: Cost 2 vext2 <0,2,4,u>, RHS
     631835958U,  // <4,u,4,6>: Cost 1 vuzpl RHS, RHS
-    1905921352U, // <4,u,4,7>: Cost 2 vzipr <4,4,4,4>, RHS
+    1034485762U, // <4,u,4,7>: Cost 1 ins RHS, lane 2
     631835976U,  // <4,u,4,u>: Cost 1 vuzpl RHS, RHS
     1839650515U, // <4,u,5,0>: Cost 2 vzipl RHS, <u,0,1,2>
     765908782U,  // <4,u,5,1>: Cost 1 vzipl RHS, LHS
@@ -3637,259 +3637,259 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1839650879U, // <4,u,5,4>: Cost 2 vzipl RHS, <u,4,5,6>
     765909146U,  // <4,u,5,5>: Cost 1 vzipl RHS, RHS
     1618172058U, // <4,u,5,6>: Cost 2 vext3 <1,2,3,4>, RHS
-    2016038441U, // <4,u,5,7>: Cost 2 vtrnr <0,4,1,5>, RHS
+    1034485762U, // <4,u,5,7>: Cost 1 ins RHS, lane 2
     765909349U,  // <4,u,5,u>: Cost 1 vzipl RHS, LHS
-    1479688594U, // <4,u,6,0>: Cost 2 vext1 <0,4,u,6>, <0,4,u,6>
-    1973868243U, // <4,u,6,1>: Cost 2 vtrnl RHS, <u,0,1,2>
+    1034346499U, // <4,u,6,0>: Cost 1 ins RHS, lane 3
+    1034346499U, // <4,u,6,1>: Cost 1 ins RHS, lane 3
     900126510U,  // <4,u,6,2>: Cost 1 vtrnl RHS, LHS
-    1880719516U, // <4,u,6,3>: Cost 2 vzipr <0,2,4,6>, LHS
-    1479691574U, // <4,u,6,4>: Cost 2 vext1 <0,4,u,6>, RHS
-    1973868527U, // <4,u,6,5>: Cost 2 vtrnl RHS, <u,3,5,7>
+    1034346499U, // <4,u,6,3>: Cost 1 ins RHS, lane 3
+    1034346499U, // <4,u,6,4>: Cost 1 ins RHS, lane 3
+    1034346499U, // <4,u,6,5>: Cost 1 ins RHS, lane 3
     900126874U,  // <4,u,6,6>: Cost 1 vtrnl RHS, RHS
     27705344U,   // <4,u,6,7>: Cost 0 copy RHS
     27705344U,   // <4,u,6,u>: Cost 0 copy RHS
-    2565382246U, // <4,u,7,0>: Cost 3 vext1 <2,4,u,7>, LHS
+    2132647936U, // <4,u,7,0>: Cost 2 ins <u,6,7,0>, lane 0
     1705579514U, // <4,u,7,1>: Cost 2 vuzpl RHS, <7,0,1,2>
-    2565384005U, // <4,u,7,2>: Cost 3 vext1 <2,4,u,7>, <2,4,u,7>
-    3102032541U, // <4,u,7,3>: Cost 3 vtrnr <2,4,5,7>, LHS
-    2565385526U, // <4,u,7,4>: Cost 3 vext1 <2,4,u,7>, RHS
+    2104868866U, // <4,u,7,2>: Cost 2 ins <4,0,u,2>, lane 2
+    2129354752U, // <4,u,7,3>: Cost 2 ins <u,1,7,3>, lane 0
+    2132680704U, // <4,u,7,4>: Cost 2 ins <u,6,7,4>, lane 0
     1705579878U, // <4,u,7,5>: Cost 2 vuzpl RHS, <7,4,5,6>
-    2779321546U, // <4,u,7,6>: Cost 3 vuzpl RHS, <7,2,6,3>
-    1705580140U, // <4,u,7,7>: Cost 2 vuzpl RHS, <7,7,7,7>
-    1705579577U, // <4,u,7,u>: Cost 2 vuzpl RHS, <7,0,u,2>
-    1479704980U, // <4,u,u,0>: Cost 2 vext1 <0,4,u,u>, <0,4,u,u>
+    2131369984U, // <4,u,7,6>: Cost 2 ins <u,4,7,6>, lane 0
+    1034485762U, // <4,u,7,7>: Cost 1 ins RHS, lane 2
+    1034485762U, // <4,u,7,u>: Cost 1 ins RHS, lane 2
+    1034346499U, // <4,u,u,0>: Cost 1 ins RHS, lane 3
     767899438U,  // <4,u,u,1>: Cost 1 vzipl RHS, LHS
     631838510U,  // <4,u,u,2>: Cost 1 vuzpl RHS, LHS
-    1880735900U, // <4,u,u,3>: Cost 2 vzipr <0,2,4,u>, LHS
+    1055244288U, // <4,u,u,3>: Cost 1 ins LHS, lane 0
     161926454U,  // <4,u,u,4>: Cost 1 vdup0 RHS
     767899802U,  // <4,u,u,5>: Cost 1 vzipl RHS, RHS
     631838874U,  // <4,u,u,6>: Cost 1 vuzpl RHS, RHS
     27705344U,   // <4,u,u,7>: Cost 0 copy RHS
     27705344U,   // <4,u,u,u>: Cost 0 copy RHS
-    2687123456U, // <5,0,0,0>: Cost 3 vext3 <0,4,1,5>, <0,0,0,0>
+    2128150528U, // <5,0,0,0>: Cost 2 ins <u,0,0,0>, lane 0
     2687123466U, // <5,0,0,1>: Cost 3 vext3 <0,4,1,5>, <0,0,1,1>
     2687123476U, // <5,0,0,2>: Cost 3 vext3 <0,4,1,5>, <0,0,2,2>
-    3710599434U, // <5,0,0,3>: Cost 4 vext2 <3,2,5,0>, <0,3,2,5>
+    2846220309U, // <5,0,0,3>: Cost 3 vuzpr <4,5,6,0>, <0,0,2,3>
     2642166098U, // <5,0,0,4>: Cost 3 vext2 <4,1,5,0>, <0,4,1,5>
-    4047473756U, // <5,0,0,5>: Cost 4 vzipr <3,4,5,0>, <4,3,0,5>
-    3919965799U, // <5,0,0,6>: Cost 4 vuzpr <4,5,6,0>, <5,0,4,6>
-    4047474730U, // <5,0,0,7>: Cost 4 vzipr <3,4,5,0>, <5,6,0,7>
-    2687123530U, // <5,0,0,u>: Cost 3 vext3 <0,4,1,5>, <0,0,u,2>
+    2583318482U, // <5,0,0,5>: Cost 3 vext1 <5,5,0,0>, <5,5,0,0>
+    3189334017U, // <5,0,0,6>: Cost 3 ins <5,u,0,6>, lane 1
+    2846223265U, // <5,0,0,7>: Cost 3 vuzpr <4,5,6,0>, <4,0,6,7>
+    2128150528U, // <5,0,0,u>: Cost 2 ins <u,0,0,0>, lane 0
     2559434854U, // <5,0,1,0>: Cost 3 vext1 <1,5,0,1>, LHS
     1843003494U, // <5,0,1,1>: Cost 2 vzipl <5,1,7,3>, LHS
     1613381734U, // <5,0,1,2>: Cost 2 vext3 <0,4,1,5>, LHS
-    2840322150U, // <5,0,1,3>: Cost 3 vuzpr <3,5,7,0>, LHS
+    2115641345U, // <5,0,1,3>: Cost 2 ins <5,u,1,3>, lane 1
     2559438134U, // <5,0,1,4>: Cost 3 vext1 <1,5,0,1>, RHS
     2583326675U, // <5,0,1,5>: Cost 3 vext1 <5,5,0,1>, <5,5,0,1>
-    3715908851U, // <5,0,1,6>: Cost 4 vext2 <4,1,5,0>, <1,6,5,7>
-    3902120798U, // <5,0,1,7>: Cost 4 vuzpr <1,5,7,0>, <1,1,5,7>
+    3202015232U, // <5,0,1,6>: Cost 3 ins <u,0,1,6>, lane 0
+    3189415937U, // <5,0,1,7>: Cost 3 ins <5,u,1,7>, lane 1
     1613381788U, // <5,0,1,u>: Cost 2 vext3 <0,4,1,5>, LHS
     2686017700U, // <5,0,2,0>: Cost 3 vext3 <0,2,4,5>, <0,2,0,2>
     2685796528U, // <5,0,2,1>: Cost 3 vext3 <0,2,1,5>, <0,2,1,5>
-    2698625208U, // <5,0,2,2>: Cost 3 vext3 <2,3,4,5>, <0,2,2,4>
-    2685944002U, // <5,0,2,3>: Cost 3 vext3 <0,2,3,5>, <0,2,3,5>
+    2128314368U, // <5,0,2,2>: Cost 2 ins <u,0,2,2>, lane 0
+    2128322560U, // <5,0,2,3>: Cost 2 ins <u,0,2,3>, lane 0
     2686017739U, // <5,0,2,4>: Cost 3 vext3 <0,2,4,5>, <0,2,4,5>
     2686091476U, // <5,0,2,5>: Cost 3 vext3 <0,2,5,5>, <0,2,5,5>
-    2725167324U, // <5,0,2,6>: Cost 3 vext3 <6,7,4,5>, <0,2,6,4>
+    3189481473U, // <5,0,2,6>: Cost 3 ins <5,u,2,6>, lane 1
     2595280262U, // <5,0,2,7>: Cost 3 vext1 <7,5,0,2>, <7,5,0,2>
-    2686312687U, // <5,0,2,u>: Cost 3 vext3 <0,2,u,5>, <0,2,u,5>
-    2643495062U, // <5,0,3,0>: Cost 3 vext2 <4,3,5,0>, <3,0,1,2>
+    2128314368U, // <5,0,2,u>: Cost 2 ins <u,0,2,2>, lane 0
+    3202113536U, // <5,0,3,0>: Cost 3 ins <u,0,3,0>, lane 0
     2918047846U, // <5,0,3,1>: Cost 3 vzipl <5,3,7,0>, LHS
-    2686533898U, // <5,0,3,2>: Cost 3 vext3 <0,3,2,5>, <0,3,2,5>
-    3760349459U, // <5,0,3,3>: Cost 4 vext3 <0,3,3,5>, <0,3,3,5>
+    2128388096U, // <5,0,3,2>: Cost 2 ins <u,0,3,2>, lane 0
+    3189530625U, // <5,0,3,3>: Cost 3 ins <5,u,3,3>, lane 1
     2638187004U, // <5,0,3,4>: Cost 3 vext2 <3,4,5,0>, <3,4,5,0>
     2785315330U, // <5,0,3,5>: Cost 3 vuzpl <5,6,0,1>, <3,4,5,6>
-    3919963126U, // <5,0,3,6>: Cost 4 vuzpr <4,5,6,0>, <1,3,4,6>
+    3202162688U, // <5,0,3,6>: Cost 3 ins <u,0,3,6>, lane 0
     2840323072U, // <5,0,3,7>: Cost 3 vuzpr <3,5,7,0>, <1,3,5,7>
-    2686976320U, // <5,0,3,u>: Cost 3 vext3 <0,3,u,5>, <0,3,u,5>
+    2128388096U, // <5,0,3,u>: Cost 2 ins <u,0,3,2>, lane 0
     2559459430U, // <5,0,4,0>: Cost 3 vext1 <1,5,0,4>, LHS
     1613381970U, // <5,0,4,1>: Cost 2 vext3 <0,4,1,5>, <0,4,1,5>
     2687123804U, // <5,0,4,2>: Cost 3 vext3 <0,4,1,5>, <0,4,2,6>
-    2643496068U, // <5,0,4,3>: Cost 3 vext2 <4,3,5,0>, <4,3,5,0>
+    3184336899U, // <5,0,4,3>: Cost 3 ins <5,0,4,u>, lane 3
     2687345005U, // <5,0,4,4>: Cost 3 vext3 <0,4,4,5>, <0,4,4,5>
     2638187830U, // <5,0,4,5>: Cost 3 vext2 <3,4,5,0>, RHS
     2846222850U, // <5,0,4,6>: Cost 3 vuzpr <4,5,6,0>, <3,4,5,6>
     2646150600U, // <5,0,4,7>: Cost 3 vext2 <4,7,5,0>, <4,7,5,0>
     1845019293U, // <5,0,4,u>: Cost 2 vzipl <5,4,7,6>, LHS
-    2840324703U, // <5,0,5,0>: Cost 3 vuzpr <3,5,7,0>, <3,5,7,0>
+    1772481839U, // <5,0,5,0>: Cost 2 vuzpr <4,5,6,0>, <4,5,6,0>
     1845526630U, // <5,0,5,1>: Cost 2 vzipl <5,5,5,5>, LHS
     1979744358U, // <5,0,5,2>: Cost 2 vtrnl <5,5,5,5>, LHS
-    3778707888U, // <5,0,5,3>: Cost 4 vext3 <3,4,0,5>, <0,5,3,0>
+    3189678081U, // <5,0,5,3>: Cost 3 ins <5,u,5,3>, lane 1
     2919268690U, // <5,0,5,4>: Cost 3 vzipl <5,5,5,5>, <0,4,1,5>
-    2919268834U, // <5,0,5,5>: Cost 3 vzipl <5,5,5,5>, <0,5,u,5>
-    3914065048U, // <5,0,5,6>: Cost 4 vuzpr <3,5,7,0>, <1,5,4,6>
-    2840325430U, // <5,0,5,7>: Cost 3 vuzpr <3,5,7,0>, RHS
+    2115952641U, // <5,0,5,5>: Cost 2 ins <5,u,5,5>, lane 1
+    3202310144U, // <5,0,5,6>: Cost 3 ins <u,0,5,6>, lane 0
+    2115969025U, // <5,0,5,7>: Cost 2 ins <5,u,5,7>, lane 1
     1845527197U, // <5,0,5,u>: Cost 2 vzipl <5,5,5,5>, LHS
     2973777920U, // <5,0,6,0>: Cost 3 vzipr <3,4,5,6>, <0,0,0,0>
     1846296678U, // <5,0,6,1>: Cost 2 vzipl <5,6,7,0>, LHS
-    2967806116U, // <5,0,6,2>: Cost 3 vzipr <2,4,5,6>, <0,2,0,2>
-    4047520800U, // <5,0,6,3>: Cost 4 vzipr <3,4,5,6>, <1,4,0,3>
+    2128609280U, // <5,0,6,2>: Cost 2 ins <u,0,6,2>, lane 0
+    3189751809U, // <5,0,6,3>: Cost 3 ins <5,u,6,3>, lane 1
     2920038738U, // <5,0,6,4>: Cost 3 vzipl <5,6,7,0>, <0,4,1,5>
     2920038866U, // <5,0,6,5>: Cost 3 vzipl <5,6,7,0>, <0,5,6,7>
-    4041548106U, // <5,0,6,6>: Cost 4 vzipr <2,4,5,6>, <0,4,0,6>
-    2662077302U, // <5,0,6,7>: Cost 3 vext2 <7,4,5,0>, <6,7,4,5>
+    3189776385U, // <5,0,6,6>: Cost 3 ins <5,u,6,6>, lane 1
+    2128650240U, // <5,0,6,7>: Cost 2 ins <u,0,6,7>, lane 0
     1846297245U, // <5,0,6,u>: Cost 2 vzipl <5,6,7,0>, LHS
     2040971264U, // <5,0,7,0>: Cost 2 vtrnr RHS, <0,0,0,0>
     2040971274U, // <5,0,7,1>: Cost 2 vtrnr RHS, <0,0,1,1>
     2040971284U, // <5,0,7,2>: Cost 2 vtrnr RHS, <0,0,2,2>
-    3114714558U, // <5,0,7,3>: Cost 3 vtrnr RHS, <2,0,1,3>
-    2565459254U, // <5,0,7,4>: Cost 3 vext1 <2,5,0,7>, RHS
+    2116083713U, // <5,0,7,3>: Cost 2 ins <5,u,7,3>, lane 1
+    2116091905U, // <5,0,7,4>: Cost 2 ins <5,u,7,4>, lane 1
     3114715316U, // <5,0,7,5>: Cost 3 vtrnr RHS, <3,0,4,5>
-    3114713130U, // <5,0,7,6>: Cost 3 vtrnr RHS, <0,0,4,6>
-    3114714598U, // <5,0,7,7>: Cost 3 vtrnr RHS, <2,0,5,7>
+    2116108289U, // <5,0,7,6>: Cost 2 ins <5,u,7,6>, lane 1
+    2116116481U, // <5,0,7,7>: Cost 2 ins <5,u,7,7>, lane 1
     2040971281U, // <5,0,7,u>: Cost 2 vtrnr RHS, <0,0,1,u>
     2040979456U, // <5,0,u,0>: Cost 2 vtrnr RHS, <0,0,0,0>
     1616036502U, // <5,0,u,1>: Cost 2 vext3 <0,u,1,5>, <0,u,1,5>
     1613382301U, // <5,0,u,2>: Cost 2 vext3 <0,4,1,5>, LHS
-    2689925800U, // <5,0,u,3>: Cost 3 vext3 <0,u,3,5>, <0,u,3,5>
-    2687124146U, // <5,0,u,4>: Cost 3 vext3 <0,4,1,5>, <0,u,4,6>
-    2638190746U, // <5,0,u,5>: Cost 3 vext2 <3,4,5,0>, RHS
-    3114721322U, // <5,0,u,6>: Cost 3 vtrnr RHS, <0,0,4,6>
-    2840325673U, // <5,0,u,7>: Cost 3 vuzpr <3,5,7,0>, RHS
+    2115641345U, // <5,0,u,3>: Cost 2 ins <5,u,1,3>, lane 1
+    2116091905U, // <5,0,u,4>: Cost 2 ins <5,u,7,4>, lane 1
+    2115952641U, // <5,0,u,5>: Cost 2 ins <5,u,5,5>, lane 1
+    2116108289U, // <5,0,u,6>: Cost 2 ins <5,u,7,6>, lane 1
+    2115969025U, // <5,0,u,7>: Cost 2 ins <5,u,5,7>, lane 1
     1613382355U, // <5,0,u,u>: Cost 2 vext3 <0,4,1,5>, LHS
     2646818816U, // <5,1,0,0>: Cost 3 vext2 <4,u,5,1>, <0,0,0,0>
     1573077094U, // <5,1,0,1>: Cost 2 vext2 <4,u,5,1>, LHS
     1712324710U, // <5,1,0,2>: Cost 2 vuzpl <5,7,1,3>, LHS
-    2687124214U, // <5,1,0,3>: Cost 3 vext3 <0,4,1,5>, <1,0,3,2>
+    2111512578U, // <5,1,0,3>: Cost 2 ins <5,1,u,3>, lane 2
     2641510738U, // <5,1,0,4>: Cost 3 vext2 <4,0,5,1>, <0,4,1,5>
     2977710418U, // <5,1,0,5>: Cost 3 vzipr <4,1,5,0>, <0,4,1,5>
-    4051452243U, // <5,1,0,6>: Cost 4 vzipr <4,1,5,0>, <0,4,1,6>
-    3298141357U, // <5,1,0,7>: Cost 4 vrev <1,5,7,0>
+    3185278978U, // <5,1,0,6>: Cost 3 ins <5,1,u,6>, lane 2
+    3184705539U, // <5,1,0,7>: Cost 3 ins <5,1,0,u>, lane 3
     1573077661U, // <5,1,0,u>: Cost 2 vext2 <4,u,5,1>, LHS
     2223891567U, // <5,1,1,0>: Cost 3 vrev <1,5,0,1>
-    2687124276U, // <5,1,1,1>: Cost 3 vext3 <0,4,1,5>, <1,1,1,1>
+    2128896000U, // <5,1,1,1>: Cost 2 ins <u,1,1,1>, lane 0
     2646819734U, // <5,1,1,2>: Cost 3 vext2 <4,u,5,1>, <1,2,3,0>
-    2687124296U, // <5,1,1,3>: Cost 3 vext3 <0,4,1,5>, <1,1,3,3>
+    2115641345U, // <5,1,1,3>: Cost 2 ins <5,u,1,3>, lane 1
     2691326803U, // <5,1,1,4>: Cost 3 vext3 <1,1,4,5>, <1,1,4,5>
     2691400540U, // <5,1,1,5>: Cost 3 vext3 <1,1,5,5>, <1,1,5,5>
-    3765216101U, // <5,1,1,6>: Cost 4 vext3 <1,1,6,5>, <1,1,6,5>
+    3189407745U, // <5,1,1,6>: Cost 3 ins <5,u,1,6>, lane 1
     2982367283U, // <5,1,1,7>: Cost 3 vzipr <4,u,5,1>, <5,6,1,7>
-    2687124341U, // <5,1,1,u>: Cost 3 vext3 <0,4,1,5>, <1,1,u,3>
-    2223899760U, // <5,1,2,0>: Cost 3 vrev <1,5,0,2>
-    3763520391U, // <5,1,2,1>: Cost 4 vext3 <0,u,1,5>, <1,2,1,3>
-    2646820456U, // <5,1,2,2>: Cost 3 vext2 <4,u,5,1>, <2,2,2,2>
-    2687124374U, // <5,1,2,3>: Cost 3 vext3 <0,4,1,5>, <1,2,3,0>
-    2786068174U, // <5,1,2,4>: Cost 3 vuzpl <5,7,1,3>, <2,3,4,5>
-    2687124395U, // <5,1,2,5>: Cost 3 vext3 <0,4,1,5>, <1,2,5,3>
-    2646820794U, // <5,1,2,6>: Cost 3 vext2 <4,u,5,1>, <2,6,3,7>
-    3859810183U, // <5,1,2,7>: Cost 4 vuzpl <5,7,1,3>, <2,5,7,1>
-    2687124419U, // <5,1,2,u>: Cost 3 vext3 <0,4,1,5>, <1,2,u,0>
+    2115641345U, // <5,1,1,u>: Cost 2 ins <5,u,1,3>, lane 1
+    2128961536U, // <5,1,2,0>: Cost 2 ins <u,1,2,0>, lane 0
+    2128969728U, // <5,1,2,1>: Cost 2 ins <u,1,2,1>, lane 0
+    2128977920U, // <5,1,2,2>: Cost 2 ins <u,1,2,2>, lane 0
+    1055244288U, // <5,1,2,3>: Cost 1 ins LHS, lane 0
+    2128994304U, // <5,1,2,4>: Cost 2 ins <u,1,2,4>, lane 0
+    2129002496U, // <5,1,2,5>: Cost 2 ins <u,1,2,5>, lane 0
+    2129010688U, // <5,1,2,6>: Cost 2 ins <u,1,2,6>, lane 0
+    2129018880U, // <5,1,2,7>: Cost 2 ins <u,1,2,7>, lane 0
+    1055244288U, // <5,1,2,u>: Cost 1 ins LHS, lane 0
     2571468902U, // <5,1,3,0>: Cost 3 vext1 <3,5,1,3>, LHS
     2687124440U, // <5,1,3,1>: Cost 3 vext3 <0,4,1,5>, <1,3,1,3>
     2571470542U, // <5,1,3,2>: Cost 3 vext1 <3,5,1,3>, <2,3,4,5>
-    2692580332U, // <5,1,3,3>: Cost 3 vext3 <1,3,3,5>, <1,3,3,5>
+    2129059840U, // <5,1,3,3>: Cost 2 ins <u,1,3,3>, lane 0
     2687124469U, // <5,1,3,4>: Cost 3 vext3 <0,4,1,5>, <1,3,4,5>
     2685207552U, // <5,1,3,5>: Cost 3 vext3 <0,1,2,5>, <1,3,5,7>
     2595361654U, // <5,1,3,6>: Cost 3 vext1 <7,5,1,3>, <6,7,4,5>
     2840331264U, // <5,1,3,7>: Cost 3 vuzpr <3,5,7,1>, <1,3,5,7>
-    2687124503U, // <5,1,3,u>: Cost 3 vext3 <0,4,1,5>, <1,3,u,3>
+    2129059840U, // <5,1,3,u>: Cost 2 ins <u,1,3,3>, lane 0
     1567771538U, // <5,1,4,0>: Cost 2 vext2 <4,0,5,1>, <4,0,5,1>
     2693096491U, // <5,1,4,1>: Cost 3 vext3 <1,4,1,5>, <1,4,1,5>
     2693170228U, // <5,1,4,2>: Cost 3 vext3 <1,4,2,5>, <1,4,2,5>
-    2687124541U, // <5,1,4,3>: Cost 3 vext3 <0,4,1,5>, <1,4,3,5>
+    2111512578U, // <5,1,4,3>: Cost 2 ins <5,1,u,3>, lane 2
     2646822096U, // <5,1,4,4>: Cost 3 vext2 <4,u,5,1>, <4,4,4,4>
     1573080374U, // <5,1,4,5>: Cost 2 vext2 <4,u,5,1>, RHS
     1712327990U, // <5,1,4,6>: Cost 2 vuzpl <5,7,1,3>, RHS
-    3298174129U, // <5,1,4,7>: Cost 4 vrev <1,5,7,4>
+    3185000451U, // <5,1,4,7>: Cost 3 ins <5,1,4,u>, lane 3
     1573080602U, // <5,1,4,u>: Cost 2 vext2 <4,u,5,1>, <4,u,5,1>
     2687124591U, // <5,1,5,0>: Cost 3 vext3 <0,4,1,5>, <1,5,0,1>
     1712328832U, // <5,1,5,1>: Cost 2 vuzpl <5,7,1,3>, <5,7,1,3>
     2982398102U, // <5,1,5,2>: Cost 3 vzipr <4,u,5,5>, <3,0,1,2>
     2046853222U, // <5,1,5,3>: Cost 2 vtrnr <5,5,5,5>, LHS
     2687124631U, // <5,1,5,4>: Cost 3 vext3 <0,4,1,5>, <1,5,4,5>
-    2959835474U, // <5,1,5,5>: Cost 3 vzipr <1,1,5,5>, <0,4,1,5>
+    2115952641U, // <5,1,5,5>: Cost 2 ins <5,u,5,5>, lane 1
     2646823010U, // <5,1,5,6>: Cost 3 vext2 <4,u,5,1>, <5,6,7,0>
-    2827873590U, // <5,1,5,7>: Cost 3 vuzpr <1,5,0,1>, RHS
+    2115969025U, // <5,1,5,7>: Cost 2 ins <5,u,5,7>, lane 1
     2046853227U, // <5,1,5,u>: Cost 2 vtrnr <5,5,5,5>, LHS
     2920039158U, // <5,1,6,0>: Cost 3 vzipl <5,6,7,0>, <1,0,3,2>
     2961834642U, // <5,1,6,1>: Cost 3 vzipr <1,4,5,6>, <0,u,1,1>
     2973780118U, // <5,1,6,2>: Cost 3 vzipr <3,4,5,6>, <3,0,1,2>
-    3096641638U, // <5,1,6,3>: Cost 3 vtrnr <1,5,4,6>, LHS
+    2111512578U, // <5,1,6,3>: Cost 2 ins <5,1,u,3>, lane 2
     2224227480U, // <5,1,6,4>: Cost 3 vrev <1,5,4,6>
     2973778258U, // <5,1,6,5>: Cost 3 vzipr <3,4,5,6>, <0,4,1,5>
     2646823736U, // <5,1,6,6>: Cost 3 vext2 <4,u,5,1>, <6,6,6,6>
-    2646823758U, // <5,1,6,7>: Cost 3 vext2 <4,u,5,1>, <6,7,0,1>
-    3096641643U, // <5,1,6,u>: Cost 3 vtrnr <1,5,4,6>, LHS
-    2559557734U, // <5,1,7,0>: Cost 3 vext1 <1,5,1,7>, LHS
+    2129313792U, // <5,1,6,7>: Cost 2 ins <u,1,6,7>, lane 0
+    2111512578U, // <5,1,6,u>: Cost 2 ins <5,1,u,3>, lane 2
+    2116059137U, // <5,1,7,0>: Cost 2 ins <5,u,7,0>, lane 1
     2040972084U, // <5,1,7,1>: Cost 2 vtrnr RHS, <1,1,1,1>
-    2961180822U, // <5,1,7,2>: Cost 3 vzipr <1,3,5,7>, <3,0,1,2>
+    2111479811U, // <5,1,7,2>: Cost 2 ins <5,1,7,u>, lane 3
     967229542U,  // <5,1,7,3>: Cost 1 vtrnr RHS, LHS
-    2559561014U, // <5,1,7,4>: Cost 3 vext1 <1,5,1,7>, RHS
-    2961178800U, // <5,1,7,5>: Cost 3 vzipr <1,3,5,7>, <0,2,1,5>
-    3114713211U, // <5,1,7,6>: Cost 3 vtrnr RHS, <0,1,4,6>
-    3114713950U, // <5,1,7,7>: Cost 3 vtrnr RHS, <1,1,5,7>
+    2116091905U, // <5,1,7,4>: Cost 2 ins <5,u,7,4>, lane 1
+    2111479811U, // <5,1,7,5>: Cost 2 ins <5,1,7,u>, lane 3
+    2116108289U, // <5,1,7,6>: Cost 2 ins <5,u,7,6>, lane 1
+    2116116481U, // <5,1,7,7>: Cost 2 ins <5,u,7,7>, lane 1
     967229547U,  // <5,1,7,u>: Cost 1 vtrnr RHS, LHS
-    1591662326U, // <5,1,u,0>: Cost 2 vext2 <u,0,5,1>, <u,0,5,1>
+    2116059137U, // <5,1,u,0>: Cost 2 ins <5,u,7,0>, lane 1
     2040980276U, // <5,1,u,1>: Cost 2 vtrnr RHS, <1,1,1,1>
     1712330542U, // <5,1,u,2>: Cost 2 vuzpl <5,7,1,3>, LHS
     967237734U,  // <5,1,u,3>: Cost 1 vtrnr RHS, LHS
-    2687124874U, // <5,1,u,4>: Cost 3 vext3 <0,4,1,5>, <1,u,4,5>
+    2116091905U, // <5,1,u,4>: Cost 2 ins <5,u,7,4>, lane 1
     1573083290U, // <5,1,u,5>: Cost 2 vext2 <4,u,5,1>, RHS
     1712330906U, // <5,1,u,6>: Cost 2 vuzpl <5,7,1,3>, RHS
-    2827873833U, // <5,1,u,7>: Cost 3 vuzpr <1,5,0,1>, RHS
+    2115969025U, // <5,1,u,7>: Cost 2 ins <5,u,5,7>, lane 1
     967237739U,  // <5,1,u,u>: Cost 1 vtrnr RHS, LHS
     2786132132U, // <5,2,0,0>: Cost 3 vuzpl <5,7,2,2>, <0,2,0,2>
     2628911206U, // <5,2,0,1>: Cost 3 vext2 <1,u,5,2>, LHS
-    2786115686U, // <5,2,0,2>: Cost 3 vuzpl <5,7,2,0>, LHS
+    2129494016U, // <5,2,0,2>: Cost 2 ins <u,2,0,2>, lane 0
     2973728870U, // <5,2,0,3>: Cost 3 vzipr <3,4,5,0>, LHS
     2786164940U, // <5,2,0,4>: Cost 3 vuzpl <5,7,2,6>, <0,2,4,6>
-    3759539680U, // <5,2,0,5>: Cost 4 vext3 <0,2,1,5>, <2,0,5,1>
-    3760866796U, // <5,2,0,6>: Cost 4 vext3 <0,4,1,5>, <2,0,6,4>
-    4176012936U, // <5,2,0,7>: Cost 4 vtrnr <2,5,0,0>, <2,2,5,7>
-    2628911773U, // <5,2,0,u>: Cost 3 vext2 <1,u,5,2>, LHS
+    2782158977U, // <5,2,0,5>: Cost 3 vuzpl <5,1,2,3>, <0,1,5,3>
+    3185942530U, // <5,2,0,6>: Cost 3 ins <5,2,u,6>, lane 2
+    3114658883U, // <5,2,0,7>: Cost 3 vtrnr <4,5,6,0>, <4,2,6,7>
+    2129494016U, // <5,2,0,u>: Cost 2 ins <u,2,0,2>, lane 0
     3054503590U, // <5,2,1,0>: Cost 3 vtrnl <5,7,1,3>, <2,3,0,1>
-    3698008921U, // <5,2,1,1>: Cost 4 vext2 <1,1,5,2>, <1,1,5,2>
+    3203301376U, // <5,2,1,1>: Cost 3 ins <u,2,1,1>, lane 0
     2982363156U, // <5,2,1,2>: Cost 3 vzipr <4,u,5,1>, <0,0,2,2>
     1908621414U, // <5,2,1,3>: Cost 2 vzipr <4,u,5,1>, LHS
     3054503630U, // <5,2,1,4>: Cost 3 vtrnl <5,7,1,3>, <2,3,4,5>
     2601390208U, // <5,2,1,5>: Cost 3 vext1 <u,5,2,1>, <5,7,1,3>
     2982363484U, // <5,2,1,6>: Cost 3 vzipr <4,u,5,1>, <0,4,2,6>
-    2916747271U, // <5,2,1,7>: Cost 3 vzipl <5,1,7,3>, <2,7,3,3>
+    3189415937U, // <5,2,1,7>: Cost 3 ins <5,u,1,7>, lane 1
     1908621419U, // <5,2,1,u>: Cost 2 vzipr <4,u,5,1>, LHS
-    3764037205U, // <5,2,2,0>: Cost 4 vext3 <0,u,u,5>, <2,2,0,1>
-    3759760992U, // <5,2,2,1>: Cost 4 vext3 <0,2,4,5>, <2,2,1,3>
-    2687125096U, // <5,2,2,2>: Cost 3 vext3 <0,4,1,5>, <2,2,2,2>
-    2687125106U, // <5,2,2,3>: Cost 3 vext3 <0,4,1,5>, <2,2,3,3>
+    3203366912U, // <5,2,2,0>: Cost 3 ins <u,2,2,0>, lane 0
+    3203375104U, // <5,2,2,1>: Cost 3 ins <u,2,2,1>, lane 0
+    2129641472U, // <5,2,2,2>: Cost 2 ins <u,2,2,2>, lane 0
+    2129649664U, // <5,2,2,3>: Cost 2 ins <u,2,2,3>, lane 0
     2697963133U, // <5,2,2,4>: Cost 3 vext3 <2,2,4,5>, <2,2,4,5>
-    3759466120U, // <5,2,2,5>: Cost 4 vext3 <0,2,0,5>, <2,2,5,7>
-    3760866960U, // <5,2,2,6>: Cost 4 vext3 <0,4,1,5>, <2,2,6,6>
-    3901624065U, // <5,2,2,7>: Cost 4 vuzpr <1,5,0,2>, <5,2,3,7>
-    2687125151U, // <5,2,2,u>: Cost 3 vext3 <0,4,1,5>, <2,2,u,3>
-    2687125158U, // <5,2,3,0>: Cost 3 vext3 <0,4,1,5>, <2,3,0,1>
+    2698036870U, // <5,2,2,5>: Cost 3 vext3 <2,2,5,5>, <2,2,5,5>
+    3189481473U, // <5,2,2,6>: Cost 3 ins <5,u,2,6>, lane 1
+    2846239811U, // <5,2,2,7>: Cost 3 vuzpr <4,5,6,2>, <4,2,6,7>
+    2129641472U, // <5,2,2,u>: Cost 2 ins <u,2,2,2>, lane 0
+    2129698816U, // <5,2,3,0>: Cost 2 ins <u,2,3,0>, lane 0
     2698405555U, // <5,2,3,1>: Cost 3 vext3 <2,3,1,5>, <2,3,1,5>
     2577516238U, // <5,2,3,2>: Cost 3 vext1 <4,5,2,3>, <2,3,4,5>
-    2960482406U, // <5,2,3,3>: Cost 3 vzipr <1,2,5,3>, LHS
+    2129723392U, // <5,2,3,3>: Cost 2 ins <u,2,3,3>, lane 0
     1624884942U, // <5,2,3,4>: Cost 2 vext3 <2,3,4,5>, <2,3,4,5>
     2717943511U, // <5,2,3,5>: Cost 3 vext3 <5,5,5,5>, <2,3,5,5>
-    4034224476U, // <5,2,3,6>: Cost 4 vzipr <1,2,5,3>, <0,4,2,6>
+    3203489792U, // <5,2,3,6>: Cost 3 ins <u,2,3,6>, lane 0
     2827879424U, // <5,2,3,7>: Cost 3 vuzpr <1,5,0,2>, <1,3,5,7>
     1625179890U, // <5,2,3,u>: Cost 2 vext3 <2,3,u,5>, <2,3,u,5>
-    2698626808U, // <5,2,4,0>: Cost 3 vext3 <2,3,4,5>, <2,4,0,2>
-    2642185188U, // <5,2,4,1>: Cost 3 vext2 <4,1,5,2>, <4,1,5,2>
+    3203514368U, // <5,2,4,0>: Cost 3 ins <u,2,4,0>, lane 0
+    3189587969U, // <5,2,4,1>: Cost 3 ins <5,u,4,1>, lane 1
     2699142925U, // <5,2,4,2>: Cost 3 vext3 <2,4,2,5>, <2,4,2,5>
     2698626838U, // <5,2,4,3>: Cost 3 vext3 <2,3,4,5>, <2,4,3,5>
-    2698626848U, // <5,2,4,4>: Cost 3 vext3 <2,3,4,5>, <2,4,4,6>
+    3203547136U, // <5,2,4,4>: Cost 3 ins <u,2,4,4>, lane 0
     2628914486U, // <5,2,4,5>: Cost 3 vext2 <1,u,5,2>, RHS
-    2839824898U, // <5,2,4,6>: Cost 3 vuzpr <3,5,0,2>, <3,4,5,6>
-    3304146826U, // <5,2,4,7>: Cost 4 vrev <2,5,7,4>
-    2628914729U, // <5,2,4,u>: Cost 3 vext2 <1,u,5,2>, RHS
+    2129821696U, // <5,2,4,6>: Cost 2 ins <u,2,4,6>, lane 0
+    2846239973U, // <5,2,4,7>: Cost 3 vuzpr <4,5,6,2>, <4,4,6,7>
+    2129821696U, // <5,2,4,u>: Cost 2 ins <u,2,4,6>, lane 0
     3053487782U, // <5,2,5,0>: Cost 3 vtrnl <5,5,5,5>, <2,3,0,1>
-    3758950227U, // <5,2,5,1>: Cost 4 vext3 <0,1,2,5>, <2,5,1,3>
-    2827879536U, // <5,2,5,2>: Cost 3 vuzpr <1,5,0,2>, <1,5,0,2>
+    3203596288U, // <5,2,5,1>: Cost 3 ins <u,2,5,1>, lane 0
+    1772498225U, // <5,2,5,2>: Cost 2 vuzpr <4,5,6,2>, <4,5,6,2>
     1908654182U, // <5,2,5,3>: Cost 2 vzipr <4,u,5,5>, LHS
     3053487822U, // <5,2,5,4>: Cost 3 vtrnl <5,5,5,5>, <2,3,4,5>
-    3053487831U, // <5,2,5,5>: Cost 3 vtrnl <5,5,5,5>, <2,3,5,5>
+    2115952641U, // <5,2,5,5>: Cost 2 ins <5,u,5,5>, lane 1
     2982396252U, // <5,2,5,6>: Cost 3 vzipr <4,u,5,5>, <0,4,2,6>
-    2827881782U, // <5,2,5,7>: Cost 3 vuzpr <1,5,0,2>, RHS
+    2115969025U, // <5,2,5,7>: Cost 2 ins <5,u,5,7>, lane 1
     1908654187U, // <5,2,5,u>: Cost 2 vzipr <4,u,5,5>, LHS
-    3627393453U, // <5,2,6,0>: Cost 4 vext1 <0,5,2,6>, <0,5,2,6>
-    3760867236U, // <5,2,6,1>: Cost 4 vext3 <0,4,1,5>, <2,6,1,3>
+    3203661824U, // <5,2,6,0>: Cost 3 ins <u,2,6,0>, lane 0
+    3189735425U, // <5,2,6,1>: Cost 3 ins <5,u,6,1>, lane 1
     2973777940U, // <5,2,6,2>: Cost 3 vzipr <3,4,5,6>, <0,0,2,2>
     1900036198U, // <5,2,6,3>: Cost 2 vzipr <3,4,5,6>, LHS
     2700617665U, // <5,2,6,4>: Cost 3 vext3 <2,6,4,5>, <2,6,4,5>
     2973778186U, // <5,2,6,5>: Cost 3 vzipr <3,4,5,6>, <0,3,2,5>
     2973778268U, // <5,2,6,6>: Cost 3 vzipr <3,4,5,6>, <0,4,2,6>
-    3901622202U, // <5,2,6,7>: Cost 4 vuzpr <1,5,0,2>, <2,6,3,7>
+    2129977344U, // <5,2,6,7>: Cost 2 ins <u,2,6,7>, lane 0
     1900036203U, // <5,2,6,u>: Cost 2 vzipr <3,4,5,6>, LHS
     2040972182U, // <5,2,7,0>: Cost 2 vtrnr RHS, <1,2,3,0>
     3114713251U, // <5,2,7,1>: Cost 3 vtrnr RHS, <0,2,0,1>
@@ -3898,87 +3898,87 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2040972186U, // <5,2,7,4>: Cost 2 vtrnr RHS, <1,2,3,4>
     2961178728U, // <5,2,7,5>: Cost 3 vzipr <1,3,5,7>, <0,1,2,5>
     2040971468U, // <5,2,7,6>: Cost 2 vtrnr RHS, <0,2,4,6>
-    3114713302U, // <5,2,7,7>: Cost 3 vtrnr RHS, <0,2,5,7>
+    2116116481U, // <5,2,7,7>: Cost 2 ins <5,u,7,7>, lane 1
     1887436907U, // <5,2,7,u>: Cost 2 vzipr <1,3,5,7>, LHS
     2040980374U, // <5,2,u,0>: Cost 2 vtrnr RHS, <1,2,3,0>
     2628917038U, // <5,2,u,1>: Cost 3 vext2 <1,u,5,2>, LHS
     2040979620U, // <5,2,u,2>: Cost 2 vtrnr RHS, <0,2,0,2>
     1887445094U, // <5,2,u,3>: Cost 2 vzipr <1,3,5,u>, LHS
     1628203107U, // <5,2,u,4>: Cost 2 vext3 <2,u,4,5>, <2,u,4,5>
-    2628917402U, // <5,2,u,5>: Cost 3 vext2 <1,u,5,2>, RHS
+    2115952641U, // <5,2,u,5>: Cost 2 ins <5,u,5,5>, lane 1
     2040979660U, // <5,2,u,6>: Cost 2 vtrnr RHS, <0,2,4,6>
-    2827882025U, // <5,2,u,7>: Cost 3 vuzpr <1,5,0,2>, RHS
+    2115969025U, // <5,2,u,7>: Cost 2 ins <5,u,5,7>, lane 1
     1887445099U, // <5,2,u,u>: Cost 2 vzipr <1,3,5,u>, LHS
-    3760867467U, // <5,3,0,0>: Cost 4 vext3 <0,4,1,5>, <3,0,0,0>
-    2687125654U, // <5,3,0,1>: Cost 3 vext3 <0,4,1,5>, <3,0,1,2>
+    3203883008U, // <5,3,0,0>: Cost 3 ins <u,3,0,0>, lane 0
+    2130149376U, // <5,3,0,1>: Cost 2 ins <u,3,0,1>, lane 0
     2782904422U, // <5,3,0,2>: Cost 3 vuzpl <5,2,3,4>, LHS
-    3633391766U, // <5,3,0,3>: Cost 4 vext1 <1,5,3,0>, <3,0,1,2>
+    3186581506U, // <5,3,0,3>: Cost 3 ins <5,3,u,3>, lane 2
     2687125680U, // <5,3,0,4>: Cost 3 vext3 <0,4,1,5>, <3,0,4,1>
     3053750786U, // <5,3,0,5>: Cost 3 vtrnl <5,6,0,1>, <3,4,5,6>
-    4188398582U, // <5,3,0,6>: Cost 4 vtrnr <4,5,6,0>, <1,3,4,6>
+    2618302971U, // <5,3,0,6>: Cost 3 vext2 <0,1,5,3>, <0,6,2,3>
     2236344927U, // <5,3,0,7>: Cost 3 vrev <3,5,7,0>
-    2687125717U, // <5,3,0,u>: Cost 3 vext3 <0,4,1,5>, <3,0,u,2>
+    2130149376U, // <5,3,0,u>: Cost 2 ins <u,3,0,1>, lane 0
     2982364054U, // <5,3,1,0>: Cost 3 vzipr <4,u,5,1>, <1,2,3,0>
     3054504086U, // <5,3,1,1>: Cost 3 vtrnl <5,7,1,3>, <3,0,1,2>
     2624938923U, // <5,3,1,2>: Cost 3 vext2 <1,2,5,3>, <1,2,5,3>
-    2703198460U, // <5,3,1,3>: Cost 3 vext3 <3,1,3,5>, <3,1,3,5>
+    2130239488U, // <5,3,1,3>: Cost 2 ins <u,3,1,3>, lane 0
     2982364058U, // <5,3,1,4>: Cost 3 vzipr <4,u,5,1>, <1,2,3,4>
     2636219536U, // <5,3,1,5>: Cost 3 vext2 <3,1,5,3>, <1,5,3,7>
-    3698681075U, // <5,3,1,6>: Cost 4 vext2 <1,2,5,3>, <1,6,5,7>
+    3189407745U, // <5,3,1,6>: Cost 3 ins <5,u,1,6>, lane 1
     2964448400U, // <5,3,1,7>: Cost 3 vzipr <1,u,5,1>, <1,5,3,7>
-    2628920721U, // <5,3,1,u>: Cost 3 vext2 <1,u,5,3>, <1,u,5,3>
+    2130239488U, // <5,3,1,u>: Cost 2 ins <u,3,1,3>, lane 0
     2235845154U, // <5,3,2,0>: Cost 3 vrev <3,5,0,2>
-    3698681379U, // <5,3,2,1>: Cost 4 vext2 <1,2,5,3>, <2,1,3,5>
-    3760867649U, // <5,3,2,2>: Cost 4 vext3 <0,4,1,5>, <3,2,2,2>
-    2698627404U, // <5,3,2,3>: Cost 3 vext3 <2,3,4,5>, <3,2,3,4>
+    3204038656U, // <5,3,2,1>: Cost 3 ins <u,3,2,1>, lane 0
+    3204046848U, // <5,3,2,2>: Cost 3 ins <u,3,2,2>, lane 0
+    2130313216U, // <5,3,2,3>: Cost 2 ins <u,3,2,3>, lane 0
     2703935830U, // <5,3,2,4>: Cost 3 vext3 <3,2,4,5>, <3,2,4,5>
     2698627422U, // <5,3,2,5>: Cost 3 vext3 <2,3,4,5>, <3,2,5,4>
-    3760867686U, // <5,3,2,6>: Cost 4 vext3 <0,4,1,5>, <3,2,6,3>
+    3204079616U, // <5,3,2,6>: Cost 3 ins <u,3,2,6>, lane 0
     3096314880U, // <5,3,2,7>: Cost 3 vtrnr <1,5,0,2>, <1,3,5,7>
-    2701945209U, // <5,3,2,u>: Cost 3 vext3 <2,u,4,5>, <3,2,u,4>
-    3760867711U, // <5,3,3,0>: Cost 4 vext3 <0,4,1,5>, <3,3,0,1>
+    2130313216U, // <5,3,2,u>: Cost 2 ins <u,3,2,3>, lane 0
+    3204104192U, // <5,3,3,0>: Cost 3 ins <u,3,3,0>, lane 0
     2636220684U, // <5,3,3,1>: Cost 3 vext2 <3,1,5,3>, <3,1,5,3>
-    4034224886U, // <5,3,3,2>: Cost 4 vzipr <1,2,5,3>, <1,0,3,2>
-    2687125916U, // <5,3,3,3>: Cost 3 vext3 <0,4,1,5>, <3,3,3,3>
+    3204120576U, // <5,3,3,2>: Cost 3 ins <u,3,3,2>, lane 0
+    2130386944U, // <5,3,3,3>: Cost 2 ins <u,3,3,3>, lane 0
     2704599463U, // <5,3,3,4>: Cost 3 vext3 <3,3,4,5>, <3,3,4,5>
     2704673200U, // <5,3,3,5>: Cost 3 vext3 <3,3,5,5>, <3,3,5,5>
-    3709962935U, // <5,3,3,6>: Cost 4 vext2 <3,1,5,3>, <3,6,7,7>
+    3189555201U, // <5,3,3,6>: Cost 3 ins <5,u,3,6>, lane 1
     2971763856U, // <5,3,3,7>: Cost 3 vzipr <3,1,5,3>, <1,5,3,7>
-    2704894411U, // <5,3,3,u>: Cost 3 vext3 <3,3,u,5>, <3,3,u,5>
+    2130386944U, // <5,3,3,u>: Cost 2 ins <u,3,3,3>, lane 0
     2704968148U, // <5,3,4,0>: Cost 3 vext3 <3,4,0,5>, <3,4,0,5>
     2642193381U, // <5,3,4,1>: Cost 3 vext2 <4,1,5,3>, <4,1,5,3>
     2642857014U, // <5,3,4,2>: Cost 3 vext2 <4,2,5,3>, <4,2,5,3>
     2705189359U, // <5,3,4,3>: Cost 3 vext3 <3,4,3,5>, <3,4,3,5>
     2705263096U, // <5,3,4,4>: Cost 3 vext3 <3,4,4,5>, <3,4,4,5>
-    2685946370U, // <5,3,4,5>: Cost 3 vext3 <0,2,3,5>, <3,4,5,6>
+    2130477056U, // <5,3,4,5>: Cost 2 ins <u,3,4,5>, lane 0
     2846247426U, // <5,3,4,6>: Cost 3 vuzpr <4,5,6,3>, <3,4,5,6>
     2236377699U, // <5,3,4,7>: Cost 3 vrev <3,5,7,4>
-    2687126045U, // <5,3,4,u>: Cost 3 vext3 <0,4,1,5>, <3,4,u,6>
+    2130477056U, // <5,3,4,u>: Cost 2 ins <u,3,4,5>, lane 0
     2571632742U, // <5,3,5,0>: Cost 3 vext1 <3,5,3,5>, LHS
     3053488278U, // <5,3,5,1>: Cost 3 vtrnl <5,5,5,5>, <3,0,1,2>
     2571634382U, // <5,3,5,2>: Cost 3 vext1 <3,5,3,5>, <2,3,4,5>
-    2839906860U, // <5,3,5,3>: Cost 3 vuzpr <3,5,1,3>, <3,5,1,3>
+    1748320682U, // <5,3,5,3>: Cost 2 vuzpr <0,5,2,3>, <0,5,2,3>
     2571636022U, // <5,3,5,4>: Cost 3 vext1 <3,5,3,5>, RHS
-    3108505294U, // <5,3,5,5>: Cost 3 vtrnr <3,5,3,5>, <2,3,4,5>
-    3919988584U, // <5,3,5,6>: Cost 4 vuzpr <4,5,6,3>, <2,5,3,6>
-    3096413184U, // <5,3,5,7>: Cost 3 vtrnr <1,5,1,5>, <1,3,5,7>
-    2839907639U, // <5,3,5,u>: Cost 3 vuzpr <3,5,1,3>, RHS
+    2115952641U, // <5,3,5,5>: Cost 2 ins <5,u,5,5>, lane 1
+    3204300800U, // <5,3,5,6>: Cost 3 ins <u,3,5,6>, lane 0
+    2130567168U, // <5,3,5,7>: Cost 2 ins <u,3,5,7>, lane 0
+    2130567168U, // <5,3,5,u>: Cost 2 ins <u,3,5,7>, lane 0
     2565668966U, // <5,3,6,0>: Cost 3 vext1 <2,5,3,6>, LHS
-    4035577213U, // <5,3,6,1>: Cost 4 vzipr <1,4,5,6>, <1,u,3,1>
+    3204333568U, // <5,3,6,1>: Cost 3 ins <u,3,6,1>, lane 0
     2565670760U, // <5,3,6,2>: Cost 3 vext1 <2,5,3,6>, <2,5,3,6>
     2565671426U, // <5,3,6,3>: Cost 3 vext1 <2,5,3,6>, <3,4,5,6>
     2565672246U, // <5,3,6,4>: Cost 3 vext1 <2,5,3,6>, RHS
     2973778114U, // <5,3,6,5>: Cost 3 vzipr <3,4,5,6>, <0,2,3,5>
     2973779816U, // <5,3,6,6>: Cost 3 vzipr <3,4,5,6>, <2,5,3,6>
-    3096642560U, // <5,3,6,7>: Cost 3 vtrnr <1,5,4,6>, <1,3,5,7>
-    2565674798U, // <5,3,6,u>: Cost 3 vext1 <2,5,3,6>, LHS
+    2130640896U, // <5,3,6,7>: Cost 2 ins <u,3,6,7>, lane 0
+    2130640896U, // <5,3,6,u>: Cost 2 ins <u,3,6,7>, lane 0
     1485963366U, // <5,3,7,0>: Cost 2 vext1 <1,5,3,7>, LHS
     1485964432U, // <5,3,7,1>: Cost 2 vext1 <1,5,3,7>, <1,5,3,7>
     2961179382U, // <5,3,7,2>: Cost 3 vzipr <1,3,5,7>, <1,0,3,2>
     2040972248U, // <5,3,7,3>: Cost 2 vtrnr RHS, <1,3,1,3>
     1485966646U, // <5,3,7,4>: Cost 2 vext1 <1,5,3,7>, RHS
     2040973006U, // <5,3,7,5>: Cost 2 vtrnr RHS, <2,3,4,5>
-    3114714084U, // <5,3,7,6>: Cost 3 vtrnr RHS, <1,3,2,6>
+    2116108289U, // <5,3,7,6>: Cost 2 ins <5,u,7,6>, lane 1
     2040972288U, // <5,3,7,7>: Cost 2 vtrnr RHS, <1,3,5,7>
     1485969198U, // <5,3,7,u>: Cost 2 vext1 <1,5,3,7>, LHS
     1485971558U, // <5,3,u,0>: Cost 2 vext1 <1,5,3,u>, LHS
@@ -3987,160 +3987,160 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2040980440U, // <5,3,u,3>: Cost 2 vtrnr RHS, <1,3,1,3>
     1485974838U, // <5,3,u,4>: Cost 2 vext1 <1,5,3,u>, RHS
     2040981198U, // <5,3,u,5>: Cost 2 vtrnr RHS, <2,3,4,5>
-    3114722276U, // <5,3,u,6>: Cost 3 vtrnr RHS, <1,3,2,6>
+    2116108289U, // <5,3,u,6>: Cost 2 ins <5,u,7,6>, lane 1
     2040980480U, // <5,3,u,7>: Cost 2 vtrnr RHS, <1,3,5,7>
     1485977390U, // <5,3,u,u>: Cost 2 vext1 <1,5,3,u>, LHS
-    3627491769U, // <5,4,0,0>: Cost 4 vext1 <0,5,4,0>, <0,5,4,0>
+    3189284865U, // <5,4,0,0>: Cost 3 ins <5,u,0,0>, lane 1
     2636890214U, // <5,4,0,1>: Cost 3 vext2 <3,2,5,4>, LHS
     2781626470U, // <5,4,0,2>: Cost 3 vuzpl <5,0,4,1>, LHS
-    3645409860U, // <5,4,0,3>: Cost 4 vext1 <3,5,4,0>, <3,5,4,0>
+    3114656089U, // <5,4,0,3>: Cost 3 vtrnr <4,5,6,0>, <0,4,2,3>
     2642198866U, // <5,4,0,4>: Cost 3 vext2 <4,1,5,4>, <0,4,1,5>
     2687126418U, // <5,4,0,5>: Cost 3 vext3 <0,4,1,5>, <4,0,5,1>
-    2242243887U, // <5,4,0,6>: Cost 3 vrev <4,5,6,0>
-    3316059448U, // <5,4,0,7>: Cost 4 vrev <4,5,7,0>
-    2636890781U, // <5,4,0,u>: Cost 3 vext2 <3,2,5,4>, LHS
+    2113527810U, // <5,4,0,6>: Cost 2 ins <5,4,u,6>, lane 2
+    3114659045U, // <5,4,0,7>: Cost 3 vtrnr <4,5,6,0>, <4,4,6,7>
+    2113527810U, // <5,4,0,u>: Cost 2 ins <5,4,u,6>, lane 2
     2241809658U, // <5,4,1,0>: Cost 3 vrev <4,5,0,1>
-    3698025307U, // <5,4,1,1>: Cost 4 vext2 <1,1,5,4>, <1,1,5,4>
-    3698688940U, // <5,4,1,2>: Cost 4 vext2 <1,2,5,4>, <1,2,5,4>
-    2827894886U, // <5,4,1,3>: Cost 3 vuzpr <1,5,0,4>, LHS
+    3189366785U, // <5,4,1,1>: Cost 3 ins <5,u,1,1>, lane 1
+    3204636672U, // <5,4,1,2>: Cost 3 ins <u,4,1,2>, lane 0
+    2115641345U, // <5,4,1,3>: Cost 2 ins <5,u,1,3>, lane 1
     2982366416U, // <5,4,1,4>: Cost 3 vzipr <4,u,5,1>, <4,4,4,4>
     1843006774U, // <5,4,1,5>: Cost 2 vzipl <5,1,7,3>, RHS
     1980763446U, // <5,4,1,6>: Cost 2 vtrnl <5,7,1,3>, RHS
-    3902153566U, // <5,4,1,7>: Cost 4 vuzpr <1,5,7,4>, <1,1,5,7>
+    3189415937U, // <5,4,1,7>: Cost 3 ins <5,u,1,7>, lane 1
     1843007017U, // <5,4,1,u>: Cost 2 vzipl <5,1,7,3>, RHS
-    2241817851U, // <5,4,2,0>: Cost 3 vrev <4,5,0,2>
-    3703998004U, // <5,4,2,1>: Cost 4 vext2 <2,1,5,4>, <2,1,5,4>
-    3901636772U, // <5,4,2,2>: Cost 4 vuzpr <1,5,0,4>, <0,2,0,2>
-    2636891854U, // <5,4,2,3>: Cost 3 vext2 <3,2,5,4>, <2,3,4,5>
-    3901637530U, // <5,4,2,4>: Cost 4 vuzpr <1,5,0,4>, <1,2,3,4>
+    3204694016U, // <5,4,2,0>: Cost 3 ins <u,4,2,0>, lane 0
+    3050597641U, // <5,4,2,1>: Cost 3 vtrnl <5,1,2,3>, <4,5,1,7>
+    3189448705U, // <5,4,2,2>: Cost 3 ins <5,u,2,2>, lane 1
+    2130976768U, // <5,4,2,3>: Cost 2 ins <u,4,2,3>, lane 0
+    3204726784U, // <5,4,2,4>: Cost 3 ins <u,4,2,4>, lane 0
     2973746894U, // <5,4,2,5>: Cost 3 vzipr <3,4,5,2>, <2,3,4,5>
-    3108260354U, // <5,4,2,6>: Cost 3 vtrnr <3,5,0,2>, <3,4,5,6>
-    3908126344U, // <5,4,2,7>: Cost 4 vuzpr <2,5,7,4>, <2,2,5,7>
-    2916970010U, // <5,4,2,u>: Cost 3 vzipl <5,2,1,3>, <4,u,5,1>
-    3639459942U, // <5,4,3,0>: Cost 4 vext1 <2,5,4,3>, LHS
+    2131001344U, // <5,4,2,6>: Cost 2 ins <u,4,2,6>, lane 0
+    3114675429U, // <5,4,2,7>: Cost 3 vtrnr <4,5,6,2>, <4,4,6,7>
+    2131001344U, // <5,4,2,u>: Cost 2 ins <u,4,2,6>, lane 0
+    3204767744U, // <5,4,3,0>: Cost 3 ins <u,4,3,0>, lane 0
     2241899781U, // <5,4,3,1>: Cost 3 vrev <4,5,1,3>
     2636892510U, // <5,4,3,2>: Cost 3 vext2 <3,2,5,4>, <3,2,5,4>
-    3901637592U, // <5,4,3,3>: Cost 4 vuzpr <1,5,0,4>, <1,3,1,3>
+    3189530625U, // <5,4,3,3>: Cost 3 ins <5,u,3,3>, lane 1
     2638219776U, // <5,4,3,4>: Cost 3 vext2 <3,4,5,4>, <3,4,5,4>
     2978399950U, // <5,4,3,5>: Cost 3 vzipr <4,2,5,3>, <2,3,4,5>
-    2710719634U, // <5,4,3,6>: Cost 3 vext3 <4,3,6,5>, <4,3,6,5>
+    2113527810U, // <5,4,3,6>: Cost 2 ins <5,4,u,6>, lane 2
     2840355840U, // <5,4,3,7>: Cost 3 vuzpr <3,5,7,4>, <1,3,5,7>
-    2840429569U, // <5,4,3,u>: Cost 3 vuzpr <3,5,u,4>, <1,3,5,u>
+    2113527810U, // <5,4,3,u>: Cost 2 ins <5,4,u,6>, lane 2
     2918763410U, // <5,4,4,0>: Cost 3 vzipl <5,4,7,6>, <4,0,5,1>
     2642201574U, // <5,4,4,1>: Cost 3 vext2 <4,1,5,4>, <4,1,5,4>
-    3710635062U, // <5,4,4,2>: Cost 4 vext2 <3,2,5,4>, <4,2,5,3>
-    2643528840U, // <5,4,4,3>: Cost 3 vext2 <4,3,5,4>, <4,3,5,4>
-    2713963728U, // <5,4,4,4>: Cost 3 vext3 <4,u,5,5>, <4,4,4,4>
+    3186991107U, // <5,4,4,2>: Cost 3 ins <5,4,4,u>, lane 3
+    3186991107U, // <5,4,4,3>: Cost 3 ins <5,4,4,u>, lane 3
+    2131132416U, // <5,4,4,4>: Cost 2 ins <u,4,4,4>, lane 0
     1845022006U, // <5,4,4,5>: Cost 2 vzipl <5,4,7,6>, RHS
-    2242276659U, // <5,4,4,6>: Cost 3 vrev <4,5,6,4>
+    2113527810U, // <5,4,4,6>: Cost 2 ins <5,4,u,6>, lane 2
     2646183372U, // <5,4,4,7>: Cost 3 vext2 <4,7,5,4>, <4,7,5,4>
     1845022249U, // <5,4,4,u>: Cost 2 vzipl <5,4,7,6>, RHS
     2559762534U, // <5,4,5,0>: Cost 3 vext1 <1,5,4,5>, LHS
     2559763607U, // <5,4,5,1>: Cost 3 vext1 <1,5,4,5>, <1,5,4,5>
     2698628366U, // <5,4,5,2>: Cost 3 vext3 <2,3,4,5>, <4,5,2,3>
-    3766398233U, // <5,4,5,3>: Cost 4 vext3 <1,3,4,5>, <4,5,3,5>
-    2827895922U, // <5,4,5,4>: Cost 3 vuzpr <1,5,0,4>, <1,5,0,4>
+    3189678081U, // <5,4,5,3>: Cost 3 ins <5,u,5,3>, lane 1
+    1772514611U, // <5,4,5,4>: Cost 2 vuzpr <4,5,6,4>, <4,5,6,4>
     1845529910U, // <5,4,5,5>: Cost 2 vzipl <5,5,5,5>, RHS
     1613385014U, // <5,4,5,6>: Cost 2 vext3 <0,4,1,5>, RHS
-    2827898166U, // <5,4,5,7>: Cost 3 vuzpr <1,5,0,4>, RHS
+    2115969025U, // <5,4,5,7>: Cost 2 ins <5,u,5,7>, lane 1
     1613385032U, // <5,4,5,u>: Cost 2 vext3 <0,4,1,5>, RHS
     2559770726U, // <5,4,6,0>: Cost 3 vext1 <1,5,4,6>, LHS
     2559771800U, // <5,4,6,1>: Cost 3 vext1 <1,5,4,6>, <1,5,4,6>
-    2698628448U, // <5,4,6,2>: Cost 3 vext3 <2,3,4,5>, <4,6,2,4>
+    3189743617U, // <5,4,6,2>: Cost 3 ins <5,u,6,2>, lane 1
     2571717194U, // <5,4,6,3>: Cost 3 vext1 <3,5,4,6>, <3,5,4,6>
     2559774006U, // <5,4,6,4>: Cost 3 vext1 <1,5,4,6>, RHS
     1846299958U, // <5,4,6,5>: Cost 2 vzipl <5,6,7,0>, RHS
-    3102542338U, // <5,4,6,6>: Cost 3 vtrnr <2,5,3,6>, <3,4,5,6>
-    2712784270U, // <5,4,6,7>: Cost 3 vext3 <4,6,7,5>, <4,6,7,5>
+    2131296256U, // <5,4,6,6>: Cost 2 ins <u,4,6,6>, lane 0
+    2131304448U, // <5,4,6,7>: Cost 2 ins <u,4,6,7>, lane 0
     1846300201U, // <5,4,6,u>: Cost 2 vzipl <5,6,7,0>, RHS
-    2565750886U, // <5,4,7,0>: Cost 3 vext1 <2,5,4,7>, LHS
-    2565751706U, // <5,4,7,1>: Cost 3 vext1 <2,5,4,7>, <1,2,3,4>
-    2565752690U, // <5,4,7,2>: Cost 3 vext1 <2,5,4,7>, <2,5,4,7>
-    3114714882U, // <5,4,7,3>: Cost 3 vtrnr RHS, <2,4,1,3>
+    2116059137U, // <5,4,7,0>: Cost 2 ins <5,u,7,0>, lane 1
+    2113470467U, // <5,4,7,1>: Cost 2 ins <5,4,7,u>, lane 3
+    2113470467U, // <5,4,7,2>: Cost 2 ins <5,4,7,u>, lane 3
+    2116083713U, // <5,4,7,3>: Cost 2 ins <5,u,7,3>, lane 1
     2040974544U, // <5,4,7,4>: Cost 2 vtrnr RHS, <4,4,4,4>
     2040971602U, // <5,4,7,5>: Cost 2 vtrnr RHS, <0,4,1,5>
     94817590U,   // <5,4,7,6>: Cost 1 vrev RHS
-    3114714922U, // <5,4,7,7>: Cost 3 vtrnr RHS, <2,4,5,7>
+    2116116481U, // <5,4,7,7>: Cost 2 ins <5,u,7,7>, lane 1
     94965064U,   // <5,4,7,u>: Cost 1 vrev RHS
-    2559787110U, // <5,4,u,0>: Cost 3 vext1 <1,5,4,u>, LHS
-    2559788186U, // <5,4,u,1>: Cost 3 vext1 <1,5,4,u>, <1,5,4,u>
-    2565760883U, // <5,4,u,2>: Cost 3 vext1 <2,5,4,u>, <2,5,4,u>
-    2827895453U, // <5,4,u,3>: Cost 3 vuzpr <1,5,0,4>, LHS
+    2116059137U, // <5,4,u,0>: Cost 2 ins <5,u,7,0>, lane 1
+    2113470467U, // <5,4,u,1>: Cost 2 ins <5,4,7,u>, lane 3
+    2113470467U, // <5,4,u,2>: Cost 2 ins <5,4,7,u>, lane 3
+    2115641345U, // <5,4,u,3>: Cost 2 ins <5,u,1,3>, lane 1
     2040982736U, // <5,4,u,4>: Cost 2 vtrnr RHS, <4,4,4,4>
     2040979794U, // <5,4,u,5>: Cost 2 vtrnr RHS, <0,4,1,5>
     94825783U,   // <5,4,u,6>: Cost 1 vrev RHS
-    2827898409U, // <5,4,u,7>: Cost 3 vuzpr <1,5,0,4>, RHS
+    2115969025U, // <5,4,u,7>: Cost 2 ins <5,u,5,7>, lane 1
     94973257U,   // <5,4,u,u>: Cost 1 vrev RHS
-    2973731324U, // <5,5,0,0>: Cost 3 vzipr <3,4,5,0>, <3,4,5,0>
+    2040917295U, // <5,5,0,0>: Cost 2 vtrnr <4,5,6,0>, <4,5,6,0>
     1573109862U, // <5,5,0,1>: Cost 2 vext2 <4,u,5,5>, LHS
     1711308902U, // <5,5,0,2>: Cost 2 vuzpl <5,5,5,5>, LHS
-    3760279130U, // <5,5,0,3>: Cost 4 vext3 <0,3,2,5>, <5,0,3,2>
+    3187908610U, // <5,5,0,3>: Cost 3 ins <5,5,u,3>, lane 2
     2687127138U, // <5,5,0,4>: Cost 3 vext3 <0,4,1,5>, <5,0,4,1>
-    2650833378U, // <5,5,0,5>: Cost 3 vext2 <5,5,5,5>, <0,5,u,5>
-    2915995746U, // <5,5,0,6>: Cost 3 vzipl <5,0,6,1>, <5,6,7,0>
-    3108760886U, // <5,5,0,7>: Cost 3 vtrnr <3,5,7,0>, RHS
+    2114183170U, // <5,5,0,5>: Cost 2 ins <5,5,u,5>, lane 2
+    3187933186U, // <5,5,0,6>: Cost 3 ins <5,5,u,6>, lane 2
+    2114199554U, // <5,5,0,7>: Cost 2 ins <5,5,u,7>, lane 2
     1573110429U, // <5,5,0,u>: Cost 2 vext2 <4,u,5,5>, LHS
     2646852342U, // <5,5,1,0>: Cost 3 vext2 <4,u,5,5>, <1,0,3,2>
     1908624922U, // <5,5,1,1>: Cost 2 vzipr <4,u,5,1>, <4,u,5,1>
     2646852502U, // <5,5,1,2>: Cost 3 vext2 <4,u,5,5>, <1,2,3,0>
     1778417766U, // <5,5,1,3>: Cost 2 vuzpr <5,5,5,5>, LHS
     2715217591U, // <5,5,1,4>: Cost 3 vext3 <5,1,4,5>, <5,1,4,5>
-    2628936848U, // <5,5,1,5>: Cost 3 vext2 <1,u,5,5>, <1,5,3,7>
+    2114183170U, // <5,5,1,5>: Cost 2 ins <5,5,u,5>, lane 2
     2982365698U, // <5,5,1,6>: Cost 3 vzipr <4,u,5,1>, <3,4,5,6>
-    3096309046U, // <5,5,1,7>: Cost 3 vtrnr <1,5,0,1>, RHS
+    2114199554U, // <5,5,1,7>: Cost 2 ins <5,5,u,7>, lane 2
     1778417771U, // <5,5,1,u>: Cost 2 vuzpr <5,5,5,5>, LHS
     2785052326U, // <5,5,2,0>: Cost 3 vuzpl <5,5,5,5>, <2,3,0,1>
-    3760869099U, // <5,5,2,1>: Cost 4 vext3 <0,4,1,5>, <5,2,1,3>
-    3096314992U, // <5,5,2,2>: Cost 3 vtrnr <1,5,0,2>, <1,5,0,2>
-    2698628862U, // <5,5,2,3>: Cost 3 vext3 <2,3,4,5>, <5,2,3,4>
+    3205365760U, // <5,5,2,1>: Cost 3 ins <u,5,2,1>, lane 0
+    2040933681U, // <5,5,2,2>: Cost 2 vtrnr <4,5,6,2>, <4,5,6,2>
+    2131640320U, // <5,5,2,3>: Cost 2 ins <u,5,2,3>, lane 0
     2785052366U, // <5,5,2,4>: Cost 3 vuzpl <5,5,5,5>, <2,3,4,5>
-    2785052375U, // <5,5,2,5>: Cost 3 vuzpl <5,5,5,5>, <2,3,5,5>
+    2114183170U, // <5,5,2,5>: Cost 2 ins <5,5,u,5>, lane 2
     2646853562U, // <5,5,2,6>: Cost 3 vext2 <4,u,5,5>, <2,6,3,7>
-    3096317238U, // <5,5,2,7>: Cost 3 vtrnr <1,5,0,2>, RHS
-    3096317239U, // <5,5,2,u>: Cost 3 vtrnr <1,5,0,2>, RHS
+    2114199554U, // <5,5,2,7>: Cost 2 ins <5,5,u,7>, lane 2
+    2114199554U, // <5,5,2,u>: Cost 2 ins <5,5,u,7>, lane 2
     2646853782U, // <5,5,3,0>: Cost 3 vext2 <4,u,5,5>, <3,0,1,2>
     2785052822U, // <5,5,3,1>: Cost 3 vuzpl <5,5,5,5>, <3,0,1,2>
-    3702679919U, // <5,5,3,2>: Cost 4 vext2 <1,u,5,5>, <3,2,7,3>
-    2960483243U, // <5,5,3,3>: Cost 3 vzipr <1,2,5,3>, <1,2,5,3>
+    3187900418U, // <5,5,3,2>: Cost 3 ins <5,5,u,2>, lane 2
+    1880105089U, // <5,5,3,3>: Cost 2 vzipr <0,1,5,3>, <0,1,5,3>
     2646854146U, // <5,5,3,4>: Cost 3 vext2 <4,u,5,5>, <3,4,5,6>
-    2840069838U, // <5,5,3,5>: Cost 3 vuzpr <3,5,3,5>, <2,3,4,5>
-    4034226690U, // <5,5,3,6>: Cost 4 vzipr <1,2,5,3>, <3,4,5,6>
-    2827977728U, // <5,5,3,7>: Cost 3 vuzpr <1,5,1,5>, <1,3,5,7>
-    3108343095U, // <5,5,3,u>: Cost 3 vtrnr <3,5,1,3>, RHS
+    2114183170U, // <5,5,3,5>: Cost 2 ins <5,5,u,5>, lane 2
+    3205480448U, // <5,5,3,6>: Cost 3 ins <u,5,3,6>, lane 0
+    2131746816U, // <5,5,3,7>: Cost 2 ins <u,5,3,7>, lane 0
+    2131746816U, // <5,5,3,u>: Cost 2 ins <u,5,3,7>, lane 0
     2646854546U, // <5,5,4,0>: Cost 3 vext2 <4,u,5,5>, <4,0,5,1>
     2716987279U, // <5,5,4,1>: Cost 3 vext3 <5,4,1,5>, <5,4,1,5>
-    4046178814U, // <5,5,4,2>: Cost 4 vzipr <3,2,5,4>, <3,4,5,2>
-    4170075397U, // <5,5,4,3>: Cost 4 vtrnr <1,5,0,4>, <4,5,1,3>
+    3187900418U, // <5,5,4,2>: Cost 3 ins <5,5,u,2>, lane 2
+    3187908610U, // <5,5,4,3>: Cost 3 ins <5,5,u,3>, lane 2
     1845022662U, // <5,5,4,4>: Cost 2 vzipl <5,4,7,6>, <5,4,7,6>
     1573113142U, // <5,5,4,5>: Cost 2 vext2 <4,u,5,5>, RHS
     1711312182U, // <5,5,4,6>: Cost 2 vuzpl <5,5,5,5>, RHS
-    3096333622U, // <5,5,4,7>: Cost 3 vtrnr <1,5,0,4>, RHS
+    2114199554U, // <5,5,4,7>: Cost 2 ins <5,5,u,7>, lane 2
     1573113374U, // <5,5,4,u>: Cost 2 vext2 <4,u,5,5>, <4,u,5,5>
     1509982310U, // <5,5,5,0>: Cost 2 vext1 <5,5,5,5>, LHS
-    2646855376U, // <5,5,5,1>: Cost 3 vext2 <4,u,5,5>, <5,1,7,3>
-    2583725672U, // <5,5,5,2>: Cost 3 vext1 <5,5,5,5>, <2,2,2,2>
-    2982399759U, // <5,5,5,3>: Cost 3 vzipr <4,u,5,5>, <5,2,5,3>
+    2113986563U, // <5,5,5,1>: Cost 2 ins <5,5,5,u>, lane 3
+    2113986563U, // <5,5,5,2>: Cost 2 ins <5,5,5,u>, lane 3
+    2113986563U, // <5,5,5,3>: Cost 2 ins <5,5,5,u>, lane 3
     1509985590U, // <5,5,5,4>: Cost 2 vext1 <5,5,5,5>, RHS
     229035318U,  // <5,5,5,5>: Cost 1 vdup1 RHS
-    2646855778U, // <5,5,5,6>: Cost 3 vext2 <4,u,5,5>, <5,6,7,0>
+    2113986563U, // <5,5,5,6>: Cost 2 ins <5,5,5,u>, lane 3
     1778421046U, // <5,5,5,7>: Cost 2 vuzpr <5,5,5,5>, RHS
     229035318U,  // <5,5,5,u>: Cost 1 vdup1 RHS
-    2785055566U, // <5,5,6,0>: Cost 3 vuzpl <5,5,5,5>, <6,7,0,1>
-    2920042192U, // <5,5,6,1>: Cost 3 vzipl <5,6,7,0>, <5,1,7,3>
-    2646856186U, // <5,5,6,2>: Cost 3 vext2 <4,u,5,5>, <6,2,7,3>
-    3633588738U, // <5,5,6,3>: Cost 4 vext1 <1,5,5,6>, <3,4,5,6>
-    2785055606U, // <5,5,6,4>: Cost 3 vuzpl <5,5,5,5>, <6,7,4,5>
-    2785055615U, // <5,5,6,5>: Cost 3 vuzpl <5,5,5,5>, <6,7,5,5>
+    2131910656U, // <5,5,6,0>: Cost 2 ins <u,5,6,0>, lane 0
+    2131918848U, // <5,5,6,1>: Cost 2 ins <u,5,6,1>, lane 0
+    2131927040U, // <5,5,6,2>: Cost 2 ins <u,5,6,2>, lane 0
+    2131935232U, // <5,5,6,3>: Cost 2 ins <u,5,6,3>, lane 0
+    2131943424U, // <5,5,6,4>: Cost 2 ins <u,5,6,4>, lane 0
+    2131951616U, // <5,5,6,5>: Cost 2 ins <u,5,6,5>, lane 0
     1900038658U, // <5,5,6,6>: Cost 2 vzipr <3,4,5,6>, <3,4,5,6>
-    3096644918U, // <5,5,6,7>: Cost 3 vtrnr <1,5,4,6>, RHS
-    1900038658U, // <5,5,6,u>: Cost 2 vzipr <3,4,5,6>, <3,4,5,6>
-    2571796582U, // <5,5,7,0>: Cost 3 vext1 <3,5,5,7>, LHS
-    3114714223U, // <5,5,7,1>: Cost 3 vtrnr RHS, <1,5,0,1>
-    2571798222U, // <5,5,7,2>: Cost 3 vext1 <3,5,5,7>, <2,3,4,5>
-    2571799124U, // <5,5,7,3>: Cost 3 vext1 <3,5,5,7>, <3,5,5,7>
-    2571799862U, // <5,5,7,4>: Cost 3 vext1 <3,5,5,7>, RHS
+    1058226176U, // <5,5,6,7>: Cost 1 ins RHS, lane 0
+    1058226176U, // <5,5,6,u>: Cost 1 ins RHS, lane 0
+    2116059137U, // <5,5,7,0>: Cost 2 ins <5,u,7,0>, lane 1
+    2114134019U, // <5,5,7,1>: Cost 2 ins <5,5,7,u>, lane 3
+    2114134019U, // <5,5,7,2>: Cost 2 ins <5,5,7,u>, lane 3
+    2116083713U, // <5,5,7,3>: Cost 2 ins <5,u,7,3>, lane 1
+    2116091905U, // <5,5,7,4>: Cost 2 ins <5,u,7,4>, lane 1
     2040975364U, // <5,5,7,5>: Cost 2 vtrnr RHS, <5,5,5,5>
-    2961181186U, // <5,5,7,6>: Cost 3 vzipr <1,3,5,7>, <3,4,5,6>
+    2116108289U, // <5,5,7,6>: Cost 2 ins <5,u,7,6>, lane 1
     967232822U,  // <5,5,7,7>: Cost 1 vtrnr RHS, RHS
     967232823U,  // <5,5,7,u>: Cost 1 vtrnr RHS, RHS
     1509982310U, // <5,5,u,0>: Cost 2 vext1 <5,5,5,5>, LHS
@@ -4152,67 +4152,67 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1711315098U, // <5,5,u,6>: Cost 2 vuzpl <5,5,5,5>, RHS
     967241014U,  // <5,5,u,7>: Cost 1 vtrnr RHS, RHS
     967241015U,  // <5,5,u,u>: Cost 1 vtrnr RHS, RHS
-    2638233600U, // <5,6,0,0>: Cost 3 vext2 <3,4,5,6>, <0,0,0,0>
+    2114805762U, // <5,6,0,0>: Cost 2 ins <5,6,u,0>, lane 2
     1564491878U, // <5,6,0,1>: Cost 2 vext2 <3,4,5,6>, LHS
-    2632261796U, // <5,6,0,2>: Cost 3 vext2 <2,4,5,6>, <0,2,0,2>
+    2132148224U, // <5,6,0,2>: Cost 2 ins <u,6,0,2>, lane 0
     2638233856U, // <5,6,0,3>: Cost 3 vext2 <3,4,5,6>, <0,3,1,4>
-    2638233938U, // <5,6,0,4>: Cost 3 vext2 <3,4,5,6>, <0,4,1,5>
-    3706003885U, // <5,6,0,5>: Cost 4 vext2 <2,4,5,6>, <0,5,2,6>
-    3706003967U, // <5,6,0,6>: Cost 4 vext2 <2,4,5,6>, <0,6,2,7>
+    2114838530U, // <5,6,0,4>: Cost 2 ins <5,6,u,4>, lane 2
+    3188588546U, // <5,6,0,5>: Cost 3 ins <5,6,u,5>, lane 2
+    3188596738U, // <5,6,0,6>: Cost 3 ins <5,6,u,6>, lane 2
     2973732150U, // <5,6,0,7>: Cost 3 vzipr <3,4,5,0>, RHS
     1564492445U, // <5,6,0,u>: Cost 2 vext2 <3,4,5,6>, LHS
-    2638234358U, // <5,6,1,0>: Cost 3 vext2 <3,4,5,6>, <1,0,3,2>
+    2114805762U, // <5,6,1,0>: Cost 2 ins <5,6,u,0>, lane 2
     2638234420U, // <5,6,1,1>: Cost 3 vext2 <3,4,5,6>, <1,1,1,1>
     2638234518U, // <5,6,1,2>: Cost 3 vext2 <3,4,5,6>, <1,2,3,0>
-    2828206182U, // <5,6,1,3>: Cost 3 vuzpr <1,5,4,6>, LHS
-    2626290768U, // <5,6,1,4>: Cost 3 vext2 <1,4,5,6>, <1,4,5,6>
+    2115641345U, // <5,6,1,3>: Cost 2 ins <5,u,1,3>, lane 1
+    2114838530U, // <5,6,1,4>: Cost 2 ins <5,6,u,4>, lane 2
     2638234768U, // <5,6,1,5>: Cost 3 vext2 <3,4,5,6>, <1,5,3,7>
     2982366436U, // <5,6,1,6>: Cost 3 vzipr <4,u,5,1>, <4,4,6,6>
     1908624694U, // <5,6,1,7>: Cost 2 vzipr <4,u,5,1>, RHS
     1908624695U, // <5,6,1,u>: Cost 2 vzipr <4,u,5,1>, RHS
-    3901948822U, // <5,6,2,0>: Cost 4 vuzpr <1,5,4,6>, <1,2,3,0>
-    3706005016U, // <5,6,2,1>: Cost 4 vext2 <2,4,5,6>, <2,1,2,3>
+    2114805762U, // <5,6,2,0>: Cost 2 ins <5,6,u,0>, lane 2
+    3188555778U, // <5,6,2,1>: Cost 3 ins <5,6,u,1>, lane 2
     2638235240U, // <5,6,2,2>: Cost 3 vext2 <3,4,5,6>, <2,2,2,2>
-    2638235302U, // <5,6,2,3>: Cost 3 vext2 <3,4,5,6>, <2,3,0,1>
-    2632263465U, // <5,6,2,4>: Cost 3 vext2 <2,4,5,6>, <2,4,5,6>
+    2132303872U, // <5,6,2,3>: Cost 2 ins <u,6,2,3>, lane 0
+    2114838530U, // <5,6,2,4>: Cost 2 ins <5,6,u,4>, lane 2
     2638235496U, // <5,6,2,5>: Cost 3 vext2 <3,4,5,6>, <2,5,3,6>
     2638235578U, // <5,6,2,6>: Cost 3 vext2 <3,4,5,6>, <2,6,3,7>
     2964458806U, // <5,6,2,7>: Cost 3 vzipr <1,u,5,2>, RHS
-    2964458807U, // <5,6,2,u>: Cost 3 vzipr <1,u,5,2>, RHS
-    2638235798U, // <5,6,3,0>: Cost 3 vext2 <3,4,5,6>, <3,0,1,2>
-    3901949606U, // <5,6,3,1>: Cost 4 vuzpr <1,5,4,6>, <2,3,0,1>
-    3907850088U, // <5,6,3,2>: Cost 4 vuzpr <2,5,3,6>, <5,3,6,2>
+    2114805762U, // <5,6,2,u>: Cost 2 ins <5,6,u,0>, lane 2
+    2114805762U, // <5,6,3,0>: Cost 2 ins <5,6,u,0>, lane 2
+    3206103040U, // <5,6,3,1>: Cost 3 ins <u,6,3,1>, lane 0
+    3206111232U, // <5,6,3,2>: Cost 3 ins <u,6,3,2>, lane 0
     2638236060U, // <5,6,3,3>: Cost 3 vext2 <3,4,5,6>, <3,3,3,3>
     1564494338U, // <5,6,3,4>: Cost 2 vext2 <3,4,5,6>, <3,4,5,6>
     2783119874U, // <5,6,3,5>: Cost 3 vuzpl <5,2,6,3>, <3,4,5,6>
-    3907847158U, // <5,6,3,6>: Cost 4 vuzpr <2,5,3,6>, <1,3,4,6>
-    2960485686U, // <5,6,3,7>: Cost 3 vzipr <1,2,5,3>, RHS
+    3206144000U, // <5,6,3,6>: Cost 3 ins <u,6,3,6>, lane 0
+    2132410368U, // <5,6,3,7>: Cost 2 ins <u,6,3,7>, lane 0
     1567148870U, // <5,6,3,u>: Cost 2 vext2 <3,u,5,6>, <3,u,5,6>
-    2577817702U, // <5,6,4,0>: Cost 3 vext1 <4,5,6,4>, LHS
-    3901951928U, // <5,6,4,1>: Cost 4 vuzpr <1,5,4,6>, <5,4,6,1>
+    2114805762U, // <5,6,4,0>: Cost 2 ins <5,6,u,0>, lane 2
+    3189587969U, // <5,6,4,1>: Cost 3 ins <5,u,4,1>, lane 1
     2918765050U, // <5,6,4,2>: Cost 3 vzipl <5,4,7,6>, <6,2,7,3>
     2638236818U, // <5,6,4,3>: Cost 3 vext2 <3,4,5,6>, <4,3,6,5>
-    2644208859U, // <5,6,4,4>: Cost 3 vext2 <4,4,5,6>, <4,4,5,6>
+    2114838530U, // <5,6,4,4>: Cost 2 ins <5,6,u,4>, lane 2
     1564495158U, // <5,6,4,5>: Cost 2 vext2 <3,4,5,6>, RHS
-    2834106882U, // <5,6,4,6>: Cost 3 vuzpr <2,5,3,6>, <3,4,5,6>
+    2132475904U, // <5,6,4,6>: Cost 2 ins <u,6,4,6>, lane 0
     2972437814U, // <5,6,4,7>: Cost 3 vzipr <3,2,5,4>, RHS
     1564495401U, // <5,6,4,u>: Cost 2 vext2 <3,4,5,6>, RHS
-    3053491022U, // <5,6,5,0>: Cost 3 vtrnl <5,5,5,5>, <6,7,0,1>
+    2114805762U, // <5,6,5,0>: Cost 2 ins <5,6,u,0>, lane 2
     2662125264U, // <5,6,5,1>: Cost 3 vext2 <7,4,5,6>, <5,1,7,3>
     2982398876U, // <5,6,5,2>: Cost 3 vzipr <4,u,5,5>, <4,0,6,2>
-    3711979343U, // <5,6,5,3>: Cost 4 vext2 <3,4,5,6>, <5,3,3,4>
-    2650181556U, // <5,6,5,4>: Cost 3 vext2 <5,4,5,6>, <5,4,5,6>
-    2986380596U, // <5,6,5,5>: Cost 3 vzipr <5,5,5,5>, <4,5,6,5>
-    2828207256U, // <5,6,5,6>: Cost 3 vuzpr <1,5,4,6>, <1,5,4,6>
+    3189678081U, // <5,6,5,3>: Cost 3 ins <5,u,5,3>, lane 1
+    2114838530U, // <5,6,5,4>: Cost 2 ins <5,6,u,4>, lane 2
+    2115952641U, // <5,6,5,5>: Cost 2 ins <5,u,5,5>, lane 1
+    1772530997U, // <5,6,5,6>: Cost 2 vuzpr <4,5,6,6>, <4,5,6,6>
     1908657462U, // <5,6,5,7>: Cost 2 vzipr <4,u,5,5>, RHS
     1908657463U, // <5,6,5,u>: Cost 2 vzipr <4,u,5,5>, RHS
-    2973781295U, // <5,6,6,0>: Cost 3 vzipr <3,4,5,6>, <4,5,6,0>
-    2920042858U, // <5,6,6,1>: Cost 3 vzipl <5,6,7,0>, <6,1,0,3>
+    2114805762U, // <5,6,6,0>: Cost 2 ins <5,6,u,0>, lane 2
+    3189735425U, // <5,6,6,1>: Cost 3 ins <5,u,6,1>, lane 1
     2920043002U, // <5,6,6,2>: Cost 3 vzipl <5,6,7,0>, <6,2,7,3>
     2973781298U, // <5,6,6,3>: Cost 3 vzipr <3,4,5,6>, <4,5,6,3>
-    2973781299U, // <5,6,6,4>: Cost 3 vzipr <3,4,5,6>, <4,5,6,4>
+    2114838530U, // <5,6,6,4>: Cost 2 ins <5,6,u,4>, lane 2
     2973781138U, // <5,6,6,5>: Cost 3 vzipr <3,4,5,6>, <4,3,6,5>
-    2973782030U, // <5,6,6,6>: Cost 3 vzipr <3,4,5,6>, <5,5,6,6>
+    2132623360U, // <5,6,6,6>: Cost 2 ins <u,6,6,6>, lane 0
     1900039478U, // <5,6,6,7>: Cost 2 vzipr <3,4,5,6>, RHS
     1900039479U, // <5,6,6,u>: Cost 2 vzipr <3,4,5,6>, RHS
     430358630U,  // <5,6,7,0>: Cost 1 vext1 RHS, LHS
@@ -4236,20 +4236,20 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1772535808U, // <5,7,0,0>: Cost 2 vuzpr RHS, <0,0,0,0>
     1551892582U, // <5,7,0,1>: Cost 2 vext2 <1,3,5,7>, LHS
     1772535828U, // <5,7,0,2>: Cost 2 vuzpr RHS, <0,0,2,2>
-    2571889247U, // <5,7,0,3>: Cost 3 vext1 <3,5,7,0>, <3,5,7,0>
+    2115493890U, // <5,7,0,3>: Cost 2 ins <5,7,u,3>, lane 2
     2625634642U, // <5,7,0,4>: Cost 3 vext2 <1,3,5,7>, <0,4,1,5>
     2846279860U, // <5,7,0,5>: Cost 3 vuzpr RHS, <3,0,4,5>
     2846277674U, // <5,7,0,6>: Cost 3 vuzpr RHS, <0,0,4,6>
-    2846279142U, // <5,7,0,7>: Cost 3 vuzpr RHS, <2,0,5,7>
+    2115526658U, // <5,7,0,7>: Cost 2 ins <5,7,u,7>, lane 2
     1551893149U, // <5,7,0,u>: Cost 2 vext2 <1,3,5,7>, LHS
-    2625635062U, // <5,7,1,0>: Cost 3 vext2 <1,3,5,7>, <1,0,3,2>
+    2115018755U, // <5,7,1,0>: Cost 2 ins <5,7,1,u>, lane 3
     1772536628U, // <5,7,1,1>: Cost 2 vuzpr RHS, <1,1,1,1>
-    2625635222U, // <5,7,1,2>: Cost 3 vext2 <1,3,5,7>, <1,2,3,0>
+    2115018755U, // <5,7,1,2>: Cost 2 ins <5,7,1,u>, lane 3
     698794086U,  // <5,7,1,3>: Cost 1 vuzpr RHS, LHS
-    2571898166U, // <5,7,1,4>: Cost 3 vext1 <3,5,7,1>, RHS
-    2625635472U, // <5,7,1,5>: Cost 3 vext2 <1,3,5,7>, <1,5,3,7>
-    2627626227U, // <5,7,1,6>: Cost 3 vext2 <1,6,5,7>, <1,6,5,7>
-    2846278494U, // <5,7,1,7>: Cost 3 vuzpr RHS, <1,1,5,7>
+    2115018755U, // <5,7,1,4>: Cost 2 ins <5,7,1,u>, lane 3
+    2115018755U, // <5,7,1,5>: Cost 2 ins <5,7,1,u>, lane 3
+    2115018755U, // <5,7,1,6>: Cost 2 ins <5,7,1,u>, lane 3
+    2115526658U, // <5,7,1,7>: Cost 2 ins <5,7,u,7>, lane 2
     698794091U,  // <5,7,1,u>: Cost 1 vuzpr RHS, LHS
     1772536726U, // <5,7,2,0>: Cost 2 vuzpr RHS, <1,2,3,0>
     2846277795U, // <5,7,2,1>: Cost 3 vuzpr RHS, <0,2,0,1>
@@ -4258,7 +4258,7 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1772536730U, // <5,7,2,4>: Cost 2 vuzpr RHS, <1,2,3,4>
     2625636201U, // <5,7,2,5>: Cost 3 vext2 <1,3,5,7>, <2,5,3,7>
     1772536012U, // <5,7,2,6>: Cost 2 vuzpr RHS, <0,2,4,6>
-    2846277846U, // <5,7,2,7>: Cost 3 vuzpr RHS, <0,2,5,7>
+    2115526658U, // <5,7,2,7>: Cost 2 ins <5,7,u,7>, lane 2
     1772535978U, // <5,7,2,u>: Cost 2 vuzpr RHS, <0,2,0,u>
     2625636502U, // <5,7,3,0>: Cost 3 vext2 <1,3,5,7>, <3,0,1,2>
     1772537510U, // <5,7,3,1>: Cost 2 vuzpr RHS, <2,3,0,1>
@@ -4272,25 +4272,25 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2571919462U, // <5,7,4,0>: Cost 3 vext1 <3,5,7,4>, LHS
     2571920384U, // <5,7,4,1>: Cost 3 vext1 <3,5,7,4>, <1,3,5,7>
     2846277958U, // <5,7,4,2>: Cost 3 vuzpr RHS, <0,4,0,2>
-    2571922019U, // <5,7,4,3>: Cost 3 vext1 <3,5,7,4>, <3,5,7,4>
+    2115493890U, // <5,7,4,3>: Cost 2 ins <5,7,u,3>, lane 2
     1772539088U, // <5,7,4,4>: Cost 2 vuzpr RHS, <4,4,4,4>
     1551895862U, // <5,7,4,5>: Cost 2 vext2 <1,3,5,7>, RHS
     1772536156U, // <5,7,4,6>: Cost 2 vuzpr RHS, <0,4,2,6>
-    2846279466U, // <5,7,4,7>: Cost 3 vuzpr RHS, <2,4,5,7>
+    2115526658U, // <5,7,4,7>: Cost 2 ins <5,7,u,7>, lane 2
     1551896105U, // <5,7,4,u>: Cost 2 vext2 <1,3,5,7>, RHS
-    2846280287U, // <5,7,5,0>: Cost 3 vuzpr RHS, <3,5,7,0>
-    2846278767U, // <5,7,5,1>: Cost 3 vuzpr RHS, <1,5,0,1>
-    2846278768U, // <5,7,5,2>: Cost 3 vuzpr RHS, <1,5,0,2>
-    2846280236U, // <5,7,5,3>: Cost 3 vuzpr RHS, <3,5,1,3>
-    2846278770U, // <5,7,5,4>: Cost 3 vuzpr RHS, <1,5,0,4>
+    2115313667U, // <5,7,5,0>: Cost 2 ins <5,7,5,u>, lane 3
+    2115313667U, // <5,7,5,1>: Cost 2 ins <5,7,5,u>, lane 3
+    2115313667U, // <5,7,5,2>: Cost 2 ins <5,7,5,u>, lane 3
+    2115493890U, // <5,7,5,3>: Cost 2 ins <5,7,u,3>, lane 2
+    2115313667U, // <5,7,5,4>: Cost 2 ins <5,7,5,u>, lane 3
     1772539908U, // <5,7,5,5>: Cost 2 vuzpr RHS, <5,5,5,5>
-    2846278808U, // <5,7,5,6>: Cost 3 vuzpr RHS, <1,5,4,6>
+    2115313667U, // <5,7,5,6>: Cost 2 ins <5,7,5,u>, lane 3
     698797366U,  // <5,7,5,7>: Cost 1 vuzpr RHS, RHS
     698797367U,  // <5,7,5,u>: Cost 1 vuzpr RHS, RHS
     1772540002U, // <5,7,6,0>: Cost 2 vuzpr RHS, <5,6,7,0>
     2846279577U, // <5,7,6,1>: Cost 3 vuzpr RHS, <2,6,0,1>
     1772539212U, // <5,7,6,2>: Cost 2 vuzpr RHS, <4,6,0,2>
-    2846279588U, // <5,7,6,3>: Cost 3 vuzpr RHS, <2,6,1,3>
+    2115493890U, // <5,7,6,3>: Cost 2 ins <5,7,u,3>, lane 2
     1772540006U, // <5,7,6,4>: Cost 2 vuzpr RHS, <5,6,7,4>
     2846279617U, // <5,7,6,5>: Cost 3 vuzpr RHS, <2,6,4,5>
     1772539252U, // <5,7,6,6>: Cost 2 vuzpr RHS, <4,6,4,6>
@@ -4302,7 +4302,7 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1772540032U, // <5,7,7,3>: Cost 2 vuzpr RHS, <5,7,1,3>
     1510149430U, // <5,7,7,4>: Cost 2 vext1 <5,5,7,7>, RHS
     1772540790U, // <5,7,7,5>: Cost 2 vuzpr RHS, <6,7,4,5>
-    2846280410U, // <5,7,7,6>: Cost 3 vuzpr RHS, <3,7,2,6>
+    2116108289U, // <5,7,7,6>: Cost 2 ins <5,u,7,6>, lane 1
     1772540072U, // <5,7,7,7>: Cost 2 vuzpr RHS, <5,7,5,7>
     1772540037U, // <5,7,7,u>: Cost 2 vuzpr RHS, <5,7,1,u>
     1772537212U, // <5,7,u,0>: Cost 2 vuzpr RHS, <1,u,3,0>
@@ -4317,47 +4317,47 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1772544000U, // <5,u,0,0>: Cost 2 vuzpr RHS, <0,0,0,0>
     1551900774U, // <5,u,0,1>: Cost 2 vext2 <1,3,5,u>, LHS
     1772544020U, // <5,u,0,2>: Cost 2 vuzpr RHS, <0,0,2,2>
-    2690299621U, // <5,u,0,3>: Cost 3 vext3 <0,u,u,5>, <u,0,3,2>
-    2687129325U, // <5,u,0,4>: Cost 3 vext3 <0,4,1,5>, <u,0,4,1>
-    2689783542U, // <5,u,0,5>: Cost 3 vext3 <0,u,1,5>, <u,0,5,1>
-    2846285866U, // <5,u,0,6>: Cost 3 vuzpr RHS, <0,0,4,6>
-    2973732168U, // <5,u,0,7>: Cost 3 vzipr <3,4,5,0>, RHS
+    2111512578U, // <5,u,0,3>: Cost 2 ins <5,1,u,3>, lane 2
+    2114838530U, // <5,u,0,4>: Cost 2 ins <5,6,u,4>, lane 2
+    2114183170U, // <5,u,0,5>: Cost 2 ins <5,5,u,5>, lane 2
+    2113527810U, // <5,u,0,6>: Cost 2 ins <5,4,u,6>, lane 2
+    2114199554U, // <5,u,0,7>: Cost 2 ins <5,5,u,7>, lane 2
     1551901341U, // <5,u,0,u>: Cost 2 vext2 <1,3,5,u>, LHS
-    2625643254U, // <5,u,1,0>: Cost 3 vext2 <1,3,5,u>, <1,0,3,2>
+    2114805762U, // <5,u,1,0>: Cost 2 ins <5,6,u,0>, lane 2
     1772544820U, // <5,u,1,1>: Cost 2 vuzpr RHS, <1,1,1,1>
     1613387566U, // <5,u,1,2>: Cost 2 vext3 <0,4,1,5>, LHS
     698802278U,  // <5,u,1,3>: Cost 1 vuzpr RHS, LHS
-    2626307154U, // <5,u,1,4>: Cost 3 vext2 <1,4,5,u>, <1,4,5,u>
+    2114838530U, // <5,u,1,4>: Cost 2 ins <5,6,u,4>, lane 2
     1843009690U, // <5,u,1,5>: Cost 2 vzipl <5,1,7,3>, RHS
     1980766362U, // <5,u,1,6>: Cost 2 vtrnl <5,7,1,3>, RHS
     1908624712U, // <5,u,1,7>: Cost 2 vzipr <4,u,5,1>, RHS
     698802283U,  // <5,u,1,u>: Cost 1 vuzpr RHS, LHS
     1772544918U, // <5,u,2,0>: Cost 2 vuzpr RHS, <1,2,3,0>
-    2560033976U, // <5,u,2,1>: Cost 3 vext1 <1,5,u,2>, <1,5,u,2>
+    2128969728U, // <5,u,2,1>: Cost 2 ins <u,1,2,1>, lane 0
     1772544164U, // <5,u,2,2>: Cost 2 vuzpr RHS, <0,2,0,2>
-    1772545650U, // <5,u,2,3>: Cost 2 vuzpr RHS, <2,2,3,3>
+    1055244288U, // <5,u,2,3>: Cost 1 ins LHS, lane 0
     1772544922U, // <5,u,2,4>: Cost 2 vuzpr RHS, <1,2,3,4>
-    2625644394U, // <5,u,2,5>: Cost 3 vext2 <1,3,5,u>, <2,5,3,u>
+    2129002496U, // <5,u,2,5>: Cost 2 ins <u,1,2,5>, lane 0
     1772544204U, // <5,u,2,6>: Cost 2 vuzpr RHS, <0,2,4,6>
-    3096317481U, // <5,u,2,7>: Cost 3 vtrnr <1,5,0,2>, RHS
-    1772544170U, // <5,u,2,u>: Cost 2 vuzpr RHS, <0,2,0,u>
-    2687129532U, // <5,u,3,0>: Cost 3 vext3 <0,4,1,5>, <u,3,0,1>
+    2114199554U, // <5,u,2,7>: Cost 2 ins <5,5,u,7>, lane 2
+    1055244288U, // <5,u,2,u>: Cost 1 ins LHS, lane 0
+    2129698816U, // <5,u,3,0>: Cost 2 ins <u,2,3,0>, lane 0
     1772545702U, // <5,u,3,1>: Cost 2 vuzpr RHS, <2,3,0,1>
-    2636925282U, // <5,u,3,2>: Cost 3 vext2 <3,2,5,u>, <3,2,5,u>
+    2128388096U, // <5,u,3,2>: Cost 2 ins <u,0,3,2>, lane 0
     1772544984U, // <5,u,3,3>: Cost 2 vuzpr RHS, <1,3,1,3>
     1564510724U, // <5,u,3,4>: Cost 2 vext2 <3,4,5,u>, <3,4,5,u>
     1772545742U, // <5,u,3,5>: Cost 2 vuzpr RHS, <2,3,4,5>
-    2846286820U, // <5,u,3,6>: Cost 3 vuzpr RHS, <1,3,2,6>
+    2113527810U, // <5,u,3,6>: Cost 2 ins <5,4,u,6>, lane 2
     1772545024U, // <5,u,3,7>: Cost 2 vuzpr RHS, <1,3,5,7>
     1567165256U, // <5,u,3,u>: Cost 2 vext2 <3,u,5,u>, <3,u,5,u>
-    1567828889U, // <5,u,4,0>: Cost 2 vext2 <4,0,5,u>, <4,0,5,u>
+    2114805762U, // <5,u,4,0>: Cost 2 ins <5,6,u,0>, lane 2
     1845024558U, // <5,u,4,1>: Cost 2 vzipl <5,4,7,6>, LHS
     2642897979U, // <5,u,4,2>: Cost 3 vext2 <4,2,5,u>, <4,2,5,u>
-    3096330909U, // <5,u,4,3>: Cost 3 vtrnr <1,5,0,4>, LHS
+    2111512578U, // <5,u,4,3>: Cost 2 ins <5,1,u,3>, lane 2
     1772547280U, // <5,u,4,4>: Cost 2 vuzpr RHS, <4,4,4,4>
     1551904054U, // <5,u,4,5>: Cost 2 vext2 <1,3,5,u>, RHS
     1772544348U, // <5,u,4,6>: Cost 2 vuzpr RHS, <0,4,2,6>
-    3096333865U, // <5,u,4,7>: Cost 3 vtrnr <1,5,0,4>, RHS
+    2114199554U, // <5,u,4,7>: Cost 2 ins <5,5,u,7>, lane 2
     1551904297U, // <5,u,4,u>: Cost 2 vext2 <1,3,5,u>, RHS
     1509982310U, // <5,u,5,0>: Cost 2 vext1 <5,5,5,5>, LHS
     1845532462U, // <5,u,5,1>: Cost 2 vzipl <5,5,5,5>, LHS
@@ -4375,8 +4375,8 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1772548198U, // <5,u,6,4>: Cost 2 vuzpr RHS, <5,6,7,4>
     1846302874U, // <5,u,6,5>: Cost 2 vzipl <5,6,7,0>, RHS
     1772547444U, // <5,u,6,6>: Cost 2 vuzpr RHS, <4,6,4,6>
-    1900039496U, // <5,u,6,7>: Cost 2 vzipr <3,4,5,6>, RHS
-    1900036257U, // <5,u,6,u>: Cost 2 vzipr <3,4,5,6>, LHS
+    1058226176U, // <5,u,6,7>: Cost 1 ins RHS, lane 0
+    1058226176U, // <5,u,6,u>: Cost 1 ins RHS, lane 0
     430506086U,  // <5,u,7,0>: Cost 1 vext1 RHS, LHS
     1486333117U, // <5,u,7,1>: Cost 2 vext1 <1,5,u,7>, <1,5,u,7>
     2040971914U, // <5,u,7,2>: Cost 2 vtrnr RHS, <0,u,0,2>
@@ -4395,8 +4395,8 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     118716571U,  // <5,u,u,6>: Cost 1 vrev RHS
     698805801U,  // <5,u,u,7>: Cost 1 vuzpr RHS, RHS
     698802850U,  // <5,u,u,u>: Cost 1 vuzpr RHS, LHS
-    2686025728U, // <6,0,0,0>: Cost 3 vext3 <0,2,4,6>, <0,0,0,0>
-    2686025738U, // <6,0,0,1>: Cost 3 vext3 <0,2,4,6>, <0,0,1,1>
+    2128150528U, // <6,0,0,0>: Cost 2 ins <u,0,0,0>, lane 0
+    2121523201U, // <6,0,0,1>: Cost 2 ins <6,u,0,1>, lane 1
     1718206566U, // <6,0,0,2>: Cost 2 vuzpl <6,7,0,1>, LHS
     2852933922U, // <6,0,0,3>: Cost 3 vuzpr <5,6,7,0>, <6,0,1,3>
     2642903388U, // <6,0,0,4>: Cost 3 vext2 <4,2,6,0>, <0,4,2,6>
@@ -4405,7 +4405,7 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2852933962U, // <6,0,0,7>: Cost 3 vuzpr <5,6,7,0>, <6,0,5,7>
     1718206620U, // <6,0,0,u>: Cost 2 vuzpl <6,7,0,1>, LHS
     2566070374U, // <6,0,1,0>: Cost 3 vext1 <2,6,0,1>, LHS
-    2852930356U, // <6,0,1,1>: Cost 3 vuzpr <5,6,7,0>, <1,1,1,1>
+    2128232448U, // <6,0,1,1>: Cost 2 ins <u,0,1,1>, lane 0
     1612284006U, // <6,0,1,2>: Cost 2 vext3 <0,2,4,6>, LHS
     1779187814U, // <6,0,1,3>: Cost 2 vuzpr <5,6,7,0>, LHS
     2566073654U, // <6,0,1,4>: Cost 3 vext1 <2,6,0,1>, RHS
@@ -4415,35 +4415,35 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1612284060U, // <6,0,1,u>: Cost 2 vext3 <0,2,4,6>, LHS
     1504280678U, // <6,0,2,0>: Cost 2 vext1 <4,6,0,2>, LHS
     1849639014U, // <6,0,2,1>: Cost 2 vzipl <6,2,7,3>, LHS
-    2578024040U, // <6,0,2,2>: Cost 3 vext1 <4,6,0,2>, <2,2,2,2>
-    2705342658U, // <6,0,2,3>: Cost 3 vext3 <3,4,5,6>, <0,2,3,5>
+    2128314368U, // <6,0,2,2>: Cost 2 ins <u,0,2,2>, lane 0
+    2128322560U, // <6,0,2,3>: Cost 2 ins <u,0,2,3>, lane 0
     1612284108U, // <6,0,2,4>: Cost 2 vext3 <0,2,4,6>, <0,2,4,6>
     2578026192U, // <6,0,2,5>: Cost 3 vext1 <4,6,0,2>, <5,1,7,3>
     2578026792U, // <6,0,2,6>: Cost 3 vext1 <4,6,0,2>, <6,0,2,0>
     2578027514U, // <6,0,2,7>: Cost 3 vext1 <4,6,0,2>, <7,0,1,2>
     1612579056U, // <6,0,2,u>: Cost 2 vext3 <0,2,u,6>, <0,2,u,6>
-    2852930562U, // <6,0,3,0>: Cost 3 vuzpr <5,6,7,0>, <1,3,6,0>
+    3202113536U, // <6,0,3,0>: Cost 3 ins <u,0,3,0>, lane 0
     2705342720U, // <6,0,3,1>: Cost 3 vext3 <3,4,5,6>, <0,3,1,4>
-    2705342730U, // <6,0,3,2>: Cost 3 vext3 <3,4,5,6>, <0,3,2,5>
+    2128388096U, // <6,0,3,2>: Cost 2 ins <u,0,3,2>, lane 0
     2852930520U, // <6,0,3,3>: Cost 3 vuzpr <5,6,7,0>, <1,3,1,3>
     2644896258U, // <6,0,3,4>: Cost 3 vext2 <4,5,6,0>, <3,4,5,6>
     2852931278U, // <6,0,3,5>: Cost 3 vuzpr <5,6,7,0>, <2,3,4,5>
-    2852931288U, // <6,0,3,6>: Cost 3 vuzpr <5,6,7,0>, <2,3,5,6>
+    3190587394U, // <6,0,3,6>: Cost 3 ins <6,0,u,6>, lane 2
     2852930560U, // <6,0,3,7>: Cost 3 vuzpr <5,6,7,0>, <1,3,5,7>
-    2705342783U, // <6,0,3,u>: Cost 3 vext3 <3,4,5,6>, <0,3,u,4>
+    2128388096U, // <6,0,3,u>: Cost 2 ins <u,0,3,2>, lane 0
     2687058250U, // <6,0,4,0>: Cost 3 vext3 <0,4,0,6>, <0,4,0,6>
     2686026066U, // <6,0,4,1>: Cost 3 vext3 <0,2,4,6>, <0,4,1,5>
     1613463900U, // <6,0,4,2>: Cost 2 vext3 <0,4,2,6>, <0,4,2,6>
-    3761021285U, // <6,0,4,3>: Cost 4 vext3 <0,4,3,6>, <0,4,3,6>
+    3195576321U, // <6,0,4,3>: Cost 3 ins <6,u,4,3>, lane 1
     2687353198U, // <6,0,4,4>: Cost 3 vext3 <0,4,4,6>, <0,4,4,6>
-    2632289590U, // <6,0,4,5>: Cost 3 vext2 <2,4,6,0>, RHS
+    2121850881U, // <6,0,4,5>: Cost 2 ins <6,u,4,5>, lane 1
     1718209846U, // <6,0,4,6>: Cost 2 vuzpl <6,7,0,1>, RHS
-    2646224337U, // <6,0,4,7>: Cost 3 vext2 <4,7,6,0>, <4,7,6,0>
+    3195609089U, // <6,0,4,7>: Cost 3 ins <6,u,4,7>, lane 1
     1613906322U, // <6,0,4,u>: Cost 2 vext3 <0,4,u,6>, <0,4,u,6>
-    4177010688U, // <6,0,5,0>: Cost 4 vtrnr <2,6,4,5>, <0,0,0,0>
-    2924888166U, // <6,0,5,1>: Cost 3 vzipl <6,5,0,7>, LHS
+    3202260992U, // <6,0,5,0>: Cost 3 ins <u,0,5,0>, lane 0
+    2128527360U, // <6,0,5,1>: Cost 2 ins <u,0,5,1>, lane 0
     3056156774U, // <6,0,5,2>: Cost 3 vtrnl <6,0,5,7>, LHS
-    3723284326U, // <6,0,5,3>: Cost 4 vext2 <5,3,6,0>, <5,3,6,0>
+    3190562818U, // <6,0,5,3>: Cost 3 ins <6,0,u,3>, lane 2
     3058802892U, // <6,0,5,4>: Cost 3 vtrnl <6,4,5,6>, <0,2,4,6>
     2852933636U, // <6,0,5,5>: Cost 3 vuzpr <5,6,7,0>, <5,5,5,5>
     2852932908U, // <6,0,5,6>: Cost 3 vuzpr <5,6,7,0>, <4,5,5,6>
@@ -4452,32 +4452,32 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1779191906U, // <6,0,6,0>: Cost 2 vuzpr <5,6,7,0>, <5,6,7,0>
     1852244070U, // <6,0,6,1>: Cost 2 vzipl <6,6,6,6>, LHS
     1986461798U, // <6,0,6,2>: Cost 2 vtrnl <6,6,6,6>, LHS
-    3718640178U, // <6,0,6,3>: Cost 4 vext2 <4,5,6,0>, <6,3,4,5>
+    3195723777U, // <6,0,6,3>: Cost 3 ins <6,u,6,3>, lane 1
     2852933734U, // <6,0,6,4>: Cost 3 vuzpr <5,6,7,0>, <5,6,7,4>
-    4188965044U, // <6,0,6,5>: Cost 4 vtrnr <4,6,4,6>, <3,0,4,5>
-    2852932980U, // <6,0,6,6>: Cost 3 vuzpr <5,6,7,0>, <4,6,4,6>
-    2645562190U, // <6,0,6,7>: Cost 3 vext2 <4,6,6,0>, <6,7,0,1>
+    3195740161U, // <6,0,6,5>: Cost 3 ins <6,u,6,5>, lane 1
+    2122006529U, // <6,0,6,6>: Cost 2 ins <6,u,6,6>, lane 1
+    2128650240U, // <6,0,6,7>: Cost 2 ins <u,0,6,7>, lane 0
     1852244637U, // <6,0,6,u>: Cost 2 vzipl <6,6,6,6>, LHS
     1906753536U, // <6,0,7,0>: Cost 2 vzipr RHS, <0,0,0,0>
     1906755238U, // <6,0,7,1>: Cost 2 vzipr RHS, <2,3,0,1>
     1906753700U, // <6,0,7,2>: Cost 2 vzipr RHS, <0,2,0,2>
-    2572094072U, // <6,0,7,3>: Cost 3 vext1 <3,6,0,7>, <3,6,0,7>
+    2122055681U, // <6,0,7,3>: Cost 2 ins <6,u,7,3>, lane 1
     2572094774U, // <6,0,7,4>: Cost 3 vext1 <3,6,0,7>, RHS
     2980496418U, // <6,0,7,5>: Cost 3 vzipr RHS, <1,4,0,5>
     2980495690U, // <6,0,7,6>: Cost 3 vzipr RHS, <0,4,0,6>
-    2980497230U, // <6,0,7,7>: Cost 3 vzipr RHS, <2,5,0,7>
+    2122088449U, // <6,0,7,7>: Cost 2 ins <6,u,7,7>, lane 1
     1906753706U, // <6,0,7,u>: Cost 2 vzipr RHS, <0,2,0,u>
     1906761728U, // <6,0,u,0>: Cost 2 vzipr RHS, <0,0,0,0>
     1906763430U, // <6,0,u,1>: Cost 2 vzipr RHS, <2,3,0,1>
     1612284573U, // <6,0,u,2>: Cost 2 vext3 <0,2,4,6>, LHS
     1779188381U, // <6,0,u,3>: Cost 2 vuzpr <5,6,7,0>, LHS
     1616265906U, // <6,0,u,4>: Cost 2 vext3 <0,u,4,6>, <0,u,4,6>
-    2632292506U, // <6,0,u,5>: Cost 3 vext2 <2,4,6,0>, RHS
+    2121850881U, // <6,0,u,5>: Cost 2 ins <6,u,4,5>, lane 1
     1718212762U, // <6,0,u,6>: Cost 2 vuzpl <6,7,0,1>, RHS
     1779191337U, // <6,0,u,7>: Cost 2 vuzpr <5,6,7,0>, RHS
     1612284627U, // <6,0,u,u>: Cost 2 vext3 <0,2,4,6>, LHS
     2595995750U, // <6,1,0,0>: Cost 3 vext1 <7,6,1,0>, LHS
-    2634948710U, // <6,1,0,1>: Cost 3 vext2 <2,u,6,1>, LHS
+    2121523201U, // <6,1,0,1>: Cost 2 ins <6,u,0,1>, lane 1
     2846673046U, // <6,1,0,2>: Cost 3 vuzpr <4,6,3,1>, <3,0,1,2>
     2047623270U, // <6,1,0,3>: Cost 2 vtrnr <5,6,7,0>, LHS
     2787385548U, // <6,1,0,4>: Cost 3 vuzpl <6,0,1,2>, <0,2,4,6>
@@ -4486,58 +4486,58 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     3060385022U, // <6,1,0,7>: Cost 3 vtrnl <6,7,0,1>, <1,6,7,0>
     2047623275U, // <6,1,0,u>: Cost 2 vtrnr <5,6,7,0>, LHS
     2578088038U, // <6,1,1,0>: Cost 3 vext1 <4,6,1,1>, LHS
-    2686026548U, // <6,1,1,1>: Cost 3 vext3 <0,2,4,6>, <1,1,1,1>
+    2128896000U, // <6,1,1,1>: Cost 2 ins <u,1,1,1>, lane 0
     2981778426U, // <6,1,1,2>: Cost 3 vzipr <4,7,6,1>, <7,0,1,2>
-    2686026568U, // <6,1,1,3>: Cost 3 vext3 <0,2,4,6>, <1,1,3,3>
+    2128912384U, // <6,1,1,3>: Cost 2 ins <u,1,1,3>, lane 0
     2691334996U, // <6,1,1,4>: Cost 3 vext3 <1,1,4,6>, <1,1,4,6>
-    3760874332U, // <6,1,1,5>: Cost 4 vext3 <0,4,1,6>, <1,1,5,5>
-    3765076836U, // <6,1,1,6>: Cost 4 vext3 <1,1,4,6>, <1,1,6,4>
-    3908252059U, // <6,1,1,7>: Cost 4 vuzpr <2,6,0,1>, <6,1,5,7>
-    2686026613U, // <6,1,1,u>: Cost 3 vext3 <0,2,4,6>, <1,1,u,3>
-    2923381494U, // <6,1,2,0>: Cost 3 vzipl <6,2,7,3>, <1,0,3,2>
-    3114894132U, // <6,1,2,1>: Cost 3 vtrnr <4,6,0,2>, <1,1,1,1>
-    2982447254U, // <6,1,2,2>: Cost 3 vzipr <4,u,6,2>, <3,0,1,2>
-    2041151590U, // <6,1,2,3>: Cost 2 vtrnr <4,6,0,2>, LHS
-    2601987382U, // <6,1,2,4>: Cost 3 vext1 <u,6,1,2>, RHS
-    2982445394U, // <6,1,2,5>: Cost 3 vzipr <4,u,6,2>, <0,4,1,5>
-    2634950586U, // <6,1,2,6>: Cost 3 vext2 <2,u,6,1>, <2,6,3,7>
-    4188635998U, // <6,1,2,7>: Cost 4 vtrnr <4,6,0,2>, <1,1,5,7>
-    2041151595U, // <6,1,2,u>: Cost 2 vtrnr <4,6,0,2>, LHS
+    3202670592U, // <6,1,1,5>: Cost 3 ins <u,1,1,5>, lane 0
+    2691482470U, // <6,1,1,6>: Cost 3 vext3 <1,1,6,6>, <1,1,6,6>
+    2980449545U, // <6,1,1,7>: Cost 3 vzipr <4,5,6,1>, <4,5,1,7>
+    2128896000U, // <6,1,1,u>: Cost 2 ins <u,1,1,1>, lane 0
+    2128961536U, // <6,1,2,0>: Cost 2 ins <u,1,2,0>, lane 0
+    2128969728U, // <6,1,2,1>: Cost 2 ins <u,1,2,1>, lane 0
+    2128977920U, // <6,1,2,2>: Cost 2 ins <u,1,2,2>, lane 0
+    1055244288U, // <6,1,2,3>: Cost 1 ins LHS, lane 0
+    2128994304U, // <6,1,2,4>: Cost 2 ins <u,1,2,4>, lane 0
+    2129002496U, // <6,1,2,5>: Cost 2 ins <u,1,2,5>, lane 0
+    2129010688U, // <6,1,2,6>: Cost 2 ins <u,1,2,6>, lane 0
+    2129018880U, // <6,1,2,7>: Cost 2 ins <u,1,2,7>, lane 0
+    1055244288U, // <6,1,2,u>: Cost 1 ins LHS, lane 0
     2566160486U, // <6,1,3,0>: Cost 3 vext1 <2,6,1,3>, LHS
     2686026712U, // <6,1,3,1>: Cost 3 vext3 <0,2,4,6>, <1,3,1,3>
     2686026724U, // <6,1,3,2>: Cost 3 vext3 <0,2,4,6>, <1,3,2,6>
-    3103031398U, // <6,1,3,3>: Cost 3 vtrnr <2,6,1,3>, LHS
+    2129059840U, // <6,1,3,3>: Cost 2 ins <u,1,3,3>, lane 0
     2692662262U, // <6,1,3,4>: Cost 3 vext3 <1,3,4,6>, <1,3,4,6>
     2686026752U, // <6,1,3,5>: Cost 3 vext3 <0,2,4,6>, <1,3,5,7>
     2590053128U, // <6,1,3,6>: Cost 3 vext1 <6,6,1,3>, <6,6,1,3>
-    3908248576U, // <6,1,3,7>: Cost 4 vuzpr <2,6,0,1>, <1,3,5,7>
-    2686026775U, // <6,1,3,u>: Cost 3 vext3 <0,2,4,6>, <1,3,u,3>
+    2953923849U, // <6,1,3,7>: Cost 3 vzipr <0,1,6,3>, <4,5,1,7>
+    2129059840U, // <6,1,3,u>: Cost 2 ins <u,1,3,3>, lane 0
     2788724044U, // <6,1,4,0>: Cost 3 vuzpl <6,2,1,3>, <4,6,0,2>
     2693104684U, // <6,1,4,1>: Cost 3 vext3 <1,4,1,6>, <1,4,1,6>
-    3766920245U, // <6,1,4,2>: Cost 4 vext3 <1,4,2,6>, <1,4,2,6>
+    3195568129U, // <6,1,4,2>: Cost 3 ins <6,u,4,2>, lane 1
     2047656038U, // <6,1,4,3>: Cost 2 vtrnr <5,6,7,4>, LHS
     2791378292U, // <6,1,4,4>: Cost 3 vuzpl <6,6,1,3>, <4,6,4,6>
-    2693399632U, // <6,1,4,5>: Cost 3 vext3 <1,4,5,6>, <1,4,5,6>
+    2121850881U, // <6,1,4,5>: Cost 2 ins <6,u,4,5>, lane 1
     2834506076U, // <6,1,4,6>: Cost 3 vuzpr <2,6,0,1>, <0,4,2,6>
     2646232530U, // <6,1,4,7>: Cost 3 vext2 <4,7,6,1>, <4,7,6,1>
     2047656043U, // <6,1,4,u>: Cost 2 vtrnr <5,6,7,4>, LHS
     2578120806U, // <6,1,5,0>: Cost 3 vext1 <4,6,1,5>, LHS
     2578121728U, // <6,1,5,1>: Cost 3 vext1 <4,6,1,5>, <1,3,5,7>
-    3767583878U, // <6,1,5,2>: Cost 4 vext3 <1,5,2,6>, <1,5,2,6>
-    2686026896U, // <6,1,5,3>: Cost 3 vext3 <0,2,4,6>, <1,5,3,7>
+    3202940928U, // <6,1,5,2>: Cost 3 ins <u,1,5,2>, lane 0
+    2129207296U, // <6,1,5,3>: Cost 2 ins <u,1,5,3>, lane 0
     2693989528U, // <6,1,5,4>: Cost 3 vext3 <1,5,4,6>, <1,5,4,6>
-    4033651026U, // <6,1,5,5>: Cost 4 vzipr <1,1,6,5>, <0,4,1,5>
+    3202965504U, // <6,1,5,5>: Cost 3 ins <u,1,5,5>, lane 0
     2652868706U, // <6,1,5,6>: Cost 3 vext2 <5,u,6,1>, <5,6,7,0>
     2834509110U, // <6,1,5,7>: Cost 3 vuzpr <2,6,0,1>, RHS
-    2686026941U, // <6,1,5,u>: Cost 3 vext3 <0,2,4,6>, <1,5,u,7>
+    2129207296U, // <6,1,5,u>: Cost 2 ins <u,1,5,3>, lane 0
     2925986550U, // <6,1,6,0>: Cost 3 vzipl <6,6,6,6>, <1,0,3,2>
     2834507673U, // <6,1,6,1>: Cost 3 vuzpr <2,6,0,1>, <2,6,0,1>
     2982480022U, // <6,1,6,2>: Cost 3 vzipr <4,u,6,6>, <3,0,1,2>
     2041479270U, // <6,1,6,3>: Cost 2 vtrnr <4,6,4,6>, LHS
     2602020150U, // <6,1,6,4>: Cost 3 vext1 <u,6,1,6>, RHS
     2982478162U, // <6,1,6,5>: Cost 3 vzipr <4,u,6,6>, <0,4,1,5>
-    2658841400U, // <6,1,6,6>: Cost 3 vext2 <6,u,6,1>, <6,6,6,6>
-    3902277562U, // <6,1,6,7>: Cost 4 vuzpr <1,6,0,1>, <2,6,3,7>
+    2122006529U, // <6,1,6,6>: Cost 2 ins <6,u,6,6>, lane 1
+    2129313792U, // <6,1,6,7>: Cost 2 ins <u,1,6,7>, lane 0
     2041479275U, // <6,1,6,u>: Cost 2 vtrnr <4,6,4,6>, LHS
     2560221286U, // <6,1,7,0>: Cost 3 vext1 <1,6,1,7>, LHS
     1906753546U, // <6,1,7,1>: Cost 2 vzipr RHS, <0,0,1,1>
@@ -4546,134 +4546,134 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2560224566U, // <6,1,7,4>: Cost 3 vext1 <1,6,1,7>, RHS
     1906753874U, // <6,1,7,5>: Cost 2 vzipr RHS, <0,4,1,5>
     2980495537U, // <6,1,7,6>: Cost 3 vzipr RHS, <0,2,1,6>
-    2980495862U, // <6,1,7,7>: Cost 3 vzipr RHS, <0,6,1,7>
+    2122088449U, // <6,1,7,7>: Cost 2 ins <6,u,7,7>, lane 1
     2029469803U, // <6,1,7,u>: Cost 2 vtrnr <2,6,3,7>, LHS
-    2560229478U, // <6,1,u,0>: Cost 3 vext1 <1,6,1,u>, LHS
+    2128961536U, // <6,1,u,0>: Cost 2 ins <u,1,2,0>, lane 0
     1906761738U, // <6,1,u,1>: Cost 2 vzipr RHS, <0,0,1,1>
     1906763926U, // <6,1,u,2>: Cost 2 vzipr RHS, <3,0,1,2>
-    2029477990U, // <6,1,u,3>: Cost 2 vtrnr <2,6,3,u>, LHS
-    2687206795U, // <6,1,u,4>: Cost 3 vext3 <0,4,2,6>, <1,u,4,6>
+    1055244288U, // <6,1,u,3>: Cost 1 ins LHS, lane 0
+    2128994304U, // <6,1,u,4>: Cost 2 ins <u,1,2,4>, lane 0
     1906762066U, // <6,1,u,5>: Cost 2 vzipr RHS, <0,4,1,5>
-    2980503729U, // <6,1,u,6>: Cost 3 vzipr RHS, <0,2,1,6>
-    2834509353U, // <6,1,u,7>: Cost 3 vuzpr <2,6,0,1>, RHS
-    2029477995U, // <6,1,u,u>: Cost 2 vtrnr <2,6,3,u>, LHS
+    2129010688U, // <6,1,u,6>: Cost 2 ins <u,1,2,6>, lane 0
+    2122088449U, // <6,1,u,7>: Cost 2 ins <6,u,7,7>, lane 1
+    1055244288U, // <6,1,u,u>: Cost 1 ins LHS, lane 0
     2846457856U, // <6,2,0,0>: Cost 3 vuzpr <4,6,0,2>, <0,0,0,0>
     1573159014U, // <6,2,0,1>: Cost 2 vext2 <4,u,6,2>, LHS
-    2846457876U, // <6,2,0,2>: Cost 3 vuzpr <4,6,0,2>, <0,0,2,2>
-    2967830630U, // <6,2,0,3>: Cost 3 vzipr <2,4,6,0>, LHS
+    2129494016U, // <6,2,0,2>: Cost 2 ins <u,2,0,2>, lane 0
+    2118148098U, // <6,2,0,3>: Cost 2 ins <6,2,u,3>, lane 2
     2641592668U, // <6,2,0,4>: Cost 3 vext2 <4,0,6,2>, <0,4,2,6>
-    3779085794U, // <6,2,0,5>: Cost 4 vext3 <3,4,5,6>, <2,0,5,3>
+    3195297793U, // <6,2,0,5>: Cost 3 ins <6,u,0,5>, lane 1
     2686027244U, // <6,2,0,6>: Cost 3 vext3 <0,2,4,6>, <2,0,6,4>
-    3920201190U, // <6,2,0,7>: Cost 4 vuzpr <4,6,0,2>, <2,0,5,7>
+    3195314177U, // <6,2,0,7>: Cost 3 ins <6,u,0,7>, lane 1
     1573159581U, // <6,2,0,u>: Cost 2 vext2 <4,u,6,2>, LHS
     2230527897U, // <6,2,1,0>: Cost 3 vrev <2,6,0,1>
     2846458676U, // <6,2,1,1>: Cost 3 vuzpr <4,6,0,2>, <1,1,1,1>
     2646901654U, // <6,2,1,2>: Cost 3 vext2 <4,u,6,2>, <1,2,3,0>
     1772716134U, // <6,2,1,3>: Cost 2 vuzpr <4,6,0,2>, LHS
-    3759769130U, // <6,2,1,4>: Cost 4 vext3 <0,2,4,6>, <2,1,4,3>
+    3191414787U, // <6,2,1,4>: Cost 3 ins <6,2,1,u>, lane 3
     2646901904U, // <6,2,1,5>: Cost 3 vext2 <4,u,6,2>, <1,5,3,7>
     3114885324U, // <6,2,1,6>: Cost 3 vtrnr <4,6,0,1>, <0,2,4,6>
-    4032291327U, // <6,2,1,7>: Cost 4 vzipr <0,u,6,1>, <0,6,2,7>
+    3191922690U, // <6,2,1,7>: Cost 3 ins <6,2,u,7>, lane 2
     1772716139U, // <6,2,1,u>: Cost 2 vuzpr <4,6,0,2>, LHS
     2846458774U, // <6,2,2,0>: Cost 3 vuzpr <4,6,0,2>, <1,2,3,0>
-    3759769184U, // <6,2,2,1>: Cost 4 vext3 <0,2,4,6>, <2,2,1,3>
-    2686027368U, // <6,2,2,2>: Cost 3 vext3 <0,2,4,6>, <2,2,2,2>
+    3195412481U, // <6,2,2,1>: Cost 3 ins <6,u,2,1>, lane 1
+    2129641472U, // <6,2,2,2>: Cost 2 ins <u,2,2,2>, lane 0
     1908703334U, // <6,2,2,3>: Cost 2 vzipr <4,u,6,2>, LHS
     2697971326U, // <6,2,2,4>: Cost 3 vext3 <2,2,4,6>, <2,2,4,6>
-    3759769224U, // <6,2,2,5>: Cost 4 vext3 <0,2,4,6>, <2,2,5,7>
+    3195445249U, // <6,2,2,5>: Cost 3 ins <6,u,2,5>, lane 1
     2698118800U, // <6,2,2,6>: Cost 3 vext3 <2,2,6,6>, <2,2,6,6>
     2846462444U, // <6,2,2,7>: Cost 3 vuzpr <4,6,0,2>, <6,2,5,7>
     1908703339U, // <6,2,2,u>: Cost 2 vzipr <4,u,6,2>, LHS
-    2686027430U, // <6,2,3,0>: Cost 3 vext3 <0,2,4,6>, <2,3,0,1>
+    2129698816U, // <6,2,3,0>: Cost 2 ins <u,2,3,0>, lane 0
     2230618020U, // <6,2,3,1>: Cost 3 vrev <2,6,1,3>
     2698487485U, // <6,2,3,2>: Cost 3 vext3 <2,3,2,6>, <2,3,2,6>
-    2965864550U, // <6,2,3,3>: Cost 3 vzipr <2,1,6,3>, LHS
-    2686027470U, // <6,2,3,4>: Cost 3 vext3 <0,2,4,6>, <2,3,4,5>
+    2129723392U, // <6,2,3,3>: Cost 2 ins <u,2,3,3>, lane 0
+    2129731584U, // <6,2,3,4>: Cost 2 ins <u,2,3,4>, lane 0
     2846459598U, // <6,2,3,5>: Cost 3 vuzpr <4,6,0,2>, <2,3,4,5>
     2966528348U, // <6,2,3,6>: Cost 3 vzipr <2,2,6,3>, <0,4,2,6>
     2846458880U, // <6,2,3,7>: Cost 3 vuzpr <4,6,0,2>, <1,3,5,7>
-    2686027502U, // <6,2,3,u>: Cost 3 vext3 <0,2,4,6>, <2,3,u,1>
+    2129698816U, // <6,2,3,u>: Cost 2 ins <u,2,3,0>, lane 0
     1567853468U, // <6,2,4,0>: Cost 2 vext2 <4,0,6,2>, <4,0,6,2>
-    3759769346U, // <6,2,4,1>: Cost 4 vext3 <0,2,4,6>, <2,4,1,3>
+    3191873538U, // <6,2,4,1>: Cost 3 ins <6,2,u,1>, lane 2
     2699151118U, // <6,2,4,2>: Cost 3 vext3 <2,4,2,6>, <2,4,2,6>
-    2686027543U, // <6,2,4,3>: Cost 3 vext3 <0,2,4,6>, <2,4,3,6>
+    2118148098U, // <6,2,4,3>: Cost 2 ins <6,2,u,3>, lane 2
     2699298592U, // <6,2,4,4>: Cost 3 vext3 <2,4,4,6>, <2,4,4,6>
     1573162294U, // <6,2,4,5>: Cost 2 vext2 <4,u,6,2>, RHS
-    2686027564U, // <6,2,4,6>: Cost 3 vext3 <0,2,4,6>, <2,4,6,0>
-    3920201514U, // <6,2,4,7>: Cost 4 vuzpr <4,6,0,2>, <2,4,5,7>
+    2129821696U, // <6,2,4,6>: Cost 2 ins <u,2,4,6>, lane 0
+    3195609089U, // <6,2,4,7>: Cost 3 ins <6,u,4,7>, lane 1
     1573162532U, // <6,2,4,u>: Cost 2 vext2 <4,u,6,2>, <4,u,6,2>
-    4177011606U, // <6,2,5,0>: Cost 4 vtrnr <2,6,4,5>, <1,2,3,0>
+    3191709699U, // <6,2,5,0>: Cost 3 ins <6,2,5,u>, lane 3
     2646904528U, // <6,2,5,1>: Cost 3 vext2 <4,u,6,2>, <5,1,7,3>
-    3759769440U, // <6,2,5,2>: Cost 4 vext3 <0,2,4,6>, <2,5,2,7>
-    2699888488U, // <6,2,5,3>: Cost 3 vext3 <2,5,3,6>, <2,5,3,6>
+    3203604480U, // <6,2,5,2>: Cost 3 ins <u,2,5,2>, lane 0
+    2118148098U, // <6,2,5,3>: Cost 2 ins <6,2,u,3>, lane 2
     2230855617U, // <6,2,5,4>: Cost 3 vrev <2,6,4,5>
     2846461956U, // <6,2,5,5>: Cost 3 vuzpr <4,6,0,2>, <5,5,5,5>
     3115213004U, // <6,2,5,6>: Cost 3 vtrnr <4,6,4,5>, <0,2,4,6>
     1772719414U, // <6,2,5,7>: Cost 2 vuzpr <4,6,0,2>, RHS
     1772719415U, // <6,2,5,u>: Cost 2 vuzpr <4,6,0,2>, RHS
     2687207321U, // <6,2,6,0>: Cost 3 vext3 <0,4,2,6>, <2,6,0,1>
-    2686027684U, // <6,2,6,1>: Cost 3 vext3 <0,2,4,6>, <2,6,1,3>
+    3195707393U, // <6,2,6,1>: Cost 3 ins <6,u,6,1>, lane 1
     1772719436U, // <6,2,6,2>: Cost 2 vuzpr <4,6,0,2>, <4,6,0,2>
     1908736102U, // <6,2,6,3>: Cost 2 vzipr <4,u,6,6>, LHS
     2687207361U, // <6,2,6,4>: Cost 3 vext3 <0,4,2,6>, <2,6,4,5>
-    2686027724U, // <6,2,6,5>: Cost 3 vext3 <0,2,4,6>, <2,6,5,7>
-    3103129804U, // <6,2,6,6>: Cost 3 vtrnr <2,6,2,6>, <0,2,4,6>
-    2846459834U, // <6,2,6,7>: Cost 3 vuzpr <4,6,0,2>, <2,6,3,7>
+    3195740161U, // <6,2,6,5>: Cost 3 ins <6,u,6,5>, lane 1
+    2122006529U, // <6,2,6,6>: Cost 2 ins <6,u,6,6>, lane 1
+    2129977344U, // <6,2,6,7>: Cost 2 ins <u,2,6,7>, lane 0
     1908736107U, // <6,2,6,u>: Cost 2 vzipr <4,u,6,6>, LHS
-    2554323455U, // <6,2,7,0>: Cost 3 vext1 <0,6,2,7>, <0,6,2,7>
-    2572239606U, // <6,2,7,1>: Cost 3 vext1 <3,6,2,7>, <1,0,3,2>
+    2118115331U, // <6,2,7,0>: Cost 2 ins <6,2,7,u>, lane 3
+    2118115331U, // <6,2,7,1>: Cost 2 ins <6,2,7,u>, lane 3
     1906753556U, // <6,2,7,2>: Cost 2 vzipr RHS, <0,0,2,2>
     833011814U,  // <6,2,7,3>: Cost 1 vzipr RHS, LHS
-    2554326326U, // <6,2,7,4>: Cost 3 vext1 <0,6,2,7>, RHS
-    2230945740U, // <6,2,7,5>: Cost 3 vrev <2,6,5,7>
+    2118115331U, // <6,2,7,4>: Cost 2 ins <6,2,7,u>, lane 3
+    2118115331U, // <6,2,7,5>: Cost 2 ins <6,2,7,u>, lane 3
     1906753884U, // <6,2,7,6>: Cost 2 vzipr RHS, <0,4,2,6>
-    2980495790U, // <6,2,7,7>: Cost 3 vzipr RHS, <0,5,2,7>
+    2122088449U, // <6,2,7,7>: Cost 2 ins <6,u,7,7>, lane 1
     833011819U,  // <6,2,7,u>: Cost 1 vzipr RHS, LHS
-    1591744256U, // <6,2,u,0>: Cost 2 vext2 <u,0,6,2>, <u,0,6,2>
+    2129698816U, // <6,2,u,0>: Cost 2 ins <u,2,3,0>, lane 0
     1573164846U, // <6,2,u,1>: Cost 2 vext2 <4,u,6,2>, LHS
     1906761748U, // <6,2,u,2>: Cost 2 vzipr RHS, <0,0,2,2>
     833020006U,  // <6,2,u,3>: Cost 1 vzipr RHS, LHS
-    2686027875U, // <6,2,u,4>: Cost 3 vext3 <0,2,4,6>, <2,u,4,5>
+    2129731584U, // <6,2,u,4>: Cost 2 ins <u,2,3,4>, lane 0
     1573165210U, // <6,2,u,5>: Cost 2 vext2 <4,u,6,2>, RHS
     1906762076U, // <6,2,u,6>: Cost 2 vzipr RHS, <0,4,2,6>
     1772719657U, // <6,2,u,7>: Cost 2 vuzpr <4,6,0,2>, RHS
     833020011U,  // <6,2,u,u>: Cost 1 vzipr RHS, LHS
-    2560311398U, // <6,3,0,0>: Cost 3 vext1 <1,6,3,0>, LHS
-    2686027926U, // <6,3,0,1>: Cost 3 vext3 <0,2,4,6>, <3,0,1,2>
+    3203883008U, // <6,3,0,0>: Cost 3 ins <u,3,0,0>, lane 0
+    2130149376U, // <6,3,0,1>: Cost 2 ins <u,3,0,1>, lane 0
     2686027937U, // <6,3,0,2>: Cost 3 vext3 <0,2,4,6>, <3,0,2,4>
     3121365976U, // <6,3,0,3>: Cost 3 vtrnr <5,6,7,0>, <1,3,1,3>
     2687207601U, // <6,3,0,4>: Cost 3 vext3 <0,4,2,6>, <3,0,4,2>
     3121366734U, // <6,3,0,5>: Cost 3 vtrnr <5,6,7,0>, <2,3,4,5>
-    3121366744U, // <6,3,0,6>: Cost 3 vtrnr <5,6,7,0>, <2,3,5,6>
+    3195305985U, // <6,3,0,6>: Cost 3 ins <6,u,0,6>, lane 1
     3121366016U, // <6,3,0,7>: Cost 3 vtrnr <5,6,7,0>, <1,3,5,7>
-    2686027989U, // <6,3,0,u>: Cost 3 vext3 <0,2,4,6>, <3,0,u,2>
+    2130149376U, // <6,3,0,u>: Cost 2 ins <u,3,0,1>, lane 0
     2578235494U, // <6,3,1,0>: Cost 3 vext1 <4,6,3,1>, LHS
-    3759769830U, // <6,3,1,1>: Cost 4 vext3 <0,2,4,6>, <3,1,1,1>
-    3759769841U, // <6,3,1,2>: Cost 4 vext3 <0,2,4,6>, <3,1,2,3>
-    2834595942U, // <6,3,1,3>: Cost 3 vuzpr <2,6,1,3>, LHS
+    3203964928U, // <6,3,1,1>: Cost 3 ins <u,3,1,1>, lane 0
+    3203973120U, // <6,3,1,2>: Cost 3 ins <u,3,1,2>, lane 0
+    2130239488U, // <6,3,1,3>: Cost 2 ins <u,3,1,3>, lane 0
     2703280390U, // <6,3,1,4>: Cost 3 vext3 <3,1,4,6>, <3,1,4,6>
-    3759769868U, // <6,3,1,5>: Cost 4 vext3 <0,2,4,6>, <3,1,5,3>
-    3766257940U, // <6,3,1,6>: Cost 4 vext3 <1,3,2,6>, <3,1,6,2>
+    3203997696U, // <6,3,1,5>: Cost 3 ins <u,3,1,5>, lane 0
+    2822725737U, // <6,3,1,6>: Cost 3 vuzpr <0,6,2,3>, <0,1,2,6>
     2970494906U, // <6,3,1,7>: Cost 3 vzipr <2,u,6,1>, <2,6,3,7>
-    2834595947U, // <6,3,1,u>: Cost 3 vuzpr <2,6,1,3>, LHS
+    2130239488U, // <6,3,1,u>: Cost 2 ins <u,3,1,3>, lane 0
     2982445974U, // <6,3,2,0>: Cost 3 vzipr <4,u,6,2>, <1,2,3,0>
     2630321724U, // <6,3,2,1>: Cost 3 vext2 <2,1,6,3>, <2,1,6,3>
     2630985357U, // <6,3,2,2>: Cost 3 vext2 <2,2,6,3>, <2,2,6,3>
-    3114894296U, // <6,3,2,3>: Cost 3 vtrnr <4,6,0,2>, <1,3,1,3>
+    2130313216U, // <6,3,2,3>: Cost 2 ins <u,3,2,3>, lane 0
     2982445978U, // <6,3,2,4>: Cost 3 vzipr <4,u,6,2>, <1,2,3,4>
     3114895054U, // <6,3,2,5>: Cost 3 vtrnr <4,6,0,2>, <2,3,4,5>
     2834596044U, // <6,3,2,6>: Cost 3 vuzpr <2,6,1,3>, <0,2,4,6>
     3114894336U, // <6,3,2,7>: Cost 3 vtrnr <4,6,0,2>, <1,3,5,7>
-    2634967155U, // <6,3,2,u>: Cost 3 vext2 <2,u,6,3>, <2,u,6,3>
+    2130313216U, // <6,3,2,u>: Cost 2 ins <u,3,2,3>, lane 0
     2578251878U, // <6,3,3,0>: Cost 3 vext1 <4,6,3,3>, LHS
     2792163478U, // <6,3,3,1>: Cost 3 vuzpl <6,7,3,0>, <3,0,1,2>
     2636958054U, // <6,3,3,2>: Cost 3 vext2 <3,2,6,3>, <3,2,6,3>
-    2686028188U, // <6,3,3,3>: Cost 3 vext3 <0,2,4,6>, <3,3,3,3>
+    2130386944U, // <6,3,3,3>: Cost 2 ins <u,3,3,3>, lane 0
     2704607656U, // <6,3,3,4>: Cost 3 vext3 <3,3,4,6>, <3,3,4,6>
     2792196610U, // <6,3,3,5>: Cost 3 vuzpl <6,7,3,4>, <3,4,5,6>
-    4039607196U, // <6,3,3,6>: Cost 4 vzipr <2,1,6,3>, <1,2,3,6>
+    2590200602U, // <6,3,3,6>: Cost 3 vext1 <6,6,3,3>, <6,6,3,3>
     2972501946U, // <6,3,3,7>: Cost 3 vzipr <3,2,6,3>, <2,6,3,7>
-    2704902604U, // <6,3,3,u>: Cost 3 vext3 <3,3,u,6>, <3,3,u,6>
+    2130386944U, // <6,3,3,u>: Cost 2 ins <u,3,3,3>, lane 0
     2584232038U, // <6,3,4,0>: Cost 3 vext1 <5,6,3,4>, LHS
     2705050078U, // <6,3,4,1>: Cost 3 vext3 <3,4,1,6>, <3,4,1,6>
     2642930751U, // <6,3,4,2>: Cost 3 vext2 <4,2,6,3>, <4,2,6,3>
@@ -4684,23 +4684,23 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     3121398784U, // <6,3,4,7>: Cost 3 vtrnr <5,6,7,4>, <1,3,5,7>
     1631824413U, // <6,3,4,u>: Cost 2 vext3 <3,4,u,6>, <3,4,u,6>
     2578268262U, // <6,3,5,0>: Cost 3 vext1 <4,6,3,5>, LHS
-    3772746288U, // <6,3,5,1>: Cost 4 vext3 <2,4,0,6>, <3,5,1,7>
+    3204259840U, // <6,3,5,1>: Cost 3 ins <u,3,5,1>, lane 0
     2648903448U, // <6,3,5,2>: Cost 3 vext2 <5,2,6,3>, <5,2,6,3>
     2578270722U, // <6,3,5,3>: Cost 3 vext1 <4,6,3,5>, <3,4,5,6>
     2705934922U, // <6,3,5,4>: Cost 3 vext3 <3,5,4,6>, <3,5,4,6>
-    3773041236U, // <6,3,5,5>: Cost 4 vext3 <2,4,4,6>, <3,5,5,7>
-    4177016805U, // <6,3,5,6>: Cost 4 vtrnr <2,6,4,5>, <u,3,4,6>
-    2834599222U, // <6,3,5,7>: Cost 3 vuzpr <2,6,1,3>, RHS
-    2834599223U, // <6,3,5,u>: Cost 3 vuzpr <2,6,1,3>, RHS
+    3204292608U, // <6,3,5,5>: Cost 3 ins <u,3,5,5>, lane 0
+    3204300800U, // <6,3,5,6>: Cost 3 ins <u,3,5,6>, lane 0
+    2130567168U, // <6,3,5,7>: Cost 2 ins <u,3,5,7>, lane 0
+    2130567168U, // <6,3,5,u>: Cost 2 ins <u,3,5,7>, lane 0
     2982478742U, // <6,3,6,0>: Cost 3 vzipr <4,u,6,6>, <1,2,3,0>
     3115222694U, // <6,3,6,1>: Cost 3 vtrnr <4,6,4,6>, <2,3,0,1>
     2982478582U, // <6,3,6,2>: Cost 3 vzipr <4,u,6,6>, <1,0,3,2>
-    2834597796U, // <6,3,6,3>: Cost 3 vuzpr <2,6,1,3>, <2,6,1,3>
+    1748984315U, // <6,3,6,3>: Cost 2 vuzpr <0,6,2,3>, <0,6,2,3>
     2982478746U, // <6,3,6,4>: Cost 3 vzipr <4,u,6,6>, <1,2,3,4>
     3115222734U, // <6,3,6,5>: Cost 3 vtrnr <4,6,4,6>, <2,3,4,5>
-    2858487156U, // <6,3,6,6>: Cost 3 vuzpr <6,6,1,3>, <4,6,4,6>
-    3115222016U, // <6,3,6,7>: Cost 3 vtrnr <4,6,4,6>, <1,3,5,7>
-    3115221981U, // <6,3,6,u>: Cost 3 vtrnr <4,6,4,6>, <1,3,1,u>
+    2122006529U, // <6,3,6,6>: Cost 2 ins <6,u,6,6>, lane 1
+    2130640896U, // <6,3,6,7>: Cost 2 ins <u,3,6,7>, lane 0
+    1748984315U, // <6,3,6,u>: Cost 2 vuzpr <0,6,2,3>, <0,6,2,3>
     1492598886U, // <6,3,7,0>: Cost 2 vext1 <2,6,3,7>, LHS
     2560369889U, // <6,3,7,1>: Cost 3 vext1 <1,6,3,7>, <1,6,3,7>
     1492600762U, // <6,3,7,2>: Cost 2 vext1 <2,6,3,7>, <2,6,3,7>
@@ -4711,42 +4711,42 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1906754704U, // <6,3,7,7>: Cost 2 vzipr RHS, <1,5,3,7>
     1492604718U, // <6,3,7,u>: Cost 2 vext1 <2,6,3,7>, LHS
     1492607078U, // <6,3,u,0>: Cost 2 vext1 <2,6,3,u>, LHS
-    2686028574U, // <6,3,u,1>: Cost 3 vext3 <0,2,4,6>, <3,u,1,2>
+    2130149376U, // <6,3,u,1>: Cost 2 ins <u,3,0,1>, lane 0
     1492608955U, // <6,3,u,2>: Cost 2 vext1 <2,6,3,u>, <2,6,3,u>
     1906762568U, // <6,3,u,3>: Cost 2 vzipr RHS, <1,1,3,3>
     1492610358U, // <6,3,u,4>: Cost 2 vext1 <2,6,3,u>, RHS
     1634257734U, // <6,3,u,5>: Cost 2 vext3 <3,u,5,6>, <3,u,5,6>
-    2566353411U, // <6,3,u,6>: Cost 3 vext1 <2,6,3,u>, <6,2,u,3>
+    2122006529U, // <6,3,u,6>: Cost 2 ins <6,u,6,6>, lane 1
     1906762896U, // <6,3,u,7>: Cost 2 vzipr RHS, <1,5,3,7>
     1492612910U, // <6,3,u,u>: Cost 2 vext1 <2,6,3,u>, LHS
     2242465098U, // <6,4,0,0>: Cost 3 vrev <4,6,0,0>
-    2629664870U, // <6,4,0,1>: Cost 3 vext2 <2,0,6,4>, LHS
+    2121523201U, // <6,4,0,1>: Cost 2 ins <6,u,0,1>, lane 1
     1718534246U, // <6,4,0,2>: Cost 2 vuzpl <6,7,4,5>, LHS
-    3779087232U, // <6,4,0,3>: Cost 4 vext3 <3,4,5,6>, <4,0,3,1>
+    3195281409U, // <6,4,0,3>: Cost 3 ins <6,u,0,3>, lane 1
     2642936156U, // <6,4,0,4>: Cost 3 vext2 <4,2,6,4>, <0,4,2,6>
     2712570770U, // <6,4,0,5>: Cost 3 vext3 <4,6,4,6>, <4,0,5,1>
     1986645302U, // <6,4,0,6>: Cost 2 vtrnl <6,7,0,1>, RHS
-    3652047866U, // <6,4,0,7>: Cost 4 vext1 <4,6,4,0>, <7,0,1,2>
+    3195314177U, // <6,4,0,7>: Cost 3 ins <6,u,0,7>, lane 1
     1986645320U, // <6,4,0,u>: Cost 2 vtrnl <6,7,0,1>, RHS
     2242473291U, // <6,4,1,0>: Cost 3 vrev <4,6,0,1>
     2242547028U, // <6,4,1,1>: Cost 3 vrev <4,6,1,1>
-    3703407510U, // <6,4,1,2>: Cost 4 vext2 <2,0,6,4>, <1,2,3,0>
+    3204636672U, // <6,4,1,2>: Cost 3 ins <u,4,1,2>, lane 0
     1779220582U, // <6,4,1,3>: Cost 2 vuzpr <5,6,7,4>, LHS
     3059813748U, // <6,4,1,4>: Cost 3 vtrnl <6,6,1,3>, <4,6,4,6>
-    2242841976U, // <6,4,1,5>: Cost 3 vrev <4,6,5,1>
+    2130919424U, // <6,4,1,5>: Cost 2 ins <u,4,1,5>, lane 0
     3102941532U, // <6,4,1,6>: Cost 3 vtrnr <2,6,0,1>, <0,4,2,6>
     2242989450U, // <6,4,1,7>: Cost 3 vrev <4,6,7,1>
     1779220587U, // <6,4,1,u>: Cost 2 vuzpr <5,6,7,4>, LHS
     1168739660U, // <6,4,2,0>: Cost 2 vrev <4,6,0,2>
-    3703408188U, // <6,4,2,1>: Cost 4 vext2 <2,0,6,4>, <2,1,6,3>
+    3195412481U, // <6,4,2,1>: Cost 3 ins <6,u,2,1>, lane 1
     2242628958U, // <6,4,2,2>: Cost 3 vrev <4,6,2,2>
-    2852963954U, // <6,4,2,3>: Cost 3 vuzpr <5,6,7,4>, <2,2,3,3>
+    2130976768U, // <6,4,2,3>: Cost 2 ins <u,4,2,3>, lane 0
     2632320816U, // <6,4,2,4>: Cost 3 vext2 <2,4,6,4>, <2,4,6,4>
     1849642294U, // <6,4,2,5>: Cost 2 vzipl <6,2,7,3>, RHS
-    2687208508U, // <6,4,2,6>: Cost 3 vext3 <0,4,2,6>, <4,2,6,0>
-    4188636970U, // <6,4,2,7>: Cost 4 vtrnr <4,6,0,2>, <2,4,5,7>
+    2131001344U, // <6,4,2,6>: Cost 2 ins <u,4,2,6>, lane 0
+    3195461633U, // <6,4,2,7>: Cost 3 ins <6,u,2,7>, lane 1
     1169329556U, // <6,4,2,u>: Cost 2 vrev <4,6,u,2>
-    3703408790U, // <6,4,3,0>: Cost 4 vext2 <2,0,6,4>, <3,0,1,2>
+    3195478017U, // <6,4,3,0>: Cost 3 ins <6,u,3,0>, lane 1
     2242563414U, // <6,4,3,1>: Cost 3 vrev <4,6,1,3>
     2242637151U, // <6,4,3,2>: Cost 3 vrev <4,6,2,3>
     2242710888U, // <6,4,3,3>: Cost 3 vrev <4,6,3,3>
@@ -4759,8 +4759,8 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2852967732U, // <6,4,4,1>: Cost 3 vuzpr <5,6,7,4>, <7,4,0,1>
     2642938944U, // <6,4,4,2>: Cost 3 vext2 <4,2,6,4>, <4,2,6,4>
     2852967014U, // <6,4,4,3>: Cost 3 vuzpr <5,6,7,4>, <6,4,1,3>
-    2686029008U, // <6,4,4,4>: Cost 3 vext3 <0,2,4,6>, <4,4,4,4>
-    2629668150U, // <6,4,4,5>: Cost 3 vext2 <2,0,6,4>, RHS
+    2131132416U, // <6,4,4,4>: Cost 2 ins <u,4,4,4>, lane 0
+    2121850881U, // <6,4,4,5>: Cost 2 ins <6,u,4,5>, lane 1
     1718537526U, // <6,4,4,6>: Cost 2 vuzpl <6,7,4,5>, RHS
     2852967054U, // <6,4,4,7>: Cost 3 vuzpr <5,6,7,4>, <6,4,5,7>
     1718537544U, // <6,4,4,u>: Cost 2 vuzpl <6,7,4,5>, RHS
@@ -4769,7 +4769,7 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2566399937U, // <6,4,5,2>: Cost 3 vext1 <2,6,4,5>, <2,6,4,5>
     2242727274U, // <6,4,5,3>: Cost 3 vrev <4,6,3,5>
     2566401334U, // <6,4,5,4>: Cost 3 vext1 <2,6,4,5>, RHS
-    2242874748U, // <6,4,5,5>: Cost 3 vrev <4,6,5,5>
+    2131214336U, // <6,4,5,5>: Cost 2 ins <u,4,5,5>, lane 0
     1612287286U, // <6,4,5,6>: Cost 2 vext3 <0,2,4,6>, RHS
     1779223862U, // <6,4,5,7>: Cost 2 vuzpr <5,6,7,4>, RHS
     1612287304U, // <6,4,5,u>: Cost 2 vext3 <0,2,4,6>, RHS
@@ -4780,19 +4780,19 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1169067380U, // <6,4,6,4>: Cost 2 vrev <4,6,4,6>
     1852247350U, // <6,4,6,5>: Cost 2 vzipl <6,6,6,6>, RHS
     1986465078U, // <6,4,6,6>: Cost 2 vtrnl <6,6,6,6>, RHS
-    2578355194U, // <6,4,6,7>: Cost 3 vext1 <4,6,4,6>, <7,0,1,2>
+    2131304448U, // <6,4,6,7>: Cost 2 ins <u,4,6,7>, lane 0
     1504614190U, // <6,4,6,u>: Cost 2 vext1 <4,6,4,6>, LHS
     2572386406U, // <6,4,7,0>: Cost 3 vext1 <3,6,4,7>, LHS
     2572387226U, // <6,4,7,1>: Cost 3 vext1 <3,6,4,7>, <1,2,3,4>
     2980495398U, // <6,4,7,2>: Cost 3 vzipr RHS, <0,0,4,2>
-    2572389020U, // <6,4,7,3>: Cost 3 vext1 <3,6,4,7>, <3,6,4,7>
+    2122055681U, // <6,4,7,3>: Cost 2 ins <6,u,7,3>, lane 1
     1906756816U, // <6,4,7,4>: Cost 2 vzipr RHS, <4,4,4,4>
     1906755278U, // <6,4,7,5>: Cost 2 vzipr RHS, <2,3,4,5>
     1906753740U, // <6,4,7,6>: Cost 2 vzipr RHS, <0,2,4,6>
-    2980497266U, // <6,4,7,7>: Cost 3 vzipr RHS, <2,5,4,7>
+    2122088449U, // <6,4,7,7>: Cost 2 ins <6,u,7,7>, lane 1
     1906753742U, // <6,4,7,u>: Cost 2 vzipr RHS, <0,2,4,u>
     1168788818U, // <6,4,u,0>: Cost 2 vrev <4,6,0,u>
-    2629670702U, // <6,4,u,1>: Cost 3 vext2 <2,0,6,4>, LHS
+    2121523201U, // <6,4,u,1>: Cost 2 ins <6,u,0,1>, lane 1
     1718540078U, // <6,4,u,2>: Cost 2 vuzpl <6,7,4,5>, LHS
     1779221149U, // <6,4,u,3>: Cost 2 vuzpr <5,6,7,4>, LHS
     1906765008U, // <6,4,u,4>: Cost 2 vzipr RHS, <4,4,4,4>
@@ -4800,156 +4800,156 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1612287529U, // <6,4,u,6>: Cost 2 vext3 <0,2,4,6>, RHS
     1779224105U, // <6,4,u,7>: Cost 2 vuzpr <5,6,7,4>, RHS
     1612287547U, // <6,4,u,u>: Cost 2 vext3 <0,2,4,6>, RHS
-    3908575232U, // <6,5,0,0>: Cost 4 vuzpr <2,6,4,5>, <0,0,0,0>
-    2634981478U, // <6,5,0,1>: Cost 3 vext2 <2,u,6,5>, LHS
+    3195256833U, // <6,5,0,0>: Cost 3 ins <6,u,0,0>, lane 1
+    2121523201U, // <6,5,0,1>: Cost 2 ins <6,u,0,1>, lane 1
     2787721318U, // <6,5,0,2>: Cost 3 vuzpl <6,0,5,7>, LHS
-    3779087962U, // <6,5,0,3>: Cost 4 vext3 <3,4,5,6>, <5,0,3,2>
+    3195281409U, // <6,5,0,3>: Cost 3 ins <6,u,0,3>, lane 1
     2790367436U, // <6,5,0,4>: Cost 3 vuzpl <6,4,5,6>, <0,2,4,6>
     3121369092U, // <6,5,0,5>: Cost 3 vtrnr <5,6,7,0>, <5,5,5,5>
     2980440578U, // <6,5,0,6>: Cost 3 vzipr <4,5,6,0>, <3,4,5,6>
     1175212130U, // <6,5,0,7>: Cost 2 vrev <5,6,7,0>
     2047626551U, // <6,5,0,u>: Cost 2 vtrnr <5,6,7,0>, RHS
     2578382950U, // <6,5,1,0>: Cost 3 vext1 <4,6,5,1>, LHS
-    3698107237U, // <6,5,1,1>: Cost 4 vext2 <1,1,6,5>, <1,1,6,5>
-    3708724118U, // <6,5,1,2>: Cost 4 vext2 <2,u,6,5>, <1,2,3,0>
+    3205292032U, // <6,5,1,1>: Cost 3 ins <u,5,1,1>, lane 0
+    3195346945U, // <6,5,1,2>: Cost 3 ins <6,u,1,2>, lane 1
     2834833510U, // <6,5,1,3>: Cost 3 vuzpr <2,6,4,5>, LHS
     2578386296U, // <6,5,1,4>: Cost 3 vext1 <4,6,5,1>, <4,6,5,1>
     2578387072U, // <6,5,1,5>: Cost 3 vext1 <4,6,5,1>, <5,7,1,3>
     2922205282U, // <6,5,1,6>: Cost 3 vzipl <6,1,0,3>, <5,6,7,0>
-    3102944566U, // <6,5,1,7>: Cost 3 vtrnr <2,6,0,1>, RHS
-    3102944567U, // <6,5,1,u>: Cost 3 vtrnr <2,6,0,1>, RHS
+    2131599360U, // <6,5,1,7>: Cost 2 ins <u,5,1,7>, lane 0
+    2131599360U, // <6,5,1,u>: Cost 2 ins <u,5,1,7>, lane 0
     2578391142U, // <6,5,2,0>: Cost 3 vext1 <4,6,5,2>, LHS
     2982448018U, // <6,5,2,1>: Cost 3 vzipr <4,u,6,2>, <4,0,5,1>
-    3896926372U, // <6,5,2,2>: Cost 4 vuzpr <0,6,u,5>, <0,2,0,2>
-    2792368058U, // <6,5,2,3>: Cost 3 vuzpl <6,7,5,7>, <2,6,3,7>
+    3195420673U, // <6,5,2,2>: Cost 3 ins <6,u,2,2>, lane 1
+    2131640320U, // <6,5,2,3>: Cost 2 ins <u,5,2,3>, lane 0
     2578394489U, // <6,5,2,4>: Cost 3 vext1 <4,6,5,2>, <4,6,5,2>
     3114897412U, // <6,5,2,5>: Cost 3 vtrnr <4,6,0,2>, <5,5,5,5>
     2634983354U, // <6,5,2,6>: Cost 3 vext2 <2,u,6,5>, <2,6,3,7>
     2041154870U, // <6,5,2,7>: Cost 2 vtrnr <4,6,0,2>, RHS
     2041154871U, // <6,5,2,u>: Cost 2 vtrnr <4,6,0,2>, RHS
-    3708725398U, // <6,5,3,0>: Cost 4 vext2 <2,u,6,5>, <3,0,1,2>
-    3908576934U, // <6,5,3,1>: Cost 4 vuzpr <2,6,4,5>, <2,3,0,1>
-    3708725606U, // <6,5,3,2>: Cost 4 vext2 <2,u,6,5>, <3,2,6,3>
-    3908576216U, // <6,5,3,3>: Cost 4 vuzpr <2,6,4,5>, <1,3,1,3>
+    3195478017U, // <6,5,3,0>: Cost 3 ins <6,u,3,0>, lane 1
+    3205439488U, // <6,5,3,1>: Cost 3 ins <u,5,3,1>, lane 0
+    3091164465U, // <6,5,3,2>: Cost 3 vtrnr <0,6,2,3>, <4,5,6,2>
+    3195502593U, // <6,5,3,3>: Cost 3 ins <6,u,3,3>, lane 1
     2643610114U, // <6,5,3,4>: Cost 3 vext2 <4,3,6,5>, <3,4,5,6>
-    3908503246U, // <6,5,3,5>: Cost 4 vuzpr <2,6,3,5>, <2,3,4,5>
+    3205472256U, // <6,5,3,5>: Cost 3 ins <u,5,3,5>, lane 0
     2980465154U, // <6,5,3,6>: Cost 3 vzipr <4,5,6,3>, <3,4,5,6>
-    3103034678U, // <6,5,3,7>: Cost 3 vtrnr <2,6,1,3>, RHS
-    3103034679U, // <6,5,3,u>: Cost 3 vtrnr <2,6,1,3>, RHS
+    2131746816U, // <6,5,3,7>: Cost 2 ins <u,5,3,7>, lane 0
+    2131746816U, // <6,5,3,u>: Cost 2 ins <u,5,3,7>, lane 0
     2789051724U, // <6,5,4,0>: Cost 3 vuzpl <6,2,5,7>, <4,6,0,2>
     3060715648U, // <6,5,4,1>: Cost 3 vtrnl <6,7,4,5>, <5,7,1,3>
-    3908579977U, // <6,5,4,2>: Cost 4 vuzpr <2,6,4,5>, <6,4,5,2>
+    3195568129U, // <6,5,4,2>: Cost 3 ins <6,u,4,2>, lane 1
     2643610770U, // <6,5,4,3>: Cost 3 vext2 <4,3,6,5>, <4,3,6,5>
     2791705972U, // <6,5,4,4>: Cost 3 vuzpl <6,6,5,7>, <4,6,4,6>
-    2634984758U, // <6,5,4,5>: Cost 3 vext2 <2,u,6,5>, RHS
+    2121850881U, // <6,5,4,5>: Cost 2 ins <6,u,4,5>, lane 1
     2834833756U, // <6,5,4,6>: Cost 3 vuzpr <2,6,4,5>, <0,4,2,6>
     1643696070U, // <6,5,4,7>: Cost 2 vext3 <5,4,7,6>, <5,4,7,6>
     1643769807U, // <6,5,4,u>: Cost 2 vext3 <5,4,u,6>, <5,4,u,6>
     2578415718U, // <6,5,5,0>: Cost 3 vext1 <4,6,5,5>, LHS
     3006363382U, // <6,5,5,1>: Cost 3 vzipr <u,u,6,5>, <u,0,5,1>
-    4044273885U, // <6,5,5,2>: Cost 4 vzipr <2,u,6,5>, <u,6,5,2>
-    3908580023U, // <6,5,5,3>: Cost 4 vuzpr <2,6,4,5>, <6,5,1,3>
+    3205595136U, // <6,5,5,2>: Cost 3 ins <u,5,5,2>, lane 0
+    2980479105U, // <6,5,5,3>: Cost 3 vzipr <4,5,6,5>, <0,1,5,3>
     2578419068U, // <6,5,5,4>: Cost 3 vext1 <4,6,5,5>, <4,6,5,5>
-    2712571908U, // <6,5,5,5>: Cost 3 vext3 <4,6,4,6>, <5,5,5,5>
+    2131877888U, // <6,5,5,5>: Cost 2 ins <u,5,5,5>, lane 0
     2979154434U, // <6,5,5,6>: Cost 3 vzipr <4,3,6,5>, <3,4,5,6>
-    2834836790U, // <6,5,5,7>: Cost 3 vuzpr <2,6,4,5>, RHS
-    2834836791U, // <6,5,5,u>: Cost 3 vuzpr <2,6,4,5>, RHS
-    2705346596U, // <6,5,6,0>: Cost 3 vext3 <3,4,5,6>, <5,6,0,1>
-    2982480786U, // <6,5,6,1>: Cost 3 vzipr <4,u,6,6>, <4,0,5,1>
-    3773116473U, // <6,5,6,2>: Cost 4 vext3 <2,4,5,6>, <5,6,2,4>
-    2705346626U, // <6,5,6,3>: Cost 3 vext3 <3,4,5,6>, <5,6,3,4>
-    2705346636U, // <6,5,6,4>: Cost 3 vext3 <3,4,5,6>, <5,6,4,5>
-    2834835393U, // <6,5,6,5>: Cost 3 vuzpr <2,6,4,5>, <2,6,4,5>
-    2578428728U, // <6,5,6,6>: Cost 3 vext1 <4,6,5,6>, <6,6,6,6>
-    2041482550U, // <6,5,6,7>: Cost 2 vtrnr <4,6,4,6>, RHS
-    2041482551U, // <6,5,6,u>: Cost 2 vtrnr <4,6,4,6>, RHS
+    2131894272U, // <6,5,5,7>: Cost 2 ins <u,5,5,7>, lane 0
+    2131877888U, // <6,5,5,u>: Cost 2 ins <u,5,5,5>, lane 0
+    2131910656U, // <6,5,6,0>: Cost 2 ins <u,5,6,0>, lane 0
+    2131918848U, // <6,5,6,1>: Cost 2 ins <u,5,6,1>, lane 0
+    2131927040U, // <6,5,6,2>: Cost 2 ins <u,5,6,2>, lane 0
+    2131935232U, // <6,5,6,3>: Cost 2 ins <u,5,6,3>, lane 0
+    2131943424U, // <6,5,6,4>: Cost 2 ins <u,5,6,4>, lane 0
+    2131951616U, // <6,5,6,5>: Cost 2 ins <u,5,6,5>, lane 0
+    2131959808U, // <6,5,6,6>: Cost 2 ins <u,5,6,6>, lane 0
+    1058226176U, // <6,5,6,7>: Cost 1 ins RHS, lane 0
+    1058226176U, // <6,5,6,u>: Cost 1 ins RHS, lane 0
     2560516198U, // <6,5,7,0>: Cost 3 vext1 <1,6,5,7>, LHS
     1906756498U, // <6,5,7,1>: Cost 2 vzipr RHS, <4,0,5,1>
     2566490060U, // <6,5,7,2>: Cost 3 vext1 <2,6,5,7>, <2,6,5,7>
-    2980496299U, // <6,5,7,3>: Cost 3 vzipr RHS, <1,2,5,3>
+    2122055681U, // <6,5,7,3>: Cost 2 ins <6,u,7,3>, lane 1
     2560519478U, // <6,5,7,4>: Cost 3 vext1 <1,6,5,7>, RHS
     1906756826U, // <6,5,7,5>: Cost 2 vzipr RHS, <4,4,5,5>
     1906756098U, // <6,5,7,6>: Cost 2 vzipr RHS, <3,4,5,6>
     2029473078U, // <6,5,7,7>: Cost 2 vtrnr <2,6,3,7>, RHS
     2029473079U, // <6,5,7,u>: Cost 2 vtrnr <2,6,3,7>, RHS
-    2560524390U, // <6,5,u,0>: Cost 3 vext1 <1,6,5,u>, LHS
+    2131910656U, // <6,5,u,0>: Cost 2 ins <u,5,6,0>, lane 0
     1906764690U, // <6,5,u,1>: Cost 2 vzipr RHS, <4,0,5,1>
-    2566498253U, // <6,5,u,2>: Cost 3 vext1 <2,6,5,u>, <2,6,5,u>
-    2834834077U, // <6,5,u,3>: Cost 3 vuzpr <2,6,4,5>, LHS
-    2560527670U, // <6,5,u,4>: Cost 3 vext1 <1,6,5,u>, RHS
+    2131927040U, // <6,5,u,2>: Cost 2 ins <u,5,6,2>, lane 0
+    2122055681U, // <6,5,u,3>: Cost 2 ins <6,u,7,3>, lane 1
+    2131943424U, // <6,5,u,4>: Cost 2 ins <u,5,6,4>, lane 0
     1906765018U, // <6,5,u,5>: Cost 2 vzipr RHS, <4,4,5,5>
     1906764290U, // <6,5,u,6>: Cost 2 vzipr RHS, <3,4,5,6>
-    2029481270U, // <6,5,u,7>: Cost 2 vtrnr <2,6,3,u>, RHS
-    2029481271U, // <6,5,u,u>: Cost 2 vtrnr <2,6,3,u>, RHS
+    1058226176U, // <6,5,u,7>: Cost 1 ins RHS, lane 0
+    1058226176U, // <6,5,u,u>: Cost 1 ins RHS, lane 0
     2047627362U, // <6,6,0,0>: Cost 2 vtrnr <5,6,7,0>, <5,6,7,0>
     1573191782U, // <6,6,0,1>: Cost 2 vext2 <4,u,6,6>, LHS
     1718026342U, // <6,6,0,2>: Cost 2 vuzpl <6,6,6,6>, LHS
-    4041573948U, // <6,6,0,3>: Cost 4 vzipr <2,4,6,0>, <2,1,6,3>
+    3195281409U, // <6,6,0,3>: Cost 3 ins <6,u,0,3>, lane 1
     2687209788U, // <6,6,0,4>: Cost 3 vext3 <0,4,2,6>, <6,0,4,2>
-    4054183058U, // <6,6,0,5>: Cost 4 vzipr <4,5,6,0>, <4,3,6,5>
-    2578453326U, // <6,6,0,6>: Cost 3 vext1 <4,6,6,0>, <6,7,0,1>
-    2967833910U, // <6,6,0,7>: Cost 3 vzipr <2,4,6,0>, RHS
+    3195297793U, // <6,6,0,5>: Cost 3 ins <6,u,0,5>, lane 1
+    2120826882U, // <6,6,0,6>: Cost 2 ins <6,6,u,6>, lane 2
+    2120835074U, // <6,6,0,7>: Cost 2 ins <6,6,u,7>, lane 2
     1573192349U, // <6,6,0,u>: Cost 2 vext2 <4,u,6,6>, LHS
     2646934262U, // <6,6,1,0>: Cost 3 vext2 <4,u,6,6>, <1,0,3,2>
-    3102943129U, // <6,6,1,1>: Cost 3 vtrnr <2,6,0,1>, <2,6,0,1>
+    1906707760U, // <6,6,1,1>: Cost 2 vzipr <4,5,6,1>, <4,5,6,1>
     2646934422U, // <6,6,1,2>: Cost 3 vext2 <4,u,6,6>, <1,2,3,0>
     1773043814U, // <6,6,1,3>: Cost 2 vuzpr <4,6,4,6>, LHS
-    3760951694U, // <6,6,1,4>: Cost 4 vext3 <0,4,2,6>, <6,1,4,3>
+    3194068995U, // <6,6,1,4>: Cost 3 ins <6,6,1,u>, lane 3
     2646934672U, // <6,6,1,5>: Cost 3 vext2 <4,u,6,6>, <1,5,3,7>
-    2994385720U, // <6,6,1,6>: Cost 3 vzipr <6,u,6,1>, <6,6,6,6>
-    2970496310U, // <6,6,1,7>: Cost 3 vzipr <2,u,6,1>, RHS
+    2120826882U, // <6,6,1,6>: Cost 2 ins <6,6,u,6>, lane 2
+    2120835074U, // <6,6,1,7>: Cost 2 ins <6,6,u,7>, lane 2
     1773043819U, // <6,6,1,u>: Cost 2 vuzpr <4,6,4,6>, LHS
     3114896750U, // <6,6,2,0>: Cost 3 vtrnr <4,6,0,2>, <4,6,4,0>
-    3704751676U, // <6,6,2,1>: Cost 4 vext2 <2,2,6,6>, <2,1,6,3>
+    3195412481U, // <6,6,2,1>: Cost 3 ins <6,u,2,1>, lane 1
     2041154892U, // <6,6,2,2>: Cost 2 vtrnr <4,6,0,2>, <4,6,0,2>
-    2846787186U, // <6,6,2,3>: Cost 3 vuzpr <4,6,4,6>, <2,2,3,3>
+    2132303872U, // <6,6,2,3>: Cost 2 ins <u,6,2,3>, lane 0
     3114897510U, // <6,6,2,4>: Cost 3 vtrnr <4,6,0,2>, <5,6,7,4>
-    3704752004U, // <6,6,2,5>: Cost 4 vext2 <2,2,6,6>, <2,5,6,7>
-    2834694348U, // <6,6,2,6>: Cost 3 vuzpr <2,6,2,6>, <0,2,4,6>
+    3195445249U, // <6,6,2,5>: Cost 3 ins <6,u,2,5>, lane 1
+    2120826882U, // <6,6,2,6>: Cost 2 ins <6,6,u,6>, lane 2
     1908706614U, // <6,6,2,7>: Cost 2 vzipr <4,u,6,2>, RHS
     1908706615U, // <6,6,2,u>: Cost 2 vzipr <4,u,6,2>, RHS
     2646935702U, // <6,6,3,0>: Cost 3 vext2 <4,u,6,6>, <3,0,1,2>
     2846787238U, // <6,6,3,1>: Cost 3 vuzpr <4,6,4,6>, <2,3,0,1>
-    4040272796U, // <6,6,3,2>: Cost 4 vzipr <2,2,6,3>, <4,0,6,2>
-    2965866044U, // <6,6,3,3>: Cost 3 vzipr <2,1,6,3>, <2,1,6,3>
+    3206111232U, // <6,6,3,2>: Cost 3 ins <u,6,3,2>, lane 0
+    1880178826U, // <6,6,3,3>: Cost 2 vzipr <0,1,6,3>, <0,1,6,3>
     2705347122U, // <6,6,3,4>: Cost 3 vext3 <3,4,5,6>, <6,3,4,5>
     2846787278U, // <6,6,3,5>: Cost 3 vuzpr <4,6,4,6>, <2,3,4,5>
-    2990419496U, // <6,6,3,6>: Cost 3 vzipr <6,2,6,3>, <4,u,6,6>
-    2965867830U, // <6,6,3,7>: Cost 3 vzipr <2,1,6,3>, RHS
-    2965867831U, // <6,6,3,u>: Cost 3 vzipr <2,1,6,3>, RHS
+    2120826882U, // <6,6,3,6>: Cost 2 ins <6,6,u,6>, lane 2
+    2132410368U, // <6,6,3,7>: Cost 2 ins <u,6,3,7>, lane 0
+    2132410368U, // <6,6,3,u>: Cost 2 ins <u,6,3,7>, lane 0
     2846790288U, // <6,6,4,0>: Cost 3 vuzpr <4,6,4,6>, <6,4,6,0>
-    4176709529U, // <6,6,4,1>: Cost 4 vtrnr <2,6,0,4>, <2,6,0,1>
+    3194527746U, // <6,6,4,1>: Cost 3 ins <6,6,u,1>, lane 2
     2846788778U, // <6,6,4,2>: Cost 3 vuzpr <4,6,4,6>, <4,4,0,2>
-    4038952508U, // <6,6,4,3>: Cost 4 vzipr <2,0,6,4>, <2,1,6,3>
+    3195576321U, // <6,6,4,3>: Cost 3 ins <6,u,4,3>, lane 1
     2047660134U, // <6,6,4,4>: Cost 2 vtrnr <5,6,7,4>, <5,6,7,4>
     1573195062U, // <6,6,4,5>: Cost 2 vext2 <4,u,6,6>, RHS
     1718029622U, // <6,6,4,6>: Cost 2 vuzpl <6,6,6,6>, RHS
-    2965212470U, // <6,6,4,7>: Cost 3 vzipr <2,0,6,4>, RHS
+    2120835074U, // <6,6,4,7>: Cost 2 ins <6,6,u,7>, lane 2
     1573195304U, // <6,6,4,u>: Cost 2 vext2 <4,u,6,6>, <4,u,6,6>
-    3640287334U, // <6,6,5,0>: Cost 4 vext1 <2,6,6,5>, LHS
+    3194363907U, // <6,6,5,0>: Cost 3 ins <6,6,5,u>, lane 3
     2646937296U, // <6,6,5,1>: Cost 3 vext2 <4,u,6,6>, <5,1,7,3>
-    3640289235U, // <6,6,5,2>: Cost 4 vext1 <2,6,6,5>, <2,6,6,5>
-    4177014102U, // <6,6,5,3>: Cost 4 vtrnr <2,6,4,5>, <4,6,1,3>
+    3206258688U, // <6,6,5,2>: Cost 3 ins <u,6,5,2>, lane 0
+    3194544130U, // <6,6,5,3>: Cost 3 ins <6,6,u,3>, lane 2
     2646937542U, // <6,6,5,4>: Cost 3 vext2 <4,u,6,6>, <5,4,7,6>
-    3103270849U, // <6,6,5,5>: Cost 3 vtrnr <2,6,4,5>, <2,6,4,5>
-    2646937698U, // <6,6,5,6>: Cost 3 vext2 <4,u,6,6>, <5,6,7,0>
+    1906740532U, // <6,6,5,5>: Cost 2 vzipr <4,5,6,5>, <4,5,6,5>
+    2120826882U, // <6,6,5,6>: Cost 2 ins <6,6,u,6>, lane 2
     1773047094U, // <6,6,5,7>: Cost 2 vuzpr <4,6,4,6>, RHS
     1773047095U, // <6,6,5,u>: Cost 2 vuzpr <4,6,4,6>, RHS
     1516699750U, // <6,6,6,0>: Cost 2 vext1 <6,6,6,6>, LHS
-    2590442230U, // <6,6,6,1>: Cost 3 vext1 <6,6,6,6>, <1,0,3,2>
-    2846788940U, // <6,6,6,2>: Cost 3 vuzpr <4,6,4,6>, <4,6,0,2>
-    2846790408U, // <6,6,6,3>: Cost 3 vuzpr <4,6,4,6>, <6,6,1,3>
+    2120695811U, // <6,6,6,1>: Cost 2 ins <6,6,6,u>, lane 3
+    2120695811U, // <6,6,6,2>: Cost 2 ins <6,6,6,u>, lane 3
+    2120695811U, // <6,6,6,3>: Cost 2 ins <6,6,6,u>, lane 3
     1516703030U, // <6,6,6,4>: Cost 2 vext1 <6,6,6,6>, RHS
-    2590445264U, // <6,6,6,5>: Cost 3 vext1 <6,6,6,6>, <5,1,7,3>
+    2120695811U, // <6,6,6,5>: Cost 2 ins <6,6,6,u>, lane 3
     296144182U,  // <6,6,6,6>: Cost 1 vdup2 RHS
     1908739382U, // <6,6,6,7>: Cost 2 vzipr <4,u,6,6>, RHS
     296144182U,  // <6,6,6,u>: Cost 1 vdup2 RHS
-    2566561894U, // <6,6,7,0>: Cost 3 vext1 <2,6,6,7>, LHS
-    2980496873U, // <6,6,7,1>: Cost 3 vzipr RHS, <2,0,6,1>
+    2132647936U, // <6,6,7,0>: Cost 2 ins <u,6,7,0>, lane 0
+    2120769539U, // <6,6,7,1>: Cost 2 ins <6,6,7,u>, lane 3
     1908747164U, // <6,6,7,2>: Cost 2 vzipr RHS, <4,0,6,2>
-    2980496956U, // <6,6,7,3>: Cost 3 vzipr RHS, <2,1,6,3>
-    2566565174U, // <6,6,7,4>: Cost 3 vext1 <2,6,6,7>, RHS
-    2980497201U, // <6,6,7,5>: Cost 3 vzipr RHS, <2,4,6,5>
+    2122055681U, // <6,6,7,3>: Cost 2 ins <6,u,7,3>, lane 1
+    2132680704U, // <6,6,7,4>: Cost 2 ins <u,6,7,4>, lane 0
+    2120769539U, // <6,6,7,5>: Cost 2 ins <6,6,7,u>, lane 3
     1906758456U, // <6,6,7,6>: Cost 2 vzipr RHS, <6,6,6,6>
     833015094U,  // <6,6,7,7>: Cost 1 vzipr RHS, RHS
     833015095U,  // <6,6,7,u>: Cost 1 vzipr RHS, RHS
@@ -4965,11 +4965,11 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1571209216U, // <6,7,0,0>: Cost 2 vext2 RHS, <0,0,0,0>
     497467494U,  // <6,7,0,1>: Cost 1 vext2 RHS, LHS
     1571209380U, // <6,7,0,2>: Cost 2 vext2 RHS, <0,2,0,2>
-    2644951292U, // <6,7,0,3>: Cost 3 vext2 RHS, <0,3,1,0>
+    2120916995U, // <6,7,0,3>: Cost 2 ins <6,7,0,u>, lane 3
     1571209554U, // <6,7,0,4>: Cost 2 vext2 RHS, <0,4,1,5>
     1510756450U, // <6,7,0,5>: Cost 2 vext1 <5,6,7,0>, <5,6,7,0>
-    2644951542U, // <6,7,0,6>: Cost 3 vext2 RHS, <0,6,1,7>
-    2584499194U, // <6,7,0,7>: Cost 3 vext1 <5,6,7,0>, <7,0,1,2>
+    2120916995U, // <6,7,0,6>: Cost 2 ins <6,7,0,u>, lane 3
+    2120916995U, // <6,7,0,7>: Cost 2 ins <6,7,0,u>, lane 3
     497468061U,  // <6,7,0,u>: Cost 1 vext2 RHS, LHS
     1571209974U, // <6,7,1,0>: Cost 2 vext2 RHS, <1,0,3,2>
     1571210036U, // <6,7,1,1>: Cost 2 vext2 RHS, <1,1,1,1>
@@ -4981,31 +4981,31 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2578535418U, // <6,7,1,7>: Cost 3 vext1 <4,6,7,1>, <7,0,1,2>
     1761034347U, // <6,7,1,u>: Cost 2 vuzpr <2,6,3,7>, LHS
     2834776982U, // <6,7,2,0>: Cost 3 vuzpr <2,6,3,7>, <1,2,3,0>
-    2644952582U, // <6,7,2,1>: Cost 3 vext2 RHS, <2,1,0,3>
+    2121449474U, // <6,7,2,1>: Cost 2 ins <6,7,u,1>, lane 2
     1571210856U, // <6,7,2,2>: Cost 2 vext2 RHS, <2,2,2,2>
     1571210918U, // <6,7,2,3>: Cost 2 vext2 RHS, <2,3,0,1>
     2834776986U, // <6,7,2,4>: Cost 3 vuzpr <2,6,3,7>, <1,2,3,4>
-    2633009028U, // <6,7,2,5>: Cost 3 vext2 <2,5,6,7>, <2,5,6,7>
+    2121482242U, // <6,7,2,5>: Cost 2 ins <6,7,u,5>, lane 2
     1571211194U, // <6,7,2,6>: Cost 2 vext2 RHS, <2,6,3,7>
     3114897576U, // <6,7,2,7>: Cost 3 vtrnr <4,6,0,2>, <5,7,5,7>
     1571211323U, // <6,7,2,u>: Cost 2 vext2 RHS, <2,u,0,1>
     1571211414U, // <6,7,3,0>: Cost 2 vext2 RHS, <3,0,1,2>
-    2834777766U, // <6,7,3,1>: Cost 3 vuzpr <2,6,3,7>, <2,3,0,1>
+    2121449474U, // <6,7,3,1>: Cost 2 ins <6,7,u,1>, lane 2
     2834780746U, // <6,7,3,2>: Cost 3 vuzpr <2,6,3,7>, <6,3,7,2>
     1571211676U, // <6,7,3,3>: Cost 2 vext2 RHS, <3,3,3,3>
     1571211778U, // <6,7,3,4>: Cost 2 vext2 RHS, <3,4,5,6>
-    2834777806U, // <6,7,3,5>: Cost 3 vuzpr <2,6,3,7>, <2,3,4,5>
+    2121482242U, // <6,7,3,5>: Cost 2 ins <6,7,u,5>, lane 2
     2834777789U, // <6,7,3,6>: Cost 3 vuzpr <2,6,3,7>, <2,3,2,6>
     2834777088U, // <6,7,3,7>: Cost 3 vuzpr <2,6,3,7>, <1,3,5,7>
     1571212062U, // <6,7,3,u>: Cost 2 vext2 RHS, <3,u,1,2>
     1573202834U, // <6,7,4,0>: Cost 2 vext2 RHS, <4,0,5,1>
-    2644954058U, // <6,7,4,1>: Cost 3 vext2 RHS, <4,1,2,3>
-    2644954166U, // <6,7,4,2>: Cost 3 vext2 RHS, <4,2,5,3>
-    2644954258U, // <6,7,4,3>: Cost 3 vext2 RHS, <4,3,6,5>
+    2121449474U, // <6,7,4,1>: Cost 2 ins <6,7,u,1>, lane 2
+    2121211907U, // <6,7,4,2>: Cost 2 ins <6,7,4,u>, lane 3
+    2121211907U, // <6,7,4,3>: Cost 2 ins <6,7,4,u>, lane 3
     1571212496U, // <6,7,4,4>: Cost 2 vext2 RHS, <4,4,4,4>
     497470774U,  // <6,7,4,5>: Cost 1 vext2 RHS, RHS
     1573203276U, // <6,7,4,6>: Cost 2 vext2 RHS, <4,6,0,2>
-    2646281688U, // <6,7,4,7>: Cost 3 vext2 <4,7,6,7>, <4,7,6,7>
+    2121211907U, // <6,7,4,7>: Cost 2 ins <6,7,4,u>, lane 3
     497471017U,  // <6,7,4,u>: Cost 1 vext2 RHS, RHS
     2644954696U, // <6,7,5,0>: Cost 3 vext2 RHS, <5,0,1,2>
     1573203664U, // <6,7,5,1>: Cost 2 vext2 RHS, <5,1,7,3>
@@ -5017,20 +5017,20 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1761037622U, // <6,7,5,7>: Cost 2 vuzpr <2,6,3,7>, RHS
     1761037623U, // <6,7,5,u>: Cost 2 vuzpr <2,6,3,7>, RHS
     2644955425U, // <6,7,6,0>: Cost 3 vext2 RHS, <6,0,1,2>
-    2644955561U, // <6,7,6,1>: Cost 3 vext2 RHS, <6,1,7,3>
+    2121449474U, // <6,7,6,1>: Cost 2 ins <6,7,u,1>, lane 2
     1573204474U, // <6,7,6,2>: Cost 2 vext2 RHS, <6,2,7,3>
     2644955698U, // <6,7,6,3>: Cost 3 vext2 RHS, <6,3,4,5>
     2644955789U, // <6,7,6,4>: Cost 3 vext2 RHS, <6,4,5,6>
-    2644955889U, // <6,7,6,5>: Cost 3 vext2 RHS, <6,5,7,7>
+    2121482242U, // <6,7,6,5>: Cost 2 ins <6,7,u,5>, lane 2
     1571214136U, // <6,7,6,6>: Cost 2 vext2 RHS, <6,6,6,6>
     1761036218U, // <6,7,6,7>: Cost 2 vuzpr <2,6,3,7>, <2,6,3,7>
     1573204895U, // <6,7,6,u>: Cost 2 vext2 RHS, <6,u,0,1>
     1906757730U, // <6,7,7,0>: Cost 2 vzipr RHS, <5,6,7,0>
-    2572608656U, // <6,7,7,1>: Cost 3 vext1 <3,6,7,7>, <1,5,3,7>
+    2121449474U, // <6,7,7,1>: Cost 2 ins <6,7,u,1>, lane 2
     2644956362U, // <6,7,7,2>: Cost 3 vext2 RHS, <7,2,6,3>
     1906758138U, // <6,7,7,3>: Cost 2 vzipr RHS, <6,2,7,3>
     1906757734U, // <6,7,7,4>: Cost 2 vzipr RHS, <5,6,7,4>
-    2980497696U, // <6,7,7,5>: Cost 3 vzipr RHS, <3,1,7,5>
+    2121482242U, // <6,7,7,5>: Cost 2 ins <6,7,u,5>, lane 2
     1906757574U, // <6,7,7,6>: Cost 2 vzipr RHS, <5,4,7,6>
     1571214956U, // <6,7,7,7>: Cost 2 vext2 RHS, <7,7,7,7>
     1906757738U, // <6,7,7,u>: Cost 2 vzipr RHS, <5,6,7,u>
@@ -5058,29 +5058,29 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1761042534U, // <6,u,1,3>: Cost 2 vuzpr <2,6,3,u>, LHS
     2566663478U, // <6,u,1,4>: Cost 3 vext1 <2,6,u,1>, RHS
     1571218576U, // <6,u,1,5>: Cost 2 vext2 RHS, <1,5,3,7>
-    2644960463U, // <6,u,1,6>: Cost 3 vext2 RHS, <1,6,1,7>
-    3102944809U, // <6,u,1,7>: Cost 3 vtrnr <2,6,0,1>, RHS
+    2120826882U, // <6,u,1,6>: Cost 2 ins <6,6,u,6>, lane 2
+    2120835074U, // <6,u,1,7>: Cost 2 ins <6,6,u,7>, lane 2
     1612289892U, // <6,u,1,u>: Cost 2 vext3 <0,2,4,6>, LHS
     1504870502U, // <6,u,2,0>: Cost 2 vext1 <4,6,u,2>, LHS
     1849644846U, // <6,u,2,1>: Cost 2 vzipl <6,2,7,3>, LHS
     1571219048U, // <6,u,2,2>: Cost 2 vext2 RHS, <2,2,2,2>
-    1571219110U, // <6,u,2,3>: Cost 2 vext2 RHS, <2,3,0,1>
+    1055244288U, // <6,u,2,3>: Cost 1 ins LHS, lane 0
     1504873876U, // <6,u,2,4>: Cost 2 vext1 <4,6,u,2>, <4,6,u,2>
     1849645210U, // <6,u,2,5>: Cost 2 vzipl <6,2,7,3>, RHS
     1571219386U, // <6,u,2,6>: Cost 2 vext2 RHS, <2,6,3,7>
     2041155113U, // <6,u,2,7>: Cost 2 vtrnr <4,6,0,2>, RHS
-    1571219515U, // <6,u,2,u>: Cost 2 vext2 RHS, <2,u,0,1>
+    1055244288U, // <6,u,2,u>: Cost 1 ins LHS, lane 0
     1571219606U, // <6,u,3,0>: Cost 2 vext2 RHS, <3,0,1,2>
-    2689865671U, // <6,u,3,1>: Cost 3 vext3 <0,u,2,6>, <u,3,1,3>
-    2834788947U, // <6,u,3,2>: Cost 3 vuzpr <2,6,3,u>, <6,3,u,2>
+    2121449474U, // <6,u,3,1>: Cost 2 ins <6,7,u,1>, lane 2
+    2128388096U, // <6,u,3,2>: Cost 2 ins <u,0,3,2>, lane 0
     1571219868U, // <6,u,3,3>: Cost 2 vext2 RHS, <3,3,3,3>
     1571219970U, // <6,u,3,4>: Cost 2 vext2 RHS, <3,4,5,6>
-    2689865711U, // <6,u,3,5>: Cost 3 vext3 <0,u,2,6>, <u,3,5,7>
-    2708002806U, // <6,u,3,6>: Cost 3 vext3 <3,u,5,6>, <u,3,6,5>
-    2965867848U, // <6,u,3,7>: Cost 3 vzipr <2,1,6,3>, RHS
+    2121482242U, // <6,u,3,5>: Cost 2 ins <6,7,u,5>, lane 2
+    2120826882U, // <6,u,3,6>: Cost 2 ins <6,6,u,6>, lane 2
+    2131746816U, // <6,u,3,7>: Cost 2 ins <u,5,3,7>, lane 0
     1571220254U, // <6,u,3,u>: Cost 2 vext2 RHS, <3,u,1,2>
     1571220370U, // <6,u,4,0>: Cost 2 vext2 RHS, <4,0,5,1>
-    2642308083U, // <6,u,4,1>: Cost 3 vext2 <4,1,6,u>, <4,1,6,u>
+    2121449474U, // <6,u,4,1>: Cost 2 ins <6,7,u,1>, lane 2
     1986975534U, // <6,u,4,2>: Cost 2 vtrnl <6,7,4,5>, LHS
     2047656605U, // <6,u,4,3>: Cost 2 vtrnr <5,6,7,4>, LHS
     1571220688U, // <6,u,4,4>: Cost 2 vext2 RHS, <4,4,4,4>
@@ -5091,7 +5091,7 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2566692966U, // <6,u,5,0>: Cost 3 vext1 <2,6,u,5>, LHS
     1571221200U, // <6,u,5,1>: Cost 2 vext2 RHS, <5,1,7,3>
     2566694885U, // <6,u,5,2>: Cost 3 vext1 <2,6,u,5>, <2,6,u,5>
-    2689865855U, // <6,u,5,3>: Cost 3 vext3 <0,u,2,6>, <u,5,3,7>
+    2118148098U, // <6,u,5,3>: Cost 2 ins <6,2,u,3>, lane 2
     1571221446U, // <6,u,5,4>: Cost 2 vext2 RHS, <5,4,7,6>
     1571221508U, // <6,u,5,5>: Cost 2 vext2 RHS, <5,5,5,5>
     1612290202U, // <6,u,5,6>: Cost 2 vext3 <0,2,4,6>, RHS
@@ -5104,8 +5104,8 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1504906648U, // <6,u,6,4>: Cost 2 vext1 <4,6,u,6>, <4,6,u,6>
     1852250266U, // <6,u,6,5>: Cost 2 vzipl <6,6,6,6>, RHS
     296144182U,  // <6,u,6,6>: Cost 1 vdup2 RHS
-    1571222350U, // <6,u,6,7>: Cost 2 vext2 RHS, <6,7,0,1>
-    296144182U,  // <6,u,6,u>: Cost 1 vdup2 RHS
+    1058226176U, // <6,u,6,7>: Cost 1 ins RHS, lane 0
+    1058226176U, // <6,u,6,u>: Cost 1 ins RHS, lane 0
     1492967526U, // <6,u,7,0>: Cost 2 vext1 <2,6,u,7>, LHS
     1906753609U, // <6,u,7,1>: Cost 2 vzipr RHS, <0,0,u,1>
     1492969447U, // <6,u,7,2>: Cost 2 vext1 <2,6,u,7>, <2,6,u,7>
@@ -5134,43 +5134,43 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2987152050U, // <7,0,0,7>: Cost 3 vzipr <5,6,7,0>, <6,5,0,7>
     1638318153U, // <7,0,0,u>: Cost 2 vext3 RHS, <0,0,u,1>
     1516879974U, // <7,0,1,0>: Cost 2 vext1 <6,7,0,1>, LHS
-    2693922911U, // <7,0,1,1>: Cost 3 vext3 <1,5,3,7>, <0,1,1,5>
+    2128232448U, // <7,0,1,1>: Cost 2 ins <u,0,1,1>, lane 0
     564576358U,  // <7,0,1,2>: Cost 1 vext3 RHS, LHS
-    2638996480U, // <7,0,1,3>: Cost 3 vext2 <3,5,7,0>, <1,3,5,7>
+    2122317827U, // <7,0,1,3>: Cost 2 ins <7,0,1,u>, lane 3
     1516883254U, // <7,0,1,4>: Cost 2 vext1 <6,7,0,1>, RHS
-    2649613456U, // <7,0,1,5>: Cost 3 vext2 <5,3,7,0>, <1,5,3,7>
+    2122317827U, // <7,0,1,5>: Cost 2 ins <7,0,1,u>, lane 3
     1516884814U, // <7,0,1,6>: Cost 2 vext1 <6,7,0,1>, <6,7,0,1>
-    2590626808U, // <7,0,1,7>: Cost 3 vext1 <6,7,0,1>, <7,0,1,0>
+    2122317827U, // <7,0,1,7>: Cost 2 ins <7,0,1,u>, lane 3
     564576412U,  // <7,0,1,u>: Cost 1 vext3 RHS, LHS
     1638318244U, // <7,0,2,0>: Cost 2 vext3 RHS, <0,2,0,2>
     2692743344U, // <7,0,2,1>: Cost 3 vext3 <1,3,5,7>, <0,2,1,5>
-    2712060084U, // <7,0,2,2>: Cost 3 vext3 RHS, <0,2,2,0>
-    2712060094U, // <7,0,2,3>: Cost 3 vext3 RHS, <0,2,3,1>
+    2128314368U, // <7,0,2,2>: Cost 2 ins <u,0,2,2>, lane 0
+    2128322560U, // <7,0,2,3>: Cost 2 ins <u,0,2,3>, lane 0
     1638318284U, // <7,0,2,4>: Cost 2 vext3 RHS, <0,2,4,6>
     2712060118U, // <7,0,2,5>: Cost 3 vext3 RHS, <0,2,5,7>
     2712060126U, // <7,0,2,6>: Cost 3 vext3 RHS, <0,2,6,6>
-    2686255336U, // <7,0,2,7>: Cost 3 vext3 <0,2,7,7>, <0,2,7,7>
+    3201433601U, // <7,0,2,7>: Cost 3 ins <7,u,2,7>, lane 1
     1638318316U, // <7,0,2,u>: Cost 2 vext3 RHS, <0,2,u,2>
     2983854080U, // <7,0,3,0>: Cost 3 vzipr <5,1,7,3>, <0,0,0,0>
     2712060156U, // <7,0,3,1>: Cost 3 vext3 RHS, <0,3,1,0>
-    2712060165U, // <7,0,3,2>: Cost 3 vext3 RHS, <0,3,2,0>
+    2128388096U, // <7,0,3,2>: Cost 2 ins <u,0,3,2>, lane 0
     2651605404U, // <7,0,3,3>: Cost 3 vext2 <5,6,7,0>, <3,3,3,3>
     2651605506U, // <7,0,3,4>: Cost 3 vext2 <5,6,7,0>, <3,4,5,6>
     2638998111U, // <7,0,3,5>: Cost 3 vext2 <3,5,7,0>, <3,5,7,0>
-    2639661744U, // <7,0,3,6>: Cost 3 vext2 <3,6,7,0>, <3,6,7,0>
-    3903153152U, // <7,0,3,7>: Cost 4 vuzpr <1,7,3,0>, <1,3,5,7>
-    2640989010U, // <7,0,3,u>: Cost 3 vext2 <3,u,7,0>, <3,u,7,0>
+    3196559362U, // <7,0,3,6>: Cost 3 ins <7,0,u,6>, lane 2
+    3201507329U, // <7,0,3,7>: Cost 3 ins <7,u,3,7>, lane 1
+    2128388096U, // <7,0,3,u>: Cost 2 ins <u,0,3,2>, lane 0
     2712060230U, // <7,0,4,0>: Cost 3 vext3 RHS, <0,4,0,2>
     1638318418U, // <7,0,4,1>: Cost 2 vext3 RHS, <0,4,1,5>
     1638318428U, // <7,0,4,2>: Cost 2 vext3 RHS, <0,4,2,6>
-    3646474950U, // <7,0,4,3>: Cost 4 vext1 <3,7,0,4>, <3,7,0,4>
+    3201548289U, // <7,0,4,3>: Cost 3 ins <7,u,4,3>, lane 1
     2712060269U, // <7,0,4,4>: Cost 3 vext3 RHS, <0,4,4,5>
     1577864502U, // <7,0,4,5>: Cost 2 vext2 <5,6,7,0>, RHS
     2651606348U, // <7,0,4,6>: Cost 3 vext2 <5,6,7,0>, <4,6,0,2>
-    2930557508U, // <7,0,4,7>: Cost 3 vzipl <7,4,5,6>, <0,7,1,4>
+    3201581057U, // <7,0,4,7>: Cost 3 ins <7,u,4,7>, lane 1
     1638318481U, // <7,0,4,u>: Cost 2 vext3 RHS, <0,4,u,5>
     2647625340U, // <7,0,5,0>: Cost 3 vext2 <5,0,7,0>, <5,0,7,0>
-    2651606736U, // <7,0,5,1>: Cost 3 vext2 <5,6,7,0>, <5,1,7,3>
+    2128527360U, // <7,0,5,1>: Cost 2 ins <u,0,5,1>, lane 0
     1991032934U, // <7,0,5,2>: Cost 2 vtrnl <7,4,5,6>, LHS
     2649616239U, // <7,0,5,3>: Cost 3 vext2 <5,3,7,0>, <5,3,7,0>
     2651606982U, // <7,0,5,4>: Cost 3 vext2 <5,6,7,0>, <5,4,7,6>
@@ -5180,30 +5180,30 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1579192580U, // <7,0,5,u>: Cost 2 vext2 <5,u,7,0>, <5,u,7,0>
     2985869312U, // <7,0,6,0>: Cost 3 vzipr <5,4,7,6>, <0,0,0,0>
     2712060406U, // <7,0,6,1>: Cost 3 vext3 RHS, <0,6,1,7>
-    2688541183U, // <7,0,6,2>: Cost 3 vext3 <0,6,2,7>, <0,6,2,7>
+    2128609280U, // <7,0,6,2>: Cost 2 ins <u,0,6,2>, lane 0
     2655588936U, // <7,0,6,3>: Cost 3 vext2 <6,3,7,0>, <6,3,7,0>
-    3762430481U, // <7,0,6,4>: Cost 4 vext3 <0,6,4,7>, <0,6,4,7>
+    3202367488U, // <7,0,6,4>: Cost 3 ins <u,0,6,4>, lane 0
     2651607730U, // <7,0,6,5>: Cost 3 vext2 <5,6,7,0>, <6,5,0,7>
     2651607864U, // <7,0,6,6>: Cost 3 vext2 <5,6,7,0>, <6,6,6,6>
-    2651607886U, // <7,0,6,7>: Cost 3 vext2 <5,6,7,0>, <6,7,0,1>
-    2688983605U, // <7,0,6,u>: Cost 3 vext3 <0,6,u,7>, <0,6,u,7>
+    2128650240U, // <7,0,6,7>: Cost 2 ins <u,0,6,7>, lane 0
+    2128609280U, // <7,0,6,u>: Cost 2 ins <u,0,6,2>, lane 0
     2847477192U, // <7,0,7,0>: Cost 3 vuzpr <4,7,5,0>, <4,7,5,0>
     1858961510U, // <7,0,7,1>: Cost 2 vzipl <7,7,7,7>, LHS
     1993179238U, // <7,0,7,2>: Cost 2 vtrnl <7,7,7,7>, LHS
-    3712742678U, // <7,0,7,3>: Cost 4 vext2 <3,5,7,0>, <7,3,5,7>
+    3201769473U, // <7,0,7,3>: Cost 3 ins <7,u,7,3>, lane 1
     2651608422U, // <7,0,7,4>: Cost 3 vext2 <5,6,7,0>, <7,4,5,6>
     2651608513U, // <7,0,7,5>: Cost 3 vext2 <5,6,7,0>, <7,5,6,7>
     2663552532U, // <7,0,7,6>: Cost 3 vext2 <7,6,7,0>, <7,6,7,0>
-    2651608684U, // <7,0,7,7>: Cost 3 vext2 <5,6,7,0>, <7,7,7,7>
+    2128060417U, // <7,0,7,7>: Cost 2 ins <7,u,7,7>, lane 1
     1858962077U, // <7,0,7,u>: Cost 2 vzipl <7,7,7,7>, LHS
     1638318730U, // <7,0,u,0>: Cost 2 vext3 RHS, <0,u,0,2>
     1638318738U, // <7,0,u,1>: Cost 2 vext3 RHS, <0,u,1,1>
     564576925U,  // <7,0,u,2>: Cost 1 vext3 RHS, LHS
-    2572765898U, // <7,0,u,3>: Cost 3 vext1 <3,7,0,u>, <3,7,0,u>
+    2122317827U, // <7,0,u,3>: Cost 2 ins <7,0,1,u>, lane 3
     1638318770U, // <7,0,u,4>: Cost 2 vext3 RHS, <0,u,4,6>
     1577867418U, // <7,0,u,5>: Cost 2 vext2 <5,6,7,0>, RHS
     1516942165U, // <7,0,u,6>: Cost 2 vext1 <6,7,0,u>, <6,7,0,u>
-    2847477289U, // <7,0,u,7>: Cost 3 vuzpr <4,7,5,0>, RHS
+    2122317827U, // <7,0,u,7>: Cost 2 ins <7,0,1,u>, lane 3
     564576979U,  // <7,0,u,u>: Cost 1 vext3 RHS, LHS
     2712060634U, // <7,1,0,0>: Cost 3 vext3 RHS, <1,0,0,1>
     2639003750U, // <7,1,0,1>: Cost 3 vext2 <3,5,7,1>, LHS
@@ -5212,26 +5212,26 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2859062268U, // <7,1,0,4>: Cost 3 vuzpr <6,7,0,1>, <7,0,1,4>
     2712060679U, // <7,1,0,5>: Cost 3 vext3 RHS, <1,0,5,1>
     2859061568U, // <7,1,0,6>: Cost 3 vuzpr <6,7,0,1>, <6,0,4,6>
-    2554860538U, // <7,1,0,7>: Cost 3 vext1 <0,7,1,0>, <7,0,1,2>
+    3201286145U, // <7,1,0,7>: Cost 3 ins <7,u,0,7>, lane 1
     1638318883U, // <7,1,0,u>: Cost 2 vext3 RHS, <1,0,u,2>
     2712060714U, // <7,1,1,0>: Cost 3 vext3 RHS, <1,1,0,0>
     1638318900U, // <7,1,1,1>: Cost 2 vext3 RHS, <1,1,1,1>
-    2712060734U, // <7,1,1,2>: Cost 3 vext3 RHS, <1,1,2,2>
+    2127577089U, // <7,1,1,2>: Cost 2 ins <7,u,1,2>, lane 1
     1638318920U, // <7,1,1,3>: Cost 2 vext3 RHS, <1,1,3,3>
     2712060755U, // <7,1,1,4>: Cost 3 vext3 RHS, <1,1,4,5>
     2691416926U, // <7,1,1,5>: Cost 3 vext3 <1,1,5,7>, <1,1,5,7>
     2590700375U, // <7,1,1,6>: Cost 3 vext1 <6,7,1,1>, <6,7,1,1>
     2859057294U, // <7,1,1,7>: Cost 3 vuzpr <6,7,0,1>, <0,1,6,7>
     1638318965U, // <7,1,1,u>: Cost 2 vext3 RHS, <1,1,u,3>
-    2712060796U, // <7,1,2,0>: Cost 3 vext3 RHS, <1,2,0,1>
-    2712060807U, // <7,1,2,1>: Cost 3 vext3 RHS, <1,2,1,3>
-    2712060816U, // <7,1,2,2>: Cost 3 vext3 RHS, <1,2,2,3>
-    1638318998U, // <7,1,2,3>: Cost 2 vext3 RHS, <1,2,3,0>
-    2712060836U, // <7,1,2,4>: Cost 3 vext3 RHS, <1,2,4,5>
-    2712060843U, // <7,1,2,5>: Cost 3 vext3 RHS, <1,2,5,3>
-    2859057356U, // <7,1,2,6>: Cost 3 vuzpr <6,7,0,1>, <0,2,4,6>
-    2735948730U, // <7,1,2,7>: Cost 3 vext3 RHS, <1,2,7,0>
-    1638319043U, // <7,1,2,u>: Cost 2 vext3 RHS, <1,2,u,0>
+    2128961536U, // <7,1,2,0>: Cost 2 ins <u,1,2,0>, lane 0
+    2128969728U, // <7,1,2,1>: Cost 2 ins <u,1,2,1>, lane 0
+    2128977920U, // <7,1,2,2>: Cost 2 ins <u,1,2,2>, lane 0
+    1055244288U, // <7,1,2,3>: Cost 1 ins LHS, lane 0
+    2128994304U, // <7,1,2,4>: Cost 2 ins <u,1,2,4>, lane 0
+    2129002496U, // <7,1,2,5>: Cost 2 ins <u,1,2,5>, lane 0
+    2129010688U, // <7,1,2,6>: Cost 2 ins <u,1,2,6>, lane 0
+    2129018880U, // <7,1,2,7>: Cost 2 ins <u,1,2,7>, lane 0
+    1055244288U, // <7,1,2,u>: Cost 1 ins LHS, lane 0
     1510998118U, // <7,1,3,0>: Cost 2 vext1 <5,7,1,3>, LHS
     1638319064U, // <7,1,3,1>: Cost 2 vext3 RHS, <1,3,1,3>
     2712060894U, // <7,1,3,2>: Cost 3 vext3 RHS, <1,3,2,0>
@@ -5244,7 +5244,7 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2712060962U, // <7,1,4,0>: Cost 3 vext3 RHS, <1,4,0,5>
     2712060971U, // <7,1,4,1>: Cost 3 vext3 RHS, <1,4,1,5>
     2712060980U, // <7,1,4,2>: Cost 3 vext3 RHS, <1,4,2,5>
-    2712060989U, // <7,1,4,3>: Cost 3 vext3 RHS, <1,4,3,5>
+    2129133568U, // <7,1,4,3>: Cost 2 ins <u,1,4,3>, lane 0
     2859060432U, // <7,1,4,4>: Cost 3 vuzpr <6,7,0,1>, <4,4,4,4>
     2639007030U, // <7,1,4,5>: Cost 3 vext2 <3,5,7,1>, RHS
     1719618870U, // <7,1,4,6>: Cost 2 vuzpl <7,0,1,2>, RHS
@@ -5252,43 +5252,43 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1719618888U, // <7,1,4,u>: Cost 2 vuzpl <7,0,1,2>, RHS
     2572812390U, // <7,1,5,0>: Cost 3 vext1 <3,7,1,5>, LHS
     2693776510U, // <7,1,5,1>: Cost 3 vext3 <1,5,1,7>, <1,5,1,7>
-    3767592071U, // <7,1,5,2>: Cost 4 vext3 <1,5,2,7>, <1,5,2,7>
+    3202940928U, // <7,1,5,2>: Cost 3 ins <u,1,5,2>, lane 0
     1620182160U, // <7,1,5,3>: Cost 2 vext3 <1,5,3,7>, <1,5,3,7>
     2572815670U, // <7,1,5,4>: Cost 3 vext1 <3,7,1,5>, RHS
     2985861458U, // <7,1,5,5>: Cost 3 vzipr <5,4,7,5>, <0,4,1,5>
-    2651615331U, // <7,1,5,6>: Cost 3 vext2 <5,6,7,1>, <5,6,7,1>
+    2127904769U, // <7,1,5,6>: Cost 2 ins <7,u,5,6>, lane 1
     1785318710U, // <7,1,5,7>: Cost 2 vuzpr <6,7,0,1>, RHS
     1620550845U, // <7,1,5,u>: Cost 2 vext3 <1,5,u,7>, <1,5,u,7>
     2653606230U, // <7,1,6,0>: Cost 3 vext2 <6,0,7,1>, <6,0,7,1>
     2694440143U, // <7,1,6,1>: Cost 3 vext3 <1,6,1,7>, <1,6,1,7>
     2712061144U, // <7,1,6,2>: Cost 3 vext3 RHS, <1,6,2,7>
-    2694587617U, // <7,1,6,3>: Cost 3 vext3 <1,6,3,7>, <1,6,3,7>
+    2129281024U, // <7,1,6,3>: Cost 2 ins <u,1,6,3>, lane 0
     2859061350U, // <7,1,6,4>: Cost 3 vuzpr <6,7,0,1>, <5,6,7,4>
     2694735091U, // <7,1,6,5>: Cost 3 vext3 <1,6,5,7>, <1,6,5,7>
     2859060596U, // <7,1,6,6>: Cost 3 vuzpr <6,7,0,1>, <4,6,4,6>
-    2652279630U, // <7,1,6,7>: Cost 3 vext2 <5,7,7,1>, <6,7,0,1>
-    2694956302U, // <7,1,6,u>: Cost 3 vext3 <1,6,u,7>, <1,6,u,7>
+    2129313792U, // <7,1,6,7>: Cost 2 ins <u,1,6,7>, lane 0
+    2129281024U, // <7,1,6,u>: Cost 2 ins <u,1,6,3>, lane 0
     2645644282U, // <7,1,7,0>: Cost 3 vext2 <4,6,7,1>, <7,0,1,2>
     1785320270U, // <7,1,7,1>: Cost 2 vuzpr <6,7,0,1>, <6,7,0,1>
     2986543254U, // <7,1,7,2>: Cost 3 vzipr <5,5,7,7>, <3,0,1,2>
     2048196710U, // <7,1,7,3>: Cost 2 vtrnr <5,7,5,7>, LHS
     2793362538U, // <7,1,7,4>: Cost 3 vuzpl <7,0,1,2>, <7,1,4,6>
     2986541394U, // <7,1,7,5>: Cost 3 vzipr <5,5,7,7>, <0,4,1,5>
-    4060283057U, // <7,1,7,6>: Cost 4 vzipr <5,5,7,7>, <0,2,1,6>
-    2859061416U, // <7,1,7,7>: Cost 3 vuzpr <6,7,0,1>, <5,7,5,7>
+    3201794049U, // <7,1,7,6>: Cost 3 ins <7,u,7,6>, lane 1
+    2128060417U, // <7,1,7,7>: Cost 2 ins <7,u,7,7>, lane 1
     2048196715U, // <7,1,7,u>: Cost 2 vtrnr <5,7,5,7>, LHS
     1511039078U, // <7,1,u,0>: Cost 2 vext1 <5,7,1,u>, LHS
     1638319469U, // <7,1,u,1>: Cost 2 vext3 RHS, <1,u,1,3>
     1719621422U, // <7,1,u,2>: Cost 2 vuzpl <7,0,1,2>, LHS
-    1622173059U, // <7,1,u,3>: Cost 2 vext3 <1,u,3,7>, <1,u,3,7>
+    1055244288U, // <7,1,u,3>: Cost 1 ins LHS, lane 0
     1511042358U, // <7,1,u,4>: Cost 2 vext1 <5,7,1,u>, RHS
     1622320533U, // <7,1,u,5>: Cost 2 vext3 <1,u,5,7>, <1,u,5,7>
     1719621786U, // <7,1,u,6>: Cost 2 vuzpl <7,0,1,2>, RHS
     1785318953U, // <7,1,u,7>: Cost 2 vuzpr <6,7,0,1>, RHS
-    1622541744U, // <7,1,u,u>: Cost 2 vext3 <1,u,u,7>, <1,u,u,7>
+    1055244288U, // <7,1,u,u>: Cost 1 ins LHS, lane 0
     2712061364U, // <7,2,0,0>: Cost 3 vext3 RHS, <2,0,0,2>
     2712061373U, // <7,2,0,1>: Cost 3 vext3 RHS, <2,0,1,2>
-    2712061380U, // <7,2,0,2>: Cost 3 vext3 RHS, <2,0,2,0>
+    2129494016U, // <7,2,0,2>: Cost 2 ins <u,2,0,2>, lane 0
     1913405542U, // <7,2,0,3>: Cost 2 vzipr <5,6,7,0>, LHS
     2712061400U, // <7,2,0,4>: Cost 3 vext3 RHS, <2,0,4,2>
     2696725990U, // <7,2,0,5>: Cost 3 vext3 <2,0,5,7>, <2,0,5,7>
@@ -5296,14 +5296,14 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2927577066U, // <7,2,0,7>: Cost 3 vzipl <7,0,1,2>, <2,7,0,1>
     1913405547U, // <7,2,0,u>: Cost 2 vzipr <5,6,7,0>, LHS
     2712061446U, // <7,2,1,0>: Cost 3 vext3 RHS, <2,1,0,3>
-    3785803276U, // <7,2,1,1>: Cost 4 vext3 RHS, <2,1,1,0>
-    2712061464U, // <7,2,1,2>: Cost 3 vext3 RHS, <2,1,2,3>
+    3203301376U, // <7,2,1,1>: Cost 3 ins <u,2,1,1>, lane 0
+    2127577089U, // <7,2,1,2>: Cost 2 ins <7,u,1,2>, lane 1
     2974548070U, // <7,2,1,3>: Cost 3 vzipr <3,5,7,1>, LHS
     2712061482U, // <7,2,1,4>: Cost 3 vext3 RHS, <2,1,4,3>
-    3766486576U, // <7,2,1,5>: Cost 4 vext3 <1,3,5,7>, <2,1,5,0>
+    3203334144U, // <7,2,1,5>: Cost 3 ins <u,2,1,5>, lane 0
     2712061500U, // <7,2,1,6>: Cost 3 vext3 RHS, <2,1,6,3>
     2602718850U, // <7,2,1,7>: Cost 3 vext1 <u,7,2,1>, <7,u,1,2>
-    2974548075U, // <7,2,1,u>: Cost 3 vzipr <3,5,7,1>, LHS
+    2127577089U, // <7,2,1,u>: Cost 2 ins <7,u,1,2>, lane 1
     2712061524U, // <7,2,2,0>: Cost 3 vext3 RHS, <2,2,0,0>
     2712061536U, // <7,2,2,1>: Cost 3 vext3 RHS, <2,2,1,3>
     1638319720U, // <7,2,2,2>: Cost 2 vext3 RHS, <2,2,2,2>
@@ -5311,7 +5311,7 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2712061564U, // <7,2,2,4>: Cost 3 vext3 RHS, <2,2,4,4>
     2698053256U, // <7,2,2,5>: Cost 3 vext3 <2,2,5,7>, <2,2,5,7>
     2712061581U, // <7,2,2,6>: Cost 3 vext3 RHS, <2,2,6,3>
-    4039008767U, // <7,2,2,7>: Cost 4 vzipr <2,0,7,2>, <0,6,2,7>
+    3201433601U, // <7,2,2,7>: Cost 3 ins <7,u,2,7>, lane 1
     1638319775U, // <7,2,2,u>: Cost 2 vext3 RHS, <2,2,u,3>
     1638319782U, // <7,2,3,0>: Cost 2 vext3 RHS, <2,3,0,1>
     2693924531U, // <7,2,3,1>: Cost 3 vext3 <1,5,3,7>, <2,3,1,5>
@@ -5328,18 +5328,18 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1913438310U, // <7,2,4,3>: Cost 2 vzipr <5,6,7,4>, LHS
     2712061728U, // <7,2,4,4>: Cost 3 vext3 RHS, <2,4,4,6>
     2699380522U, // <7,2,4,5>: Cost 3 vext3 <2,4,5,7>, <2,4,5,7>
-    2712061740U, // <7,2,4,6>: Cost 3 vext3 RHS, <2,4,6,0>
-    3785803574U, // <7,2,4,7>: Cost 4 vext3 RHS, <2,4,7,1>
+    2129821696U, // <7,2,4,6>: Cost 2 ins <u,2,4,6>, lane 0
+    3201581057U, // <7,2,4,7>: Cost 3 ins <7,u,4,7>, lane 1
     1913438315U, // <7,2,4,u>: Cost 2 vzipr <5,6,7,4>, LHS
     2699675470U, // <7,2,5,0>: Cost 3 vext3 <2,5,0,7>, <2,5,0,7>
-    3766486867U, // <7,2,5,1>: Cost 4 vext3 <1,3,5,7>, <2,5,1,3>
+    3203596288U, // <7,2,5,1>: Cost 3 ins <u,2,5,1>, lane 0
     2699822944U, // <7,2,5,2>: Cost 3 vext3 <2,5,2,7>, <2,5,2,7>
     2692745065U, // <7,2,5,3>: Cost 3 vext3 <1,3,5,7>, <2,5,3,7>
     2699970418U, // <7,2,5,4>: Cost 3 vext3 <2,5,4,7>, <2,5,4,7>
-    3766486907U, // <7,2,5,5>: Cost 4 vext3 <1,3,5,7>, <2,5,5,7>
-    2700117892U, // <7,2,5,6>: Cost 3 vext3 <2,5,6,7>, <2,5,6,7>
+    3203629056U, // <7,2,5,5>: Cost 3 ins <u,2,5,5>, lane 0
+    2127904769U, // <7,2,5,6>: Cost 2 ins <7,u,5,6>, lane 1
     2853096758U, // <7,2,5,7>: Cost 3 vuzpr <5,7,0,2>, RHS
-    2692745110U, // <7,2,5,u>: Cost 3 vext3 <1,3,5,7>, <2,5,u,7>
+    2127904769U, // <7,2,5,u>: Cost 2 ins <7,u,5,6>, lane 1
     2572894310U, // <7,2,6,0>: Cost 3 vext1 <3,7,2,6>, LHS
     2712061860U, // <7,2,6,1>: Cost 3 vext3 RHS, <2,6,1,3>
     2700486577U, // <7,2,6,2>: Cost 3 vext3 <2,6,2,7>, <2,6,2,7>
@@ -5347,25 +5347,25 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2572897590U, // <7,2,6,4>: Cost 3 vext1 <3,7,2,6>, RHS
     2700707788U, // <7,2,6,5>: Cost 3 vext3 <2,6,5,7>, <2,6,5,7>
     2700781525U, // <7,2,6,6>: Cost 3 vext3 <2,6,6,7>, <2,6,6,7>
-    2797457914U, // <7,2,6,7>: Cost 3 vuzpl <7,6,2,7>, <6,2,7,3>
+    2129977344U, // <7,2,6,7>: Cost 2 ins <u,2,6,7>, lane 0
     1627187175U, // <7,2,6,u>: Cost 2 vext3 <2,6,u,7>, <2,6,u,7>
     3121939350U, // <7,2,7,0>: Cost 3 vtrnr <5,7,5,7>, <1,2,3,0>
-    3780200434U, // <7,2,7,1>: Cost 4 vext3 <3,6,2,7>, <2,7,1,0>
-    2986541076U, // <7,2,7,2>: Cost 3 vzipr <5,5,7,7>, <0,0,2,2>
+    3203743744U, // <7,2,7,1>: Cost 3 ins <u,2,7,1>, lane 0
+    1720366165U, // <7,2,7,2>: Cost 2 vuzpl <7,1,2,3>, <7,1,2,3>
     1912799334U, // <7,2,7,3>: Cost 2 vzipr <5,5,7,7>, LHS
     3121939354U, // <7,2,7,4>: Cost 3 vtrnr <5,7,5,7>, <1,2,3,4>
-    3305351197U, // <7,2,7,5>: Cost 4 vrev <2,7,5,7>
+    3203776512U, // <7,2,7,5>: Cost 3 ins <u,2,7,5>, lane 0
     2986541404U, // <7,2,7,6>: Cost 3 vzipr <5,5,7,7>, <0,4,2,6>
-    2865632876U, // <7,2,7,7>: Cost 3 vuzpr <7,7,u,2>, <7,7,7,7>
+    2128060417U, // <7,2,7,7>: Cost 2 ins <7,u,7,7>, lane 1
     1912799339U, // <7,2,7,u>: Cost 2 vzipr <5,5,7,7>, LHS
     1638320187U, // <7,2,u,0>: Cost 2 vext3 RHS, <2,u,0,1>
     2693924936U, // <7,2,u,1>: Cost 3 vext3 <1,5,3,7>, <2,u,1,5>
-    1638319720U, // <7,2,u,2>: Cost 2 vext3 RHS, <2,2,2,2>
+    2129494016U, // <7,2,u,2>: Cost 2 ins <u,2,0,2>, lane 0
     1628145756U, // <7,2,u,3>: Cost 2 vext3 <2,u,3,7>, <2,u,3,7>
     1638320227U, // <7,2,u,4>: Cost 2 vext3 RHS, <2,u,4,5>
     2702035054U, // <7,2,u,5>: Cost 3 vext3 <2,u,5,7>, <2,u,5,7>
-    2702108791U, // <7,2,u,6>: Cost 3 vext3 <2,u,6,7>, <2,u,6,7>
-    2853097001U, // <7,2,u,7>: Cost 3 vuzpr <5,7,0,2>, RHS
+    2129821696U, // <7,2,u,6>: Cost 2 ins <u,2,4,6>, lane 0
+    2129977344U, // <7,2,u,7>: Cost 2 ins <u,2,6,7>, lane 0
     1628514441U, // <7,2,u,u>: Cost 2 vext3 <2,u,u,7>, <2,u,u,7>
     2712062091U, // <7,3,0,0>: Cost 3 vext3 RHS, <3,0,0,0>
     1638320278U, // <7,3,0,1>: Cost 2 vext3 RHS, <3,0,1,2>
@@ -5378,7 +5378,7 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1638320341U, // <7,3,0,u>: Cost 2 vext3 RHS, <3,0,u,2>
     2237164227U, // <7,3,1,0>: Cost 3 vrev <3,7,0,1>
     2712062182U, // <7,3,1,1>: Cost 3 vext3 RHS, <3,1,1,1>
-    2712062193U, // <7,3,1,2>: Cost 3 vext3 RHS, <3,1,2,3>
+    2127577089U, // <7,3,1,2>: Cost 2 ins <7,u,1,2>, lane 1
     1779433574U, // <7,3,1,3>: Cost 2 vuzpr <5,7,1,3>, LHS
     2712062214U, // <7,3,1,4>: Cost 3 vext3 RHS, <3,1,4,6>
     2693925132U, // <7,3,1,5>: Cost 3 vext3 <1,5,3,7>, <3,1,5,3>
@@ -5388,12 +5388,12 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2712062254U, // <7,3,2,0>: Cost 3 vext3 RHS, <3,2,0,1>
     2712062262U, // <7,3,2,1>: Cost 3 vext3 RHS, <3,2,1,0>
     2712062273U, // <7,3,2,2>: Cost 3 vext3 RHS, <3,2,2,2>
-    2712062280U, // <7,3,2,3>: Cost 3 vext3 RHS, <3,2,3,0>
+    2130313216U, // <7,3,2,3>: Cost 2 ins <u,3,2,3>, lane 0
     2712062292U, // <7,3,2,4>: Cost 3 vext3 RHS, <3,2,4,3>
     2712062302U, // <7,3,2,5>: Cost 3 vext3 RHS, <3,2,5,4>
     2700560742U, // <7,3,2,6>: Cost 3 vext3 <2,6,3,7>, <3,2,6,3>
     2712062319U, // <7,3,2,7>: Cost 3 vext3 RHS, <3,2,7,3>
-    2712062325U, // <7,3,2,u>: Cost 3 vext3 RHS, <3,2,u,0>
+    2130313216U, // <7,3,2,u>: Cost 2 ins <u,3,2,3>, lane 0
     2712062334U, // <7,3,3,0>: Cost 3 vext3 RHS, <3,3,0,0>
     2636368158U, // <7,3,3,1>: Cost 3 vext2 <3,1,7,3>, <3,1,7,3>
     2637031791U, // <7,3,3,2>: Cost 3 vext2 <3,2,7,3>, <3,2,7,3>
@@ -5418,7 +5418,7 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2705869378U, // <7,3,5,3>: Cost 3 vext3 <3,5,3,7>, <3,5,3,7>
     2237491947U, // <7,3,5,4>: Cost 3 vrev <3,7,4,5>
     2706016852U, // <7,3,5,5>: Cost 3 vext3 <3,5,5,7>, <3,5,5,7>
-    2648313954U, // <7,3,5,6>: Cost 3 vext2 <5,1,7,3>, <5,6,7,0>
+    2127904769U, // <7,3,5,6>: Cost 2 ins <7,u,5,6>, lane 1
     1779436854U, // <7,3,5,7>: Cost 2 vuzpr <5,7,1,3>, RHS
     1779436855U, // <7,3,5,u>: Cost 2 vuzpr <5,7,1,3>, RHS
     2706311800U, // <7,3,6,0>: Cost 3 vext3 <3,6,0,7>, <3,6,0,7>
@@ -5426,9 +5426,9 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1581208058U, // <7,3,6,2>: Cost 2 vext2 <6,2,7,3>, <6,2,7,3>
     2706533011U, // <7,3,6,3>: Cost 3 vext3 <3,6,3,7>, <3,6,3,7>
     2706606748U, // <7,3,6,4>: Cost 3 vext3 <3,6,4,7>, <3,6,4,7>
-    3780422309U, // <7,3,6,5>: Cost 4 vext3 <3,6,5,7>, <3,6,5,7>
+    3204366336U, // <7,3,6,5>: Cost 3 ins <u,3,6,5>, lane 0
     2712062637U, // <7,3,6,6>: Cost 3 vext3 RHS, <3,6,6,6>
-    2706827959U, // <7,3,6,7>: Cost 3 vext3 <3,6,7,7>, <3,6,7,7>
+    2130640896U, // <7,3,6,7>: Cost 2 ins <u,3,6,7>, lane 0
     1585189856U, // <7,3,6,u>: Cost 2 vext2 <6,u,7,3>, <6,u,7,3>
     2693925571U, // <7,3,7,0>: Cost 3 vext3 <1,5,3,7>, <3,7,0,1>
     2693925584U, // <7,3,7,1>: Cost 3 vext3 <1,5,3,7>, <3,7,1,5>
@@ -5437,7 +5437,7 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2693925611U, // <7,3,7,4>: Cost 3 vext3 <1,5,3,7>, <3,7,4,5>
     2237582070U, // <7,3,7,5>: Cost 3 vrev <3,7,5,7>
     2654950894U, // <7,3,7,6>: Cost 3 vext2 <6,2,7,3>, <7,6,2,7>
-    2975261840U, // <7,3,7,7>: Cost 3 vzipr <3,6,7,7>, <1,5,3,7>
+    2128060417U, // <7,3,7,7>: Cost 2 ins <7,u,7,7>, lane 1
     1779437696U, // <7,3,7,u>: Cost 2 vuzpr <5,7,1,3>, <5,7,1,3>
     2237221578U, // <7,3,u,0>: Cost 3 vrev <3,7,0,u>
     1638320926U, // <7,3,u,1>: Cost 2 vext3 RHS, <3,u,1,2>
@@ -5445,13 +5445,13 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1779434141U, // <7,3,u,3>: Cost 2 vuzpr <5,7,1,3>, LHS
     2237516526U, // <7,3,u,4>: Cost 3 vrev <3,7,4,u>
     1638320966U, // <7,3,u,5>: Cost 2 vext3 RHS, <3,u,5,6>
-    2712062796U, // <7,3,u,6>: Cost 3 vext3 RHS, <3,u,6,3>
+    2127904769U, // <7,3,u,6>: Cost 2 ins <7,u,5,6>, lane 1
     1779437097U, // <7,3,u,7>: Cost 2 vuzpr <5,7,1,3>, RHS
     1638320989U, // <7,3,u,u>: Cost 2 vext3 RHS, <3,u,u,2>
     2714053478U, // <7,4,0,0>: Cost 3 vext3 RHS, <4,0,0,2>
     1577893990U, // <7,4,0,1>: Cost 2 vext2 <5,6,7,4>, LHS
     2651635876U, // <7,4,0,2>: Cost 3 vext2 <5,6,7,4>, <0,2,0,2>
-    3785804672U, // <7,4,0,3>: Cost 4 vext3 RHS, <4,0,3,1>
+    3201253377U, // <7,4,0,3>: Cost 3 ins <7,u,0,3>, lane 1
     2714053512U, // <7,4,0,4>: Cost 3 vext3 RHS, <4,0,4,0>
     1638468498U, // <7,4,0,5>: Cost 2 vext3 RHS, <4,0,5,1>
     1638468508U, // <7,4,0,6>: Cost 2 vext3 RHS, <4,0,6,2>
@@ -5459,34 +5459,34 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1640311726U, // <7,4,0,u>: Cost 2 vext3 RHS, <4,0,u,2>
     2651636470U, // <7,4,1,0>: Cost 3 vext2 <5,6,7,4>, <1,0,3,2>
     2651636532U, // <7,4,1,1>: Cost 3 vext2 <5,6,7,4>, <1,1,1,1>
-    2712062922U, // <7,4,1,2>: Cost 3 vext3 RHS, <4,1,2,3>
+    2127577089U, // <7,4,1,2>: Cost 2 ins <7,u,1,2>, lane 1
     2639029248U, // <7,4,1,3>: Cost 3 vext2 <3,5,7,4>, <1,3,5,7>
     3127495888U, // <7,4,1,4>: Cost 3 vtrnr <6,7,0,1>, <4,4,4,4>
-    2712062946U, // <7,4,1,5>: Cost 3 vext3 RHS, <4,1,5,0>
+    2130919424U, // <7,4,1,5>: Cost 2 ins <u,4,1,5>, lane 0
     1988054326U, // <7,4,1,6>: Cost 2 vtrnl <7,0,1,2>, RHS
     3061796234U, // <7,4,1,7>: Cost 3 vtrnl <7,0,1,2>, <4,6,7,1>
     1988054344U, // <7,4,1,u>: Cost 2 vtrnl <7,0,1,2>, RHS
-    3785804807U, // <7,4,2,0>: Cost 4 vext3 RHS, <4,2,0,1>
-    3785804818U, // <7,4,2,1>: Cost 4 vext3 RHS, <4,2,1,3>
+    3204694016U, // <7,4,2,0>: Cost 3 ins <u,4,2,0>, lane 0
+    3199172610U, // <7,4,2,1>: Cost 3 ins <7,4,u,1>, lane 2
     2651637352U, // <7,4,2,2>: Cost 3 vext2 <5,6,7,4>, <2,2,2,2>
-    2651637414U, // <7,4,2,3>: Cost 3 vext2 <5,6,7,4>, <2,3,0,1>
+    2130976768U, // <7,4,2,3>: Cost 2 ins <u,4,2,3>, lane 0
     2853258138U, // <7,4,2,4>: Cost 3 vuzpr <5,7,2,4>, <1,2,3,4>
     2712063030U, // <7,4,2,5>: Cost 3 vext3 RHS, <4,2,5,3>
-    2712063036U, // <7,4,2,6>: Cost 3 vext3 RHS, <4,2,6,0>
-    3773123658U, // <7,4,2,7>: Cost 4 vext3 <2,4,5,7>, <4,2,7,5>
-    2712063054U, // <7,4,2,u>: Cost 3 vext3 RHS, <4,2,u,0>
+    2131001344U, // <7,4,2,6>: Cost 2 ins <u,4,2,6>, lane 0
+    3201433601U, // <7,4,2,7>: Cost 3 ins <7,u,2,7>, lane 1
+    2131001344U, // <7,4,2,u>: Cost 2 ins <u,4,2,6>, lane 0
     2651637910U, // <7,4,3,0>: Cost 3 vext2 <5,6,7,4>, <3,0,1,2>
-    3712772348U, // <7,4,3,1>: Cost 4 vext2 <3,5,7,4>, <3,1,3,5>
-    3710781808U, // <7,4,3,2>: Cost 4 vext2 <3,2,7,4>, <3,2,7,4>
+    3201458177U, // <7,4,3,1>: Cost 3 ins <7,u,3,1>, lane 1
+    3204784128U, // <7,4,3,2>: Cost 3 ins <u,4,3,2>, lane 0
     2651638172U, // <7,4,3,3>: Cost 3 vext2 <5,6,7,4>, <3,3,3,3>
     2983857360U, // <7,4,3,4>: Cost 3 vzipr <5,1,7,3>, <4,4,4,4>
     2639030883U, // <7,4,3,5>: Cost 3 vext2 <3,5,7,4>, <3,5,7,4>
-    2712063122U, // <7,4,3,6>: Cost 3 vext3 RHS, <4,3,6,5>
-    3903185920U, // <7,4,3,7>: Cost 4 vuzpr <1,7,3,4>, <1,3,5,7>
-    2641021782U, // <7,4,3,u>: Cost 3 vext2 <3,u,7,4>, <3,u,7,4>
+    2125471746U, // <7,4,3,6>: Cost 2 ins <7,4,u,6>, lane 2
+    3201507329U, // <7,4,3,7>: Cost 3 ins <7,u,3,7>, lane 1
+    2125471746U, // <7,4,3,u>: Cost 2 ins <7,4,u,6>, lane 2
     2714053800U, // <7,4,4,0>: Cost 3 vext3 RHS, <4,4,0,0>
-    2712063156U, // <7,4,4,1>: Cost 3 vext3 RHS, <4,4,1,3>
-    3716754505U, // <7,4,4,2>: Cost 4 vext2 <4,2,7,4>, <4,2,7,4>
+    3201531905U, // <7,4,4,1>: Cost 3 ins <7,u,4,1>, lane 1
+    3201540097U, // <7,4,4,2>: Cost 3 ins <7,u,4,2>, lane 1
     2987185336U, // <7,4,4,3>: Cost 3 vzipr <5,6,7,4>, <7,2,4,3>
     1638321360U, // <7,4,4,4>: Cost 2 vext3 RHS, <4,4,4,4>
     1638468826U, // <7,4,4,5>: Cost 2 vext3 RHS, <4,4,5,5>
@@ -5494,13 +5494,13 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2987185664U, // <7,4,4,7>: Cost 3 vzipr <5,6,7,4>, <7,6,4,7>
     1640312054U, // <7,4,4,u>: Cost 2 vext3 RHS, <4,4,u,6>
     1517207654U, // <7,4,5,0>: Cost 2 vext1 <6,7,4,5>, LHS
-    2573034640U, // <7,4,5,1>: Cost 3 vext1 <3,7,4,5>, <1,5,3,7>
-    2712063246U, // <7,4,5,2>: Cost 3 vext3 RHS, <4,5,2,3>
-    2573036267U, // <7,4,5,3>: Cost 3 vext1 <3,7,4,5>, <3,7,4,5>
+    2125266947U, // <7,4,5,1>: Cost 2 ins <7,4,5,u>, lane 3
+    2125266947U, // <7,4,5,2>: Cost 2 ins <7,4,5,u>, lane 3
+    2125266947U, // <7,4,5,3>: Cost 2 ins <7,4,5,u>, lane 3
     1517210934U, // <7,4,5,4>: Cost 2 vext1 <6,7,4,5>, RHS
-    2711989549U, // <7,4,5,5>: Cost 3 vext3 <4,5,5,7>, <4,5,5,7>
+    2131214336U, // <7,4,5,5>: Cost 2 ins <u,4,5,5>, lane 0
     564579638U,  // <7,4,5,6>: Cost 1 vext3 RHS, RHS
-    2847509814U, // <7,4,5,7>: Cost 3 vuzpr <4,7,5,4>, RHS
+    2125266947U, // <7,4,5,7>: Cost 2 ins <7,4,5,u>, lane 3
     564579656U,  // <7,4,5,u>: Cost 1 vext3 RHS, RHS
     1638468940U, // <7,4,6,0>: Cost 2 vext3 RHS, <4,6,0,2>
     2712063318U, // <7,4,6,1>: Cost 3 vext3 RHS, <4,6,1,3>
@@ -5508,39 +5508,39 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2712210790U, // <7,4,6,3>: Cost 3 vext3 RHS, <4,6,3,1>
     1638468980U, // <7,4,6,4>: Cost 2 vext3 RHS, <4,6,4,6>
     2712063358U, // <7,4,6,5>: Cost 3 vext3 RHS, <4,6,5,7>
-    2712063367U, // <7,4,6,6>: Cost 3 vext3 RHS, <4,6,6,7>
-    2712210826U, // <7,4,6,7>: Cost 3 vext3 RHS, <4,6,7,1>
+    2131296256U, // <7,4,6,6>: Cost 2 ins <u,4,6,6>, lane 0
+    2131304448U, // <7,4,6,7>: Cost 2 ins <u,4,6,7>, lane 0
     1638469012U, // <7,4,6,u>: Cost 2 vext3 RHS, <4,6,u,2>
     2651640826U, // <7,4,7,0>: Cost 3 vext2 <5,6,7,4>, <7,0,1,2>
     2794279930U, // <7,4,7,1>: Cost 3 vuzpl <7,1,4,6>, <7,0,1,2>
-    2651641016U, // <7,4,7,2>: Cost 3 vext2 <5,6,7,4>, <7,2,4,3>
-    3780349372U, // <7,4,7,3>: Cost 4 vext3 <3,6,4,7>, <4,7,3,6>
+    3201761281U, // <7,4,7,2>: Cost 3 ins <7,u,7,2>, lane 1
+    3201769473U, // <7,4,7,3>: Cost 3 ins <7,u,7,3>, lane 1
     2847509964U, // <7,4,7,4>: Cost 3 vuzpr <4,7,5,4>, <4,7,5,4>
     1858964790U, // <7,4,7,5>: Cost 2 vzipl <7,7,7,7>, RHS
     1993182518U, // <7,4,7,6>: Cost 2 vtrnl <7,7,7,7>, RHS
-    2651641452U, // <7,4,7,7>: Cost 3 vext2 <5,6,7,4>, <7,7,7,7>
+    2128060417U, // <7,4,7,7>: Cost 2 ins <7,u,7,7>, lane 1
     1858965033U, // <7,4,7,u>: Cost 2 vzipl <7,7,7,7>, RHS
     1640312302U, // <7,4,u,0>: Cost 2 vext3 RHS, <4,u,0,2>
     1577899822U, // <7,4,u,1>: Cost 2 vext2 <5,6,7,4>, LHS
-    2712063489U, // <7,4,u,2>: Cost 3 vext3 RHS, <4,u,2,3>
-    2573060846U, // <7,4,u,3>: Cost 3 vext1 <3,7,4,u>, <3,7,4,u>
+    2127577089U, // <7,4,u,2>: Cost 2 ins <7,u,1,2>, lane 1
+    2125266947U, // <7,4,u,3>: Cost 2 ins <7,4,5,u>, lane 3
     1640312342U, // <7,4,u,4>: Cost 2 vext3 RHS, <4,u,4,6>
     1638469146U, // <7,4,u,5>: Cost 2 vext3 RHS, <4,u,5,1>
     564579881U,  // <7,4,u,6>: Cost 1 vext3 RHS, RHS
-    2847510057U, // <7,4,u,7>: Cost 3 vuzpr <4,7,5,4>, RHS
+    2125266947U, // <7,4,u,7>: Cost 2 ins <7,4,5,u>, lane 3
     564579899U,  // <7,4,u,u>: Cost 1 vext3 RHS, RHS
     2579038310U, // <7,5,0,0>: Cost 3 vext1 <4,7,5,0>, LHS
     2636382310U, // <7,5,0,1>: Cost 3 vext2 <3,1,7,5>, LHS
     1722597478U, // <7,5,0,2>: Cost 2 vuzpl <7,4,5,6>, LHS
-    3646810863U, // <7,5,0,3>: Cost 4 vext1 <3,7,5,0>, <3,7,5,0>
+    3201253377U, // <7,5,0,3>: Cost 3 ins <7,u,0,3>, lane 1
     2712063586U, // <7,5,0,4>: Cost 3 vext3 RHS, <5,0,4,1>
     2987150554U, // <7,5,0,5>: Cost 3 vzipr <5,6,7,0>, <4,4,5,5>
     2987149826U, // <7,5,0,6>: Cost 3 vzipr <5,6,7,0>, <3,4,5,6>
-    2974540800U, // <7,5,0,7>: Cost 3 vzipr <3,5,7,0>, <1,3,5,7>
+    2131525632U, // <7,5,0,7>: Cost 2 ins <u,5,0,7>, lane 0
     1722597532U, // <7,5,0,u>: Cost 2 vuzpl <7,4,5,6>, LHS
     2714054287U, // <7,5,1,0>: Cost 3 vext3 RHS, <5,1,0,1>
     2249183358U, // <7,5,1,1>: Cost 3 vrev <5,7,1,1>
-    3710124950U, // <7,5,1,2>: Cost 4 vext2 <3,1,7,5>, <1,2,3,0>
+    2127577089U, // <7,5,1,2>: Cost 2 ins <7,u,1,2>, lane 1
     1785643110U, // <7,5,1,3>: Cost 2 vuzpr <6,7,4,5>, LHS
     2714054327U, // <7,5,1,4>: Cost 3 vext3 RHS, <5,1,4,5>
     3127496708U, // <7,5,1,5>: Cost 3 vtrnr <6,7,0,1>, <5,5,5,5>
@@ -5550,17 +5550,17 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2249117814U, // <7,5,2,0>: Cost 3 vrev <5,7,0,2>
     2714054379U, // <7,5,2,1>: Cost 3 vext3 RHS, <5,2,1,3>
     2249265288U, // <7,5,2,2>: Cost 3 vrev <5,7,2,2>
-    2712063742U, // <7,5,2,3>: Cost 3 vext3 RHS, <5,2,3,4>
+    2131640320U, // <7,5,2,3>: Cost 2 ins <u,5,2,3>, lane 0
     2859385754U, // <7,5,2,4>: Cost 3 vuzpr <6,7,4,5>, <1,2,3,4>
     2714054415U, // <7,5,2,5>: Cost 3 vext3 RHS, <5,2,5,3>
     2712063768U, // <7,5,2,6>: Cost 3 vext3 RHS, <5,2,6,3>
-    2712063777U, // <7,5,2,7>: Cost 3 vext3 RHS, <5,2,7,3>
-    2712063786U, // <7,5,2,u>: Cost 3 vext3 RHS, <5,2,u,3>
-    3634888806U, // <7,5,3,0>: Cost 4 vext1 <1,7,5,3>, LHS
+    2131673088U, // <7,5,2,7>: Cost 2 ins <u,5,2,7>, lane 0
+    2131640320U, // <7,5,2,u>: Cost 2 ins <u,5,2,3>, lane 0
+    3201449985U, // <7,5,3,0>: Cost 3 ins <7,u,3,0>, lane 1
     1175457920U, // <7,5,3,1>: Cost 2 vrev <5,7,1,3>
     2249273481U, // <7,5,3,2>: Cost 3 vrev <5,7,2,3>
     2249347218U, // <7,5,3,3>: Cost 3 vrev <5,7,3,3>
-    3634892086U, // <7,5,3,4>: Cost 4 vext1 <1,7,5,3>, RHS
+    3201482753U, // <7,5,3,4>: Cost 3 ins <7,u,3,4>, lane 1
     2983857370U, // <7,5,3,5>: Cost 3 vzipr <5,1,7,3>, <4,4,5,5>
     2983856642U, // <7,5,3,6>: Cost 3 vzipr <5,1,7,3>, <3,4,5,6>
     2047872310U, // <7,5,3,7>: Cost 2 vtrnr <5,7,1,3>, RHS
@@ -5568,7 +5568,7 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2579071078U, // <7,5,4,0>: Cost 3 vext1 <4,7,5,4>, LHS
     2987182994U, // <7,5,4,1>: Cost 3 vzipr <5,6,7,4>, <4,0,5,1>
     2249281674U, // <7,5,4,2>: Cost 3 vrev <5,7,2,4>
-    3915216227U, // <7,5,4,3>: Cost 4 vuzpr <3,7,4,5>, <7,4,5,3>
+    3201548289U, // <7,5,4,3>: Cost 3 ins <7,u,4,3>, lane 1
     2579074508U, // <7,5,4,4>: Cost 3 vext1 <4,7,5,4>, <4,7,5,4>
     2636385590U, // <7,5,4,5>: Cost 3 vext2 <3,1,7,5>, RHS
     1722600758U, // <7,5,4,6>: Cost 2 vuzpl <7,4,5,6>, RHS
@@ -5576,22 +5576,22 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1638469583U, // <7,5,4,u>: Cost 2 vext3 RHS, <5,4,u,6>
     2714054611U, // <7,5,5,0>: Cost 3 vext3 RHS, <5,5,0,1>
     2714054620U, // <7,5,5,1>: Cost 3 vext3 RHS, <5,5,1,1>
-    3710127905U, // <7,5,5,2>: Cost 4 vext2 <3,1,7,5>, <5,2,7,3>
+    3201613825U, // <7,5,5,2>: Cost 3 ins <7,u,5,2>, lane 1
     2649657204U, // <7,5,5,3>: Cost 3 vext2 <5,3,7,5>, <5,3,7,5>
     2714054651U, // <7,5,5,4>: Cost 3 vext3 RHS, <5,5,4,5>
     1638322180U, // <7,5,5,5>: Cost 2 vext3 RHS, <5,5,5,5>
-    2712064014U, // <7,5,5,6>: Cost 3 vext3 RHS, <5,5,6,6>
+    2127904769U, // <7,5,5,6>: Cost 2 ins <7,u,5,6>, lane 1
     1638469656U, // <7,5,5,7>: Cost 2 vext3 RHS, <5,5,7,7>
     1638469665U, // <7,5,5,u>: Cost 2 vext3 RHS, <5,5,u,7>
-    2712064036U, // <7,5,6,0>: Cost 3 vext3 RHS, <5,6,0,1>
-    2714054707U, // <7,5,6,1>: Cost 3 vext3 RHS, <5,6,1,7>
-    2249298060U, // <7,5,6,2>: Cost 3 vrev <5,7,2,6>
-    2712064066U, // <7,5,6,3>: Cost 3 vext3 RHS, <5,6,3,4>
-    2712064076U, // <7,5,6,4>: Cost 3 vext3 RHS, <5,6,4,5>
-    2714054743U, // <7,5,6,5>: Cost 3 vext3 RHS, <5,6,5,7>
-    2712064096U, // <7,5,6,6>: Cost 3 vext3 RHS, <5,6,6,7>
-    1638322274U, // <7,5,6,7>: Cost 2 vext3 RHS, <5,6,7,0>
-    1638469739U, // <7,5,6,u>: Cost 2 vext3 RHS, <5,6,u,0>
+    2131910656U, // <7,5,6,0>: Cost 2 ins <u,5,6,0>, lane 0
+    2131918848U, // <7,5,6,1>: Cost 2 ins <u,5,6,1>, lane 0
+    2131927040U, // <7,5,6,2>: Cost 2 ins <u,5,6,2>, lane 0
+    2131935232U, // <7,5,6,3>: Cost 2 ins <u,5,6,3>, lane 0
+    2131943424U, // <7,5,6,4>: Cost 2 ins <u,5,6,4>, lane 0
+    2131951616U, // <7,5,6,5>: Cost 2 ins <u,5,6,5>, lane 0
+    2131959808U, // <7,5,6,6>: Cost 2 ins <u,5,6,6>, lane 0
+    1058226176U, // <7,5,6,7>: Cost 1 ins RHS, lane 0
+    1058226176U, // <7,5,6,u>: Cost 1 ins RHS, lane 0
     1511325798U, // <7,5,7,0>: Cost 2 vext1 <5,7,5,7>, LHS
     1638469760U, // <7,5,7,1>: Cost 2 vext3 RHS, <5,7,1,3>
     2712211590U, // <7,5,7,2>: Cost 3 vext3 RHS, <5,7,2,0>
@@ -5608,11 +5608,11 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1511337270U, // <7,5,u,4>: Cost 2 vext1 <5,7,5,u>, RHS
     1638469881U, // <7,5,u,5>: Cost 2 vext3 RHS, <5,u,5,7>
     1722603674U, // <7,5,u,6>: Cost 2 vuzpl <7,4,5,6>, RHS
-    1638469892U, // <7,5,u,7>: Cost 2 vext3 RHS, <5,u,7,0>
-    1638469904U, // <7,5,u,u>: Cost 2 vext3 RHS, <5,u,u,3>
+    1058226176U, // <7,5,u,7>: Cost 1 ins RHS, lane 0
+    1058226176U, // <7,5,u,u>: Cost 1 ins RHS, lane 0
     2650324992U, // <7,6,0,0>: Cost 3 vext2 <5,4,7,6>, <0,0,0,0>
     1576583270U, // <7,6,0,1>: Cost 2 vext2 <5,4,7,6>, LHS
-    2712064300U, // <7,6,0,2>: Cost 3 vext3 RHS, <6,0,2,4>
+    2132148224U, // <7,6,0,2>: Cost 2 ins <u,6,0,2>, lane 0
     2255295336U, // <7,6,0,3>: Cost 3 vrev <6,7,3,0>
     2712064316U, // <7,6,0,4>: Cost 3 vext3 RHS, <6,0,4,2>
     2987151292U, // <7,6,0,5>: Cost 3 vzipr <5,6,7,0>, <5,4,6,5>
@@ -5621,7 +5621,7 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1576583837U, // <7,6,0,u>: Cost 2 vext2 <5,4,7,6>, LHS
     1181340494U, // <7,6,1,0>: Cost 2 vrev <6,7,0,1>
     2650325812U, // <7,6,1,1>: Cost 3 vext2 <5,4,7,6>, <1,1,1,1>
-    2714055036U, // <7,6,1,2>: Cost 3 vext3 RHS, <6,1,2,3>
+    2127577089U, // <7,6,1,2>: Cost 2 ins <7,u,1,2>, lane 1
     2841329766U, // <7,6,1,3>: Cost 3 vuzpr <3,7,2,6>, LHS
     2579123666U, // <7,6,1,4>: Cost 3 vext1 <4,7,6,1>, <4,7,6,1>
     2650326160U, // <7,6,1,5>: Cost 3 vext2 <5,4,7,6>, <1,5,3,7>
@@ -5631,7 +5631,7 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2712211897U, // <7,6,2,0>: Cost 3 vext3 RHS, <6,2,0,1>
     2714055108U, // <7,6,2,1>: Cost 3 vext3 RHS, <6,2,1,3>
     2714055117U, // <7,6,2,2>: Cost 3 vext3 RHS, <6,2,2,3>
-    2650326694U, // <7,6,2,3>: Cost 3 vext2 <5,4,7,6>, <2,3,0,1>
+    2132303872U, // <7,6,2,3>: Cost 2 ins <u,6,2,3>, lane 0
     2714055137U, // <7,6,2,4>: Cost 3 vext3 RHS, <6,2,4,5>
     2714055148U, // <7,6,2,5>: Cost 3 vext3 RHS, <6,2,5,7>
     2714055152U, // <7,6,2,6>: Cost 3 vext3 RHS, <6,2,6,2>
@@ -5642,7 +5642,7 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2983857052U, // <7,6,3,2>: Cost 3 vzipr <5,1,7,3>, <4,0,6,2>
     2650327452U, // <7,6,3,3>: Cost 3 vext2 <5,4,7,6>, <3,3,3,3>
     2712064562U, // <7,6,3,4>: Cost 3 vext3 RHS, <6,3,4,5>
-    2650327627U, // <7,6,3,5>: Cost 3 vext2 <5,4,7,6>, <3,5,4,7>
+    3206135808U, // <7,6,3,5>: Cost 3 ins <u,6,3,5>, lane 0
     2983857380U, // <7,6,3,6>: Cost 3 vzipr <5,1,7,3>, <4,4,6,6>
     1910115638U, // <7,6,3,7>: Cost 2 vzipr <5,1,7,3>, RHS
     1910115639U, // <7,6,3,u>: Cost 2 vzipr <5,1,7,3>, RHS
@@ -5652,22 +5652,22 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2255328108U, // <7,6,4,3>: Cost 3 vrev <6,7,3,4>
     2650328272U, // <7,6,4,4>: Cost 3 vext2 <5,4,7,6>, <4,4,4,4>
     1576586550U, // <7,6,4,5>: Cost 2 vext2 <5,4,7,6>, RHS
-    2714055312U, // <7,6,4,6>: Cost 3 vext3 RHS, <6,4,6,0>
+    2132475904U, // <7,6,4,6>: Cost 2 ins <u,6,4,6>, lane 0
     1913441590U, // <7,6,4,7>: Cost 2 vzipr <5,6,7,4>, RHS
     1576586793U, // <7,6,4,u>: Cost 2 vext2 <5,4,7,6>, RHS
     2579152998U, // <7,6,5,0>: Cost 3 vext1 <4,7,6,5>, LHS
     2650328784U, // <7,6,5,1>: Cost 3 vext2 <5,4,7,6>, <5,1,7,3>
     2714055364U, // <7,6,5,2>: Cost 3 vext3 RHS, <6,5,2,7>
-    3785806538U, // <7,6,5,3>: Cost 4 vext3 RHS, <6,5,3,4>
+    3201622017U, // <7,6,5,3>: Cost 3 ins <7,u,5,3>, lane 1
     1576587206U, // <7,6,5,4>: Cost 2 vext2 <5,4,7,6>, <5,4,7,6>
     2650329092U, // <7,6,5,5>: Cost 3 vext2 <5,4,7,6>, <5,5,5,5>
-    2714055400U, // <7,6,5,6>: Cost 3 vext3 RHS, <6,5,6,7>
+    2127904769U, // <7,6,5,6>: Cost 2 ins <7,u,5,6>, lane 1
     2971929910U, // <7,6,5,7>: Cost 3 vzipr <3,1,7,5>, RHS
     1181963162U, // <7,6,5,u>: Cost 2 vrev <6,7,u,5>
     2714055421U, // <7,6,6,0>: Cost 3 vext3 RHS, <6,6,0,1>
     2714055432U, // <7,6,6,1>: Cost 3 vext3 RHS, <6,6,1,3>
     2712212245U, // <7,6,6,2>: Cost 3 vext3 RHS, <6,6,2,7>
-    3915077089U, // <7,6,6,3>: Cost 4 vuzpr <3,7,2,6>, <7,6,1,3>
+    3201695745U, // <7,6,6,3>: Cost 3 ins <7,u,6,3>, lane 1
     2714055461U, // <7,6,6,4>: Cost 3 vext3 RHS, <6,6,4,5>
     2714055472U, // <7,6,6,5>: Cost 3 vext3 RHS, <6,6,5,7>
     1638323000U, // <7,6,6,6>: Cost 2 vext3 RHS, <6,6,6,6>
@@ -5679,16 +5679,16 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2712064872U, // <7,6,7,3>: Cost 3 vext3 RHS, <6,7,3,0>
     1638323062U, // <7,6,7,4>: Cost 2 vext3 RHS, <6,7,4,5>
     2712064894U, // <7,6,7,5>: Cost 3 vext3 RHS, <6,7,5,4>
-    2841332442U, // <7,6,7,6>: Cost 3 vuzpr <3,7,2,6>, <3,7,2,6>
+    1723348417U, // <7,6,7,6>: Cost 2 vuzpl <7,5,6,7>, <7,5,6,7>
     1912802614U, // <7,6,7,7>: Cost 2 vzipr <5,5,7,7>, RHS
     1638323094U, // <7,6,7,u>: Cost 2 vext3 RHS, <6,7,u,1>
     1638470559U, // <7,6,u,0>: Cost 2 vext3 RHS, <6,u,0,1>
     1576589102U, // <7,6,u,1>: Cost 2 vext2 <5,4,7,6>, LHS
-    2712212402U, // <7,6,u,2>: Cost 3 vext3 RHS, <6,u,2,2>
-    2841330333U, // <7,6,u,3>: Cost 3 vuzpr <3,7,2,6>, LHS
+    2132148224U, // <7,6,u,2>: Cost 2 ins <u,6,0,2>, lane 0
+    2132303872U, // <7,6,u,3>: Cost 2 ins <u,6,2,3>, lane 0
     1638470599U, // <7,6,u,4>: Cost 2 vext3 RHS, <6,u,4,5>
     1576589466U, // <7,6,u,5>: Cost 2 vext2 <5,4,7,6>, RHS
-    1638323000U, // <7,6,u,6>: Cost 2 vext3 RHS, <6,6,6,6>
+    2132475904U, // <7,6,u,6>: Cost 2 ins <u,6,4,6>, lane 0
     1638470624U, // <7,6,u,7>: Cost 2 vext3 RHS, <6,u,7,3>
     1638470631U, // <7,6,u,u>: Cost 2 vext3 RHS, <6,u,u,1>
     1913409634U, // <7,7,0,0>: Cost 2 vzipr <5,6,7,0>, <5,6,7,0>
@@ -5698,51 +5698,51 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2712065044U, // <7,7,0,4>: Cost 3 vext3 RHS, <7,0,4,1>
     2585161907U, // <7,7,0,5>: Cost 3 vext1 <5,7,7,0>, <5,7,7,0>
     2987151302U, // <7,7,0,6>: Cost 3 vzipr <5,6,7,0>, <5,4,7,6>
-    2987151384U, // <7,7,0,7>: Cost 3 vzipr <5,6,7,0>, <5,5,7,7>
+    2127470594U, // <7,7,0,7>: Cost 2 ins <7,7,u,7>, lane 2
     1638323257U, // <7,7,0,u>: Cost 2 vext3 RHS, <7,0,u,2>
     2712065091U, // <7,7,1,0>: Cost 3 vext3 RHS, <7,1,0,3>
     2053755726U, // <7,7,1,1>: Cost 2 vtrnr <6,7,0,1>, <6,7,0,1>
-    2712065109U, // <7,7,1,2>: Cost 3 vext3 RHS, <7,1,2,3>
+    2127577089U, // <7,7,1,2>: Cost 2 ins <7,u,1,2>, lane 1
     1779761254U, // <7,7,1,3>: Cost 2 vuzpr <5,7,5,7>, LHS
     2585169206U, // <7,7,1,4>: Cost 3 vext1 <5,7,7,1>, RHS
     2693928048U, // <7,7,1,5>: Cost 3 vext3 <1,5,3,7>, <7,1,5,3>
     2585170766U, // <7,7,1,6>: Cost 3 vext1 <5,7,7,1>, <6,7,0,1>
-    3127496872U, // <7,7,1,7>: Cost 3 vtrnr <6,7,0,1>, <5,7,5,7>
+    2127470594U, // <7,7,1,7>: Cost 2 ins <7,7,u,7>, lane 2
     1779761259U, // <7,7,1,u>: Cost 2 vuzpr <5,7,5,7>, LHS
     2853503894U, // <7,7,2,0>: Cost 3 vuzpr <5,7,5,7>, <1,2,3,0>
-    3785807002U, // <7,7,2,1>: Cost 4 vext3 RHS, <7,2,1,0>
-    2712065189U, // <7,7,2,2>: Cost 3 vext3 RHS, <7,2,2,2>
-    2712065196U, // <7,7,2,3>: Cost 3 vext3 RHS, <7,2,3,0>
+    3206692864U, // <7,7,2,1>: Cost 3 ins <u,7,2,1>, lane 0
+    1988801621U, // <7,7,2,2>: Cost 2 vtrnl <7,1,2,3>, <7,1,2,3>
+    2132967424U, // <7,7,2,3>: Cost 2 ins <u,7,2,3>, lane 0
     2853503898U, // <7,7,2,4>: Cost 3 vuzpr <5,7,5,7>, <1,2,3,4>
-    3766490305U, // <7,7,2,5>: Cost 4 vext3 <1,3,5,7>, <7,2,5,3>
+    3206725632U, // <7,7,2,5>: Cost 3 ins <u,7,2,5>, lane 0
     2700563658U, // <7,7,2,6>: Cost 3 vext3 <2,6,3,7>, <7,2,6,3>
-    3134068332U, // <7,7,2,7>: Cost 3 vtrnr <7,7,u,2>, <7,7,7,7>
-    2701890780U, // <7,7,2,u>: Cost 3 vext3 <2,u,3,7>, <7,2,u,3>
+    2127470594U, // <7,7,2,7>: Cost 2 ins <7,7,u,7>, lane 2
+    1988801621U, // <7,7,2,u>: Cost 2 vtrnl <7,1,2,3>, <7,1,2,3>
     2712065251U, // <7,7,3,0>: Cost 3 vext3 RHS, <7,3,0,1>
     3121615694U, // <7,7,3,1>: Cost 3 vtrnr <5,7,1,3>, <6,7,0,1>
-    3774305530U, // <7,7,3,2>: Cost 4 vext3 <2,6,3,7>, <7,3,2,6>
+    3201171458U, // <7,7,3,2>: Cost 3 ins <7,7,u,2>, lane 2
     1910116048U, // <7,7,3,3>: Cost 2 vzipr <5,1,7,3>, <5,1,7,3>
     2712065291U, // <7,7,3,4>: Cost 3 vext3 RHS, <7,3,4,5>
     2639055462U, // <7,7,3,5>: Cost 3 vext2 <3,5,7,7>, <3,5,7,7>
     2639719095U, // <7,7,3,6>: Cost 3 vext2 <3,6,7,7>, <3,6,7,7>
-    2841412608U, // <7,7,3,7>: Cost 3 vuzpr <3,7,3,7>, <1,3,5,7>
+    2127470594U, // <7,7,3,7>: Cost 2 ins <7,7,u,7>, lane 2
     1910116048U, // <7,7,3,u>: Cost 2 vzipr <5,1,7,3>, <5,1,7,3>
     2712212792U, // <7,7,4,0>: Cost 3 vext3 RHS, <7,4,0,5>
     3062715386U, // <7,7,4,1>: Cost 3 vtrnl <7,1,4,6>, <7,0,1,2>
-    3785807178U, // <7,7,4,2>: Cost 4 vext3 RHS, <7,4,2,5>
+    3201540097U, // <7,7,4,2>: Cost 3 ins <7,u,4,2>, lane 1
     2987183824U, // <7,7,4,3>: Cost 3 vzipr <5,6,7,4>, <5,1,7,3>
     1913442406U, // <7,7,4,4>: Cost 2 vzipr <5,6,7,4>, <5,6,7,4>
     1638323558U, // <7,7,4,5>: Cost 2 vext3 RHS, <7,4,5,6>
     1724747062U, // <7,7,4,6>: Cost 2 vuzpl <7,7,7,7>, RHS
-    2987184152U, // <7,7,4,7>: Cost 3 vzipr <5,6,7,4>, <5,5,7,7>
+    2127470594U, // <7,7,4,7>: Cost 2 ins <7,7,u,7>, lane 2
     1638323585U, // <7,7,4,u>: Cost 2 vext3 RHS, <7,4,u,6>
     2853508547U, // <7,7,5,0>: Cost 3 vuzpr <5,7,5,7>, <7,5,7,0>
     2712212884U, // <7,7,5,1>: Cost 3 vext3 RHS, <7,5,1,7>
-    3711471393U, // <7,7,5,2>: Cost 4 vext2 <3,3,7,7>, <5,2,7,3>
+    3201613825U, // <7,7,5,2>: Cost 3 ins <7,u,5,2>, lane 1
     2649673590U, // <7,7,5,3>: Cost 3 vext2 <5,3,7,7>, <5,3,7,7>
     2712065455U, // <7,7,5,4>: Cost 3 vext3 RHS, <7,5,4,7>
     1577259032U, // <7,7,5,5>: Cost 2 vext2 <5,5,7,7>, <5,5,7,7>
-    2712065473U, // <7,7,5,6>: Cost 3 vext3 RHS, <7,5,6,7>
+    2127904769U, // <7,7,5,6>: Cost 2 ins <7,u,5,6>, lane 1
     1779764534U, // <7,7,5,7>: Cost 2 vuzpr <5,7,5,7>, RHS
     1779764535U, // <7,7,5,u>: Cost 2 vuzpr <5,7,5,7>, RHS
     2985873506U, // <7,7,6,0>: Cost 3 vzipr <5,4,7,6>, <5,6,7,0>
@@ -5752,15 +5752,15 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     2985873510U, // <7,7,6,4>: Cost 3 vzipr <5,4,7,6>, <5,6,7,4>
     2985873511U, // <7,7,6,5>: Cost 3 vzipr <5,4,7,6>, <5,6,7,5>
     1912131526U, // <7,7,6,6>: Cost 2 vzipr <5,4,7,6>, <5,4,7,6>
-    2712065556U, // <7,7,6,7>: Cost 3 vext3 RHS, <7,6,7,0>
+    2133295104U, // <7,7,6,7>: Cost 2 ins <u,7,6,7>, lane 0
     1585222628U, // <7,7,6,u>: Cost 2 vext2 <6,u,7,7>, <6,u,7,7>
     1523417190U, // <7,7,7,0>: Cost 2 vext1 <7,7,7,7>, LHS
-    2853507918U, // <7,7,7,1>: Cost 3 vuzpr <5,7,5,7>, <6,7,0,1>
-    2597160552U, // <7,7,7,2>: Cost 3 vext1 <7,7,7,7>, <2,2,2,2>
-    2986544848U, // <7,7,7,3>: Cost 3 vzipr <5,5,7,7>, <5,1,7,3>
+    2127405059U, // <7,7,7,1>: Cost 2 ins <7,7,7,u>, lane 3
+    2127405059U, // <7,7,7,2>: Cost 2 ins <7,7,7,u>, lane 3
+    2127405059U, // <7,7,7,3>: Cost 2 ins <7,7,7,u>, lane 3
     1523420470U, // <7,7,7,4>: Cost 2 vext1 <7,7,7,7>, RHS
-    2651002296U, // <7,7,7,5>: Cost 3 vext2 <5,5,7,7>, <7,5,5,7>
-    2986545094U, // <7,7,7,6>: Cost 3 vzipr <5,5,7,7>, <5,4,7,6>
+    2127405059U, // <7,7,7,5>: Cost 2 ins <7,7,7,u>, lane 3
+    2127405059U, // <7,7,7,6>: Cost 2 ins <7,7,7,u>, lane 3
     363253046U,  // <7,7,7,7>: Cost 1 vdup3 RHS
     363253046U,  // <7,7,7,u>: Cost 1 vdup3 RHS
     1913409634U, // <7,7,u,0>: Cost 2 vzipr <5,6,7,0>, <5,6,7,0>
@@ -5782,30 +5782,30 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1913408840U, // <7,u,0,7>: Cost 2 vzipr <5,6,7,0>, RHS
     1638323986U, // <7,u,0,u>: Cost 2 vext3 RHS, <u,0,u,2>
     1517469798U, // <7,u,1,0>: Cost 2 vext1 <6,7,u,1>, LHS
-    1638318900U, // <7,u,1,1>: Cost 2 vext3 RHS, <1,1,1,1>
+    2128232448U, // <7,u,1,1>: Cost 2 ins <u,0,1,1>, lane 0
     564582190U,  // <7,u,1,2>: Cost 1 vext3 RHS, LHS
     1638324023U, // <7,u,1,3>: Cost 2 vext3 RHS, <u,1,3,3>
     1517473078U, // <7,u,1,4>: Cost 2 vext1 <6,7,u,1>, RHS
-    2693928777U, // <7,u,1,5>: Cost 3 vext3 <1,5,3,7>, <u,1,5,3>
+    2122317827U, // <7,u,1,5>: Cost 2 ins <7,0,1,u>, lane 3
     1517474710U, // <7,u,1,6>: Cost 2 vext1 <6,7,u,1>, <6,7,u,1>
     1640462171U, // <7,u,1,7>: Cost 2 vext3 RHS, <u,1,7,3>
     564582244U,  // <7,u,1,u>: Cost 1 vext3 RHS, LHS
     1662211948U, // <7,u,2,0>: Cost 2 vext3 RHS, <u,2,0,2>
-    2712065907U, // <7,u,2,1>: Cost 3 vext3 RHS, <u,2,1,0>
-    1638319720U, // <7,u,2,2>: Cost 2 vext3 RHS, <2,2,2,2>
-    1638324101U, // <7,u,2,3>: Cost 2 vext3 RHS, <u,2,3,0>
+    2128969728U, // <7,u,2,1>: Cost 2 ins <u,1,2,1>, lane 0
+    2128314368U, // <7,u,2,2>: Cost 2 ins <u,0,2,2>, lane 0
+    1055244288U, // <7,u,2,3>: Cost 1 ins LHS, lane 0
     1662211988U, // <7,u,2,4>: Cost 2 vext3 RHS, <u,2,4,6>
-    2712065946U, // <7,u,2,5>: Cost 3 vext3 RHS, <u,2,5,3>
-    2700564387U, // <7,u,2,6>: Cost 3 vext3 <2,6,3,7>, <u,2,6,3>
+    2129002496U, // <7,u,2,5>: Cost 2 ins <u,1,2,5>, lane 0
+    2131001344U, // <7,u,2,6>: Cost 2 ins <u,4,2,6>, lane 0
     1640314796U, // <7,u,2,7>: Cost 2 vext3 RHS, <u,2,7,3>
-    1638324146U, // <7,u,2,u>: Cost 2 vext3 RHS, <u,2,u,0>
+    1055244288U, // <7,u,2,u>: Cost 1 ins LHS, lane 0
     1638324156U, // <7,u,3,0>: Cost 2 vext3 RHS, <u,3,0,1>
     1638324167U, // <7,u,3,1>: Cost 2 vext3 RHS, <u,3,1,3>
-    2700564435U, // <7,u,3,2>: Cost 3 vext3 <2,6,3,7>, <u,3,2,6>
+    2128388096U, // <7,u,3,2>: Cost 2 ins <u,0,3,2>, lane 0
     1910112412U, // <7,u,3,3>: Cost 2 vzipr <5,1,7,3>, LHS
     1638324196U, // <7,u,3,4>: Cost 2 vext3 RHS, <u,3,4,5>
     1638324207U, // <7,u,3,5>: Cost 2 vext3 RHS, <u,3,5,7>
-    2700564472U, // <7,u,3,6>: Cost 3 vext3 <2,6,3,7>, <u,3,6,7>
+    2125471746U, // <7,u,3,6>: Cost 2 ins <7,4,u,6>, lane 2
     1910115656U, // <7,u,3,7>: Cost 2 vzipr <5,1,7,3>, RHS
     1638324228U, // <7,u,3,u>: Cost 2 vext3 RHS, <u,3,u,1>
     2712066061U, // <7,u,4,0>: Cost 3 vext3 RHS, <u,4,0,1>
@@ -5827,14 +5827,14 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1640462499U, // <7,u,5,7>: Cost 2 vext3 RHS, <u,5,7,7>
     564582572U,  // <7,u,5,u>: Cost 1 vext3 RHS, RHS
     1662359728U, // <7,u,6,0>: Cost 2 vext3 RHS, <u,6,0,2>
-    2712066234U, // <7,u,6,1>: Cost 3 vext3 RHS, <u,6,1,3>
+    2131918848U, // <7,u,6,1>: Cost 2 ins <u,5,6,1>, lane 0
     1581249023U, // <7,u,6,2>: Cost 2 vext2 <6,2,7,u>, <6,2,7,u>
     1638324432U, // <7,u,6,3>: Cost 2 vext3 RHS, <u,6,3,7>
     1662359768U, // <7,u,6,4>: Cost 2 vext3 RHS, <u,6,4,6>
-    2712066274U, // <7,u,6,5>: Cost 3 vext3 RHS, <u,6,5,7>
+    2131951616U, // <7,u,6,5>: Cost 2 ins <u,5,6,5>, lane 0
     1583903555U, // <7,u,6,6>: Cost 2 vext2 <6,6,7,u>, <6,6,7,u>
-    1640315117U, // <7,u,6,7>: Cost 2 vext3 RHS, <u,6,7,0>
-    1638324477U, // <7,u,6,u>: Cost 2 vext3 RHS, <u,6,u,7>
+    1058226176U, // <7,u,6,7>: Cost 1 ins RHS, lane 0
+    1058226176U, // <7,u,6,u>: Cost 1 ins RHS, lane 0
     1638471936U, // <7,u,7,0>: Cost 2 vext3 RHS, <u,7,0,1>
     1640462603U, // <7,u,7,1>: Cost 2 vext3 RHS, <u,7,1,3>
     1993185070U, // <7,u,7,2>: Cost 2 vtrnl <7,7,7,7>, LHS
@@ -5847,119 +5847,119 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1638324561U, // <7,u,u,0>: Cost 2 vext3 RHS, <u,u,0,1>
     1638324571U, // <7,u,u,1>: Cost 2 vext3 RHS, <u,u,1,2>
     564582757U,  // <7,u,u,2>: Cost 1 vext3 RHS, LHS
-    1638324587U, // <7,u,u,3>: Cost 2 vext3 RHS, <u,u,3,0>
+    1055244288U, // <7,u,u,3>: Cost 1 ins LHS, lane 0
     1638324601U, // <7,u,u,4>: Cost 2 vext3 RHS, <u,u,4,5>
     1638324611U, // <7,u,u,5>: Cost 2 vext3 RHS, <u,u,5,6>
     564582797U,  // <7,u,u,6>: Cost 1 vext3 RHS, RHS
-    363253046U,  // <7,u,u,7>: Cost 1 vdup3 RHS
+    1058226176U, // <7,u,u,7>: Cost 1 ins RHS, lane 0
     564582811U,  // <7,u,u,u>: Cost 1 vext3 RHS, LHS
     135053414U,  // <u,0,0,0>: Cost 1 vdup0 LHS
     1611489290U, // <u,0,0,1>: Cost 2 vext3 LHS, <0,0,1,1>
     1611489300U, // <u,0,0,2>: Cost 2 vext3 LHS, <0,0,2,2>
-    2960684909U, // <u,0,0,3>: Cost 3 vzipr <1,2,u,0>, <u,2,0,3>
+    2085707777U, // <u,0,0,3>: Cost 2 ins <0,u,0,3>, lane 1
     1481706806U, // <u,0,0,4>: Cost 2 vext1 <0,u,0,0>, RHS
-    2987226019U, // <u,0,0,5>: Cost 3 vzipr <5,6,u,0>, <6,u,0,5>
-    2591282078U, // <u,0,0,6>: Cost 3 vext1 <6,u,0,0>, <6,u,0,0>
-    2960685237U, // <u,0,0,7>: Cost 3 vzipr <1,2,u,0>, <u,6,0,7>
+    2080440323U, // <u,0,0,5>: Cost 2 ins <0,0,0,u>, lane 3
+    2080440323U, // <u,0,0,6>: Cost 2 ins <0,0,0,u>, lane 3
+    2080440323U, // <u,0,0,7>: Cost 2 ins <0,0,0,u>, lane 3
     135053414U,  // <u,0,0,u>: Cost 1 vdup0 LHS
     1493655654U, // <u,0,1,0>: Cost 2 vext1 <2,u,0,1>, LHS
     786808934U,  // <u,0,1,1>: Cost 1 vzipl LHS, LHS
     537747563U,  // <u,0,1,2>: Cost 1 vext3 LHS, LHS
     1756332134U, // <u,0,1,3>: Cost 2 vuzpr <1,u,3,0>, LHS
     1493658934U, // <u,0,1,4>: Cost 2 vext1 <2,u,0,1>, RHS
-    2625135760U, // <u,0,1,5>: Cost 3 vext2 <1,2,u,0>, <1,5,3,7>
+    2085797889U, // <u,0,1,5>: Cost 2 ins <0,u,1,5>, lane 1
     1517548447U, // <u,0,1,6>: Cost 2 vext1 <6,u,0,1>, <6,u,0,1>
-    2591290362U, // <u,0,1,7>: Cost 3 vext1 <6,u,0,1>, <7,0,1,2>
+    2080514051U, // <u,0,1,7>: Cost 2 ins <0,0,1,u>, lane 3
     537747612U,  // <u,0,1,u>: Cost 1 vext3 LHS, LHS
     1611489444U, // <u,0,2,0>: Cost 2 vext3 LHS, <0,2,0,2>
     1994768394U, // <u,0,2,1>: Cost 2 vtrnl LHS, <0,0,1,1>
     921026662U,  // <u,0,2,2>: Cost 1 vtrnl LHS, LHS
-    2685231294U, // <u,0,2,3>: Cost 3 vext3 LHS, <0,2,3,1>
+    1012113409U, // <u,0,2,3>: Cost 1 ins LHS, lane 1
     1611489484U, // <u,0,2,4>: Cost 2 vext3 LHS, <0,2,4,6>
-    2712068310U, // <u,0,2,5>: Cost 3 vext3 RHS, <0,2,5,7>
-    2625136570U, // <u,0,2,6>: Cost 3 vext2 <1,2,u,0>, <2,6,3,7>
-    2579354618U, // <u,0,2,7>: Cost 3 vext1 <4,u,0,2>, <7,0,1,2>
+    2080587779U, // <u,0,2,5>: Cost 2 ins <0,0,2,u>, lane 3
+    2085879809U, // <u,0,2,6>: Cost 2 ins <0,u,2,6>, lane 1
+    2080587779U, // <u,0,2,7>: Cost 2 ins <0,0,2,u>, lane 3
     921026716U,  // <u,0,2,u>: Cost 1 vtrnl LHS, LHS
     1880326144U, // <u,0,3,0>: Cost 2 vzipr LHS, <0,0,0,0>
     1880327846U, // <u,0,3,1>: Cost 2 vzipr LHS, <2,3,0,1>
     72589981U,   // <u,0,3,2>: Cost 1 vrev LHS
-    2954070239U, // <u,0,3,3>: Cost 3 vzipr LHS, <3,1,0,3>
-    2954068134U, // <u,0,3,4>: Cost 3 vzipr LHS, <0,2,0,4>
-    2830075598U, // <u,0,3,5>: Cost 3 vuzpr <1,u,3,0>, <2,3,4,5>
-    3092488234U, // <u,0,3,6>: Cost 3 vtrnr LHS, <0,0,4,6>
-    2830074880U, // <u,0,3,7>: Cost 3 vuzpr <1,u,3,0>, <1,3,5,7>
+    2091900929U, // <u,0,3,3>: Cost 2 ins <1,u,3,3>, lane 1
+    2091909121U, // <u,0,3,4>: Cost 2 ins <1,u,3,4>, lane 1
+    2086633475U, // <u,0,3,5>: Cost 2 ins <1,0,3,u>, lane 3
+    2086633475U, // <u,0,3,6>: Cost 2 ins <1,0,3,u>, lane 3
+    2091933697U, // <u,0,3,7>: Cost 2 ins <1,u,3,7>, lane 1
     73032403U,   // <u,0,3,u>: Cost 1 vrev LHS
     1705610572U, // <u,0,4,0>: Cost 2 vuzpl <4,6,0,2>, <4,6,0,2>
     1611489618U, // <u,0,4,1>: Cost 2 vext3 LHS, <0,4,1,5>
     1611489628U, // <u,0,4,2>: Cost 2 vext3 LHS, <0,4,2,6>
-    2906669312U, // <u,0,4,3>: Cost 3 vzipl <3,4,5,6>, <0,3,1,4>
+    2086002689U, // <u,0,4,3>: Cost 2 ins <0,u,4,3>, lane 1
     1947828428U, // <u,0,4,4>: Cost 2 vtrnl <0,2,4,6>, <0,2,4,6>
     1551396150U, // <u,0,4,5>: Cost 2 vext2 <1,2,u,0>, RHS
     1726844214U, // <u,0,4,6>: Cost 2 vuzpl <u,2,0,2>, RHS
-    2646150600U, // <u,0,4,7>: Cost 3 vext2 <4,7,5,0>, <4,7,5,0>
+    2109923329U, // <u,0,4,7>: Cost 2 ins <4,u,4,7>, lane 1
     1611932050U, // <u,0,4,u>: Cost 2 vext3 LHS, <0,4,u,6>
     1863532544U, // <u,0,5,0>: Cost 2 vzipl RHS, <0,0,0,0>
     789790822U,  // <u,0,5,1>: Cost 1 vzipl RHS, LHS
     1996349542U, // <u,0,5,2>: Cost 2 vtrnl <u,3,5,7>, LHS
-    2220163752U, // <u,0,5,3>: Cost 3 vrev <0,u,3,5>
+    2104696835U, // <u,0,5,3>: Cost 2 ins <4,0,5,u>, lane 3
     1863532882U, // <u,0,5,4>: Cost 2 vzipl RHS, <0,4,1,5>
-    2651680772U, // <u,0,5,5>: Cost 3 vext2 <5,6,u,0>, <5,5,5,5>
+    2109980673U, // <u,0,5,5>: Cost 2 ins <4,u,5,5>, lane 1
     1577939051U, // <u,0,5,6>: Cost 2 vext2 <5,6,u,0>, <5,6,u,0>
     1756335414U, // <u,0,5,7>: Cost 2 vuzpr <1,u,3,0>, RHS
     789791389U,  // <u,0,5,u>: Cost 1 vzipl RHS, LHS
     1997750272U, // <u,0,6,0>: Cost 2 vtrnl RHS, <0,0,0,0>
     1997750282U, // <u,0,6,1>: Cost 2 vtrnl RHS, <0,0,1,1>
     924008550U,  // <u,0,6,2>: Cost 1 vtrnl RHS, LHS
-    2655662673U, // <u,0,6,3>: Cost 3 vext2 <6,3,u,0>, <6,3,u,0>
+    2104770563U, // <u,0,6,3>: Cost 2 ins <4,0,6,u>, lane 3
     1146503858U, // <u,0,6,4>: Cost 2 vrev <0,u,4,6>
-    3071492310U, // <u,0,6,5>: Cost 3 vtrnl RHS, <0,2,5,7>
-    2651681592U, // <u,0,6,6>: Cost 3 vext2 <5,6,u,0>, <6,6,6,6>
-    2830075834U, // <u,0,6,7>: Cost 3 vuzpr <1,u,3,0>, <2,6,3,7>
+    2104770563U, // <u,0,6,5>: Cost 2 ins <4,0,6,u>, lane 3
+    2110062593U, // <u,0,6,6>: Cost 2 ins <4,u,6,6>, lane 1
+    1036328961U, // <u,0,6,7>: Cost 1 ins RHS, lane 1
     924008604U,  // <u,0,6,u>: Cost 1 vtrnl RHS, LHS
     1906900992U, // <u,0,7,0>: Cost 2 vzipr RHS, <0,0,0,0>
     1906902694U, // <u,0,7,1>: Cost 2 vzipr RHS, <2,3,0,1>
     1906901156U, // <u,0,7,2>: Cost 2 vzipr RHS, <0,2,0,2>
-    2573421338U, // <u,0,7,3>: Cost 3 vext1 <3,u,0,7>, <3,u,0,7>
-    2567449910U, // <u,0,7,4>: Cost 3 vext1 <2,u,0,7>, RHS
+    2116083713U, // <u,0,7,3>: Cost 2 ins <5,u,7,3>, lane 1
+    2116091905U, // <u,0,7,4>: Cost 2 ins <5,u,7,4>, lane 1
     2980643874U, // <u,0,7,5>: Cost 3 vzipr RHS, <1,4,0,5>
-    2980643146U, // <u,0,7,6>: Cost 3 vzipr RHS, <0,4,0,6>
-    2980644686U, // <u,0,7,7>: Cost 3 vzipr RHS, <2,5,0,7>
+    2116108289U, // <u,0,7,6>: Cost 2 ins <5,u,7,6>, lane 1
+    2116116481U, // <u,0,7,7>: Cost 2 ins <5,u,7,7>, lane 1
     1906901162U, // <u,0,7,u>: Cost 2 vzipr RHS, <0,2,0,u>
     135053414U,  // <u,0,u,0>: Cost 1 vdup0 LHS
     791453798U,  // <u,0,u,1>: Cost 1 vzipl LHS, LHS
     537748125U,  // <u,0,u,2>: Cost 1 vext3 LHS, LHS
-    1756332701U, // <u,0,u,3>: Cost 2 vuzpr <1,u,3,0>, LHS
+    1012113409U, // <u,0,u,3>: Cost 1 ins LHS, lane 1
     1611932338U, // <u,0,u,4>: Cost 2 vext3 LHS, <0,u,4,6>
     1551399066U, // <u,0,u,5>: Cost 2 vext2 <1,2,u,0>, RHS
     1517605798U, // <u,0,u,6>: Cost 2 vext1 <6,u,0,u>, <6,u,0,u>
-    1756335657U, // <u,0,u,7>: Cost 2 vuzpr <1,u,3,0>, RHS
+    1036328961U, // <u,0,u,7>: Cost 1 ins RHS, lane 1
     537748179U,  // <u,0,u,u>: Cost 1 vext3 LHS, LHS
     1818149622U, // <u,1,0,0>: Cost 2 vzipl <1,0,3,2>, <1,0,3,2>
     1549410406U, // <u,1,0,1>: Cost 2 vext2 <0,u,u,1>, LHS
     1725587558U, // <u,1,0,2>: Cost 2 vuzpl <u,0,1,2>, LHS
-    1611490038U, // <u,1,0,3>: Cost 2 vext3 LHS, <1,0,3,2>
-    2555522358U, // <u,1,0,4>: Cost 3 vext1 <0,u,1,0>, RHS
-    2960679250U, // <u,1,0,5>: Cost 3 vzipr <1,2,u,0>, <0,4,1,5>
-    2859726551U, // <u,1,0,6>: Cost 3 vuzpr <6,u,0,1>, <u,0,1,6>
-    2597328512U, // <u,1,0,7>: Cost 3 vext1 <7,u,1,0>, <7,u,1,0>
-    1611490083U, // <u,1,0,u>: Cost 2 vext3 LHS, <1,0,u,2>
+    1007910914U, // <u,1,0,3>: Cost 1 ins LHS, lane 2
+    2081660930U, // <u,1,0,4>: Cost 2 ins <0,1,u,4>, lane 2
+    2081669122U, // <u,1,0,5>: Cost 2 ins <0,1,u,5>, lane 2
+    2081677314U, // <u,1,0,6>: Cost 2 ins <0,1,u,6>, lane 2
+    2081685506U, // <u,1,0,7>: Cost 2 ins <0,1,u,7>, lane 2
+    1007910914U, // <u,1,0,u>: Cost 1 ins LHS, lane 2
     1481786002U, // <u,1,1,0>: Cost 2 vext1 <0,u,1,1>, <0,u,1,1>
     202162278U,  // <u,1,1,1>: Cost 1 vdup1 LHS
     1860551574U, // <u,1,1,2>: Cost 2 vzipl LHS, <1,2,3,0>
-    1611490120U, // <u,1,1,3>: Cost 2 vext3 LHS, <1,1,3,3>
+    1007910914U, // <u,1,1,3>: Cost 1 ins LHS, lane 2
     1481788726U, // <u,1,1,4>: Cost 2 vext1 <0,u,1,1>, RHS
     1860551824U, // <u,1,1,5>: Cost 2 vzipl LHS, <1,5,3,7>
-    2993870470U, // <u,1,1,6>: Cost 3 vzipr <6,7,u,1>, <7,u,1,6>
-    2823968589U, // <u,1,1,7>: Cost 3 vuzpr <0,u,1,1>, <u,1,5,7>
-    202162278U,  // <u,1,1,u>: Cost 1 vdup1 LHS
-    1499709542U, // <u,1,2,0>: Cost 2 vext1 <3,u,1,2>, LHS
-    1994769204U, // <u,1,2,1>: Cost 2 vtrnl LHS, <1,1,1,1>
-    1819460502U, // <u,1,2,2>: Cost 2 vzipl <1,2,3,0>, <1,2,3,0>
+    2081677314U, // <u,1,1,6>: Cost 2 ins <0,1,u,6>, lane 2
+    2081685506U, // <u,1,1,7>: Cost 2 ins <0,1,u,7>, lane 2
+    1007910914U, // <u,1,1,u>: Cost 1 ins LHS, lane 2
+    1007509507U, // <u,1,2,0>: Cost 1 ins LHS, lane 3
+    1007509507U, // <u,1,2,1>: Cost 1 ins LHS, lane 3
+    1007509507U, // <u,1,2,2>: Cost 1 ins LHS, lane 3
     835584U,     // <u,1,2,3>: Cost 0 copy LHS
-    1499712822U, // <u,1,2,4>: Cost 2 vext1 <3,u,1,2>, RHS
-    1994769408U, // <u,1,2,5>: Cost 2 vtrnl LHS, <1,3,5,7>
-    2823962828U, // <u,1,2,6>: Cost 3 vuzpr <0,u,1,1>, <0,2,4,6>
-    1523603074U, // <u,1,2,7>: Cost 2 vext1 <7,u,1,2>, <7,u,1,2>
+    1007509507U, // <u,1,2,4>: Cost 1 ins LHS, lane 3
+    1007509507U, // <u,1,2,5>: Cost 1 ins LHS, lane 3
+    1007509507U, // <u,1,2,6>: Cost 1 ins LHS, lane 3
+    1007509507U, // <u,1,2,7>: Cost 1 ins LHS, lane 3
     835584U,     // <u,1,2,u>: Cost 0 copy LHS
     1487773798U, // <u,1,3,0>: Cost 2 vext1 <1,u,1,3>, LHS
     1611490264U, // <u,1,3,1>: Cost 2 vext3 LHS, <1,3,1,3>
@@ -5967,81 +5967,81 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     945004646U,  // <u,1,3,3>: Cost 1 vtrnr LHS, LHS
     1487777078U, // <u,1,3,4>: Cost 2 vext1 <1,u,1,3>, RHS
     1611490304U, // <u,1,3,5>: Cost 2 vext3 LHS, <1,3,5,7>
-    2954068145U, // <u,1,3,6>: Cost 3 vzipr LHS, <0,2,1,6>
-    2823963648U, // <u,1,3,7>: Cost 3 vuzpr <0,u,1,1>, <1,3,5,7>
+    2087297027U, // <u,1,3,6>: Cost 2 ins <1,1,3,u>, lane 3
+    2091933697U, // <u,1,3,7>: Cost 2 ins <1,u,3,7>, lane 1
     945004651U,  // <u,1,3,u>: Cost 1 vtrnr LHS, LHS
     1567992749U, // <u,1,4,0>: Cost 2 vext2 <4,0,u,1>, <4,0,u,1>
-    2960711690U, // <u,1,4,1>: Cost 3 vzipr <1,2,u,4>, <0,0,1,1>
-    2960713878U, // <u,1,4,2>: Cost 3 vzipr <1,2,u,4>, <3,0,1,2>
-    1152386432U, // <u,1,4,3>: Cost 2 vrev <1,u,3,4>
-    2555555126U, // <u,1,4,4>: Cost 3 vext1 <0,u,1,4>, RHS
+    2081636354U, // <u,1,4,1>: Cost 2 ins <0,1,u,1>, lane 2
+    2081644546U, // <u,1,4,2>: Cost 2 ins <0,1,u,2>, lane 2
+    1007910914U, // <u,1,4,3>: Cost 1 ins LHS, lane 2
+    2081660930U, // <u,1,4,4>: Cost 2 ins <0,1,u,4>, lane 2
     1549413686U, // <u,1,4,5>: Cost 2 vext2 <0,u,u,1>, RHS
     1725590838U, // <u,1,4,6>: Cost 2 vuzpl <u,0,1,2>, RHS
-    2646380004U, // <u,1,4,7>: Cost 3 vext2 <4,7,u,1>, <4,7,u,1>
-    1549413929U, // <u,1,4,u>: Cost 2 vext2 <0,u,u,1>, RHS
+    2081685506U, // <u,1,4,7>: Cost 2 ins <0,1,u,7>, lane 2
+    1007910914U, // <u,1,4,u>: Cost 1 ins LHS, lane 2
     1481818774U, // <u,1,5,0>: Cost 2 vext1 <0,u,1,5>, <0,u,1,5>
     1863533364U, // <u,1,5,1>: Cost 2 vzipl RHS, <1,1,1,1>
     1863533462U, // <u,1,5,2>: Cost 2 vzipl RHS, <1,2,3,0>
-    1611490448U, // <u,1,5,3>: Cost 2 vext3 LHS, <1,5,3,7>
+    1007910914U, // <u,1,5,3>: Cost 1 ins LHS, lane 2
     1481821494U, // <u,1,5,4>: Cost 2 vext1 <0,u,1,5>, RHS
     1863533712U, // <u,1,5,5>: Cost 2 vzipl RHS, <1,5,3,7>
-    2848148771U, // <u,1,5,6>: Cost 3 vuzpr <4,u,5,1>, <4,5,4,6>
+    2104016897U, // <u,1,5,6>: Cost 2 ins <3,u,5,6>, lane 1
     1750224182U, // <u,1,5,7>: Cost 2 vuzpr <0,u,1,1>, RHS
-    1611932861U, // <u,1,5,u>: Cost 2 vext3 LHS, <1,5,u,7>
-    2555568791U, // <u,1,6,0>: Cost 3 vext1 <0,u,1,6>, <0,u,1,6>
+    1007910914U, // <u,1,5,u>: Cost 1 ins LHS, lane 2
+    2081628162U, // <u,1,6,0>: Cost 2 ins <0,1,u,0>, lane 2
     1997751092U, // <u,1,6,1>: Cost 2 vtrnl RHS, <1,1,1,1>
-    2954758294U, // <u,1,6,2>: Cost 3 vzipr <0,2,u,6>, <3,0,1,2>
-    2018771046U, // <u,1,6,3>: Cost 2 vtrnr <0,u,2,6>, LHS
-    2555571510U, // <u,1,6,4>: Cost 3 vext1 <0,u,1,6>, RHS
+    2110029825U, // <u,1,6,2>: Cost 2 ins <4,u,6,2>, lane 1
+    1007910914U, // <u,1,6,3>: Cost 1 ins LHS, lane 2
+    2081660930U, // <u,1,6,4>: Cost 2 ins <0,1,u,4>, lane 2
     1997751296U, // <u,1,6,5>: Cost 2 vtrnl RHS, <1,3,5,7>
-    2848148852U, // <u,1,6,6>: Cost 3 vuzpr <4,u,5,1>, <4,6,4,6>
-    1584583574U, // <u,1,6,7>: Cost 2 vext2 <6,7,u,1>, <6,7,u,1>
-    2018771051U, // <u,1,6,u>: Cost 2 vtrnr <0,u,2,6>, LHS
-    2561548390U, // <u,1,7,0>: Cost 3 vext1 <1,u,1,7>, LHS
+    2110062593U, // <u,1,6,6>: Cost 2 ins <4,u,6,6>, lane 1
+    1036328961U, // <u,1,6,7>: Cost 1 ins RHS, lane 1
+    1007910914U, // <u,1,6,u>: Cost 1 ins LHS, lane 2
+    2116059137U, // <u,1,7,0>: Cost 2 ins <5,u,7,0>, lane 1
     1906901002U, // <u,1,7,1>: Cost 2 vzipr RHS, <0,0,1,1>
     1906903190U, // <u,1,7,2>: Cost 2 vzipr RHS, <3,0,1,2>
     969220198U,  // <u,1,7,3>: Cost 1 vtrnr RHS, LHS
-    2561551670U, // <u,1,7,4>: Cost 3 vext1 <1,u,1,7>, RHS
+    2116091905U, // <u,1,7,4>: Cost 2 ins <5,u,7,4>, lane 1
     1152558485U, // <u,1,7,5>: Cost 2 vrev <1,u,5,7>
-    2226374046U, // <u,1,7,6>: Cost 3 vrev <1,u,6,7>
-    2980643318U, // <u,1,7,7>: Cost 3 vzipr RHS, <0,6,1,7>
+    2116108289U, // <u,1,7,6>: Cost 2 ins <5,u,7,6>, lane 1
+    2116116481U, // <u,1,7,7>: Cost 2 ins <5,u,7,7>, lane 1
     969220203U,  // <u,1,7,u>: Cost 1 vtrnr RHS, LHS
-    1481843353U, // <u,1,u,0>: Cost 2 vext1 <0,u,1,u>, <0,u,1,u>
-    202162278U,  // <u,1,u,1>: Cost 1 vdup1 LHS
-    1880369302U, // <u,1,u,2>: Cost 2 vzipr LHS, <3,0,1,2>
+    1007509507U, // <u,1,u,0>: Cost 1 ins LHS, lane 3
+    1007509507U, // <u,1,u,1>: Cost 1 ins LHS, lane 3
+    1007509507U, // <u,1,u,2>: Cost 1 ins LHS, lane 3
     835584U,     // <u,1,u,3>: Cost 0 copy LHS
-    1481846070U, // <u,1,u,4>: Cost 2 vext1 <0,u,1,u>, RHS
-    1611933077U, // <u,1,u,5>: Cost 2 vext3 LHS, <1,u,5,7>
-    1725593754U, // <u,1,u,6>: Cost 2 vuzpl <u,0,1,2>, RHS
-    1750224425U, // <u,1,u,7>: Cost 2 vuzpr <0,u,1,1>, RHS
+    1007509507U, // <u,1,u,4>: Cost 1 ins LHS, lane 3
+    1007509507U, // <u,1,u,5>: Cost 1 ins LHS, lane 3
+    1007509507U, // <u,1,u,6>: Cost 1 ins LHS, lane 3
+    1007509507U, // <u,1,u,7>: Cost 1 ins LHS, lane 3
     835584U,     // <u,1,u,u>: Cost 0 copy LHS
     1726332928U, // <u,2,0,0>: Cost 2 vuzpl LHS, <0,0,0,0>
     1545437286U, // <u,2,0,1>: Cost 2 vext2 <0,2,u,2>, LHS
     652591206U,  // <u,2,0,2>: Cost 1 vuzpl LHS, LHS
     1886937190U, // <u,2,0,3>: Cost 2 vzipr <1,2,u,0>, LHS
     1726333132U, // <u,2,0,4>: Cost 2 vuzpl LHS, <0,2,4,6>
-    2696734183U, // <u,2,0,5>: Cost 3 vext3 <2,0,5,u>, <2,0,5,u>
-    2689877484U, // <u,2,0,6>: Cost 3 vext3 LHS, <2,0,6,4>
-    2659656273U, // <u,2,0,7>: Cost 3 vext2 <7,0,u,2>, <0,7,2,u>
+    2081767427U, // <u,2,0,5>: Cost 2 ins <0,2,0,u>, lane 3
+    2082340866U, // <u,2,0,6>: Cost 2 ins <0,2,u,6>, lane 2
+    2081767427U, // <u,2,0,7>: Cost 2 ins <0,2,0,u>, lane 3
     652591260U,  // <u,2,0,u>: Cost 1 vuzpl LHS, LHS
     1550082851U, // <u,2,1,0>: Cost 2 vext2 <1,0,u,2>, <1,0,u,2>
     1726333748U, // <u,2,1,1>: Cost 2 vuzpl LHS, <1,1,1,1>
     1860552296U, // <u,2,1,2>: Cost 2 vzipl LHS, <2,2,2,2>
     1750155366U, // <u,2,1,3>: Cost 2 vuzpr <0,u,0,2>, LHS
-    3092399002U, // <u,2,1,4>: Cost 3 vtrnr <0,u,1,1>, <1,2,3,4>
+    2088296450U, // <u,2,1,4>: Cost 2 ins <1,2,u,4>, lane 2
     1726333952U, // <u,2,1,5>: Cost 2 vuzpl LHS, <1,3,5,7>
     1860552634U, // <u,2,1,6>: Cost 2 vzipl LHS, <2,6,3,7>
-    2865780530U, // <u,2,1,7>: Cost 3 vuzpr <7,u,1,2>, <u,1,2,7>
+    2109702145U, // <u,2,1,7>: Cost 2 ins <4,u,1,7>, lane 1
     1750155371U, // <u,2,1,u>: Cost 2 vuzpr <0,u,0,2>, LHS
     1481867932U, // <u,2,2,0>: Cost 2 vext1 <0,u,2,2>, <0,u,2,2>
-    2555609846U, // <u,2,2,1>: Cost 3 vext1 <0,u,2,2>, <1,0,3,2>
+    2085838849U, // <u,2,2,1>: Cost 2 ins <0,u,2,1>, lane 1
     269271142U,  // <u,2,2,2>: Cost 1 vdup2 LHS
-    1611490930U, // <u,2,2,3>: Cost 2 vext3 LHS, <2,2,3,3>
+    1012113409U, // <u,2,2,3>: Cost 1 ins LHS, lane 1
     1481870646U, // <u,2,2,4>: Cost 2 vext1 <0,u,2,2>, RHS
-    2824046205U, // <u,2,2,5>: Cost 3 vuzpr <0,u,2,2>, <2,2,4,5>
-    2619180986U, // <u,2,2,6>: Cost 3 vext2 <0,2,u,2>, <2,6,3,7>
-    2954729671U, // <u,2,2,7>: Cost 3 vzipr <0,2,u,2>, <u,6,2,7>
-    269271142U,  // <u,2,2,u>: Cost 1 vdup2 LHS
+    2085871617U, // <u,2,2,5>: Cost 2 ins <0,u,2,5>, lane 1
+    2085879809U, // <u,2,2,6>: Cost 2 ins <0,u,2,6>, lane 1
+    2085888001U, // <u,2,2,7>: Cost 2 ins <0,u,2,7>, lane 1
+    1012113409U, // <u,2,2,u>: Cost 1 ins LHS, lane 1
     408134301U,  // <u,2,3,0>: Cost 1 vext1 LHS, LHS
     1481876214U, // <u,2,3,1>: Cost 2 vext1 LHS, <1,0,3,2>
     1880326164U, // <u,2,3,2>: Cost 2 vzipr LHS, <0,0,2,2>
@@ -6052,15 +6052,15 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1529656314U, // <u,2,3,7>: Cost 2 vext1 LHS, <7,0,1,2>
     806584427U,  // <u,2,3,u>: Cost 1 vzipr LHS, LHS
     1726336332U, // <u,2,4,0>: Cost 2 vuzpl LHS, <4,6,0,2>
-    2561598839U, // <u,2,4,1>: Cost 3 vext1 <1,u,2,4>, <1,u,2,4>
-    2555627214U, // <u,2,4,2>: Cost 3 vext1 <0,u,2,4>, <2,3,4,5>
+    2082062339U, // <u,2,4,1>: Cost 2 ins <0,2,4,u>, lane 3
+    2082308098U, // <u,2,4,2>: Cost 2 ins <0,2,u,2>, lane 2
     1886969958U, // <u,2,4,3>: Cost 2 vzipr <1,2,u,4>, LHS
     1726336208U, // <u,2,4,4>: Cost 2 vuzpl LHS, <4,4,4,4>
     1545440566U, // <u,2,4,5>: Cost 2 vext2 <0,2,u,2>, RHS
     652594486U,  // <u,2,4,6>: Cost 1 vuzpl LHS, RHS
-    2659659225U, // <u,2,4,7>: Cost 3 vext2 <7,0,u,2>, <4,7,6,u>
+    2082062339U, // <u,2,4,7>: Cost 2 ins <0,2,4,u>, lane 3
     652594504U,  // <u,2,4,u>: Cost 1 vuzpl LHS, RHS
-    3092431766U, // <u,2,5,0>: Cost 3 vtrnr <0,u,1,5>, <1,2,3,0>
+    2088263682U, // <u,2,5,0>: Cost 2 ins <1,2,u,0>, lane 2
     1726337152U, // <u,2,5,1>: Cost 2 vuzpl LHS, <5,7,1,3>
     1863534184U, // <u,2,5,2>: Cost 2 vzipl RHS, <2,2,2,2>
     1884987494U, // <u,2,5,3>: Cost 2 vzipr <0,u,u,5>, LHS
@@ -6070,14 +6070,14 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1750158646U, // <u,2,5,7>: Cost 2 vuzpr <0,u,0,2>, RHS
     1750158647U, // <u,2,5,u>: Cost 2 vuzpr <0,u,0,2>, RHS
     1481900704U, // <u,2,6,0>: Cost 2 vext1 <0,u,2,6>, <0,u,2,6>
-    2555642614U, // <u,2,6,1>: Cost 3 vext1 <0,u,2,6>, <1,0,3,2>
+    2110021633U, // <u,2,6,1>: Cost 2 ins <4,u,6,1>, lane 1
     1997751912U, // <u,2,6,2>: Cost 2 vtrnl RHS, <2,2,2,2>
     1611491258U, // <u,2,6,3>: Cost 2 vext3 LHS, <2,6,3,7>
     1481903414U, // <u,2,6,4>: Cost 2 vext1 <0,u,2,6>, RHS
-    2689877964U, // <u,2,6,5>: Cost 3 vext3 LHS, <2,6,5,7>
+    2110054401U, // <u,2,6,5>: Cost 2 ins <4,u,6,5>, lane 1
     1726337848U, // <u,2,6,6>: Cost 2 vuzpl LHS, <6,6,6,6>
-    1726337530U, // <u,2,6,7>: Cost 2 vuzpl LHS, <6,2,7,3>
-    1611933671U, // <u,2,6,u>: Cost 2 vext3 LHS, <2,6,u,7>
+    1036328961U, // <u,2,6,7>: Cost 1 ins RHS, lane 1
+    1036328961U, // <u,2,6,u>: Cost 1 ins RHS, lane 1
     2042962838U, // <u,2,7,0>: Cost 2 vtrnr RHS, <1,2,3,0>
     1726338042U, // <u,2,7,1>: Cost 2 vuzpl LHS, <7,0,1,2>
     1906901012U, // <u,2,7,2>: Cost 2 vzipr RHS, <0,0,2,2>
@@ -6094,16 +6094,16 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     408177974U,  // <u,2,u,4>: Cost 1 vext1 LHS, RHS
     1545443482U, // <u,2,u,5>: Cost 2 vext2 <0,2,u,2>, RHS
     652597402U,  // <u,2,u,6>: Cost 1 vuzpl LHS, RHS
-    1750158889U, // <u,2,u,7>: Cost 2 vuzpr <0,u,0,2>, RHS
+    1036328961U, // <u,2,u,7>: Cost 1 ins RHS, lane 1
     806625387U,  // <u,2,u,u>: Cost 1 vzipr LHS, LHS
     1544781824U, // <u,3,0,0>: Cost 2 vext2 LHS, <0,0,0,0>
     471040156U,  // <u,3,0,1>: Cost 1 vext2 LHS, LHS
     1544781988U, // <u,3,0,2>: Cost 2 vext2 LHS, <0,2,0,2>
-    2618523900U, // <u,3,0,3>: Cost 3 vext2 LHS, <0,3,1,0>
+    2088951810U, // <u,3,0,3>: Cost 2 ins <1,3,u,3>, lane 2
     1544782162U, // <u,3,0,4>: Cost 2 vext2 LHS, <0,4,1,5>
-    3098511054U, // <u,3,0,5>: Cost 3 vtrnr <1,u,3,0>, <2,3,4,5>
-    2824052778U, // <u,3,0,6>: Cost 3 vuzpr LHS, <0,0,4,6>
-    2960680080U, // <u,3,0,7>: Cost 3 vzipr <1,2,u,0>, <1,5,3,7>
+    2094940162U, // <u,3,0,5>: Cost 2 ins <2,3,u,5>, lane 2
+    2094374915U, // <u,3,0,6>: Cost 2 ins <2,3,0,u>, lane 3
+    2088984578U, // <u,3,0,7>: Cost 2 ins <1,3,u,7>, lane 2
     471040669U,  // <u,3,0,u>: Cost 1 vext2 LHS, LHS
     1544782582U, // <u,3,1,0>: Cost 2 vext2 LHS, <1,0,3,2>
     1544782644U, // <u,3,1,1>: Cost 2 vext2 LHS, <1,1,1,1>
@@ -6111,39 +6111,39 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     676569190U,  // <u,3,1,3>: Cost 1 vuzpr LHS, LHS
     1860553218U, // <u,3,1,4>: Cost 2 vzipl LHS, <3,4,5,6>
     1544782992U, // <u,3,1,5>: Cost 2 vext2 LHS, <1,5,3,7>
-    2618524897U, // <u,3,1,6>: Cost 3 vext2 LHS, <1,6,3,7>
-    3092399104U, // <u,3,1,7>: Cost 3 vtrnr <0,u,1,1>, <1,3,5,7>
+    2088476675U, // <u,3,1,6>: Cost 2 ins <1,3,1,u>, lane 3
+    2088984578U, // <u,3,1,7>: Cost 2 ins <1,3,u,7>, lane 2
     676569195U,  // <u,3,1,u>: Cost 1 vuzpr LHS, LHS
     1750311830U, // <u,3,2,0>: Cost 2 vuzpr LHS, <1,2,3,0>
     1164167966U, // <u,3,2,1>: Cost 2 vrev <3,u,1,2>
     1544783464U, // <u,3,2,2>: Cost 2 vext2 LHS, <2,2,2,2>
-    1544783526U, // <u,3,2,3>: Cost 2 vext2 LHS, <2,3,0,1>
+    1012113409U, // <u,3,2,3>: Cost 1 ins LHS, lane 1
     1750311834U, // <u,3,2,4>: Cost 2 vuzpr LHS, <1,2,3,4>
     1994770946U, // <u,3,2,5>: Cost 2 vtrnl LHS, <3,4,5,6>
     1544783802U, // <u,3,2,6>: Cost 2 vext2 LHS, <2,6,3,7>
-    2954724496U, // <u,3,2,7>: Cost 3 vzipr <0,2,u,2>, <1,5,3,7>
-    1544783931U, // <u,3,2,u>: Cost 2 vext2 LHS, <2,u,0,1>
+    2088984578U, // <u,3,2,7>: Cost 2 ins <1,3,u,7>, lane 2
+    1012113409U, // <u,3,2,u>: Cost 1 ins LHS, lane 1
     1544784022U, // <u,3,3,0>: Cost 2 vext2 LHS, <3,0,1,2>
     1750312614U, // <u,3,3,1>: Cost 2 vuzpr LHS, <2,3,0,1>
     1880326902U, // <u,3,3,2>: Cost 2 vzipr LHS, <1,0,3,2>
     336380006U,  // <u,3,3,3>: Cost 1 vdup3 LHS
     1544784386U, // <u,3,3,4>: Cost 2 vext2 LHS, <3,4,5,6>
     1750312654U, // <u,3,3,5>: Cost 2 vuzpr LHS, <2,3,4,5>
-    2954068892U, // <u,3,3,6>: Cost 3 vzipr LHS, <1,2,3,6>
+    2100568067U, // <u,3,3,6>: Cost 2 ins <3,3,3,u>, lane 3
     1880327312U, // <u,3,3,7>: Cost 2 vzipr LHS, <1,5,3,7>
     336380006U,  // <u,3,3,u>: Cost 1 vdup3 LHS
     1487929446U, // <u,3,4,0>: Cost 2 vext1 <1,u,3,4>, LHS
     1487930752U, // <u,3,4,1>: Cost 2 vext1 <1,u,3,4>, <1,u,3,4>
-    2824053062U, // <u,3,4,2>: Cost 3 vuzpr LHS, <0,4,0,2>
-    2960712520U, // <u,3,4,3>: Cost 3 vzipr <1,2,u,4>, <1,1,3,3>
+    2094669827U, // <u,3,4,2>: Cost 2 ins <2,3,4,u>, lane 3
+    2088951810U, // <u,3,4,3>: Cost 2 ins <1,3,u,3>, lane 2
     1487932726U, // <u,3,4,4>: Cost 2 vext1 <1,u,3,4>, RHS
     471043382U,  // <u,3,4,5>: Cost 1 vext2 LHS, RHS
     1750311260U, // <u,3,4,6>: Cost 2 vuzpr LHS, <0,4,2,6>
-    2960712848U, // <u,3,4,7>: Cost 3 vzipr <1,2,u,4>, <1,5,3,7>
+    2088984578U, // <u,3,4,7>: Cost 2 ins <1,3,u,7>, lane 2
     471043625U,  // <u,3,4,u>: Cost 1 vext2 LHS, RHS
     1863534742U, // <u,3,5,0>: Cost 2 vzipl RHS, <3,0,1,2>
     1574645465U, // <u,3,5,1>: Cost 2 vext2 <5,1,u,3>, <5,1,u,3>
-    2958729974U, // <u,3,5,2>: Cost 3 vzipr <0,u,u,5>, <1,0,3,2>
+    2088771587U, // <u,3,5,2>: Cost 2 ins <1,3,5,u>, lane 3
     1863535004U, // <u,3,5,3>: Cost 2 vzipl RHS, <3,3,3,3>
     1592561606U, // <u,3,5,4>: Cost 2 vext2 LHS, <5,4,7,6>
     1592561668U, // <u,3,5,5>: Cost 2 vext2 LHS, <5,5,5,5>
@@ -6157,15 +6157,15 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1798090854U, // <u,3,6,4>: Cost 2 vuzpr LHS, <5,6,7,4>
     1164495686U, // <u,3,6,5>: Cost 2 vrev <3,u,5,6>
     1592562488U, // <u,3,6,6>: Cost 2 vext2 LHS, <6,6,6,6>
-    1750312890U, // <u,3,6,7>: Cost 2 vuzpr LHS, <2,6,3,7>
-    1750312891U, // <u,3,6,u>: Cost 2 vuzpr LHS, <2,6,3,u>
+    1036328961U, // <u,3,6,7>: Cost 1 ins RHS, lane 1
+    1036328961U, // <u,3,6,u>: Cost 1 ins RHS, lane 1
     1487954022U, // <u,3,7,0>: Cost 2 vext1 <1,u,3,7>, LHS
     1487955331U, // <u,3,7,1>: Cost 2 vext1 <1,u,3,7>, <1,u,3,7>
     1493928028U, // <u,3,7,2>: Cost 2 vext1 <2,u,3,7>, <2,u,3,7>
     1906901832U, // <u,3,7,3>: Cost 2 vzipr RHS, <1,1,3,3>
     1487957302U, // <u,3,7,4>: Cost 2 vext1 <1,u,3,7>, RHS
     2042963662U, // <u,3,7,5>: Cost 2 vtrnr RHS, <2,3,4,5>
-    2980643740U, // <u,3,7,6>: Cost 3 vzipr RHS, <1,2,3,6>
+    2116108289U, // <u,3,7,6>: Cost 2 ins <5,u,7,6>, lane 1
     1906902160U, // <u,3,7,7>: Cost 2 vzipr RHS, <1,5,3,7>
     1487959854U, // <u,3,7,u>: Cost 2 vext1 <1,u,3,7>, LHS
     1544787667U, // <u,3,u,0>: Cost 2 vext2 LHS, <u,0,1,2>
@@ -6180,192 +6180,192 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1974046028U, // <u,4,0,0>: Cost 2 vtrnl <4,6,0,2>, <4,6,0,2>
     1551425638U, // <u,4,0,1>: Cost 2 vext2 <1,2,u,4>, LHS
     1727168614U, // <u,4,0,2>: Cost 2 vuzpl <u,2,4,6>, LHS
-    2619343104U, // <u,4,0,3>: Cost 3 vext2 <0,3,1,4>, <0,3,1,4>
+    2085707777U, // <u,4,0,3>: Cost 2 ins <0,u,0,3>, lane 1
     1679392972U, // <u,4,0,4>: Cost 2 vuzpl <0,2,4,6>, <0,2,4,6>
     1638329234U, // <u,4,0,5>: Cost 2 vext3 RHS, <4,0,5,1>
     1638329244U, // <u,4,0,6>: Cost 2 vext3 RHS, <4,0,6,2>
-    2927578568U, // <u,4,0,7>: Cost 3 vzipl <7,0,1,2>, <4,7,5,0>
+    2109628417U, // <u,4,0,7>: Cost 2 ins <4,u,0,7>, lane 1
     1551426205U, // <u,4,0,u>: Cost 2 vext2 <1,2,u,4>, LHS
     1860553618U, // <u,4,1,0>: Cost 2 vzipl LHS, <4,0,5,1>
-    2625168180U, // <u,4,1,1>: Cost 3 vext2 <1,2,u,4>, <1,1,1,1>
+    2085765121U, // <u,4,1,1>: Cost 2 ins <0,u,1,1>, lane 1
     1551426503U, // <u,4,1,2>: Cost 2 vext2 <1,2,u,4>, <1,2,u,4>
     1756364902U, // <u,4,1,3>: Cost 2 vuzpr <1,u,3,4>, LHS
     1860553936U, // <u,4,1,4>: Cost 2 vzipl LHS, <4,4,4,4>
     786812214U,  // <u,4,1,5>: Cost 1 vzipl LHS, RHS
     1994026294U, // <u,4,1,6>: Cost 2 vtrnl <u,0,1,2>, RHS
-    2244316716U, // <u,4,1,7>: Cost 3 vrev <4,u,7,1>
+    2083168259U, // <u,4,1,7>: Cost 2 ins <0,4,1,u>, lane 3
     786812457U,  // <u,4,1,u>: Cost 1 vzipl LHS, RHS
     1170066926U, // <u,4,2,0>: Cost 2 vrev <4,u,0,2>
-    2243882487U, // <u,4,2,1>: Cost 3 vrev <4,u,1,2>
-    2625169000U, // <u,4,2,2>: Cost 3 vext2 <1,2,u,4>, <2,2,2,2>
-    2619197134U, // <u,4,2,3>: Cost 3 vext2 <0,2,u,4>, <2,3,4,5>
+    2083241987U, // <u,4,2,1>: Cost 2 ins <0,4,2,u>, lane 3
+    2085847041U, // <u,4,2,2>: Cost 2 ins <0,u,2,2>, lane 1
+    1012113409U, // <u,4,2,3>: Cost 1 ins LHS, lane 1
     1994771664U, // <u,4,2,4>: Cost 2 vtrnl LHS, <4,4,4,4>
     1994771346U, // <u,4,2,5>: Cost 2 vtrnl LHS, <4,0,5,1>
     921029942U,  // <u,4,2,6>: Cost 1 vtrnl LHS, RHS
-    3068513674U, // <u,4,2,7>: Cost 3 vtrnl LHS, <4,6,7,1>
+    2083241987U, // <u,4,2,7>: Cost 2 ins <0,4,2,u>, lane 3
     921029960U,  // <u,4,2,u>: Cost 1 vtrnl LHS, RHS
-    3092490028U, // <u,4,3,0>: Cost 3 vtrnr LHS, <2,4,6,0>
+    2091876353U, // <u,4,3,0>: Cost 2 ins <1,u,3,0>, lane 1
     2954070192U, // <u,4,3,1>: Cost 3 vzipr LHS, <3,0,4,1>
-    2954070193U, // <u,4,3,2>: Cost 3 vzipr LHS, <3,0,4,2>
-    2625169820U, // <u,4,3,3>: Cost 3 vext2 <1,2,u,4>, <3,3,3,3>
+    2091892737U, // <u,4,3,2>: Cost 2 ins <1,u,3,2>, lane 1
+    2091900929U, // <u,4,3,3>: Cost 2 ins <1,u,3,3>, lane 1
     1928105168U, // <u,4,3,4>: Cost 2 vzipr LHS, <4,4,4,4>
     1880327886U, // <u,4,3,5>: Cost 2 vzipr LHS, <2,3,4,5>
     1880326348U, // <u,4,3,6>: Cost 2 vzipr LHS, <0,2,4,6>
-    2830107648U, // <u,4,3,7>: Cost 3 vuzpr <1,u,3,4>, <1,3,5,7>
+    2091933697U, // <u,4,3,7>: Cost 2 ins <1,u,3,7>, lane 1
     1880326350U, // <u,4,3,u>: Cost 2 vzipr LHS, <0,2,4,u>
     1505919078U, // <u,4,4,0>: Cost 2 vext1 <4,u,4,4>, LHS
-    2960713823U, // <u,4,4,1>: Cost 3 vzipr <1,2,u,4>, <2,u,4,1>
-    2567719010U, // <u,4,4,2>: Cost 3 vext1 <2,u,4,4>, <2,u,4,4>
-    2960717713U, // <u,4,4,3>: Cost 3 vzipr <1,2,u,4>, <u,2,4,3>
+    2107277315U, // <u,4,4,1>: Cost 2 ins <4,4,4,u>, lane 3
+    2107277315U, // <u,4,4,2>: Cost 2 ins <4,4,4,u>, lane 3
+    2086002689U, // <u,4,4,3>: Cost 2 ins <0,u,4,3>, lane 1
     161926454U,  // <u,4,4,4>: Cost 1 vdup0 RHS
     1551428918U, // <u,4,4,5>: Cost 2 vext2 <1,2,u,4>, RHS
     1638329572U, // <u,4,4,6>: Cost 2 vext3 RHS, <4,4,6,6>
-    2960718041U, // <u,4,4,7>: Cost 3 vzipr <1,2,u,4>, <u,6,4,7>
+    2109923329U, // <u,4,4,7>: Cost 2 ins <4,u,4,7>, lane 1
     161926454U,  // <u,4,4,u>: Cost 1 vdup0 RHS
     1493983334U, // <u,4,5,0>: Cost 2 vext1 <2,u,4,5>, LHS
-    2689879301U, // <u,4,5,1>: Cost 3 vext3 LHS, <4,5,1,3>
+    2101379075U, // <u,4,5,1>: Cost 2 ins <3,4,5,u>, lane 3
     1493985379U, // <u,4,5,2>: Cost 2 vext1 <2,u,4,5>, <2,u,4,5>
-    2567727254U, // <u,4,5,3>: Cost 3 vext1 <2,u,4,5>, <3,0,1,2>
+    2101379075U, // <u,4,5,3>: Cost 2 ins <3,4,5,u>, lane 3
     1493986614U, // <u,4,5,4>: Cost 2 vext1 <2,u,4,5>, RHS
     789794102U,  // <u,4,5,5>: Cost 1 vzipl RHS, RHS
     537750838U,  // <u,4,5,6>: Cost 1 vext3 LHS, RHS
     1756368182U, // <u,4,5,7>: Cost 2 vuzpr <1,u,3,4>, RHS
     537750856U,  // <u,4,5,u>: Cost 1 vext3 LHS, RHS
     1482048178U, // <u,4,6,0>: Cost 2 vext1 <0,u,4,6>, <0,u,4,6>
-    2689879382U, // <u,4,6,1>: Cost 3 vext3 LHS, <4,6,1,3>
-    2555790952U, // <u,4,6,2>: Cost 3 vext1 <0,u,4,6>, <2,2,2,2>
-    2555791510U, // <u,4,6,3>: Cost 3 vext1 <0,u,4,6>, <3,0,1,2>
+    2107424771U, // <u,4,6,1>: Cost 2 ins <4,4,6,u>, lane 3
+    2110029825U, // <u,4,6,2>: Cost 2 ins <4,u,6,2>, lane 1
+    2107424771U, // <u,4,6,3>: Cost 2 ins <4,4,6,u>, lane 3
     1482050870U, // <u,4,6,4>: Cost 2 vext1 <0,u,4,6>, RHS
     1997753234U, // <u,4,6,5>: Cost 2 vtrnl RHS, <4,0,5,1>
     924011830U,  // <u,4,6,6>: Cost 1 vtrnl RHS, RHS
-    2830108602U, // <u,4,6,7>: Cost 3 vuzpr <1,u,3,4>, <2,6,3,7>
+    1036328961U, // <u,4,6,7>: Cost 1 ins RHS, lane 1
     924011848U,  // <u,4,6,u>: Cost 1 vtrnl RHS, RHS
-    2567741542U, // <u,4,7,0>: Cost 3 vext1 <2,u,4,7>, LHS
-    2567742362U, // <u,4,7,1>: Cost 3 vext1 <2,u,4,7>, <1,2,3,4>
-    2567743589U, // <u,4,7,2>: Cost 3 vext1 <2,u,4,7>, <2,u,4,7>
-    2573716286U, // <u,4,7,3>: Cost 3 vext1 <3,u,4,7>, <3,u,4,7>
+    2116059137U, // <u,4,7,0>: Cost 2 ins <5,u,7,0>, lane 1
+    2113470467U, // <u,4,7,1>: Cost 2 ins <5,4,7,u>, lane 3
+    2113470467U, // <u,4,7,2>: Cost 2 ins <5,4,7,u>, lane 3
+    2116083713U, // <u,4,7,3>: Cost 2 ins <5,u,7,3>, lane 1
     1906904272U, // <u,4,7,4>: Cost 2 vzipr RHS, <4,4,4,4>
     1906902734U, // <u,4,7,5>: Cost 2 vzipr RHS, <2,3,4,5>
     96808489U,   // <u,4,7,6>: Cost 1 vrev RHS
-    2980644722U, // <u,4,7,7>: Cost 3 vzipr RHS, <2,5,4,7>
+    2116116481U, // <u,4,7,7>: Cost 2 ins <5,u,7,7>, lane 1
     96955963U,   // <u,4,7,u>: Cost 1 vrev RHS
     1482064564U, // <u,4,u,0>: Cost 2 vext1 <0,u,4,u>, <0,u,4,u>
     1551431470U, // <u,4,u,1>: Cost 2 vext2 <1,2,u,4>, LHS
     1494009958U, // <u,4,u,2>: Cost 2 vext1 <2,u,4,u>, <2,u,4,u>
-    1756365469U, // <u,4,u,3>: Cost 2 vuzpr <1,u,3,4>, LHS
+    1012113409U, // <u,4,u,3>: Cost 1 ins LHS, lane 1
     161926454U,  // <u,4,u,4>: Cost 1 vdup0 RHS
     791457078U,  // <u,4,u,5>: Cost 1 vzipl LHS, RHS
     537751081U,  // <u,4,u,6>: Cost 1 vext3 LHS, RHS
-    1756368425U, // <u,4,u,7>: Cost 2 vuzpr <1,u,3,4>, RHS
+    1036328961U, // <u,4,u,7>: Cost 1 ins RHS, lane 1
     537751099U,  // <u,4,u,u>: Cost 1 vext3 LHS, RHS
-    2823995392U, // <u,5,0,0>: Cost 3 vuzpr <0,u,1,5>, <0,0,0,0>
+    2085683201U, // <u,5,0,0>: Cost 2 ins <0,u,0,0>, lane 1
     1549443174U, // <u,5,0,1>: Cost 2 vext2 <0,u,u,5>, LHS
     1727914086U, // <u,5,0,2>: Cost 2 vuzpl <u,3,5,7>, LHS
-    2619867456U, // <u,5,0,3>: Cost 3 vext2 <0,3,u,5>, <0,3,u,5>
+    2085707777U, // <u,5,0,3>: Cost 2 ins <0,u,0,3>, lane 1
     1546273106U, // <u,5,0,4>: Cost 2 vext2 <0,4,1,5>, <0,4,1,5>
-    2987224282U, // <u,5,0,5>: Cost 3 vzipr <5,6,u,0>, <4,4,5,5>
-    2960681474U, // <u,5,0,6>: Cost 3 vzipr <1,2,u,0>, <3,4,5,6>
-    2024770870U, // <u,5,0,7>: Cost 2 vtrnr <1,u,3,0>, RHS
-    1549443797U, // <u,5,0,u>: Cost 2 vext2 <0,u,u,5>, <0,u,u,5>
+    1678778497U, // <u,5,0,5>: Cost 2 vuzpl <0,1,5,3>, <0,1,5,3>
+    2108219394U, // <u,5,0,6>: Cost 2 ins <4,5,u,6>, lane 2
+    1034485762U, // <u,5,0,7>: Cost 1 ins RHS, lane 2
+    1034485762U, // <u,5,0,u>: Cost 1 ins RHS, lane 2
     1505968230U, // <u,5,1,0>: Cost 2 vext1 <4,u,5,1>, LHS
     1860554448U, // <u,5,1,1>: Cost 2 vzipl LHS, <5,1,7,3>
-    2623185814U, // <u,5,1,2>: Cost 3 vext2 <0,u,u,5>, <1,2,3,0>
+    2103689217U, // <u,5,1,2>: Cost 2 ins <3,u,1,2>, lane 1
     1750253670U, // <u,5,1,3>: Cost 2 vuzpr <0,u,1,5>, LHS
     1505971738U, // <u,5,1,4>: Cost 2 vext1 <4,u,5,1>, <4,u,5,1>
     1860554756U, // <u,5,1,5>: Cost 2 vzipl LHS, <5,5,5,5>
     1860554850U, // <u,5,1,6>: Cost 2 vzipl LHS, <5,6,7,0>
-    2018659638U, // <u,5,1,7>: Cost 2 vtrnr <0,u,1,1>, RHS
-    2018659639U, // <u,5,1,u>: Cost 2 vtrnr <0,u,1,1>, RHS
-    2823996310U, // <u,5,2,0>: Cost 3 vuzpr <0,u,1,5>, <1,2,3,0>
+    1034485762U, // <u,5,1,7>: Cost 1 ins RHS, lane 2
+    1034485762U, // <u,5,1,u>: Cost 1 ins RHS, lane 2
+    2085830657U, // <u,5,2,0>: Cost 2 ins <0,u,2,0>, lane 1
     1994772608U, // <u,5,2,1>: Cost 2 vtrnl LHS, <5,7,1,3>
-    2823995556U, // <u,5,2,2>: Cost 3 vuzpr <0,u,1,5>, <0,2,0,2>
-    1558071026U, // <u,5,2,3>: Cost 2 vext2 <2,3,u,5>, <2,3,u,5>
-    2823996314U, // <u,5,2,4>: Cost 3 vuzpr <0,u,1,5>, <1,2,3,4>
+    2085847041U, // <u,5,2,2>: Cost 2 ins <0,u,2,2>, lane 1
+    1012113409U, // <u,5,2,3>: Cost 1 ins LHS, lane 1
+    2085863425U, // <u,5,2,4>: Cost 2 ins <0,u,2,4>, lane 1
     1994772484U, // <u,5,2,5>: Cost 2 vtrnl LHS, <5,5,5,5>
-    2954725890U, // <u,5,2,6>: Cost 3 vzipr <0,2,u,2>, <3,4,5,6>
-    2018594102U, // <u,5,2,7>: Cost 2 vtrnr <0,u,0,2>, RHS
-    2018594103U, // <u,5,2,u>: Cost 2 vtrnr <0,u,0,2>, RHS
-    2958715874U, // <u,5,3,0>: Cost 3 vzipr LHS, <4,1,5,0>
+    2085879809U, // <u,5,2,6>: Cost 2 ins <0,u,2,6>, lane 1
+    1034485762U, // <u,5,2,7>: Cost 1 ins RHS, lane 2
+    1012113409U, // <u,5,2,u>: Cost 1 ins LHS, lane 1
+    2091876353U, // <u,5,3,0>: Cost 2 ins <1,u,3,0>, lane 1
     1176121553U, // <u,5,3,1>: Cost 2 vrev <5,u,1,3>
-    2631813474U, // <u,5,3,2>: Cost 3 vext2 <2,3,u,5>, <3,2,5,u>
-    2954070284U, // <u,5,3,3>: Cost 3 vzipr LHS, <3,1,5,3>
-    2619869698U, // <u,5,3,4>: Cost 3 vext2 <0,3,u,5>, <3,4,5,6>
+    2091892737U, // <u,5,3,2>: Cost 2 ins <1,u,3,2>, lane 1
+    2091900929U, // <u,5,3,3>: Cost 2 ins <1,u,3,3>, lane 1
+    2091909121U, // <u,5,3,4>: Cost 2 ins <1,u,3,4>, lane 1
     1928105178U, // <u,5,3,5>: Cost 2 vzipr LHS, <4,4,5,5>
     1880328706U, // <u,5,3,6>: Cost 2 vzipr LHS, <3,4,5,6>
     945007926U,  // <u,5,3,7>: Cost 1 vtrnr LHS, RHS
     945007927U,  // <u,5,3,u>: Cost 1 vtrnr LHS, RHS
-    2836166713U, // <u,5,4,0>: Cost 3 vuzpr <2,u,4,5>, <u,4,5,0>
-    2717011858U, // <u,5,4,1>: Cost 3 vext3 <5,4,1,u>, <5,4,1,u>
-    2836166715U, // <u,5,4,2>: Cost 3 vuzpr <2,u,4,5>, <u,4,5,2>
-    2573765444U, // <u,5,4,3>: Cost 3 vext1 <3,u,5,4>, <3,u,5,4>
+    2108170242U, // <u,5,4,0>: Cost 2 ins <4,5,u,0>, lane 2
+    2108178434U, // <u,5,4,1>: Cost 2 ins <4,5,u,1>, lane 2
+    2108186626U, // <u,5,4,2>: Cost 2 ins <4,5,u,2>, lane 2
+    2086002689U, // <u,5,4,3>: Cost 2 ins <0,u,4,3>, lane 1
     1845022662U, // <u,5,4,4>: Cost 2 vzipl <5,4,7,6>, <5,4,7,6>
     1549446454U, // <u,5,4,5>: Cost 2 vext2 <0,u,u,5>, RHS
     1727917366U, // <u,5,4,6>: Cost 2 vuzpl <u,3,5,7>, RHS
-    2024803638U, // <u,5,4,7>: Cost 2 vtrnr <1,u,3,4>, RHS
-    1549446697U, // <u,5,4,u>: Cost 2 vext2 <0,u,u,5>, RHS
+    1034485762U, // <u,5,4,7>: Cost 1 ins RHS, lane 2
+    1034485762U, // <u,5,4,u>: Cost 1 ins RHS, lane 2
     1506000998U, // <u,5,5,0>: Cost 2 vext1 <4,u,5,5>, LHS
     1863536336U, // <u,5,5,1>: Cost 2 vzipl RHS, <5,1,7,3>
-    2967358274U, // <u,5,5,2>: Cost 3 vzipr <2,3,u,5>, <3,u,5,2>
-    2824001641U, // <u,5,5,3>: Cost 3 vuzpr <0,u,1,5>, <u,5,1,3>
+    2108186626U, // <u,5,5,2>: Cost 2 ins <4,5,u,2>, lane 2
+    2086076417U, // <u,5,5,3>: Cost 2 ins <0,u,5,3>, lane 1
     1506004510U, // <u,5,5,4>: Cost 2 vext1 <4,u,5,5>, <4,u,5,5>
     229035318U,  // <u,5,5,5>: Cost 1 vdup1 RHS
     1863536738U, // <u,5,5,6>: Cost 2 vzipl RHS, <5,6,7,0>
-    1750256950U, // <u,5,5,7>: Cost 2 vuzpr <0,u,1,5>, RHS
-    229035318U,  // <u,5,5,u>: Cost 1 vdup1 RHS
-    1500037222U, // <u,5,6,0>: Cost 2 vext1 <3,u,5,6>, LHS
-    1997754496U, // <u,5,6,1>: Cost 2 vtrnl RHS, <5,7,1,3>
-    2567809133U, // <u,5,6,2>: Cost 3 vext1 <2,u,5,6>, <2,u,5,6>
-    1500040006U, // <u,5,6,3>: Cost 2 vext1 <3,u,5,6>, <3,u,5,6>
-    1500040502U, // <u,5,6,4>: Cost 2 vext1 <3,u,5,6>, RHS
-    1997754372U, // <u,5,6,5>: Cost 2 vtrnl RHS, <5,5,5,5>
-    1900038658U, // <u,5,6,6>: Cost 2 vzipr <3,4,5,6>, <3,4,5,6>
+    1034485762U, // <u,5,5,7>: Cost 1 ins RHS, lane 2
+    1034485762U, // <u,5,5,u>: Cost 1 ins RHS, lane 2
+    1034346499U, // <u,5,6,0>: Cost 1 ins RHS, lane 3
+    1034346499U, // <u,5,6,1>: Cost 1 ins RHS, lane 3
+    1034346499U, // <u,5,6,2>: Cost 1 ins RHS, lane 3
+    1034346499U, // <u,5,6,3>: Cost 1 ins RHS, lane 3
+    1034346499U, // <u,5,6,4>: Cost 1 ins RHS, lane 3
+    1034346499U, // <u,5,6,5>: Cost 1 ins RHS, lane 3
+    1034346499U, // <u,5,6,6>: Cost 1 ins RHS, lane 3
     27705344U,   // <u,5,6,7>: Cost 0 copy RHS
     27705344U,   // <u,5,6,u>: Cost 0 copy RHS
     1488101478U, // <u,5,7,0>: Cost 2 vext1 <1,u,5,7>, LHS
     1488102805U, // <u,5,7,1>: Cost 2 vext1 <1,u,5,7>, <1,u,5,7>
-    2561844840U, // <u,5,7,2>: Cost 3 vext1 <1,u,5,7>, <2,2,2,2>
-    2561845398U, // <u,5,7,3>: Cost 3 vext1 <1,u,5,7>, <3,0,1,2>
+    2114134019U, // <u,5,7,2>: Cost 2 ins <5,5,7,u>, lane 3
+    2116083713U, // <u,5,7,3>: Cost 2 ins <5,u,7,3>, lane 1
     1488104758U, // <u,5,7,4>: Cost 2 vext1 <1,u,5,7>, RHS
     1638330536U, // <u,5,7,5>: Cost 2 vext3 RHS, <5,7,5,7>
     1906903554U, // <u,5,7,6>: Cost 2 vzipr RHS, <3,4,5,6>
     969223478U,  // <u,5,7,7>: Cost 1 vtrnr RHS, RHS
     969223479U,  // <u,5,7,u>: Cost 1 vtrnr RHS, RHS
-    1488109670U, // <u,5,u,0>: Cost 2 vext1 <1,u,5,u>, LHS
-    1549449006U, // <u,5,u,1>: Cost 2 vext2 <0,u,u,5>, LHS
-    1727919918U, // <u,5,u,2>: Cost 2 vuzpl <u,3,5,7>, LHS
-    1750254237U, // <u,5,u,3>: Cost 2 vuzpr <0,u,1,5>, LHS
-    1488112950U, // <u,5,u,4>: Cost 2 vext1 <1,u,5,u>, RHS
-    229035318U,  // <u,5,u,5>: Cost 1 vdup1 RHS
-    1880369666U, // <u,5,u,6>: Cost 2 vzipr LHS, <3,4,5,6>
+    1034346499U, // <u,5,u,0>: Cost 1 ins RHS, lane 3
+    1034346499U, // <u,5,u,1>: Cost 1 ins RHS, lane 3
+    1034346499U, // <u,5,u,2>: Cost 1 ins RHS, lane 3
+    1012113409U, // <u,5,u,3>: Cost 1 ins LHS, lane 1
+    1034346499U, // <u,5,u,4>: Cost 1 ins RHS, lane 3
+    1034346499U, // <u,5,u,5>: Cost 1 ins RHS, lane 3
+    1034346499U, // <u,5,u,6>: Cost 1 ins RHS, lane 3
     27705344U,   // <u,5,u,7>: Cost 0 copy RHS
     27705344U,   // <u,5,u,u>: Cost 0 copy RHS
     1729314816U, // <u,6,0,0>: Cost 2 vuzpl RHS, <0,0,0,0>
     1545470054U, // <u,6,0,1>: Cost 2 vext2 <0,2,u,6>, LHS
     655573094U,  // <u,6,0,2>: Cost 1 vuzpl RHS, LHS
-    2255958969U, // <u,6,0,3>: Cost 3 vrev <6,u,3,0>
+    2108309507U, // <u,6,0,3>: Cost 2 ins <4,6,0,u>, lane 3
     1546797458U, // <u,6,0,4>: Cost 2 vext2 <0,4,u,6>, <0,4,u,6>
-    2585751803U, // <u,6,0,5>: Cost 3 vext1 <5,u,6,0>, <5,u,6,0>
-    2987224292U, // <u,6,0,6>: Cost 3 vzipr <5,6,u,0>, <4,4,6,6>
+    2108309507U, // <u,6,0,5>: Cost 2 ins <4,6,0,u>, lane 3
+    2108882946U, // <u,6,0,6>: Cost 2 ins <4,6,u,6>, lane 2
     1886940470U, // <u,6,0,7>: Cost 2 vzipr <1,2,u,0>, RHS
     655573148U,  // <u,6,0,u>: Cost 1 vuzpl RHS, LHS
     1182004127U, // <u,6,1,0>: Cost 2 vrev <6,u,0,1>
     1729315636U, // <u,6,1,1>: Cost 2 vuzpl RHS, <1,1,1,1>
     1860555258U, // <u,6,1,2>: Cost 2 vzipl LHS, <6,2,7,3>
     1750335590U, // <u,6,1,3>: Cost 2 vuzpr <0,u,2,6>, LHS
-    2626511979U, // <u,6,1,4>: Cost 3 vext2 <1,4,u,6>, <1,4,u,6>
+    2114838530U, // <u,6,1,4>: Cost 2 ins <5,6,u,4>, lane 2
     1729315840U, // <u,6,1,5>: Cost 2 vuzpl RHS, <1,3,5,7>
     1860555576U, // <u,6,1,6>: Cost 2 vzipl LHS, <6,6,6,6>
     1884958006U, // <u,6,1,7>: Cost 2 vzipr <0,u,u,1>, RHS
     1750335595U, // <u,6,1,u>: Cost 2 vuzpr <0,u,2,6>, LHS
     1506050150U, // <u,6,2,0>: Cost 2 vext1 <4,u,6,2>, LHS
-    2579792630U, // <u,6,2,1>: Cost 3 vext1 <4,u,6,2>, <1,0,3,2>
+    2085838849U, // <u,6,2,1>: Cost 2 ins <0,u,2,1>, lane 1
     1729316456U, // <u,6,2,2>: Cost 2 vuzpl RHS, <2,2,2,2>
-    1729316466U, // <u,6,2,3>: Cost 2 vuzpl RHS, <2,2,3,3>
+    1012113409U, // <u,6,2,3>: Cost 1 ins LHS, lane 1
     1506053668U, // <u,6,2,4>: Cost 2 vext1 <4,u,6,2>, <4,u,6,2>
-    2633148309U, // <u,6,2,5>: Cost 3 vext2 <2,5,u,6>, <2,5,u,6>
+    2085871617U, // <u,6,2,5>: Cost 2 ins <0,u,2,5>, lane 1
     1994773304U, // <u,6,2,6>: Cost 2 vtrnl LHS, <6,6,6,6>
     1880984886U, // <u,6,2,7>: Cost 2 vzipr <0,2,u,2>, RHS
-    1880984887U, // <u,6,2,u>: Cost 2 vzipr <0,2,u,2>, RHS
+    1012113409U, // <u,6,2,u>: Cost 1 ins LHS, lane 1
     2066526306U, // <u,6,3,0>: Cost 2 vtrnr LHS, <5,6,7,0>
     1729317014U, // <u,6,3,1>: Cost 2 vuzpl RHS, <3,0,1,2>
     1928104860U, // <u,6,3,2>: Cost 2 vzipr LHS, <4,0,6,2>
@@ -6376,32 +6376,32 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     806587702U,  // <u,6,3,7>: Cost 1 vzipr LHS, RHS
     806587703U,  // <u,6,3,u>: Cost 1 vzipr LHS, RHS
     1729318220U, // <u,6,4,0>: Cost 2 vuzpl RHS, <4,6,0,2>
-    2722984555U, // <u,6,4,1>: Cost 3 vext3 <6,4,1,u>, <6,4,1,u>
-    2567866484U, // <u,6,4,2>: Cost 3 vext1 <2,u,6,4>, <2,u,6,4>
-    2638458005U, // <u,6,4,3>: Cost 3 vext2 <3,4,u,6>, <4,3,6,u>
+    2108604419U, // <u,6,4,1>: Cost 2 ins <4,6,4,u>, lane 3
+    2108850178U, // <u,6,4,2>: Cost 2 ins <4,6,u,2>, lane 2
+    2108604419U, // <u,6,4,3>: Cost 2 ins <4,6,4,u>, lane 3
     1729318096U, // <u,6,4,4>: Cost 2 vuzpl RHS, <4,4,4,4>
     1545473334U, // <u,6,4,5>: Cost 2 vext2 <0,2,u,6>, RHS
     655576374U,  // <u,6,4,6>: Cost 1 vuzpl RHS, RHS
     1886973238U, // <u,6,4,7>: Cost 2 vzipr <1,2,u,4>, RHS
     655576392U,  // <u,6,4,u>: Cost 1 vuzpl RHS, RHS
-    2567872614U, // <u,6,5,0>: Cost 3 vext1 <2,u,6,5>, LHS
+    2114805762U, // <u,6,5,0>: Cost 2 ins <5,6,u,0>, lane 2
     1729319040U, // <u,6,5,1>: Cost 2 vuzpl RHS, <5,7,1,3>
     1863537146U, // <u,6,5,2>: Cost 2 vzipl RHS, <6,2,7,3>
-    2842220694U, // <u,6,5,3>: Cost 3 vuzpr <3,u,5,6>, <u,5,6,3>
+    2086076417U, // <u,6,5,3>: Cost 2 ins <0,u,5,3>, lane 1
     1576660943U, // <u,6,5,4>: Cost 2 vext2 <5,4,u,6>, <5,4,u,6>
     1729318916U, // <u,6,5,5>: Cost 2 vuzpl RHS, <5,5,5,5>
     1863537464U, // <u,6,5,6>: Cost 2 vzipl RHS, <6,6,6,6>
     1750338870U, // <u,6,5,7>: Cost 2 vuzpr <0,u,2,6>, RHS
     1750338871U, // <u,6,5,u>: Cost 2 vuzpr <0,u,2,6>, RHS
     1506082918U, // <u,6,6,0>: Cost 2 vext1 <4,u,6,6>, LHS
-    2579825398U, // <u,6,6,1>: Cost 3 vext1 <4,u,6,6>, <1,0,3,2>
-    2712072981U, // <u,6,6,2>: Cost 3 vext3 RHS, <6,6,2,7>
-    2824083642U, // <u,6,6,3>: Cost 3 vuzpr <0,u,2,6>, <u,6,1,3>
+    2110021633U, // <u,6,6,1>: Cost 2 ins <4,u,6,1>, lane 1
+    2110029825U, // <u,6,6,2>: Cost 2 ins <4,u,6,2>, lane 1
+    2086150145U, // <u,6,6,3>: Cost 2 ins <0,u,6,3>, lane 1
     1506086440U, // <u,6,6,4>: Cost 2 vext1 <4,u,6,6>, <4,u,6,6>
-    2579828432U, // <u,6,6,5>: Cost 3 vext1 <4,u,6,6>, <5,1,7,3>
+    2110054401U, // <u,6,6,5>: Cost 2 ins <4,u,6,5>, lane 1
     296144182U,  // <u,6,6,6>: Cost 1 vdup2 RHS
-    1881017654U, // <u,6,6,7>: Cost 2 vzipr <0,2,u,6>, RHS
-    296144182U,  // <u,6,6,u>: Cost 1 vdup2 RHS
+    1036328961U, // <u,6,6,7>: Cost 1 ins RHS, lane 1
+    1036328961U, // <u,6,6,u>: Cost 1 ins RHS, lane 1
     432349286U,  // <u,6,7,0>: Cost 1 vext1 RHS, LHS
     1506091766U, // <u,6,7,1>: Cost 2 vext1 RHS, <1,0,3,2>
     1906903964U, // <u,6,7,2>: Cost 2 vzipr RHS, <4,0,6,2>
@@ -6414,7 +6414,7 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     432357478U,  // <u,6,u,0>: Cost 1 vext1 RHS, LHS
     1545475886U, // <u,6,u,1>: Cost 2 vext2 <0,2,u,6>, LHS
     655578926U,  // <u,6,u,2>: Cost 1 vuzpl RHS, LHS
-    1750336157U, // <u,6,u,3>: Cost 2 vuzpr <0,u,2,6>, LHS
+    1012113409U, // <u,6,u,3>: Cost 1 ins LHS, lane 1
     432361002U,  // <u,6,u,4>: Cost 1 vext1 RHS, RHS
     1545476250U, // <u,6,u,5>: Cost 2 vext2 <0,2,u,6>, RHS
     655579290U,  // <u,6,u,6>: Cost 1 vuzpl RHS, RHS
@@ -6423,11 +6423,11 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1571356672U, // <u,7,0,0>: Cost 2 vext2 RHS, <0,0,0,0>
     497614950U,  // <u,7,0,1>: Cost 1 vext2 RHS, LHS
     1571356836U, // <u,7,0,2>: Cost 2 vext2 RHS, <0,2,0,2>
-    2573880146U, // <u,7,0,3>: Cost 3 vext1 <3,u,7,0>, <3,u,7,0>
+    2115493890U, // <u,7,0,3>: Cost 2 ins <5,7,u,3>, lane 2
     1571357010U, // <u,7,0,4>: Cost 2 vext2 RHS, <0,4,1,5>
     1512083716U, // <u,7,0,5>: Cost 2 vext1 <5,u,7,0>, <5,u,7,0>
-    2621874741U, // <u,7,0,6>: Cost 3 vext2 <0,6,u,7>, <0,6,u,7>
-    2848269798U, // <u,7,0,7>: Cost 3 vuzpr RHS, <2,0,5,7>
+    2120916995U, // <u,7,0,6>: Cost 2 ins <6,7,0,u>, lane 3
+    2115526658U, // <u,7,0,7>: Cost 2 ins <5,7,u,7>, lane 2
     497615517U,  // <u,7,0,u>: Cost 1 vext2 RHS, LHS
     1571357430U, // <u,7,1,0>: Cost 2 vext2 RHS, <1,0,3,2>
     1571357492U, // <u,7,1,1>: Cost 2 vext2 RHS, <1,1,1,1>
@@ -6435,21 +6435,21 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     700784742U,  // <u,7,1,3>: Cost 1 vuzpr RHS, LHS
     1860556134U, // <u,7,1,4>: Cost 2 vzipl LHS, <7,4,5,6>
     1553441981U, // <u,7,1,5>: Cost 2 vext2 <1,5,u,7>, <1,5,u,7>
-    2627847438U, // <u,7,1,6>: Cost 3 vext2 <1,6,u,7>, <1,6,u,7>
+    2115018755U, // <u,7,1,6>: Cost 2 ins <5,7,1,u>, lane 3
     1860556396U, // <u,7,1,7>: Cost 2 vzipl LHS, <7,7,7,7>
     700784747U,  // <u,7,1,u>: Cost 1 vuzpr RHS, LHS
     1774527382U, // <u,7,2,0>: Cost 2 vuzpr RHS, <1,2,3,0>
     1188058754U, // <u,7,2,1>: Cost 2 vrev <7,u,1,2>
     1571358312U, // <u,7,2,2>: Cost 2 vext2 RHS, <2,2,2,2>
-    1571358374U, // <u,7,2,3>: Cost 2 vext2 RHS, <2,3,0,1>
+    1012113409U, // <u,7,2,3>: Cost 1 ins LHS, lane 1
     1774527386U, // <u,7,2,4>: Cost 2 vuzpr RHS, <1,2,3,4>
     1994773862U, // <u,7,2,5>: Cost 2 vtrnl LHS, <7,4,5,6>
     1560078311U, // <u,7,2,6>: Cost 2 vext2 <2,6,u,7>, <2,6,u,7>
     1994774124U, // <u,7,2,7>: Cost 2 vtrnl LHS, <7,7,7,7>
-    1561405577U, // <u,7,2,u>: Cost 2 vext2 <2,u,u,7>, <2,u,u,7>
+    1012113409U, // <u,7,2,u>: Cost 1 ins LHS, lane 1
     1571358870U, // <u,7,3,0>: Cost 2 vext2 RHS, <3,0,1,2>
     1774528166U, // <u,7,3,1>: Cost 2 vuzpr RHS, <2,3,0,1>
-    2633820523U, // <u,7,3,2>: Cost 3 vext2 <2,6,u,7>, <3,2,6,u>
+    2091892737U, // <u,7,3,2>: Cost 2 ins <1,u,3,2>, lane 1
     1571359132U, // <u,7,3,3>: Cost 2 vext2 RHS, <3,3,3,3>
     1571359234U, // <u,7,3,4>: Cost 2 vext2 RHS, <3,4,5,6>
     1774528206U, // <u,7,3,5>: Cost 2 vuzpr RHS, <2,3,4,5>
@@ -6457,18 +6457,18 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1774527488U, // <u,7,3,7>: Cost 2 vuzpr RHS, <1,3,5,7>
     1571359518U, // <u,7,3,u>: Cost 2 vext2 RHS, <3,u,1,2>
     1571359634U, // <u,7,4,0>: Cost 2 vext2 RHS, <4,0,5,1>
-    2573911067U, // <u,7,4,1>: Cost 3 vext1 <3,u,7,4>, <1,3,u,7>
-    2645101621U, // <u,7,4,2>: Cost 3 vext2 RHS, <4,2,5,2>
-    2573912918U, // <u,7,4,3>: Cost 3 vext1 <3,u,7,4>, <3,u,7,4>
+    2121449474U, // <u,7,4,1>: Cost 2 ins <6,7,u,1>, lane 2
+    2121211907U, // <u,7,4,2>: Cost 2 ins <6,7,4,u>, lane 3
+    2115493890U, // <u,7,4,3>: Cost 2 ins <5,7,u,3>, lane 2
     1571359952U, // <u,7,4,4>: Cost 2 vext2 RHS, <4,4,4,4>
     497618248U,  // <u,7,4,5>: Cost 1 vext2 RHS, RHS
     1571360076U, // <u,7,4,6>: Cost 2 vext2 RHS, <4,6,0,2>
-    2645102024U, // <u,7,4,7>: Cost 3 vext2 RHS, <4,7,5,0>
+    2115526658U, // <u,7,4,7>: Cost 2 ins <5,7,u,7>, lane 2
     497618473U,  // <u,7,4,u>: Cost 1 vext2 RHS, RHS
     1863537658U, // <u,7,5,0>: Cost 2 vzipl RHS, <7,0,1,2>
     1571360464U, // <u,7,5,1>: Cost 2 vext2 RHS, <5,1,7,3>
-    2645102334U, // <u,7,5,2>: Cost 3 vext2 RHS, <5,2,3,4>
-    2645102447U, // <u,7,5,3>: Cost 3 vext2 RHS, <5,3,7,0>
+    2115313667U, // <u,7,5,2>: Cost 2 ins <5,7,5,u>, lane 3
+    2115493890U, // <u,7,5,3>: Cost 2 ins <5,7,u,3>, lane 2
     1571360710U, // <u,7,5,4>: Cost 2 vext2 RHS, <5,4,7,6>
     1571360772U, // <u,7,5,5>: Cost 2 vext2 RHS, <5,5,5,5>
     1571360866U, // <u,7,5,6>: Cost 2 vext2 RHS, <5,6,7,0>
@@ -6477,15 +6477,15 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1774530658U, // <u,7,6,0>: Cost 2 vuzpr RHS, <5,6,7,0>
     1997755386U, // <u,7,6,1>: Cost 2 vtrnl RHS, <7,0,1,2>
     1571361274U, // <u,7,6,2>: Cost 2 vext2 RHS, <6,2,7,3>
-    2645103154U, // <u,7,6,3>: Cost 3 vext2 RHS, <6,3,4,5>
+    2115493890U, // <u,7,6,3>: Cost 2 ins <5,7,u,3>, lane 2
     1774530662U, // <u,7,6,4>: Cost 2 vuzpr RHS, <5,6,7,4>
     1188386474U, // <u,7,6,5>: Cost 2 vrev <7,u,5,6>
     1571361592U, // <u,7,6,6>: Cost 2 vext2 RHS, <6,6,6,6>
-    1571361614U, // <u,7,6,7>: Cost 2 vext2 RHS, <6,7,0,1>
-    1571361695U, // <u,7,6,u>: Cost 2 vext2 RHS, <6,u,0,1>
+    1036328961U, // <u,7,6,7>: Cost 1 ins RHS, lane 1
+    1036328961U, // <u,7,6,u>: Cost 1 ins RHS, lane 1
     1571361786U, // <u,7,7,0>: Cost 2 vext2 RHS, <7,0,1,2>
     1774531406U, // <u,7,7,1>: Cost 2 vuzpr RHS, <6,7,0,1>
-    2969367519U, // <u,7,7,2>: Cost 3 vzipr <2,6,u,7>, <6,u,7,2>
+    2127405059U, // <u,7,7,2>: Cost 2 ins <7,7,7,u>, lane 3
     1906904784U, // <u,7,7,3>: Cost 2 vzipr RHS, <5,1,7,3>
     1571362150U, // <u,7,7,4>: Cost 2 vext2 RHS, <7,4,5,6>
     1774531446U, // <u,7,7,5>: Cost 2 vuzpr RHS, <6,7,4,5>
@@ -6504,11 +6504,11 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     135053414U,  // <u,u,0,0>: Cost 1 vdup0 LHS
     471081121U,  // <u,u,0,1>: Cost 1 vext2 LHS, LHS
     653033574U,  // <u,u,0,2>: Cost 1 vuzpl LHS, LHS
-    1616140005U, // <u,u,0,3>: Cost 2 vext3 LHS, <u,0,3,2>
+    1007910914U, // <u,u,0,3>: Cost 1 ins LHS, lane 2
     1544823122U, // <u,u,0,4>: Cost 2 vext2 LHS, <0,4,1,5>
     1512157453U, // <u,u,0,5>: Cost 2 vext1 <5,u,u,0>, <5,u,u,0>
     1995282586U, // <u,u,0,6>: Cost 2 vtrnl <u,2,0,2>, RHS
-    1886940488U, // <u,u,0,7>: Cost 2 vzipr <1,2,u,0>, RHS
+    1034485762U, // <u,u,0,7>: Cost 1 ins RHS, lane 2
     471081629U,  // <u,u,0,u>: Cost 1 vext2 LHS, LHS
     1544823542U, // <u,u,1,0>: Cost 2 vext2 LHS, <1,0,3,2>
     786814766U,  // <u,u,1,1>: Cost 1 vzipl LHS, LHS
@@ -6517,16 +6517,16 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1482304822U, // <u,u,1,4>: Cost 2 vext1 <0,u,u,1>, RHS
     786815130U,  // <u,u,1,5>: Cost 1 vzipl LHS, RHS
     1518138343U, // <u,u,1,6>: Cost 2 vext1 <6,u,u,1>, <6,u,u,1>
-    2018659881U, // <u,u,1,7>: Cost 2 vtrnr <0,u,1,1>, RHS
+    1034485762U, // <u,u,1,7>: Cost 1 ins RHS, lane 2
     537753444U,  // <u,u,1,u>: Cost 1 vext3 LHS, LHS
-    1750352790U, // <u,u,2,0>: Cost 2 vuzpr LHS, <1,2,3,0>
-    1994774226U, // <u,u,2,1>: Cost 2 vtrnl LHS, <u,0,1,1>
+    1007509507U, // <u,u,2,0>: Cost 1 ins LHS, lane 3
+    1007509507U, // <u,u,2,1>: Cost 1 ins LHS, lane 3
     921032494U,  // <u,u,2,2>: Cost 1 vtrnl LHS, LHS
     835584U,     // <u,u,2,3>: Cost 0 copy LHS
-    1750352794U, // <u,u,2,4>: Cost 2 vuzpr LHS, <1,2,3,4>
-    1994774511U, // <u,u,2,5>: Cost 2 vtrnl LHS, <u,3,5,7>
+    1007509507U, // <u,u,2,4>: Cost 1 ins LHS, lane 3
+    1007509507U, // <u,u,2,5>: Cost 1 ins LHS, lane 3
     921032858U,  // <u,u,2,6>: Cost 1 vtrnl LHS, RHS
-    1880984904U, // <u,u,2,7>: Cost 2 vzipr <0,2,u,2>, RHS
+    1007509507U, // <u,u,2,7>: Cost 1 ins LHS, lane 3
     835584U,     // <u,u,2,u>: Cost 0 copy LHS
     408576723U,  // <u,u,3,0>: Cost 1 vext1 LHS, LHS
     1880327918U, // <u,u,3,1>: Cost 2 vzipr LHS, <2,3,u,1>
@@ -6540,27 +6540,27 @@ static const unsigned PerfectShuffleTable[6561 + 1] = {
     1488298086U, // <u,u,4,0>: Cost 2 vext1 <1,u,u,4>, LHS
     1488299437U, // <u,u,4,1>: Cost 2 vext1 <1,u,u,4>, <1,u,u,4>
     1659271204U, // <u,u,4,2>: Cost 2 vext3 LHS, <u,4,2,6>
-    1886970012U, // <u,u,4,3>: Cost 2 vzipr <1,2,u,4>, LHS
+    1007910914U, // <u,u,4,3>: Cost 1 ins LHS, lane 2
     161926454U,  // <u,u,4,4>: Cost 1 vdup0 RHS
     471084342U,  // <u,u,4,5>: Cost 1 vext2 LHS, RHS
     653036854U,  // <u,u,4,6>: Cost 1 vuzpl LHS, RHS
-    1886973256U, // <u,u,4,7>: Cost 2 vzipr <1,2,u,4>, RHS
+    1034485762U, // <u,u,4,7>: Cost 1 ins RHS, lane 2
     471084585U,  // <u,u,4,u>: Cost 1 vext2 LHS, RHS
     1482334933U, // <u,u,5,0>: Cost 2 vext1 <0,u,u,5>, <0,u,u,5>
     789796654U,  // <u,u,5,1>: Cost 1 vzipl RHS, LHS
     1494280327U, // <u,u,5,2>: Cost 2 vext1 <2,u,u,5>, <2,u,u,5>
-    2018689693U, // <u,u,5,3>: Cost 2 vtrnr <0,u,1,5>, LHS
+    1007910914U, // <u,u,5,3>: Cost 1 ins LHS, lane 2
     1482337590U, // <u,u,5,4>: Cost 2 vext1 <0,u,u,5>, RHS
     789797018U,  // <u,u,5,5>: Cost 1 vzipl RHS, RHS
     537753754U,  // <u,u,5,6>: Cost 1 vext3 LHS, RHS
     676613430U,  // <u,u,5,7>: Cost 1 vuzpr LHS, RHS
     537753772U,  // <u,u,5,u>: Cost 1 vext3 LHS, RHS
-    1482343126U, // <u,u,6,0>: Cost 2 vext1 <0,u,u,6>, <0,u,u,6>
-    1997756114U, // <u,u,6,1>: Cost 2 vtrnl RHS, <u,0,1,1>
+    1034346499U, // <u,u,6,0>: Cost 1 ins RHS, lane 3
+    1034346499U, // <u,u,6,1>: Cost 1 ins RHS, lane 3
     924014382U,  // <u,u,6,2>: Cost 1 vtrnl RHS, LHS
-    1611938000U, // <u,u,6,3>: Cost 2 vext3 LHS, <u,6,3,7>
-    1482345782U, // <u,u,6,4>: Cost 2 vext1 <0,u,u,6>, RHS
-    1997756150U, // <u,u,6,5>: Cost 2 vtrnl RHS, <u,0,5,1>
+    1007910914U, // <u,u,6,3>: Cost 1 ins LHS, lane 2
+    1034346499U, // <u,u,6,4>: Cost 1 ins RHS, lane 3
+    1034346499U, // <u,u,6,5>: Cost 1 ins RHS, lane 3
     924014746U,  // <u,u,6,6>: Cost 1 vtrnl RHS, RHS
     27705344U,   // <u,u,6,7>: Cost 0 copy RHS
     27705344U,   // <u,u,6,u>: Cost 0 copy RHS

diff  --git a/llvm/test/CodeGen/AArch64/arm64-dup.ll b/llvm/test/CodeGen/AArch64/arm64-dup.ll
index aa7cef9b273ef..33eabd96e8d05 100644
--- a/llvm/test/CodeGen/AArch64/arm64-dup.ll
+++ b/llvm/test/CodeGen/AArch64/arm64-dup.ll
@@ -446,10 +446,9 @@ define <4 x float> @test_perfectshuffle_dupext_v4f32(<4 x float> %a, <4 x float>
 define void @disguised_dup(<4 x float> %x, <4 x float>* %p1, <4 x float>* %p2) {
 ; CHECK-LABEL: disguised_dup:
 ; CHECK:       // %bb.0:
-; CHECK-NEXT:    uzp1.4s v1, v0, v0
-; CHECK-NEXT:    uzp2.4s v2, v0, v1
+; CHECK-NEXT:    ext.16b v1, v0, v0, #4
+; CHECK-NEXT:    mov.s v1[2], v0[0]
 ; CHECK-NEXT:    dup.4s v0, v0[0]
-; CHECK-NEXT:    uzp1.4s v1, v2, v1
 ; CHECK-NEXT:    str q1, [x0]
 ; CHECK-NEXT:    str q0, [x1]
 ; CHECK-NEXT:    ret

diff  --git a/llvm/test/CodeGen/AArch64/arm64-rev.ll b/llvm/test/CodeGen/AArch64/arm64-rev.ll
index 5f76bc4b3aa42..d4f4c26c53eea 100644
--- a/llvm/test/CodeGen/AArch64/arm64-rev.ll
+++ b/llvm/test/CodeGen/AArch64/arm64-rev.ll
@@ -559,10 +559,9 @@ define void @float_vrev64(float* nocapture %source, <4 x float>* nocapture %dest
 ; CHECK-LABEL: float_vrev64:
 ; CHECK:       // %bb.0: // %entry
 ; CHECK-NEXT:    movi.2d v0, #0000000000000000
-; CHECK-NEXT:    ldr q1, [x0]
+; CHECK-NEXT:    add x8, x0, #12
 ; CHECK-NEXT:    dup.4s v0, v0[0]
-; CHECK-NEXT:    trn2.4s v1, v1, v0
-; CHECK-NEXT:    ext.16b v0, v1, v0, #4
+; CHECK-NEXT:    ld1.s { v0 }[1], [x8]
 ; CHECK-NEXT:    str q0, [x1, #176]
 ; CHECK-NEXT:    ret
 ;

diff  --git a/llvm/test/CodeGen/AArch64/insert-extend.ll b/llvm/test/CodeGen/AArch64/insert-extend.ll
index a576bddddf3e9..8836123a86122 100644
--- a/llvm/test/CodeGen/AArch64/insert-extend.ll
+++ b/llvm/test/CodeGen/AArch64/insert-extend.ll
@@ -104,106 +104,103 @@ define i32 @large(i8* nocapture noundef readonly %p1, i32 noundef %st1, i8* noca
 ; CHECK-NEXT:    rev64 v5.4s, v2.4s
 ; CHECK-NEXT:    add v16.4s, v0.4s, v7.4s
 ; CHECK-NEXT:    add v17.4s, v3.4s, v6.4s
-; CHECK-NEXT:    add v22.4s, v1.4s, v4.4s
-; CHECK-NEXT:    uzp2 v18.4s, v17.4s, v16.4s
-; CHECK-NEXT:    uzp2 v19.4s, v16.4s, v17.4s
-; CHECK-NEXT:    add v21.4s, v2.4s, v5.4s
+; CHECK-NEXT:    sub v0.4s, v0.4s, v7.4s
 ; CHECK-NEXT:    sub v3.4s, v3.4s, v6.4s
-; CHECK-NEXT:    trn2 v6.4s, v16.4s, v17.4s
-; CHECK-NEXT:    trn2 v20.4s, v17.4s, v16.4s
+; CHECK-NEXT:    uzp2 v7.4s, v17.4s, v16.4s
+; CHECK-NEXT:    zip2 v18.4s, v0.4s, v3.4s
+; CHECK-NEXT:    zip1 v0.4s, v0.4s, v3.4s
+; CHECK-NEXT:    uzp2 v3.4s, v16.4s, v17.4s
+; CHECK-NEXT:    add v20.4s, v2.4s, v5.4s
+; CHECK-NEXT:    add v21.4s, v1.4s, v4.4s
 ; CHECK-NEXT:    sub v2.4s, v2.4s, v5.4s
 ; CHECK-NEXT:    sub v1.4s, v1.4s, v4.4s
-; CHECK-NEXT:    zip1 v4.4s, v22.4s, v21.4s
-; CHECK-NEXT:    uzp2 v17.4s, v18.4s, v17.4s
-; CHECK-NEXT:    zip2 v18.4s, v22.4s, v21.4s
-; CHECK-NEXT:    uzp2 v16.4s, v19.4s, v16.4s
-; CHECK-NEXT:    zip1 v5.4s, v1.4s, v2.4s
-; CHECK-NEXT:    sub v0.4s, v0.4s, v7.4s
+; CHECK-NEXT:    trn2 v6.4s, v16.4s, v17.4s
+; CHECK-NEXT:    trn2 v19.4s, v17.4s, v16.4s
+; CHECK-NEXT:    zip1 v4.4s, v21.4s, v20.4s
+; CHECK-NEXT:    uzp2 v5.4s, v7.4s, v17.4s
+; CHECK-NEXT:    zip2 v7.4s, v21.4s, v20.4s
+; CHECK-NEXT:    zip1 v17.4s, v1.4s, v2.4s
+; CHECK-NEXT:    uzp2 v3.4s, v3.4s, v16.4s
 ; CHECK-NEXT:    mov v6.d[1], v4.d[1]
-; CHECK-NEXT:    mov v16.d[1], v18.d[1]
-; CHECK-NEXT:    zip2 v7.4s, v0.4s, v3.4s
-; CHECK-NEXT:    ext v5.16b, v1.16b, v5.16b, #8
-; CHECK-NEXT:    zip1 v0.4s, v0.4s, v3.4s
+; CHECK-NEXT:    mov v5.d[1], v7.d[1]
+; CHECK-NEXT:    ext v16.16b, v1.16b, v17.16b, #8
+; CHECK-NEXT:    mov v3.d[1], v7.d[1]
+; CHECK-NEXT:    mov v19.d[1], v4.d[1]
 ; CHECK-NEXT:    mov v1.s[3], v2.s[2]
-; CHECK-NEXT:    sub v3.4s, v6.4s, v16.4s
-; CHECK-NEXT:    mov v17.d[1], v18.d[1]
-; CHECK-NEXT:    mov v20.d[1], v4.d[1]
-; CHECK-NEXT:    rev64 v6.4s, v3.4s
-; CHECK-NEXT:    mov v0.d[1], v5.d[1]
-; CHECK-NEXT:    mov v7.d[1], v1.d[1]
-; CHECK-NEXT:    add v2.4s, v17.4s, v20.4s
-; CHECK-NEXT:    add v5.4s, v3.4s, v6.4s
-; CHECK-NEXT:    sub v3.4s, v3.4s, v6.4s
-; CHECK-NEXT:    sub v6.4s, v0.4s, v7.4s
-; CHECK-NEXT:    add v0.4s, v7.4s, v0.4s
+; CHECK-NEXT:    mov v0.d[1], v16.d[1]
+; CHECK-NEXT:    sub v2.4s, v6.4s, v3.4s
+; CHECK-NEXT:    add v3.4s, v5.4s, v19.4s
+; CHECK-NEXT:    mov v18.d[1], v1.d[1]
+; CHECK-NEXT:    rev64 v5.4s, v3.4s
 ; CHECK-NEXT:    rev64 v4.4s, v2.4s
-; CHECK-NEXT:    rev64 v7.4s, v6.4s
-; CHECK-NEXT:    rev64 v16.4s, v0.4s
+; CHECK-NEXT:    sub v7.4s, v0.4s, v18.4s
+; CHECK-NEXT:    add v0.4s, v18.4s, v0.4s
+; CHECK-NEXT:    add v6.4s, v3.4s, v5.4s
+; CHECK-NEXT:    rev64 v16.4s, v7.4s
+; CHECK-NEXT:    rev64 v17.4s, v0.4s
+; CHECK-NEXT:    sub v3.4s, v3.4s, v5.4s
+; CHECK-NEXT:    rev64 v5.4s, v6.4s
 ; CHECK-NEXT:    add v1.4s, v2.4s, v4.4s
+; CHECK-NEXT:    add v18.4s, v7.4s, v16.4s
+; CHECK-NEXT:    add v19.4s, v0.4s, v17.4s
+; CHECK-NEXT:    sub v7.4s, v7.4s, v16.4s
+; CHECK-NEXT:    sub v0.4s, v0.4s, v17.4s
 ; CHECK-NEXT:    sub v2.4s, v2.4s, v4.4s
-; CHECK-NEXT:    ext v4.16b, v3.16b, v5.16b, #12
-; CHECK-NEXT:    add v5.4s, v6.4s, v7.4s
-; CHECK-NEXT:    add v17.4s, v0.4s, v16.4s
-; CHECK-NEXT:    sub v0.4s, v0.4s, v16.4s
-; CHECK-NEXT:    sub v6.4s, v6.4s, v7.4s
-; CHECK-NEXT:    ext v7.16b, v0.16b, v17.16b, #12
-; CHECK-NEXT:    ext v5.16b, v6.16b, v5.16b, #12
-; CHECK-NEXT:    rev64 v22.4s, v1.4s
-; CHECK-NEXT:    ext v1.16b, v1.16b, v1.16b, #4
-; CHECK-NEXT:    ext v16.16b, v4.16b, v3.16b, #4
-; CHECK-NEXT:    ext v17.16b, v4.16b, v4.16b, #8
-; CHECK-NEXT:    ext v18.16b, v7.16b, v0.16b, #4
-; CHECK-NEXT:    ext v19.16b, v7.16b, v7.16b, #8
-; CHECK-NEXT:    ext v20.16b, v5.16b, v6.16b, #4
-; CHECK-NEXT:    ext v21.16b, v5.16b, v5.16b, #8
+; CHECK-NEXT:    trn2 v4.4s, v5.4s, v3.4s
+; CHECK-NEXT:    ext v5.16b, v2.16b, v1.16b, #12
+; CHECK-NEXT:    ext v16.16b, v0.16b, v19.16b, #12
+; CHECK-NEXT:    ext v17.16b, v7.16b, v18.16b, #12
+; CHECK-NEXT:    ext v6.16b, v6.16b, v6.16b, #4
 ; CHECK-NEXT:    rev64 v5.4s, v5.4s
-; CHECK-NEXT:    rev64 v7.4s, v7.4s
-; CHECK-NEXT:    rev64 v4.4s, v4.4s
-; CHECK-NEXT:    trn2 v1.4s, v2.4s, v1.4s
-; CHECK-NEXT:    ext v16.16b, v16.16b, v17.16b, #12
-; CHECK-NEXT:    ext v17.16b, v18.16b, v19.16b, #12
-; CHECK-NEXT:    ext v18.16b, v20.16b, v21.16b, #12
-; CHECK-NEXT:    trn2 v19.4s, v22.4s, v2.4s
-; CHECK-NEXT:    ext v2.16b, v5.16b, v6.16b, #4
-; CHECK-NEXT:    ext v0.16b, v7.16b, v0.16b, #4
-; CHECK-NEXT:    ext v3.16b, v4.16b, v3.16b, #4
-; CHECK-NEXT:    ext v1.16b, v1.16b, v1.16b, #4
-; CHECK-NEXT:    add v4.4s, v18.4s, v2.4s
-; CHECK-NEXT:    add v5.4s, v17.4s, v0.4s
-; CHECK-NEXT:    add v6.4s, v16.4s, v3.4s
-; CHECK-NEXT:    add v7.4s, v19.4s, v1.4s
-; CHECK-NEXT:    sub v2.4s, v18.4s, v2.4s
-; CHECK-NEXT:    sub v0.4s, v17.4s, v0.4s
-; CHECK-NEXT:    sub v1.4s, v19.4s, v1.4s
-; CHECK-NEXT:    sub v3.4s, v16.4s, v3.4s
-; CHECK-NEXT:    mov v7.d[1], v1.d[1]
-; CHECK-NEXT:    mov v6.d[1], v3.d[1]
-; CHECK-NEXT:    mov v4.d[1], v2.d[1]
-; CHECK-NEXT:    mov v5.d[1], v0.d[1]
+; CHECK-NEXT:    rev64 v16.4s, v16.4s
+; CHECK-NEXT:    rev64 v17.4s, v17.4s
+; CHECK-NEXT:    mov v1.s[3], v2.s[3]
+; CHECK-NEXT:    mov v19.s[3], v0.s[3]
+; CHECK-NEXT:    mov v18.s[3], v7.s[3]
+; CHECK-NEXT:    ext v16.16b, v16.16b, v0.16b, #4
+; CHECK-NEXT:    ext v17.16b, v17.16b, v7.16b, #4
+; CHECK-NEXT:    ext v5.16b, v5.16b, v2.16b, #4
+; CHECK-NEXT:    trn2 v3.4s, v3.4s, v6.4s
+; CHECK-NEXT:    sub v20.4s, v19.4s, v16.4s
+; CHECK-NEXT:    sub v21.4s, v18.4s, v17.4s
+; CHECK-NEXT:    sub v6.4s, v1.4s, v5.4s
+; CHECK-NEXT:    mov v18.s[0], v7.s[0]
+; CHECK-NEXT:    mov v19.s[0], v0.s[0]
+; CHECK-NEXT:    ext v0.16b, v3.16b, v3.16b, #4
+; CHECK-NEXT:    mov v1.s[0], v2.s[0]
+; CHECK-NEXT:    add v2.4s, v18.4s, v17.4s
+; CHECK-NEXT:    add v3.4s, v19.4s, v16.4s
+; CHECK-NEXT:    add v7.4s, v4.4s, v0.4s
+; CHECK-NEXT:    sub v0.4s, v4.4s, v0.4s
+; CHECK-NEXT:    add v1.4s, v1.4s, v5.4s
+; CHECK-NEXT:    mov v7.d[1], v0.d[1]
+; CHECK-NEXT:    mov v1.d[1], v6.d[1]
+; CHECK-NEXT:    mov v2.d[1], v21.d[1]
+; CHECK-NEXT:    mov v3.d[1], v20.d[1]
 ; CHECK-NEXT:    movi v0.8h, #1
 ; CHECK-NEXT:    movi v17.2d, #0x00ffff0000ffff
-; CHECK-NEXT:    ushr v1.4s, v4.4s, #15
-; CHECK-NEXT:    ushr v2.4s, v7.4s, #15
-; CHECK-NEXT:    ushr v3.4s, v5.4s, #15
-; CHECK-NEXT:    ushr v16.4s, v6.4s, #15
-; CHECK-NEXT:    and v2.16b, v2.16b, v0.16b
+; CHECK-NEXT:    ushr v4.4s, v2.4s, #15
+; CHECK-NEXT:    ushr v5.4s, v7.4s, #15
+; CHECK-NEXT:    ushr v6.4s, v3.4s, #15
+; CHECK-NEXT:    ushr v16.4s, v1.4s, #15
+; CHECK-NEXT:    and v5.16b, v5.16b, v0.16b
 ; CHECK-NEXT:    and v16.16b, v16.16b, v0.16b
-; CHECK-NEXT:    and v3.16b, v3.16b, v0.16b
-; CHECK-NEXT:    and v0.16b, v1.16b, v0.16b
-; CHECK-NEXT:    mul v1.4s, v2.4s, v17.4s
-; CHECK-NEXT:    mul v2.4s, v16.4s, v17.4s
+; CHECK-NEXT:    and v6.16b, v6.16b, v0.16b
+; CHECK-NEXT:    and v0.16b, v4.16b, v0.16b
+; CHECK-NEXT:    mul v4.4s, v5.4s, v17.4s
+; CHECK-NEXT:    mul v5.4s, v16.4s, v17.4s
 ; CHECK-NEXT:    mul v0.4s, v0.4s, v17.4s
-; CHECK-NEXT:    mul v3.4s, v3.4s, v17.4s
-; CHECK-NEXT:    add v7.4s, v1.4s, v7.4s
-; CHECK-NEXT:    add v6.4s, v2.4s, v6.4s
-; CHECK-NEXT:    add v4.4s, v0.4s, v4.4s
-; CHECK-NEXT:    add v5.4s, v3.4s, v5.4s
-; CHECK-NEXT:    eor v0.16b, v4.16b, v0.16b
-; CHECK-NEXT:    eor v3.16b, v5.16b, v3.16b
-; CHECK-NEXT:    eor v2.16b, v6.16b, v2.16b
-; CHECK-NEXT:    eor v1.16b, v7.16b, v1.16b
-; CHECK-NEXT:    add v1.4s, v1.4s, v2.4s
-; CHECK-NEXT:    add v0.4s, v3.4s, v0.4s
+; CHECK-NEXT:    mul v6.4s, v6.4s, v17.4s
+; CHECK-NEXT:    add v7.4s, v4.4s, v7.4s
+; CHECK-NEXT:    add v1.4s, v5.4s, v1.4s
+; CHECK-NEXT:    add v2.4s, v0.4s, v2.4s
+; CHECK-NEXT:    add v3.4s, v6.4s, v3.4s
+; CHECK-NEXT:    eor v0.16b, v2.16b, v0.16b
+; CHECK-NEXT:    eor v2.16b, v3.16b, v6.16b
+; CHECK-NEXT:    eor v1.16b, v1.16b, v5.16b
+; CHECK-NEXT:    eor v3.16b, v7.16b, v4.16b
+; CHECK-NEXT:    add v1.4s, v3.4s, v1.4s
+; CHECK-NEXT:    add v0.4s, v2.4s, v0.4s
 ; CHECK-NEXT:    add v0.4s, v1.4s, v0.4s
 ; CHECK-NEXT:    addv s0, v0.4s
 ; CHECK-NEXT:    fmov w8, s0

diff  --git a/llvm/test/CodeGen/AArch64/neon-bitwise-instructions.ll b/llvm/test/CodeGen/AArch64/neon-bitwise-instructions.ll
index 535ef6473f7de..f7a3f2e9f4185 100644
--- a/llvm/test/CodeGen/AArch64/neon-bitwise-instructions.ll
+++ b/llvm/test/CodeGen/AArch64/neon-bitwise-instructions.ll
@@ -939,9 +939,11 @@ define <8 x i16> @vselect_equivalent_shuffle_v8i16_zero(<8 x i16> %a) {
 define <4 x i16> @vselect_equivalent_shuffle_v4i16(<4 x i16> %a, <4 x i16> %b) {
 ; CHECK-LABEL: vselect_equivalent_shuffle_v4i16:
 ; CHECK:       // %bb.0:
-; CHECK-NEXT:    ext v0.8b, v0.8b, v0.8b, #2
-; CHECK-NEXT:    ext v0.8b, v0.8b, v1.8b, #4
-; CHECK-NEXT:    ext v0.8b, v0.8b, v0.8b, #2
+; CHECK-NEXT:    // kill: def $d0 killed $d0 def $q0
+; CHECK-NEXT:    // kill: def $d1 killed $d1 def $q1
+; CHECK-NEXT:    mov v0.h[2], v1.h[1]
+; CHECK-NEXT:    mov v0.h[1], v1.h[0]
+; CHECK-NEXT:    // kill: def $d0 killed $d0 killed $q0
 ; CHECK-NEXT:    ret
   %c = shufflevector <4 x i16> %a, <4 x i16> %b, <4 x i32> <i32 0, i32 4, i32 5, i32 3>
   ret <4 x i16> %c
@@ -950,9 +952,8 @@ define <4 x i16> @vselect_equivalent_shuffle_v4i16(<4 x i16> %a, <4 x i16> %b) {
 define <4 x i32> @vselect_equivalent_shuffle_v4i32(<4 x i32> %a, <4 x i32> %b) {
 ; CHECK-LABEL: vselect_equivalent_shuffle_v4i32:
 ; CHECK:       // %bb.0:
-; CHECK-NEXT:    ext v0.16b, v0.16b, v0.16b, #4
-; CHECK-NEXT:    ext v0.16b, v0.16b, v1.16b, #8
-; CHECK-NEXT:    ext v0.16b, v0.16b, v0.16b, #4
+; CHECK-NEXT:    mov v0.s[1], v1.s[0]
+; CHECK-NEXT:    mov v0.s[2], v1.s[1]
 ; CHECK-NEXT:    ret
   %c = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 0, i32 4, i32 5, i32 3>
   ret <4 x i32> %c

diff  --git a/llvm/test/CodeGen/AArch64/neon-wide-splat.ll b/llvm/test/CodeGen/AArch64/neon-wide-splat.ll
index 87e0339e6e8c8..bd477888c172d 100644
--- a/llvm/test/CodeGen/AArch64/neon-wide-splat.ll
+++ b/llvm/test/CodeGen/AArch64/neon-wide-splat.ll
@@ -109,9 +109,8 @@ define <8 x i8> @shuffle_not1(<16 x i8> %v) {
 define <4 x i32> @shuffle_not2(<4 x i32> %v) {
 ; CHECK-LABEL: shuffle_not2:
 ; CHECK:       // %bb.0: // %entry
-; CHECK-NEXT:    trn1 v1.4s, v0.4s, v0.4s
-; CHECK-NEXT:    zip1 v0.4s, v0.4s, v0.4s
-; CHECK-NEXT:    zip2 v0.4s, v0.4s, v1.4s
+; CHECK-NEXT:    mov v0.s[3], v0.s[2]
+; CHECK-NEXT:    uzp2 v0.4s, v0.4s, v0.4s
 ; CHECK-NEXT:    ret
 entry:
   %res = shufflevector <4 x i32> %v, <4 x i32> undef, <4 x i32> <i32 1, i32 2, i32 1, i32 2>

diff  --git a/llvm/test/CodeGen/AArch64/shuffle-tbl34.ll b/llvm/test/CodeGen/AArch64/shuffle-tbl34.ll
index 67d567c6baf97..ceed6391239aa 100644
--- a/llvm/test/CodeGen/AArch64/shuffle-tbl34.ll
+++ b/llvm/test/CodeGen/AArch64/shuffle-tbl34.ll
@@ -517,9 +517,8 @@ define <8 x i16> @shuffle3_v4i16(<4 x i16> %a, <4 x i16> %b, <4 x i16> %c) {
 define <4 x i32> @shuffle3_v4i32(<4 x i32> %a, <4 x i32> %b, <4 x i32> %c) {
 ; CHECK-LABEL: shuffle3_v4i32:
 ; CHECK:       // %bb.0:
-; CHECK-NEXT:    uzp1 v1.4s, v0.4s, v1.4s
-; CHECK-NEXT:    uzp1 v1.4s, v0.4s, v1.4s
-; CHECK-NEXT:    ext v0.16b, v1.16b, v0.16b, #8
+; CHECK-NEXT:    zip1 v0.4s, v0.4s, v0.4s
+; CHECK-NEXT:    mov v0.s[1], v1.s[0]
 ; CHECK-NEXT:    dup v1.4s, v2.s[0]
 ; CHECK-NEXT:    mov v0.s[2], v1.s[2]
 ; CHECK-NEXT:    ret

diff  --git a/llvm/test/CodeGen/AArch64/shuffles.ll b/llvm/test/CodeGen/AArch64/shuffles.ll
index 7c9188a3311d7..d39ba96aee587 100644
--- a/llvm/test/CodeGen/AArch64/shuffles.ll
+++ b/llvm/test/CodeGen/AArch64/shuffles.ll
@@ -73,10 +73,10 @@ define <4 x i32> @test_shuf5(<16 x i32> %x, <16 x i32> %y) {
 define <4 x i32> @test1503(<4 x i32> %a, <4 x i32> %b)
 ; CHECK-LABEL: test1503:
 ; CHECK:       // %bb.0:
-; CHECK-NEXT:    ext v1.16b, v0.16b, v1.16b, #12
-; CHECK-NEXT:    zip1 v0.4s, v0.4s, v1.4s
-; CHECK-NEXT:    trn1 v0.4s, v0.4s, v1.4s
-; CHECK-NEXT:    ext v0.16b, v0.16b, v0.16b, #8
+; CHECK-NEXT:    zip1 v1.4s, v0.4s, v1.4s
+; CHECK-NEXT:    ext v1.16b, v1.16b, v0.16b, #8
+; CHECK-NEXT:    mov v1.s[3], v0.s[3]
+; CHECK-NEXT:    mov v0.16b, v1.16b
 ; CHECK-NEXT:    ret
 {
   %r = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 1, i32 5, i32 0, i32 3>
@@ -86,9 +86,9 @@ define <4 x i32> @test1503(<4 x i32> %a, <4 x i32> %b)
 define <4 x i32> @test4366(<4 x i32> %a, <4 x i32> %b)
 ; CHECK-LABEL: test4366:
 ; CHECK:       // %bb.0:
-; CHECK-NEXT:    uzp1 v1.4s, v0.4s, v1.4s
-; CHECK-NEXT:    trn2 v0.4s, v0.4s, v1.4s
-; CHECK-NEXT:    zip2 v0.4s, v1.4s, v0.4s
+; CHECK-NEXT:    trn1 v1.4s, v1.4s, v1.4s
+; CHECK-NEXT:    mov v1.s[1], v0.s[3]
+; CHECK-NEXT:    mov v0.16b, v1.16b
 ; CHECK-NEXT:    ret
 {
   %r = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 4, i32 3, i32 6, i32 6>
@@ -98,9 +98,9 @@ define <4 x i32> @test4366(<4 x i32> %a, <4 x i32> %b)
 define <4 x i32> @test7367(<4 x i32> %a, <4 x i32> %b)
 ; CHECK-LABEL: test7367:
 ; CHECK:       // %bb.0:
-; CHECK-NEXT:    trn2 v0.4s, v0.4s, v1.4s
-; CHECK-NEXT:    zip2 v0.4s, v0.4s, v1.4s
-; CHECK-NEXT:    ext v0.16b, v0.16b, v0.16b, #12
+; CHECK-NEXT:    mov v1.s[0], v1.s[3]
+; CHECK-NEXT:    mov v1.s[1], v0.s[3]
+; CHECK-NEXT:    mov v0.16b, v1.16b
 ; CHECK-NEXT:    ret
 {
   %r = shufflevector <4 x i32> %a, <4 x i32> %b, <4 x i32> <i32 7, i32 3, i32 6, i32 7>

diff  --git a/llvm/utils/PerfectShuffle/PerfectShuffle.cpp b/llvm/utils/PerfectShuffle/PerfectShuffle.cpp
index c4baa872a3588..8b68e546fd326 100644
--- a/llvm/utils/PerfectShuffle/PerfectShuffle.cpp
+++ b/llvm/utils/PerfectShuffle/PerfectShuffle.cpp
@@ -18,6 +18,10 @@
 #include <iomanip>
 #include <iostream>
 #include <vector>
+
+#define GENERATE_NEON
+#define GENERATE_NEON_INS
+
 struct Operator;
 
 // Masks are 4-nibble hex numbers.  Values 0-7 in any nibble means that it takes
@@ -143,6 +147,11 @@ struct Operator {
   }
 };
 
+#ifdef GENERATE_NEON_INS
+// Special case "insert" op identifier used below
+static Operator InsOp(0, "ins", 15, 1);
+#endif
+
 static const char *getZeroCostOpName(unsigned short Op) {
   if (ShufTab[Op].Arg0 == 0x0123)
     return "LHS";
@@ -172,6 +181,11 @@ static void PrintOperation(unsigned ValNo, unsigned short Vals[]) {
       }
   }
 
+#ifdef GENERATE_NEON_INS
+  if (ShufTab[ThisOp].Op == &InsOp) {
+    std::cerr << ", lane " << ShufTab[ThisOp].Arg1;
+  } else
+#endif
   if (!ShufTab[Vals[ValNo]].Op->isOnlyLHSOperator()) {
     std::cerr << ", ";
     if (ShufTab[ShufTab[ThisOp].Arg1].Cost == 0) {
@@ -199,6 +213,13 @@ static unsigned getNumEntered() {
 static void EvaluateOps(unsigned short Elt, unsigned short Vals[],
                         unsigned &NumVals) {
   if (ShufTab[Elt].Cost == 0) return;
+#ifdef GENERATE_NEON_INS
+  if (ShufTab[Elt].Op == &InsOp) {
+    EvaluateOps(ShufTab[Elt].Arg0, Vals, NumVals);
+    Vals[NumVals++] = Elt;
+    return;
+  }
+#endif
 
   // If this value has already been evaluated, it is free.  FIXME: match undefs.
   for (unsigned i = 0, e = NumVals; i != e; ++i)
@@ -288,6 +309,28 @@ int main() {
           ShufTab[i] = ShufTab[MinVal];
         }
       }
+#ifdef GENERATE_NEON_INS
+      else {
+        // Similarly, if we take the mask (eg 3,6,1,0) and take the cost with
+        // undef for each lane (eg u,6,1,0 or 3,u,1,0 etc), we can use a single
+        // lane insert to fixup the result.
+        unsigned MinVal = i;
+        unsigned MinCost = ShufTab[i].Cost;
+
+        for (unsigned LaneIdx = 0; LaneIdx < 4; LaneIdx++) {
+          if (getMaskElt(i, LaneIdx) == 8)
+            continue;
+          unsigned NewElt = setMaskElt(i, LaneIdx, 8);
+          if (ShufTab[NewElt].Cost + 1 < ShufTab[i].Cost) {
+            MadeChange = true;
+            ShufTab[i].Cost = ShufTab[NewElt].Cost + 1;
+            ShufTab[i].Op = &InsOp;
+            ShufTab[i].Arg0 = NewElt;
+            ShufTab[i].Arg1 = LaneIdx;
+          }
+        }
+      }
+#endif
     }
 
     for (unsigned LHS = 0; LHS != 0x8889; ++LHS) {
@@ -301,6 +344,10 @@ int main() {
 
       for (unsigned opnum = 0, e = TheOperators.size(); opnum != e; ++opnum) {
         Operator *Op = TheOperators[opnum];
+#ifdef GENERATE_NEON_INS
+        if (Op == &InsOp)
+          continue;
+#endif
 
         // Evaluate op(LHS,LHS)
         unsigned ResultMask = Op->getTransformedMask(LHS, LHS);
@@ -419,6 +466,12 @@ int main() {
         PrintMask(ShufTab[i].Arg1, std::cout);
       }
     }
+#ifdef GENERATE_NEON_INS
+    else if (ShufTab[i].Op == &InsOp) {
+      std::cout << ", lane " << ShufTab[i].Arg1;
+    }
+#endif
+
     std::cout << "\n";
   }
   std::cout << "  0\n};\n";
@@ -497,8 +550,6 @@ vsldoi<3> the_vsldoi3("vsldoi12", OP_VSLDOI12);
 
 #endif
 
-#define GENERATE_NEON
-
 #ifdef GENERATE_NEON
 enum {
   OP_COPY = 0,   // Copy, used for things like <u,u,u,3> to say it is <0,1,2,3>


        


More information about the llvm-commits mailing list