Fix the pattern for VADDUWM, add i32 splat
authorChris Lattner <sabre@nondot.org>
Mon, 20 Mar 2006 17:51:58 +0000 (17:51 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 20 Mar 2006 17:51:58 +0000 (17:51 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26901 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/PowerPC/PPCInstrInfo.td

index 4817ec1fff7ee906f1bb00d97699abe4ab74f470..8af3e87723c1669c07f8a68a1a44ceaef4bcf2ab 100644 (file)
@@ -972,7 +972,7 @@ def VADDFP : VXForm_1<10, (ops VRRC:$vD, VRRC:$vA, VRRC:$vB),
                       [(set VRRC:$vD, (fadd VRRC:$vA, VRRC:$vB))]>;
 def VADDUWM : VXForm_1<128, (ops VRRC:$vD, VRRC:$vA, VRRC:$vB),
                       "vadduwm $vD, $vA, $vB", VecGeneral,
-                      [(set VRRC:$vD, (add VRRC:$vA, VRRC:$vB))]>;
+                      [(set VRRC:$vD, (add (v4i32 VRRC:$vA), VRRC:$vB))]>;
 def VCFSX  : VXForm_1<842, (ops VRRC:$vD, u5imm:$UIMM, VRRC:$vB),
                       "vcfsx $vD, $vB, $UIMM", VecFP,
                       []>;
@@ -1178,6 +1178,9 @@ def : Pat<(v16i8 (load xoaddr:$src)),
           (v16i8 (LVX xoaddr:$src))>;
 
 
+def : Pat<(vector_shuffle (v4i32 VRRC:$vB), (undef), VSPLT_shuffle_mask:$UIMM),
+          (v4i32 (VSPLTW VSPLT_shuffle_mask:$UIMM, VRRC:$vB))>;
+
 def : Pat<(PPCvperm (v4i32 VRRC:$vA), VRRC:$vB, VRRC:$vC),
           (v4i32 (VPERM VRRC:$vA, VRRC:$vB, VRRC:$vC))>;