diff options
-rw-r--r-- | lib/Target/ARM/ARMISelLowering.cpp | 10 | ||||
-rw-r--r-- | lib/Target/ARM/ARMPerfectShuffle.h | 2683 | ||||
-rw-r--r-- | test/CodeGen/ARM/vrev.ll | 5 | ||||
-rw-r--r-- | utils/PerfectShuffle/PerfectShuffle.cpp | 2 |
4 files changed, 1353 insertions, 1347 deletions
diff --git a/lib/Target/ARM/ARMISelLowering.cpp b/lib/Target/ARM/ARMISelLowering.cpp index 18d30083f8..67cb29362d 100644 --- a/lib/Target/ARM/ARMISelLowering.cpp +++ b/lib/Target/ARM/ARMISelLowering.cpp @@ -4182,7 +4182,15 @@ static SDValue GeneratePerfectShuffle(unsigned PFEntry, SDValue LHS, switch (OpNum) { default: llvm_unreachable("Unknown shuffle opcode!"); case OP_VREV: - return DAG.getNode(ARMISD::VREV64, dl, VT, OpLHS); + // VREV divides the vector in half and swaps within the half. + if (VT.getVectorElementType() == MVT::i32) + return DAG.getNode(ARMISD::VREV64, dl, VT, OpLHS); + // vrev <4 x i16> -> VREV32 + if (VT.getVectorElementType() == MVT::i16) + return DAG.getNode(ARMISD::VREV32, dl, VT, OpLHS); + // vrev <4 x i8> -> VREV16 + assert(VT.getVectorElementType() == MVT::i8); + return DAG.getNode(ARMISD::VREV16, dl, VT, OpLHS); case OP_VDUP0: case OP_VDUP1: case OP_VDUP2: diff --git a/lib/Target/ARM/ARMPerfectShuffle.h b/lib/Target/ARM/ARMPerfectShuffle.h index 13d0f1c4c3..18e1620006 100644 --- a/lib/Target/ARM/ARMPerfectShuffle.h +++ b/lib/Target/ARM/ARMPerfectShuffle.h @@ -14,21 +14,21 @@ // 31 entries have cost 0 // 242 entries have cost 1 -// 1435 entries have cost 2 -// 3712 entries have cost 3 -// 1140 entries have cost 4 -// 1 entries have cost 5 +// 1447 entries have cost 2 +// 3602 entries have cost 3 +// 1237 entries have cost 4 +// 2 entries have cost 5 // 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 2618572962U, // <0,0,0,2>: Cost 3 vext2 <0,2,0,0>, <0,2,0,0> - 2232510603U, // <0,0,0,3>: Cost 3 vrev <3,0,0,0> + 2568054923U, // <0,0,0,3>: Cost 3 vext1 <3,0,0,0>, <3,0,0,0> 1476398390U, // <0,0,0,4>: Cost 2 vext1 <0,0,0,0>, RHS 2550140624U, // <0,0,0,5>: Cost 3 vext1 <0,0,0,0>, <5,1,7,3> 2550141434U, // <0,0,0,6>: Cost 3 vext1 <0,0,0,0>, <6,2,7,3> - 2256401391U, // <0,0,0,7>: Cost 3 vrev <7,0,0,0> + 2591945711U, // <0,0,0,7>: Cost 3 vext1 <7,0,0,0>, <7,0,0,0> 135053414U, // <0,0,0,u>: Cost 1 vdup0 LHS 2886516736U, // <0,0,1,0>: Cost 3 vzipl LHS, <0,0,0,0> 1812775014U, // <0,0,1,1>: Cost 2 vzipl LHS, LHS @@ -50,17 +50,17 @@ static const unsigned PerfectShuffleTable[6561+1] = { 1946992796U, // <0,0,2,u>: Cost 2 vtrnl LHS, LHS 2635163787U, // <0,0,3,0>: Cost 3 vext2 <3,0,0,0>, <3,0,0,0> 2686419196U, // <0,0,3,1>: Cost 3 vext3 <0,3,1,0>, <0,3,1,0> - 2691875078U, // <0,0,3,2>: Cost 3 vext3 <1,2,3,0>, <0,3,2,1> + 2686492933U, // <0,0,3,2>: Cost 3 vext3 <0,3,2,0>, <0,3,2,0> 2617248156U, // <0,0,3,3>: Cost 3 vext2 <0,0,0,0>, <3,3,3,3> 2617248258U, // <0,0,3,4>: Cost 3 vext2 <0,0,0,0>, <3,4,5,6> 3826551298U, // <0,0,3,5>: Cost 4 vuzpl <0,2,0,2>, <3,4,5,6> 3690990200U, // <0,0,3,6>: Cost 4 vext2 <0,0,0,0>, <3,6,0,7> 3713551042U, // <0,0,3,7>: Cost 4 vext2 <3,7,0,0>, <3,7,0,0> - 2695856444U, // <0,0,3,u>: Cost 3 vext3 <1,u,3,0>, <0,3,u,1> + 2635163787U, // <0,0,3,u>: Cost 3 vext2 <3,0,0,0>, <3,0,0,0> 2617248658U, // <0,0,4,0>: Cost 3 vext2 <0,0,0,0>, <4,0,5,1> 2888450150U, // <0,0,4,1>: Cost 3 vzipl <0,4,1,5>, LHS 3021570150U, // <0,0,4,2>: Cost 3 vtrnl <0,2,4,6>, LHS - 3772326241U, // <0,0,4,3>: Cost 4 vext3 <2,3,4,0>, <0,4,3,2> + 3641829519U, // <0,0,4,3>: Cost 4 vext1 <3,0,0,4>, <3,0,0,4> 3021570252U, // <0,0,4,4>: Cost 3 vtrnl <0,2,4,6>, <0,2,4,6> 1543507254U, // <0,0,4,5>: Cost 2 vext2 <0,0,0,0>, RHS 2752810294U, // <0,0,4,6>: Cost 3 vuzpl <0,2,0,2>, RHS @@ -68,9 +68,9 @@ static const unsigned PerfectShuffleTable[6561+1] = { 1543507497U, // <0,0,4,u>: Cost 2 vext2 <0,0,0,0>, RHS 2684354972U, // <0,0,5,0>: Cost 3 vext3 <0,0,0,0>, <0,5,0,7> 2617249488U, // <0,0,5,1>: Cost 3 vext2 <0,0,0,0>, <5,1,7,3> - 3635865015U, // <0,0,5,2>: Cost 4 vext1 <2,0,0,5>, <2,0,0,5> + 3765617070U, // <0,0,5,2>: Cost 4 vext3 <1,2,3,0>, <0,5,2,7> 3635865780U, // <0,0,5,3>: Cost 4 vext1 <2,0,0,5>, <3,0,4,5> - 3761709497U, // <0,0,5,4>: Cost 4 vext3 <0,5,4,0>, <0,5,4,0> + 2617249734U, // <0,0,5,4>: Cost 3 vext2 <0,0,0,0>, <5,4,7,6> 2617249796U, // <0,0,5,5>: Cost 3 vext2 <0,0,0,0>, <5,5,5,5> 2718712274U, // <0,0,5,6>: Cost 3 vext3 <5,6,7,0>, <0,5,6,7> 2617249960U, // <0,0,5,7>: Cost 3 vext2 <0,0,0,0>, <5,7,5,7> @@ -79,20 +79,20 @@ static const unsigned PerfectShuffleTable[6561+1] = { 3963609190U, // <0,0,6,1>: Cost 4 vzipl <0,6,2,7>, LHS 2617250298U, // <0,0,6,2>: Cost 3 vext2 <0,0,0,0>, <6,2,7,3> 3796435464U, // <0,0,6,3>: Cost 4 vext3 <6,3,7,0>, <0,6,3,7> - 3773137420U, // <0,0,6,4>: Cost 4 vext3 <2,4,6,0>, <0,6,4,2> - 3785744919U, // <0,0,6,5>: Cost 4 vext3 <4,5,6,0>, <0,6,5,4> + 3659762998U, // <0,0,6,4>: Cost 4 vext1 <6,0,0,6>, RHS + 3659763810U, // <0,0,6,5>: Cost 4 vext1 <6,0,0,6>, <5,6,7,0> 2617250616U, // <0,0,6,6>: Cost 3 vext2 <0,0,0,0>, <6,6,6,6> 2657727309U, // <0,0,6,7>: Cost 3 vext2 <6,7,0,0>, <6,7,0,0> 2658390942U, // <0,0,6,u>: Cost 3 vext2 <6,u,0,0>, <6,u,0,0> 2659054575U, // <0,0,7,0>: Cost 3 vext2 <7,0,0,0>, <7,0,0,0> - 2689073728U, // <0,0,7,1>: Cost 3 vext3 <0,7,1,0>, <0,7,1,0> + 3635880854U, // <0,0,7,1>: Cost 4 vext1 <2,0,0,7>, <1,2,3,0> 3635881401U, // <0,0,7,2>: Cost 4 vext1 <2,0,0,7>, <2,0,0,7> - 3310897858U, // <0,0,7,3>: Cost 4 vrev <3,7,0,0> + 3734787298U, // <0,0,7,3>: Cost 4 vext2 <7,3,0,0>, <7,3,0,0> 2617251174U, // <0,0,7,4>: Cost 3 vext2 <0,0,0,0>, <7,4,5,6> - 3779846759U, // <0,0,7,5>: Cost 4 vext3 <3,5,7,0>, <0,7,5,3> - 2718712434U, // <0,0,7,6>: Cost 3 vext3 <5,6,7,0>, <0,7,6,5> + 3659772002U, // <0,0,7,5>: Cost 4 vext1 <6,0,0,7>, <5,6,7,0> + 3659772189U, // <0,0,7,6>: Cost 4 vext1 <6,0,0,7>, <6,0,0,7> 2617251436U, // <0,0,7,7>: Cost 3 vext2 <0,0,0,0>, <7,7,7,7> - 2720039556U, // <0,0,7,u>: Cost 3 vext3 <5,u,7,0>, <0,7,u,5> + 2659054575U, // <0,0,7,u>: Cost 3 vext2 <7,0,0,0>, <7,0,0,0> 135053414U, // <0,0,u,0>: Cost 1 vdup0 LHS 1817419878U, // <0,0,u,1>: Cost 2 vzipl LHS, LHS 1947435110U, // <0,0,u,2>: Cost 2 vtrnl LHS, LHS @@ -109,7 +109,7 @@ static const unsigned PerfectShuffleTable[6561+1] = { 2626543954U, // <0,1,0,4>: Cost 3 vext2 <1,5,0,1>, <0,4,1,5> 4094985216U, // <0,1,0,5>: Cost 4 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> - 2256475128U, // <0,1,0,7>: Cost 3 vrev <7,0,1,0> + 2592019448U, // <0,1,0,7>: Cost 3 vext1 <7,0,1,0>, <7,0,1,0> 1557447325U, // <0,1,0,u>: Cost 2 vext2 <2,3,0,1>, LHS 1476476938U, // <0,1,1,0>: Cost 2 vext1 <0,0,1,1>, <0,0,1,1> 2886517556U, // <0,1,1,1>: Cost 3 vzipl LHS, <1,1,1,1> @@ -147,17 +147,17 @@ static const unsigned PerfectShuffleTable[6561+1] = { 2754235702U, // <0,1,4,6>: Cost 3 vuzpl <0,4,1,5>, RHS 2592052220U, // <0,1,4,7>: Cost 3 vext1 <7,0,1,4>, <7,0,1,4> 1557450281U, // <0,1,4,u>: Cost 2 vext2 <2,3,0,1>, RHS - 2217984414U, // <0,1,5,0>: Cost 3 vrev <0,5,1,0> + 3765617775U, // <0,1,5,0>: Cost 4 vext3 <1,2,3,0>, <1,5,0,1> 2647781007U, // <0,1,5,1>: Cost 3 vext2 <5,1,0,1>, <5,1,0,1> 3704934138U, // <0,1,5,2>: Cost 4 vext2 <2,3,0,1>, <5,2,3,0> 2691875984U, // <0,1,5,3>: Cost 3 vext3 <1,2,3,0>, <1,5,3,7> - 2649771906U, // <0,1,5,4>: Cost 3 vext2 <5,4,0,1>, <5,4,0,1> + 2657734598U, // <0,1,5,4>: Cost 3 vext2 <6,7,0,1>, <5,4,7,6> 2650435539U, // <0,1,5,5>: Cost 3 vext2 <5,5,0,1>, <5,5,0,1> 2651099172U, // <0,1,5,6>: Cost 3 vext2 <5,6,0,1>, <5,6,0,1> 2651762805U, // <0,1,5,7>: Cost 3 vext2 <5,7,0,1>, <5,7,0,1> 2691876029U, // <0,1,5,u>: Cost 3 vext3 <1,2,3,0>, <1,5,u,7> 2592063590U, // <0,1,6,0>: Cost 3 vext1 <7,0,1,6>, LHS - 3765322959U, // <0,1,6,1>: Cost 4 vext3 <1,1,u,0>, <1,6,1,7> + 3765617871U, // <0,1,6,1>: Cost 4 vext3 <1,2,3,0>, <1,6,1,7> 2654417337U, // <0,1,6,2>: Cost 3 vext2 <6,2,0,1>, <6,2,0,1> 3765617889U, // <0,1,6,3>: Cost 4 vext3 <1,2,3,0>, <1,6,3,7> 2592066870U, // <0,1,6,4>: Cost 3 vext1 <7,0,1,6>, RHS @@ -170,8 +170,8 @@ static const unsigned PerfectShuffleTable[6561+1] = { 2631193772U, // <0,1,7,2>: Cost 3 vext2 <2,3,0,1>, <7,2,3,0> 2661053667U, // <0,1,7,3>: Cost 3 vext2 <7,3,0,1>, <7,3,0,1> 2657736038U, // <0,1,7,4>: Cost 3 vext2 <6,7,0,1>, <7,4,5,6> - 3704935840U, // <0,1,7,5>: Cost 4 vext2 <2,3,0,1>, <7,5,3,1> - 2657736198U, // <0,1,7,6>: Cost 3 vext2 <6,7,0,1>, <7,6,5,4> + 3721524621U, // <0,1,7,5>: Cost 4 vext2 <5,1,0,1>, <7,5,1,0> + 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> 2657736322U, // <0,1,7,u>: Cost 3 vext2 <6,7,0,1>, <7,u,1,2> 1494450278U, // <0,1,u,0>: Cost 2 vext1 <3,0,1,u>, LHS @@ -190,19 +190,19 @@ static const unsigned PerfectShuffleTable[6561+1] = { 2752340172U, // <0,2,0,4>: Cost 3 vuzpl LHS, <0,2,4,6> 2691876326U, // <0,2,0,5>: Cost 3 vext3 <1,2,3,0>, <2,0,5,7> 2618589695U, // <0,2,0,6>: Cost 3 vext2 <0,2,0,2>, <0,6,2,7> - 2256548865U, // <0,2,0,7>: Cost 3 vrev <7,0,2,0> + 2592093185U, // <0,2,0,7>: Cost 3 vext1 <7,0,2,0>, <7,0,2,0> 1678557340U, // <0,2,0,u>: Cost 2 vuzpl LHS, LHS - 2703672835U, // <0,2,1,0>: Cost 3 vext3 <3,2,1,0>, <2,1,0,0> + 2618589942U, // <0,2,1,0>: Cost 3 vext2 <0,2,0,2>, <1,0,3,2> 2752299828U, // <0,2,1,1>: Cost 3 vuzpl LHS, <1,1,1,1> 2886518376U, // <0,2,1,2>: Cost 3 vzipl LHS, <2,2,2,2> - 2752299926U, // <0,2,1,3>: Cost 3 vuzpl LHS, <1,2,3,0> + 2752299766U, // <0,2,1,3>: Cost 3 vuzpl LHS, <1,0,3,2> 2550295862U, // <0,2,1,4>: Cost 3 vext1 <0,0,2,1>, RHS 2752340992U, // <0,2,1,5>: Cost 3 vuzpl LHS, <1,3,5,7> 2886559674U, // <0,2,1,6>: Cost 3 vzipl LHS, <2,6,3,7> 3934208106U, // <0,2,1,7>: Cost 4 vuzpr <7,0,1,2>, <0,1,2,7> - 2752340931U, // <0,2,1,u>: Cost 3 vuzpl LHS, <1,2,u,0> + 2752340771U, // <0,2,1,u>: Cost 3 vuzpl LHS, <1,0,u,2> 1476558868U, // <0,2,2,0>: Cost 2 vext1 <0,0,2,2>, <0,0,2,2> - 2550301492U, // <0,2,2,1>: Cost 3 vext1 <0,0,2,2>, <1,1,1,1> + 2226628029U, // <0,2,2,1>: Cost 3 vrev <2,0,1,2> 2752300648U, // <0,2,2,2>: Cost 3 vuzpl LHS, <2,2,2,2> 3020736114U, // <0,2,2,3>: Cost 3 vtrnl LHS, <2,2,3,3> 1476562230U, // <0,2,2,4>: Cost 2 vext1 <0,0,2,2>, RHS @@ -212,7 +212,7 @@ static const unsigned PerfectShuffleTable[6561+1] = { 1476564782U, // <0,2,2,u>: Cost 2 vext1 <0,0,2,2>, LHS 2618591382U, // <0,2,3,0>: Cost 3 vext2 <0,2,0,2>, <3,0,1,2> 2752301206U, // <0,2,3,1>: Cost 3 vuzpl LHS, <3,0,1,2> - 2618591542U, // <0,2,3,2>: Cost 3 vext2 <0,2,0,2>, <3,2,1,0> + 3826043121U, // <0,2,3,2>: Cost 4 vuzpl LHS, <3,1,2,3> 2752301468U, // <0,2,3,3>: Cost 3 vuzpl LHS, <3,3,3,3> 2618591746U, // <0,2,3,4>: Cost 3 vext2 <0,2,0,2>, <3,4,5,6> 2752301570U, // <0,2,3,5>: Cost 3 vuzpl LHS, <3,4,5,6> @@ -221,7 +221,7 @@ static const unsigned PerfectShuffleTable[6561+1] = { 2752301269U, // <0,2,3,u>: Cost 3 vuzpl LHS, <3,0,u,2> 2562261094U, // <0,2,4,0>: Cost 3 vext1 <2,0,2,4>, LHS 4095313828U, // <0,2,4,1>: Cost 4 vtrnl <0,2,4,6>, <2,6,1,3> - 2562262472U, // <0,2,4,2>: Cost 3 vext1 <2,0,2,4>, <2,0,2,4> + 2226718152U, // <0,2,4,2>: Cost 3 vrev <2,0,2,4> 2568235169U, // <0,2,4,3>: Cost 3 vext1 <3,0,2,4>, <3,0,2,4> 2562264374U, // <0,2,4,4>: Cost 3 vext1 <2,0,2,4>, RHS 1544850742U, // <0,2,4,5>: Cost 2 vext2 <0,2,0,2>, RHS @@ -232,11 +232,11 @@ static const unsigned PerfectShuffleTable[6561+1] = { 2618592976U, // <0,2,5,1>: Cost 3 vext2 <0,2,0,2>, <5,1,7,3> 3765618528U, // <0,2,5,2>: Cost 4 vext3 <1,2,3,0>, <2,5,2,7> 3765618536U, // <0,2,5,3>: Cost 4 vext3 <1,2,3,0>, <2,5,3,6> - 3696316340U, // <0,2,5,4>: Cost 4 vext2 <0,u,0,2>, <5,4,5,6> + 2618593222U, // <0,2,5,4>: Cost 3 vext2 <0,2,0,2>, <5,4,7,6> 2752303108U, // <0,2,5,5>: Cost 3 vuzpl LHS, <5,5,5,5> 2618593378U, // <0,2,5,6>: Cost 3 vext2 <0,2,0,2>, <5,6,7,0> - 2836581686U, // <0,2,5,7>: Cost 3 vuzpr <3,0,1,2>, RHS - 2836581687U, // <0,2,5,u>: Cost 3 vuzpr <3,0,1,2>, RHS + 2824785206U, // <0,2,5,7>: Cost 3 vuzpr <1,0,3,2>, RHS + 2824785207U, // <0,2,5,u>: Cost 3 vuzpr <1,0,3,2>, RHS 2752303950U, // <0,2,6,0>: Cost 3 vuzpl LHS, <6,7,0,1> 3830690081U, // <0,2,6,1>: Cost 4 vuzpl LHS, <6,0,1,2> 2618593786U, // <0,2,6,2>: Cost 3 vext2 <0,2,0,2>, <6,2,7,3> @@ -252,7 +252,7 @@ static const unsigned PerfectShuffleTable[6561+1] = { 2701166596U, // <0,2,7,3>: Cost 3 vext3 <2,7,3,0>, <2,7,3,0> 2662389094U, // <0,2,7,4>: Cost 3 vext2 <7,5,0,2>, <7,4,5,6> 2662389126U, // <0,2,7,5>: Cost 3 vext2 <7,5,0,2>, <7,5,0,2> - 2618594822U, // <0,2,7,6>: Cost 3 vext2 <0,2,0,2>, <7,6,5,4> + 3736794583U, // <0,2,7,6>: Cost 4 vext2 <7,6,0,2>, <7,6,0,2> 2752304748U, // <0,2,7,7>: Cost 3 vuzpl LHS, <7,7,7,7> 2659070961U, // <0,2,7,u>: Cost 3 vext2 <7,0,0,2>, <7,0,0,2> 1476608026U, // <0,2,u,0>: Cost 2 vext1 <0,0,2,u>, <0,0,2,u> @@ -262,7 +262,7 @@ static const unsigned PerfectShuffleTable[6561+1] = { 1476611382U, // <0,2,u,4>: Cost 2 vext1 <0,0,2,u>, RHS 1544853658U, // <0,2,u,5>: Cost 2 vext2 <0,2,0,2>, RHS 1678563482U, // <0,2,u,6>: Cost 2 vuzpl LHS, RHS - 2836581929U, // <0,2,u,7>: Cost 3 vuzpr <3,0,1,2>, RHS + 2824785449U, // <0,2,u,7>: Cost 3 vuzpr <1,0,3,2>, RHS 1678563172U, // <0,2,u,u>: Cost 2 vuzpl LHS, LHS 2556329984U, // <0,3,0,0>: Cost 3 vext1 <1,0,3,0>, <0,0,0,0> 2686421142U, // <0,3,0,1>: Cost 3 vext3 <0,3,1,0>, <3,0,1,2> @@ -275,84 +275,84 @@ static const unsigned PerfectShuffleTable[6561+1] = { 2556335918U, // <0,3,0,u>: Cost 3 vext1 <1,0,3,0>, LHS 2886518934U, // <0,3,1,0>: Cost 3 vzipl LHS, <3,0,1,2> 2556338933U, // <0,3,1,1>: Cost 3 vext1 <1,0,3,1>, <1,0,3,1> - 2886519094U, // <0,3,1,2>: Cost 3 vzipl LHS, <3,2,1,0> + 2691877105U, // <0,3,1,2>: Cost 3 vext3 <1,2,3,0>, <3,1,2,3> 2886519196U, // <0,3,1,3>: Cost 3 vzipl LHS, <3,3,3,3> 2886519298U, // <0,3,1,4>: Cost 3 vzipl LHS, <3,4,5,6> 4095740418U, // <0,3,1,5>: Cost 4 vtrnl <0,3,1,4>, <3,4,5,6> 3659944242U, // <0,3,1,6>: Cost 4 vext1 <6,0,3,1>, <6,0,3,1> 3769600286U, // <0,3,1,7>: Cost 4 vext3 <1,u,3,0>, <3,1,7,3> 2886519582U, // <0,3,1,u>: Cost 3 vzipl LHS, <3,u,1,2> - 2556346388U, // <0,3,2,0>: Cost 3 vext1 <1,0,3,2>, <0,0,2,2> - 1148371862U, // <0,3,2,1>: Cost 2 vrev <1,2,3,0> - 2562319823U, // <0,3,2,2>: Cost 3 vext1 <2,0,3,2>, <2,0,3,2> + 1482604646U, // <0,3,2,0>: Cost 2 vext1 <1,0,3,2>, LHS + 1482605302U, // <0,3,2,1>: Cost 2 vext1 <1,0,3,2>, <1,0,3,2> + 2556348008U, // <0,3,2,2>: Cost 3 vext1 <1,0,3,2>, <2,2,2,2> 3020736924U, // <0,3,2,3>: Cost 3 vtrnl LHS, <3,3,3,3> - 2556349750U, // <0,3,2,4>: Cost 3 vext1 <1,0,3,2>, RHS + 1482607926U, // <0,3,2,4>: Cost 2 vext1 <1,0,3,2>, RHS 3020737026U, // <0,3,2,5>: Cost 3 vtrnl LHS, <3,4,5,6> - 4099123558U, // <0,3,2,6>: Cost 4 vtrnl LHS, <3,2,6,3> - 2257949868U, // <0,3,2,7>: Cost 3 vrev <7,2,3,0> - 1630447989U, // <0,3,2,u>: Cost 2 vext3 <3,2,u,0>, <3,2,u,0> - 2665711772U, // <0,3,3,0>: Cost 3 vext2 <u,1,0,3>, <3,0,1,u> - 2222777319U, // <0,3,3,1>: Cost 3 vrev <1,3,3,0> - 2228750016U, // <0,3,3,2>: Cost 3 vrev <2,3,3,0> + 2598154746U, // <0,3,2,6>: Cost 3 vext1 <u,0,3,2>, <6,2,7,3> + 2598155258U, // <0,3,2,7>: Cost 3 vext1 <u,0,3,2>, <7,0,1,2> + 1482610478U, // <0,3,2,u>: Cost 2 vext1 <1,0,3,2>, LHS + 3692341398U, // <0,3,3,0>: Cost 4 vext2 <0,2,0,3>, <3,0,1,2> + 2635851999U, // <0,3,3,1>: Cost 3 vext2 <3,1,0,3>, <3,1,0,3> + 3636069840U, // <0,3,3,2>: Cost 4 vext1 <2,0,3,3>, <2,0,3,3> 2691877276U, // <0,3,3,3>: Cost 3 vext3 <1,2,3,0>, <3,3,3,3> 3961522690U, // <0,3,3,4>: Cost 4 vzipl <0,3,1,4>, <3,4,5,6> 3826797058U, // <0,3,3,5>: Cost 4 vuzpl <0,2,3,5>, <3,4,5,6> - 3765619124U, // <0,3,3,6>: Cost 4 vext3 <1,2,3,0>, <3,3,6,0> + 3703622282U, // <0,3,3,6>: Cost 4 vext2 <2,1,0,3>, <3,6,2,7> 3769600452U, // <0,3,3,7>: Cost 4 vext3 <1,u,3,0>, <3,3,7,7> - 2707655111U, // <0,3,3,u>: Cost 3 vext3 <3,u,1,0>, <3,3,u,1> + 2640497430U, // <0,3,3,u>: Cost 3 vext2 <3,u,0,3>, <3,u,0,3> 3962194070U, // <0,3,4,0>: Cost 4 vzipl <0,4,1,5>, <3,0,1,2> - 4095314070U, // <0,3,4,1>: Cost 4 vtrnl <0,2,4,6>, <3,0,1,2> - 2703673830U, // <0,3,4,2>: Cost 3 vext3 <3,2,1,0>, <3,4,2,5> + 2232617112U, // <0,3,4,1>: Cost 3 vrev <3,0,1,4> + 2232690849U, // <0,3,4,2>: Cost 3 vrev <3,0,2,4> 4095314332U, // <0,3,4,3>: Cost 4 vtrnl <0,2,4,6>, <3,3,3,3> 3962194434U, // <0,3,4,4>: Cost 4 vzipl <0,4,1,5>, <3,4,5,6> 2691877378U, // <0,3,4,5>: Cost 3 vext3 <1,2,3,0>, <3,4,5,6> 3826765110U, // <0,3,4,6>: Cost 4 vuzpl <0,2,3,1>, RHS 3665941518U, // <0,3,4,7>: Cost 4 vext1 <7,0,3,4>, <7,0,3,4> 2691877405U, // <0,3,4,u>: Cost 3 vext3 <1,2,3,0>, <3,4,u,6> - 3636084838U, // <0,3,5,0>: Cost 4 vext1 <2,0,3,5>, LHS - 3765619248U, // <0,3,5,1>: Cost 4 vext3 <1,2,3,0>, <3,5,1,7> - 3636086226U, // <0,3,5,2>: Cost 4 vext1 <2,0,3,5>, <2,0,3,5> + 3630112870U, // <0,3,5,0>: Cost 4 vext1 <1,0,3,5>, LHS + 3630113526U, // <0,3,5,1>: Cost 4 vext1 <1,0,3,5>, <1,0,3,2> + 4035199734U, // <0,3,5,2>: Cost 4 vzipr <1,4,0,5>, <1,0,3,2> 3769600578U, // <0,3,5,3>: Cost 4 vext3 <1,u,3,0>, <3,5,3,7> - 3636088118U, // <0,3,5,4>: Cost 4 vext1 <2,0,3,5>, RHS - 3777415764U, // <0,3,5,5>: Cost 4 vext3 <3,2,1,0>, <3,5,5,7> - 2653769826U, // <0,3,5,6>: Cost 3 vext2 <6,1,0,3>, <5,6,7,0> + 2232846516U, // <0,3,5,4>: Cost 3 vrev <3,0,4,5> + 3779037780U, // <0,3,5,5>: Cost 4 vext3 <3,4,5,0>, <3,5,5,7> + 2718714461U, // <0,3,5,6>: Cost 3 vext3 <5,6,7,0>, <3,5,6,7> 2706106975U, // <0,3,5,7>: Cost 3 vext3 <3,5,7,0>, <3,5,7,0> - 2706180712U, // <0,3,5,u>: Cost 3 vext3 <3,5,u,0>, <3,5,u,0> + 2233141464U, // <0,3,5,u>: Cost 3 vrev <3,0,u,5> 2691877496U, // <0,3,6,0>: Cost 3 vext3 <1,2,3,0>, <3,6,0,7> - 2653770090U, // <0,3,6,1>: Cost 3 vext2 <6,1,0,3>, <6,1,0,3> - 3636094419U, // <0,3,6,2>: Cost 4 vext1 <2,0,3,6>, <2,0,3,6> + 3727511914U, // <0,3,6,1>: Cost 4 vext2 <6,1,0,3>, <6,1,0,3> + 3765619338U, // <0,3,6,2>: Cost 4 vext3 <1,2,3,0>, <3,6,2,7> 3765619347U, // <0,3,6,3>: Cost 4 vext3 <1,2,3,0>, <3,6,3,7> 3765987996U, // <0,3,6,4>: Cost 4 vext3 <1,2,u,0>, <3,6,4,7> - 3322400830U, // <0,3,6,5>: Cost 4 vrev <5,6,3,0> + 3306670270U, // <0,3,6,5>: Cost 4 vrev <3,0,5,6> 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> - 2653770090U, // <0,3,6,u>: Cost 3 vext2 <6,1,0,3>, <6,1,0,3> + 2706844345U, // <0,3,6,u>: Cost 3 vext3 <3,6,u,0>, <3,6,u,0> 3769600707U, // <0,3,7,0>: Cost 4 vext3 <1,u,3,0>, <3,7,0,1> - 2225431851U, // <0,3,7,1>: Cost 3 vrev <1,7,3,0> - 2231404548U, // <0,3,7,2>: Cost 3 vrev <2,7,3,0> + 2659742787U, // <0,3,7,1>: Cost 3 vext2 <7,1,0,3>, <7,1,0,3> + 3636102612U, // <0,3,7,2>: Cost 4 vext1 <2,0,3,7>, <2,0,3,7> 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> - 2255295336U, // <0,3,7,6>: Cost 3 vrev <6,7,3,0> + 3659993400U, // <0,3,7,6>: Cost 4 vext1 <6,0,3,7>, <6,0,3,7> 3781176065U, // <0,3,7,7>: Cost 4 vext3 <3,7,7,0>, <3,7,7,0> - 2267240730U, // <0,3,7,u>: Cost 3 vrev <u,7,3,0> - 2891163798U, // <0,3,u,0>: Cost 3 vzipl LHS, <3,0,1,2> - 1152353660U, // <0,3,u,1>: Cost 2 vrev <1,u,3,0> - 2891163958U, // <0,3,u,2>: Cost 3 vzipl LHS, <3,2,1,0> + 2664388218U, // <0,3,7,u>: Cost 3 vext2 <7,u,0,3>, <7,u,0,3> + 1482653798U, // <0,3,u,0>: Cost 2 vext1 <1,0,3,u>, LHS + 1482654460U, // <0,3,u,1>: Cost 2 vext1 <1,0,3,u>, <1,0,3,u> + 2556397160U, // <0,3,u,2>: Cost 3 vext1 <1,0,3,u>, <2,2,2,2> 3021179292U, // <0,3,u,3>: Cost 3 vtrnl LHS, <3,3,3,3> - 2891164162U, // <0,3,u,4>: Cost 3 vzipl LHS, <3,4,5,6> + 1482657078U, // <0,3,u,4>: Cost 2 vext1 <1,0,3,u>, RHS 3021179394U, // <0,3,u,5>: Cost 3 vtrnl LHS, <3,4,5,6> - 2255958969U, // <0,3,u,6>: Cost 3 vrev <6,u,3,0> + 2598203898U, // <0,3,u,6>: Cost 3 vext1 <u,0,3,u>, <6,2,7,3> 2708097874U, // <0,3,u,7>: Cost 3 vext3 <3,u,7,0>, <3,u,7,0> - 1634429787U, // <0,3,u,u>: Cost 2 vext3 <3,u,u,0>, <3,u,u,0> + 1482659630U, // <0,3,u,u>: Cost 2 vext1 <1,0,3,u>, LHS 2617278468U, // <0,4,0,0>: Cost 3 vext2 <0,0,0,4>, <0,0,0,4> 2618605670U, // <0,4,0,1>: Cost 3 vext2 <0,2,0,4>, LHS 2618605734U, // <0,4,0,2>: Cost 3 vext2 <0,2,0,4>, <0,2,0,4> - 3306547375U, // <0,4,0,3>: Cost 4 vrev <3,0,4,0> + 3642091695U, // <0,4,0,3>: Cost 4 vext1 <3,0,4,0>, <3,0,4,0> 2753134796U, // <0,4,0,4>: Cost 3 vuzpl <0,2,4,6>, <0,2,4,6> 2718714770U, // <0,4,0,5>: Cost 3 vext3 <5,6,7,0>, <4,0,5,1> 3021245750U, // <0,4,0,6>: Cost 3 vtrnl <0,2,0,2>, RHS - 3330438163U, // <0,4,0,7>: Cost 4 vrev <7,0,4,0> + 3665982483U, // <0,4,0,7>: Cost 4 vext1 <7,0,4,0>, <7,0,4,0> 3021245768U, // <0,4,0,u>: Cost 3 vtrnl <0,2,0,2>, RHS 2568355942U, // <0,4,1,0>: Cost 3 vext1 <3,0,4,1>, LHS 3692348212U, // <0,4,1,1>: Cost 4 vext2 <0,2,0,4>, <1,1,1,1> @@ -364,7 +364,7 @@ static const unsigned PerfectShuffleTable[6561+1] = { 2592248852U, // <0,4,1,7>: Cost 3 vext1 <7,0,4,1>, <7,0,4,1> 1812778537U, // <0,4,1,u>: Cost 2 vzipl LHS, RHS 2568364134U, // <0,4,2,0>: Cost 3 vext1 <3,0,4,2>, LHS - 2629887495U, // <0,4,2,1>: Cost 3 vext2 <2,1,0,4>, <2,1,0,4> + 2238573423U, // <0,4,2,1>: Cost 3 vrev <4,0,1,2> 3692349032U, // <0,4,2,2>: Cost 4 vext2 <0,2,0,4>, <2,2,2,2> 2631214761U, // <0,4,2,3>: Cost 3 vext2 <2,3,0,4>, <2,3,0,4> 2568367414U, // <0,4,2,4>: Cost 3 vext1 <3,0,4,2>, RHS @@ -374,13 +374,13 @@ static const unsigned PerfectShuffleTable[6561+1] = { 1946996040U, // <0,4,2,u>: Cost 2 vtrnl LHS, RHS 3692349590U, // <0,4,3,0>: Cost 4 vext2 <0,2,0,4>, <3,0,1,2> 3826878614U, // <0,4,3,1>: Cost 4 vuzpl <0,2,4,6>, <3,0,1,2> - 2228823753U, // <0,4,3,2>: Cost 3 vrev <2,3,4,0> + 3826878625U, // <0,4,3,2>: Cost 4 vuzpl <0,2,4,6>, <3,0,2,4> 3692349852U, // <0,4,3,3>: Cost 4 vext2 <0,2,0,4>, <3,3,3,3> 3692349954U, // <0,4,3,4>: Cost 4 vext2 <0,2,0,4>, <3,4,5,6> 3826878978U, // <0,4,3,5>: Cost 4 vuzpl <0,2,4,6>, <3,4,5,6> 4095200566U, // <0,4,3,6>: Cost 4 vtrnl <0,2,3,1>, RHS 3713583814U, // <0,4,3,7>: Cost 4 vext2 <3,7,0,4>, <3,7,0,4> - 2665720604U, // <0,4,3,u>: Cost 3 vext2 <u,1,0,4>, <3,u,1,0> + 3692350238U, // <0,4,3,u>: Cost 4 vext2 <0,2,0,4>, <3,u,1,2> 2550464552U, // <0,4,4,0>: Cost 3 vext1 <0,0,4,4>, <0,0,4,4> 3962194914U, // <0,4,4,1>: Cost 4 vzipl <0,4,1,5>, <4,1,5,0> 3693677631U, // <0,4,4,2>: Cost 4 vext2 <0,4,0,4>, <4,2,6,3> @@ -401,8 +401,8 @@ static const unsigned PerfectShuffleTable[6561+1] = { 1618136392U, // <0,4,5,u>: Cost 2 vext3 <1,2,3,0>, RHS 2550480938U, // <0,4,6,0>: Cost 3 vext1 <0,0,4,6>, <0,0,4,6> 3826880801U, // <0,4,6,1>: Cost 4 vuzpl <0,2,4,6>, <6,0,1,2> - 2712374620U, // <0,4,6,2>: Cost 3 vext3 <4,6,2,0>, <4,6,2,0> - 3777416551U, // <0,4,6,3>: Cost 4 vext3 <3,2,1,0>, <4,6,3,2> + 2562426332U, // <0,4,6,2>: Cost 3 vext1 <2,0,4,6>, <2,0,4,6> + 3786190181U, // <0,4,6,3>: Cost 4 vext3 <4,6,3,0>, <4,6,3,0> 2718715252U, // <0,4,6,4>: Cost 3 vext3 <5,6,7,0>, <4,6,4,6> 3826881165U, // <0,4,6,5>: Cost 4 vuzpl <0,2,4,6>, <6,4,5,6> 2712669568U, // <0,4,6,6>: Cost 3 vext3 <4,6,6,0>, <4,6,6,0> @@ -414,9 +414,9 @@ static const unsigned PerfectShuffleTable[6561+1] = { 3734820070U, // <0,4,7,3>: Cost 4 vext2 <7,3,0,4>, <7,3,0,4> 3654094134U, // <0,4,7,4>: Cost 4 vext1 <5,0,4,7>, RHS 2713259464U, // <0,4,7,5>: Cost 3 vext3 <4,7,5,0>, <4,7,5,0> - 2255369073U, // <0,4,7,6>: Cost 3 vrev <6,7,4,0> + 2713333201U, // <0,4,7,6>: Cost 3 vext3 <4,7,6,0>, <4,7,6,0> 3654095866U, // <0,4,7,7>: Cost 4 vext1 <5,0,4,7>, <7,0,1,2> - 2267314467U, // <0,4,7,u>: Cost 3 vrev <u,7,4,0> + 2713259464U, // <0,4,7,u>: Cost 3 vext3 <4,7,5,0>, <4,7,5,0> 2568413286U, // <0,4,u,0>: Cost 3 vext1 <3,0,4,u>, LHS 2618611502U, // <0,4,u,1>: Cost 3 vext2 <0,2,0,4>, LHS 2753140526U, // <0,4,u,2>: Cost 3 vuzpl <0,2,4,6>, LHS @@ -427,14 +427,14 @@ static const unsigned PerfectShuffleTable[6561+1] = { 2592306203U, // <0,4,u,7>: Cost 3 vext1 <7,0,4,u>, <7,0,4,u> 1947438408U, // <0,4,u,u>: Cost 2 vtrnl LHS, RHS 3630219264U, // <0,5,0,0>: Cost 4 vext1 <1,0,5,0>, <0,0,0,0> - 2637856870U, // <0,5,0,1>: Cost 3 vext2 <3,4,0,5>, LHS + 2625912934U, // <0,5,0,1>: Cost 3 vext2 <1,4,0,5>, LHS 3692355748U, // <0,5,0,2>: Cost 4 vext2 <0,2,0,5>, <0,2,0,2> 3693019384U, // <0,5,0,3>: Cost 4 vext2 <0,3,0,5>, <0,3,0,5> 3630222646U, // <0,5,0,4>: Cost 4 vext1 <1,0,5,0>, RHS - 3910568116U, // <0,5,0,5>: Cost 4 vuzpr <3,0,4,5>, <3,0,4,5> + 3699655062U, // <0,5,0,5>: Cost 4 vext2 <1,4,0,5>, <0,5,0,1> 2718715508U, // <0,5,0,6>: Cost 3 vext3 <5,6,7,0>, <5,0,6,1> 3087011126U, // <0,5,0,7>: Cost 3 vtrnr <0,0,0,0>, RHS - 2637857437U, // <0,5,0,u>: Cost 3 vext2 <3,4,0,5>, LHS + 2625913501U, // <0,5,0,u>: Cost 3 vext2 <1,4,0,5>, LHS 1500659814U, // <0,5,1,0>: Cost 2 vext1 <4,0,5,1>, LHS 2886520528U, // <0,5,1,1>: Cost 3 vzipl LHS, <5,1,7,3> 2574403176U, // <0,5,1,2>: Cost 3 vext1 <4,0,5,1>, <2,2,2,2> @@ -445,48 +445,48 @@ static const unsigned PerfectShuffleTable[6561+1] = { 2718715600U, // <0,5,1,7>: Cost 3 vext3 <5,6,7,0>, <5,1,7,3> 1500665646U, // <0,5,1,u>: Cost 2 vext1 <4,0,5,1>, LHS 2556493926U, // <0,5,2,0>: Cost 3 vext1 <1,0,5,2>, LHS - 2556494600U, // <0,5,2,1>: Cost 3 vext1 <1,0,5,2>, <1,0,5,2> + 2244546120U, // <0,5,2,1>: Cost 3 vrev <5,0,1,2> 3692357256U, // <0,5,2,2>: Cost 4 vext2 <0,2,0,5>, <2,2,5,7> 2568439994U, // <0,5,2,3>: Cost 3 vext1 <3,0,5,2>, <3,0,5,2> 2556497206U, // <0,5,2,4>: Cost 3 vext1 <1,0,5,2>, RHS 3020738564U, // <0,5,2,5>: Cost 3 vtrnl LHS, <5,5,5,5> 4027877161U, // <0,5,2,6>: Cost 4 vzipr <0,2,0,2>, <2,4,5,6> - 3105017142U, // <0,5,2,7>: Cost 3 vtrnr <3,0,1,2>, RHS - 3105017143U, // <0,5,2,u>: Cost 3 vtrnr <3,0,1,2>, RHS - 2637858966U, // <0,5,3,0>: Cost 3 vext2 <3,4,0,5>, <3,0,1,2> - 3711600902U, // <0,5,3,1>: Cost 4 vext2 <3,4,0,5>, <3,1,4,6> - 3302639314U, // <0,5,3,2>: Cost 4 vrev <2,3,5,0> - 3308612011U, // <0,5,3,3>: Cost 4 vrev <3,3,5,0> + 3093220662U, // <0,5,2,7>: Cost 3 vtrnr <1,0,3,2>, RHS + 3093220663U, // <0,5,2,u>: Cost 3 vtrnr <1,0,3,2>, RHS + 3699656854U, // <0,5,3,0>: Cost 4 vext2 <1,4,0,5>, <3,0,1,2> + 3699656927U, // <0,5,3,1>: Cost 4 vext2 <1,4,0,5>, <3,1,0,3> + 3699657006U, // <0,5,3,2>: Cost 4 vext2 <1,4,0,5>, <3,2,0,1> + 3699657116U, // <0,5,3,3>: Cost 4 vext2 <1,4,0,5>, <3,3,3,3> 2637859284U, // <0,5,3,4>: Cost 3 vext2 <3,4,0,5>, <3,4,0,5> - 3320557405U, // <0,5,3,5>: Cost 4 vrev <5,3,5,0> - 3790393190U, // <0,5,3,6>: Cost 4 vext3 <5,3,6,0>, <5,3,6,0> + 3790319453U, // <0,5,3,5>: Cost 4 vext3 <5,3,5,0>, <5,3,5,0> + 3699657354U, // <0,5,3,6>: Cost 4 vext2 <1,4,0,5>, <3,6,2,7> 2716725103U, // <0,5,3,7>: Cost 3 vext3 <5,3,7,0>, <5,3,7,0> - 2640513816U, // <0,5,3,u>: Cost 3 vext2 <3,u,0,5>, <3,u,0,5> + 2716798840U, // <0,5,3,u>: Cost 3 vext3 <5,3,u,0>, <5,3,u,0> 2661747602U, // <0,5,4,0>: Cost 3 vext2 <7,4,0,5>, <4,0,5,1> - 3962195634U, // <0,5,4,1>: Cost 4 vzipl <0,4,1,5>, <5,1,4,0> - 3303302947U, // <0,5,4,2>: Cost 4 vrev <2,4,5,0> - 2235533820U, // <0,5,4,3>: Cost 3 vrev <3,4,5,0> + 3630252810U, // <0,5,4,1>: Cost 4 vext1 <1,0,5,4>, <1,0,5,4> + 3636225507U, // <0,5,4,2>: Cost 4 vext1 <2,0,5,4>, <2,0,5,4> + 3716910172U, // <0,5,4,3>: Cost 4 vext2 <4,3,0,5>, <4,3,0,5> 3962195892U, // <0,5,4,4>: Cost 4 vzipl <0,4,1,5>, <5,4,5,6> - 2637860150U, // <0,5,4,5>: Cost 3 vext2 <3,4,0,5>, RHS - 3791056823U, // <0,5,4,6>: Cost 4 vext3 <5,4,6,0>, <5,4,6,0> - 2259424608U, // <0,5,4,7>: Cost 3 vrev <7,4,5,0> - 2637860393U, // <0,5,4,u>: Cost 3 vext2 <3,4,0,5>, RHS + 2625916214U, // <0,5,4,5>: Cost 3 vext2 <1,4,0,5>, RHS + 3718901071U, // <0,5,4,6>: Cost 4 vext2 <4,6,0,5>, <4,6,0,5> + 2718715846U, // <0,5,4,7>: Cost 3 vext3 <5,6,7,0>, <5,4,7,6> + 2625916457U, // <0,5,4,u>: Cost 3 vext2 <1,4,0,5>, RHS 3791278034U, // <0,5,5,0>: Cost 4 vext3 <5,5,0,0>, <5,5,0,0> - 3297993883U, // <0,5,5,1>: Cost 4 vrev <1,5,5,0> - 3303966580U, // <0,5,5,2>: Cost 4 vrev <2,5,5,0> - 3309939277U, // <0,5,5,3>: Cost 4 vrev <3,5,5,0> - 2242170150U, // <0,5,5,4>: Cost 3 vrev <4,5,5,0> + 3791351771U, // <0,5,5,1>: Cost 4 vext3 <5,5,1,0>, <5,5,1,0> + 3318386260U, // <0,5,5,2>: Cost 4 vrev <5,0,2,5> + 3791499245U, // <0,5,5,3>: Cost 4 vext3 <5,5,3,0>, <5,5,3,0> + 3318533734U, // <0,5,5,4>: Cost 4 vrev <5,0,4,5> 2718715908U, // <0,5,5,5>: Cost 3 vext3 <5,6,7,0>, <5,5,5,5> 2657767522U, // <0,5,5,6>: Cost 3 vext2 <6,7,0,5>, <5,6,7,0> 2718715928U, // <0,5,5,7>: Cost 3 vext3 <5,6,7,0>, <5,5,7,7> 2718715937U, // <0,5,5,u>: Cost 3 vext3 <5,6,7,0>, <5,5,u,7> 2592358502U, // <0,5,6,0>: Cost 3 vext1 <7,0,5,6>, LHS - 3792457779U, // <0,5,6,1>: Cost 4 vext3 <5,6,7,0>, <5,6,1,7> + 3792015404U, // <0,5,6,1>: Cost 4 vext3 <5,6,1,0>, <5,6,1,0> 3731509754U, // <0,5,6,2>: Cost 4 vext2 <6,7,0,5>, <6,2,7,3> - 3781398594U, // <0,5,6,3>: Cost 4 vext3 <3,u,1,0>, <5,6,3,4> + 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> - 3781398624U, // <0,5,6,6>: Cost 4 vext3 <3,u,1,0>, <5,6,6,7> + 3785748576U, // <0,5,6,6>: Cost 4 vext3 <4,5,6,0>, <5,6,6,7> 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> 2562506854U, // <0,5,7,0>: Cost 3 vext1 <2,0,5,7>, LHS @@ -499,11 +499,11 @@ static const unsigned PerfectShuffleTable[6561+1] = { 2719379635U, // <0,5,7,7>: Cost 3 vext3 <5,7,7,0>, <5,7,7,0> 2562512686U, // <0,5,7,u>: Cost 3 vext1 <2,0,5,7>, LHS 1500717158U, // <0,5,u,0>: Cost 2 vext1 <4,0,5,u>, LHS - 2562515862U, // <0,5,u,1>: Cost 3 vext1 <2,0,5,u>, <1,2,3,0> - 2562516455U, // <0,5,u,2>: Cost 3 vext1 <2,0,5,u>, <2,0,5,u> - 2238188352U, // <0,5,u,3>: Cost 3 vrev <3,u,5,0> + 2625918766U, // <0,5,u,1>: Cost 3 vext2 <1,4,0,5>, LHS + 2719674583U, // <0,5,u,2>: Cost 3 vext3 <5,u,2,0>, <5,u,2,0> + 2568489152U, // <0,5,u,3>: Cost 3 vext1 <3,0,5,u>, <3,0,5,u> 1500720025U, // <0,5,u,4>: Cost 2 vext1 <4,0,5,u>, <4,0,5,u> - 2637863066U, // <0,5,u,5>: Cost 3 vext2 <3,4,0,5>, RHS + 2625919130U, // <0,5,u,5>: Cost 3 vext2 <1,4,0,5>, RHS 2586407243U, // <0,5,u,6>: Cost 3 vext1 <6,0,5,u>, <6,0,5,u> 1646301444U, // <0,5,u,7>: Cost 2 vext3 <5,u,7,0>, <5,u,7,0> 1646375181U, // <0,5,u,u>: Cost 2 vext3 <5,u,u,0>, <5,u,u,0> @@ -526,7 +526,7 @@ static const unsigned PerfectShuffleTable[6561+1] = { 2966736182U, // <0,6,1,7>: Cost 3 vzipr <2,3,0,1>, RHS 2966736183U, // <0,6,1,u>: Cost 3 vzipr <2,3,0,1>, RHS 1500741734U, // <0,6,2,0>: Cost 2 vext1 <4,0,6,2>, LHS - 2574484276U, // <0,6,2,1>: Cost 3 vext1 <4,0,6,2>, <1,1,1,1> + 2250518817U, // <0,6,2,1>: Cost 3 vrev <6,0,1,2> 2574485096U, // <0,6,2,2>: Cost 3 vext1 <4,0,6,2>, <2,2,2,2> 2631894694U, // <0,6,2,3>: Cost 3 vext2 <2,4,0,6>, <2,3,0,1> 1500744604U, // <0,6,2,4>: Cost 2 vext1 <4,0,6,2>, <4,0,6,2> @@ -536,97 +536,97 @@ static const unsigned PerfectShuffleTable[6561+1] = { 1500747566U, // <0,6,2,u>: Cost 2 vext1 <4,0,6,2>, LHS 3693693078U, // <0,6,3,0>: Cost 4 vext2 <0,4,0,6>, <3,0,1,2> 3705637136U, // <0,6,3,1>: Cost 4 vext2 <2,4,0,6>, <3,1,5,7> - 3693693238U, // <0,6,3,2>: Cost 4 vext2 <0,4,0,6>, <3,2,1,0> + 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> 3666154056U, // <0,6,3,6>: Cost 4 vext1 <7,0,6,3>, <6,3,7,0> 2722697800U, // <0,6,3,7>: Cost 3 vext3 <6,3,7,0>, <6,3,7,0> 2722771537U, // <0,6,3,u>: Cost 3 vext3 <6,3,u,0>, <6,3,u,0> - 2661755804U, // <0,6,4,0>: Cost 3 vext2 <7,4,0,6>, <4,0,6,2> + 2562556006U, // <0,6,4,0>: Cost 3 vext1 <2,0,6,4>, LHS 4095316257U, // <0,6,4,1>: Cost 4 vtrnl <0,2,4,6>, <6,0,1,2> - 2229634860U, // <0,6,4,2>: Cost 3 vrev <2,4,6,0> - 3309349381U, // <0,6,4,3>: Cost 4 vrev <3,4,6,0> - 3636301110U, // <0,6,4,4>: Cost 4 vext1 <2,0,6,4>, RHS + 2562557420U, // <0,6,4,2>: Cost 3 vext1 <2,0,6,4>, <2,0,6,4> + 3636299926U, // <0,6,4,3>: Cost 4 vext1 <2,0,6,4>, <3,0,1,2> + 2562559286U, // <0,6,4,4>: Cost 3 vext1 <2,0,6,4>, RHS 2619952438U, // <0,6,4,5>: Cost 3 vext2 <0,4,0,6>, RHS - 2253525648U, // <0,6,4,6>: Cost 3 vrev <6,4,6,0> + 2723287696U, // <0,6,4,6>: Cost 3 vext3 <6,4,6,0>, <6,4,6,0> 4027895094U, // <0,6,4,7>: Cost 4 vzipr <0,2,0,4>, RHS 2619952681U, // <0,6,4,u>: Cost 3 vext2 <0,4,0,6>, RHS 2718716594U, // <0,6,5,0>: Cost 3 vext3 <5,6,7,0>, <6,5,0,7> - 3735498448U, // <0,6,5,1>: Cost 4 vext2 <7,4,0,6>, <5,1,7,3> + 3648250774U, // <0,6,5,1>: Cost 4 vext1 <4,0,6,5>, <1,2,3,0> 3792458436U, // <0,6,5,2>: Cost 4 vext3 <5,6,7,0>, <6,5,2,7> - 3672140290U, // <0,6,5,3>: Cost 4 vext1 <u,0,6,5>, <3,4,5,6> - 2242243887U, // <0,6,5,4>: Cost 3 vrev <4,5,6,0> + 3705638767U, // <0,6,5,3>: Cost 5 vext2 <2,4,0,6>, <5,3,7,0> + 3648252831U, // <0,6,5,4>: Cost 4 vext1 <4,0,6,5>, <4,0,6,5> 3797619416U, // <0,6,5,5>: Cost 4 vext3 <6,5,5,0>, <6,5,5,0> 3792458472U, // <0,6,5,6>: Cost 4 vext3 <5,6,7,0>, <6,5,6,7> - 3777417969U, // <0,6,5,7>: Cost 4 vext3 <3,2,1,0>, <6,5,7,7> - 2266134675U, // <0,6,5,u>: Cost 3 vrev <u,5,6,0> + 4035202358U, // <0,6,5,7>: Cost 4 vzipr <1,4,0,5>, RHS + 2718716594U, // <0,6,5,u>: Cost 3 vext3 <5,6,7,0>, <6,5,0,7> 3786412796U, // <0,6,6,0>: Cost 4 vext3 <4,6,6,0>, <6,6,0,0> 3792458504U, // <0,6,6,1>: Cost 4 vext3 <5,6,7,0>, <6,6,1,3> - 3304703950U, // <0,6,6,2>: Cost 4 vrev <2,6,6,0> + 3728200126U, // <0,6,6,2>: Cost 4 vext2 <6,2,0,6>, <6,2,0,6> 3798135575U, // <0,6,6,3>: Cost 4 vext3 <6,6,3,0>, <6,6,3,0> - 2242907520U, // <0,6,6,4>: Cost 3 vrev <4,6,6,0> - 3322622041U, // <0,6,6,5>: Cost 4 vrev <5,6,6,0> + 3786412836U, // <0,6,6,4>: Cost 4 vext3 <4,6,6,0>, <6,6,4,4> + 3792458543U, // <0,6,6,5>: Cost 4 vext3 <5,6,7,0>, <6,6,5,6> 2718716728U, // <0,6,6,6>: Cost 3 vext3 <5,6,7,0>, <6,6,6,6> 2718716738U, // <0,6,6,7>: Cost 3 vext3 <5,6,7,0>, <6,6,7,7> 2718716747U, // <0,6,6,u>: Cost 3 vext3 <5,6,7,0>, <6,6,u,7> 2718716750U, // <0,6,7,0>: Cost 3 vext3 <5,6,7,0>, <6,7,0,1> - 2691879768U, // <0,6,7,1>: Cost 3 vext3 <1,2,3,0>, <6,7,1,2> + 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> 2718716800U, // <0,6,7,5>: Cost 3 vext3 <5,6,7,0>, <6,7,5,6> - 3777418122U, // <0,6,7,6>: Cost 4 vext3 <3,2,1,0>, <6,7,6,7> + 3792458629U, // <0,6,7,6>: Cost 4 vext3 <5,6,7,0>, <6,7,6,2> 2725352332U, // <0,6,7,7>: Cost 3 vext3 <6,7,7,0>, <6,7,7,0> 2718716822U, // <0,6,7,u>: Cost 3 vext3 <5,6,7,0>, <6,7,u,1> 1500790886U, // <0,6,u,0>: Cost 2 vext1 <4,0,6,u>, LHS 2619954990U, // <0,6,u,1>: Cost 3 vext2 <0,4,0,6>, LHS - 2232289392U, // <0,6,u,2>: Cost 3 vrev <2,u,6,0> + 2562590192U, // <0,6,u,2>: Cost 3 vext1 <2,0,6,u>, <2,0,6,u> 2725721017U, // <0,6,u,3>: Cost 3 vext3 <6,u,3,0>, <6,u,3,0> 1500793762U, // <0,6,u,4>: Cost 2 vext1 <4,0,6,u>, <4,0,6,u> 2619955354U, // <0,6,u,5>: Cost 3 vext2 <0,4,0,6>, RHS - 2256180180U, // <0,6,u,6>: Cost 3 vrev <6,u,6,0> + 2725942228U, // <0,6,u,6>: Cost 3 vext3 <6,u,6,0>, <6,u,6,0> 2954186038U, // <0,6,u,7>: Cost 3 vzipr <0,2,0,u>, RHS 1500796718U, // <0,6,u,u>: Cost 2 vext1 <4,0,6,u>, LHS - 2726163439U, // <0,7,0,0>: Cost 3 vext3 <7,0,0,0>, <7,0,0,0> + 2256401391U, // <0,7,0,0>: Cost 3 vrev <7,0,0,0> 2632564838U, // <0,7,0,1>: Cost 3 vext2 <2,5,0,7>, LHS - 2726310913U, // <0,7,0,2>: Cost 3 vext3 <7,0,2,0>, <7,0,2,0> + 2256548865U, // <0,7,0,2>: Cost 3 vrev <7,0,2,0> 3700998396U, // <0,7,0,3>: Cost 4 vext2 <1,6,0,7>, <0,3,1,0> 2718716952U, // <0,7,0,4>: Cost 3 vext3 <5,6,7,0>, <7,0,4,5> 2718716962U, // <0,7,0,5>: Cost 3 vext3 <5,6,7,0>, <7,0,5,6> 2621284845U, // <0,7,0,6>: Cost 3 vext2 <0,6,0,7>, <0,6,0,7> 3904685542U, // <0,7,0,7>: Cost 4 vuzpr <2,0,5,7>, <2,0,5,7> 2632565405U, // <0,7,0,u>: Cost 3 vext2 <2,5,0,7>, LHS - 2886521850U, // <0,7,1,0>: Cost 3 vzipl LHS, <7,0,1,2> |