aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Target/ARM/ARMISelLowering.cpp10
-rw-r--r--lib/Target/ARM/ARMPerfectShuffle.h2683
-rw-r--r--test/CodeGen/ARM/vrev.ll5
-rw-r--r--utils/PerfectShuffle/PerfectShuffle.cpp2
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>