1 //=======-- PPCInstrSPE.td - The PowerPC SPE Extension -*- tablegen -*-=======//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This file describes the Signal Processing Engine extension to
11 // the PowerPC instruction set.
13 //===----------------------------------------------------------------------===//
15 class EVXForm_1<bits<11> xo, dag OOL, dag IOL, string asmstr,
16 InstrItinClass itin> : I<4, OOL, IOL, asmstr, itin> {
29 let Predicates = [HasSPE], isAsmParserOnly = 1 in {
31 def EVMRA : EVXForm_1<1220, (outs gprc:$RT), (ins gprc:$RA),
32 "evmra $RT, $RA", IIC_VecFP> {
36 def EVLDDX : EVXForm_1<768, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
37 "evlddx $RT, $RA, $RB", IIC_VecFP>;
38 def EVLDWX : EVXForm_1<770, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
39 "evldwx $RT, $RA, $RB", IIC_VecFP>;
40 def EVLDHX : EVXForm_1<772, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
41 "evldhx $RT, $RA, $RB", IIC_VecFP>;
42 def EVLHHESPLATX : EVXForm_1<776, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
43 "evlhhesplatx $RT, $RA, $RB", IIC_VecFP>;
44 def EVLHHOUSPLATX : EVXForm_1<780, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
45 "evlhhousplatx $RT, $RA, $RB", IIC_VecFP>;
46 def EVLHHOSSPLATX : EVXForm_1<782, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
47 "evlhhossplatx $RT, $RA, $RB", IIC_VecFP>;
48 def EVLWHEX : EVXForm_1<784, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
49 "evlwhex $RT, $RA, $RB", IIC_VecFP>;
50 def EVLWHOUX : EVXForm_1<788, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
51 "evlwhoux $RT, $RA, $RB", IIC_VecFP>;
52 def EVLWHOSX : EVXForm_1<790, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
53 "evlwhosx $RT, $RA, $RB", IIC_VecFP>;
54 def EVLWWSPLATX : EVXForm_1<792, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
55 "evlwwsplatx $RT, $RA, $RB", IIC_VecFP>;
56 def EVLWHSPLATX : EVXForm_1<796, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
57 "evlwhsplatx $RT, $RA, $RB", IIC_VecFP>;
59 def EVMERGEHI : EVXForm_1<556, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
60 "evmergehi $RT, $RA, $RB", IIC_VecFP>;
61 def EVMERGELO : EVXForm_1<557, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
62 "evmergelo $RT, $RA, $RB", IIC_VecFP>;
63 def EVMERGEHILO : EVXForm_1<558, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
64 "evmergehilo $RT, $RA, $RB", IIC_VecFP>;
65 def EVMERGELOHI : EVXForm_1<559, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
66 "evmergelohi $RT, $RA, $RB", IIC_VecFP>;