Fix the JIT encoding of VSPLTI*
authorChris Lattner <sabre@nondot.org>
Mon, 27 Mar 2006 03:28:57 +0000 (03:28 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 27 Mar 2006 03:28:57 +0000 (03:28 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27159 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/PowerPC/PPCInstrAltivec.td
lib/Target/PowerPC/PPCInstrFormats.td

index 8acce42d4c43f1789b02f6692ae11f1364c54e3c..360f7db3e5622147ab61ec33676000b37149638b 100644 (file)
@@ -290,15 +290,15 @@ def VSPLTW : VXForm_1<652, (ops VRRC:$vD, u5imm:$UIMM, VRRC:$vB),
                       [(set VRRC:$vD, (vector_shuffle (v4f32 VRRC:$vB), (undef),
                                       VSPLT_shuffle_mask:$UIMM))]>;
 
-def VSPLTISB : VXForm_1<780, (ops VRRC:$vD, s5imm:$SIMM),
-                      "vspltisb $vD, $SIMM", VecPerm,
-                      [(set VRRC:$vD, (v4f32 vecspltisb:$SIMM))]>;
-def VSPLTISH : VXForm_1<844, (ops VRRC:$vD, s5imm:$SIMM),
-                      "vspltish $vD, $SIMM", VecPerm,
-                      [(set VRRC:$vD, (v4f32 vecspltish:$SIMM))]>;
-def VSPLTISW : VXForm_1<908, (ops VRRC:$vD, s5imm:$SIMM),
-                      "vspltisw $vD, $SIMM", VecPerm,
-                      [(set VRRC:$vD, (v4f32 vecspltisw:$SIMM))]>;
+def VSPLTISB : VXForm_3<780, (ops VRRC:$vD, s5imm:$SIMM),
+                       "vspltisb $vD, $SIMM", VecPerm,
+                       [(set VRRC:$vD, (v4f32 vecspltisb:$SIMM))]>;
+def VSPLTISH : VXForm_3<844, (ops VRRC:$vD, s5imm:$SIMM),
+                       "vspltish $vD, $SIMM", VecPerm,
+                       [(set VRRC:$vD, (v4f32 vecspltish:$SIMM))]>;
+def VSPLTISW : VXForm_3<908, (ops VRRC:$vD, s5imm:$SIMM),
+                       "vspltisw $vD, $SIMM", VecPerm,
+                       [(set VRRC:$vD, (v4f32 vecspltisw:$SIMM))]>;
 
 
 // Altivec Comparisons.
index 7319463a73fba0ba97f726d55d8bb6602885844a..9f87b278e674d18039344b69f766db667c501b2b 100644 (file)
@@ -663,6 +663,21 @@ class VXForm_2<bits<11> xo, dag OL, string asmstr,
   let Inst{21-31} = xo;
 }
 
+class VXForm_3<bits<11> xo, dag OL, string asmstr,
+               InstrItinClass itin, list<dag> pattern>
+    : I<4, OL, asmstr, itin> {
+  bits<5> VD;
+  bits<5> IMM;
+  
+  let Pattern = pattern;
+  
+  let Inst{6-10}  = VD;
+  let Inst{11-15} = IMM;
+  let Inst{16-20} = 0;
+  let Inst{21-31} = xo;
+}
+
+
 // E-4 VXR-Form
 class VXRForm_1<bits<10> xo, dag OL, string asmstr,
                InstrItinClass itin, list<dag> pattern>