Changes in directory llvm/lib/Target/PowerPC:
PPCInstrAltivec.td updated: 1.12 -> 1.13 PPCInstrFormats.td updated: 1.70 -> 1.71 --- Log message: Fix the JIT encoding of VSEL --- Diffs of the changes: (+24 -4) PPCInstrAltivec.td | 8 ++++---- PPCInstrFormats.td | 20 ++++++++++++++++++++ 2 files changed, 24 insertions(+), 4 deletions(-) Index: llvm/lib/Target/PowerPC/PPCInstrAltivec.td diff -u llvm/lib/Target/PowerPC/PPCInstrAltivec.td:1.12 llvm/lib/Target/PowerPC/PPCInstrAltivec.td:1.13 --- llvm/lib/Target/PowerPC/PPCInstrAltivec.td:1.12 Sun Mar 26 21:28:57 2006 +++ llvm/lib/Target/PowerPC/PPCInstrAltivec.td Sun Mar 26 21:34:17 2006 @@ -116,16 +116,16 @@ VRRC:$vB)))]>, Requires<[FPContractions]>; -def VPERM : VAForm_1<43, (ops VRRC:$vD, VRRC:$vA, VRRC:$vC, VRRC:$vB), - "vperm $vD, $vA, $vB, $vC", VecPerm, - [(set VRRC:$vD, +def VPERM : VAForm_1a<43, (ops VRRC:$vD, VRRC:$vA, VRRC:$vB, VRRC:$vC), + "vperm $vD, $vA, $vB, $vC", VecPerm, + [(set VRRC:$vD, (PPCvperm (v4f32 VRRC:$vA), VRRC:$vB, VRRC:$vC))]>; def VSLDOI : VAForm_2<44, (ops VRRC:$vD, VRRC:$vA, VRRC:$vB, u5imm:$SH), "vsldoi $vD, $vA, $vB, $SH", VecFP, [(set VRRC:$vD, (int_ppc_altivec_vsldoi VRRC:$vA, VRRC:$vB, imm:$SH))]>; -def VSEL : VAForm_1<42, (ops VRRC:$vD, VRRC:$vA, VRRC:$vB, VRRC:$vC), +def VSEL : VAForm_1a<42, (ops VRRC:$vD, VRRC:$vA, VRRC:$vB, VRRC:$vC), "vsel $vD, $vA, $vB, $vC", VecFP, [(set VRRC:$vD, (int_ppc_altivec_vsel VRRC:$vA, VRRC:$vB, VRRC:$vC))]>; Index: llvm/lib/Target/PowerPC/PPCInstrFormats.td diff -u llvm/lib/Target/PowerPC/PPCInstrFormats.td:1.70 llvm/lib/Target/PowerPC/PPCInstrFormats.td:1.71 --- llvm/lib/Target/PowerPC/PPCInstrFormats.td:1.70 Sun Mar 26 21:28:57 2006 +++ llvm/lib/Target/PowerPC/PPCInstrFormats.td Sun Mar 26 21:34:17 2006 @@ -590,6 +590,8 @@ } // E-1 VA-Form + +// VAForm_1 - DACB ordering. class VAForm_1<bits<6> xo, dag OL, string asmstr, InstrItinClass itin, list<dag> pattern> : I<4, OL, asmstr, itin> { @@ -607,6 +609,24 @@ let Inst{26-31} = xo; } +// VAForm_1a - DABC ordering. +class VAForm_1a<bits<6> xo, dag OL, string asmstr, + InstrItinClass itin, list<dag> pattern> + : I<4, OL, asmstr, itin> { + bits<5> VD; + bits<5> VA; + bits<5> VB; + bits<5> VC; + + let Pattern = pattern; + + let Inst{6-10} = VD; + let Inst{11-15} = VA; + let Inst{16-20} = VB; + let Inst{21-25} = VC; + let Inst{26-31} = xo; +} + class VAForm_2<bits<6> xo, dag OL, string asmstr, InstrItinClass itin, list<dag> pattern> : I<4, OL, asmstr, itin> { _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits