[llvm] a75bab6 - [Hexagon] Fix even/odd word shuffling

Krzysztof Parzyszek via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 15 10:06:42 PST 2022


Author: Krzysztof Parzyszek
Date: 2022-11-15T10:06:19-08:00
New Revision: a75bab6e6053fcd31f247a055c1404f8d91445b9

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

LOG: [Hexagon] Fix even/odd word shuffling

Used the wrong shuffle instruction... -_-

Added: 
    

Modified: 
    llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp
    llvm/test/CodeGen/Hexagon/autohvx/isel-vpackew.ll
    llvm/test/CodeGen/Hexagon/autohvx/qmul.ll

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp b/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp
index 0b147e42768b5..95bbdb61a2e55 100644
--- a/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp
+++ b/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp
@@ -1813,7 +1813,7 @@ OpRef HvxSelector::contracting(ShuffleMask SM, OpRef Va, OpRef Vb,
       OpRef C = OpRef::res(Results.top());
       MVT JoinTy = MVT::getVectorVT(ResTy.getVectorElementType(),
                                     2 * ResTy.getVectorNumElements());
-      Results.push(Hexagon::V6_vshuffvdd, JoinTy, {Vb, Va, C});
+      Results.push(Hexagon::V6_vdealvdd, JoinTy, {Vb, Va, C});
       return Strip.first == 0 ? OpRef::lo(OpRef::res(Results.top()))
                               : OpRef::hi(OpRef::res(Results.top()));
     }

diff  --git a/llvm/test/CodeGen/Hexagon/autohvx/isel-vpackew.ll b/llvm/test/CodeGen/Hexagon/autohvx/isel-vpackew.ll
index 22fdf01c218db..04b925d92b2ab 100644
--- a/llvm/test/CodeGen/Hexagon/autohvx/isel-vpackew.ll
+++ b/llvm/test/CodeGen/Hexagon/autohvx/isel-vpackew.ll
@@ -18,7 +18,7 @@ define void @f0(ptr %a0, ptr %a1, ptr %a2) #0 {
 ; CHECK-NEXT:     v1:0.w = vadd(v1:0.w,v1:0.w)
 ; CHECK-NEXT:    }
 ; CHECK-NEXT:    {
-; CHECK-NEXT:     v1:0 = vshuff(v1,v0,r7)
+; CHECK-NEXT:     v1:0 = vdeal(v1,v0,r7)
 ; CHECK-NEXT:    }
 ; CHECK-NEXT:    {
 ; CHECK-NEXT:     v0.h = vpacko(v1.w,v0.w)

diff  --git a/llvm/test/CodeGen/Hexagon/autohvx/qmul.ll b/llvm/test/CodeGen/Hexagon/autohvx/qmul.ll
index d3a4e88ab9de3..3ed0a70ee6b61 100644
--- a/llvm/test/CodeGen/Hexagon/autohvx/qmul.ll
+++ b/llvm/test/CodeGen/Hexagon/autohvx/qmul.ll
@@ -87,7 +87,7 @@ define void @f2(ptr %a0, ptr %a1, ptr %a2) #0 {
 ; CHECK-NEXT:     v1:0.w = vmpy(v0.h,v1.h)
 ; CHECK-NEXT:    }
 ; CHECK-NEXT:    {
-; CHECK-NEXT:     v1:0 = vshuff(v1,v0,r7)
+; CHECK-NEXT:     v1:0 = vdeal(v1,v0,r7)
 ; CHECK-NEXT:    }
 ; CHECK-NEXT:    {
 ; CHECK-NEXT:     v0.uw = vlsr(v0.uw,r3)


        


More information about the llvm-commits mailing list