| //=======-- PPCInstrSPE.td - The PowerPC SPE Extension -*- tablegen -*-=======// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| // |
| // This file describes the Signal Processing Engine extension to |
| // the PowerPC instruction set. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| class EVXForm_1<bits<11> xo, dag OOL, dag IOL, string asmstr, |
| InstrItinClass itin> : I<4, OOL, IOL, asmstr, itin> { |
| bits<5> RT; |
| bits<5> RA; |
| bits<5> RB; |
| |
| let Pattern = []; |
| |
| let Inst{6-10} = RT; |
| let Inst{11-15} = RA; |
| let Inst{16-20} = RB; |
| let Inst{21-31} = xo; |
| } |
| |
| class EVXForm_2<bits<11> xo, dag OOL, dag IOL, string asmstr, |
| InstrItinClass itin> : EVXForm_1<xo, OOL, IOL, asmstr, itin> { |
| let RB = 0; |
| } |
| |
| class EVXForm_3<bits<11> xo, dag OOL, dag IOL, string asmstr, |
| InstrItinClass itin> : I<4, OOL, IOL, asmstr, itin> { |
| bits<3> crD; |
| bits<5> RA; |
| bits<5> RB; |
| |
| let Pattern = []; |
| |
| let Inst{6-8} = crD; |
| let Inst{9-10} = 0; |
| let Inst{11-15} = RA; |
| let Inst{16-20} = RB; |
| let Inst{21-31} = xo; |
| } |
| |
| class EVXForm_D<bits<11> xo, dag OOL, dag IOL, string asmstr, |
| InstrItinClass itin> : I<4, OOL, IOL, asmstr, itin> { |
| bits<5> RT; |
| bits<21> D; |
| |
| let Pattern = []; |
| |
| let Inst{6-10} = RT; |
| let Inst{20} = D{0}; |
| let Inst{19} = D{1}; |
| let Inst{18} = D{2}; |
| let Inst{17} = D{3}; |
| let Inst{16} = D{4}; |
| let Inst{15} = D{5}; |
| let Inst{14} = D{6}; |
| let Inst{13} = D{7}; |
| let Inst{12} = D{8}; |
| let Inst{11} = D{9}; |
| let Inst{11-20} = D{0-9}; |
| let Inst{21-31} = xo; |
| } |
| |
| let Predicates = [HasSPE], isAsmParserOnly = 1 in { |
| |
| def EVLDD : EVXForm_D<769, (outs gprc:$RT), (ins spe8dis:$dst), |
| "evldd $RT, $dst", IIC_VecFP>; |
| def EVLDW : EVXForm_D<771, (outs gprc:$RT), (ins spe8dis:$dst), |
| "evldw $RT, $dst", IIC_VecFP>; |
| def EVLDH : EVXForm_D<773, (outs gprc:$RT), (ins spe8dis:$dst), |
| "evldh $RT, $dst", IIC_VecFP>; |
| def EVLHHESPLAT : EVXForm_D<777, (outs gprc:$RT), (ins spe2dis:$dst), |
| "evlhhesplat $RT, $dst", IIC_VecFP>; |
| def EVLHHOUSPLAT : EVXForm_D<781, (outs gprc:$RT), (ins spe2dis:$dst), |
| "evlhhousplat $RT, $dst", IIC_VecFP>; |
| def EVLHHOSSPLAT : EVXForm_D<783, (outs gprc:$RT), (ins spe2dis:$dst), |
| "evlhhossplat $RT, $dst", IIC_VecFP>; |
| def EVLWHE : EVXForm_D<785, (outs gprc:$RT), (ins spe4dis:$dst), |
| "evlwhe $RT, $dst", IIC_VecFP>; |
| def EVLWHOU : EVXForm_D<789, (outs gprc:$RT), (ins spe4dis:$dst), |
| "evlwhou $RT, $dst", IIC_VecFP>; |
| def EVLWHOS : EVXForm_D<791, (outs gprc:$RT), (ins spe4dis:$dst), |
| "evlwhos $RT, $dst", IIC_VecFP>; |
| def EVLWWSPLAT : EVXForm_D<793, (outs gprc:$RT), (ins spe4dis:$dst), |
| "evlwwsplat $RT, $dst", IIC_VecFP>; |
| def EVLWHSPLAT : EVXForm_D<797, (outs gprc:$RT), (ins spe4dis:$dst), |
| "evlwhsplat $RT, $dst", IIC_VecFP>; |
| |
| def EVSTDD : EVXForm_D<801, (outs), (ins gprc:$RT, spe8dis:$dst), |
| "evstdd $RT, $dst", IIC_VecFP>; |
| def EVSTDH : EVXForm_D<805, (outs), (ins gprc:$RT, spe8dis:$dst), |
| "evstdh $RT, $dst", IIC_VecFP>; |
| def EVSTDW : EVXForm_D<803, (outs), (ins gprc:$RT, spe8dis:$dst), |
| "evstdw $RT, $dst", IIC_VecFP>; |
| def EVSTWHE : EVXForm_D<817, (outs), (ins gprc:$RT, spe4dis:$dst), |
| "evstwhe $RT, $dst", IIC_VecFP>; |
| def EVSTWHO : EVXForm_D<821, (outs), (ins gprc:$RT, spe4dis:$dst), |
| "evstwho $RT, $dst", IIC_VecFP>; |
| def EVSTWWE : EVXForm_D<825, (outs), (ins gprc:$RT, spe4dis:$dst), |
| "evstwwe $RT, $dst", IIC_VecFP>; |
| def EVSTWWO : EVXForm_D<829, (outs), (ins gprc:$RT, spe4dis:$dst), |
| "evstwwo $RT, $dst", IIC_VecFP>; |
| |
| def EVMRA : EVXForm_1<1220, (outs gprc:$RT), (ins gprc:$RA), |
| "evmra $RT, $RA", IIC_VecFP> { |
| let RB = 0; |
| } |
| |
| def BRINC : EVXForm_1<527, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "brinc $RT, $RA, $RB", IIC_VecFP>; |
| def EVABS : EVXForm_2<520, (outs gprc:$RT), (ins gprc:$RA), |
| "evabs $RT, $RA", IIC_VecFP>; |
| |
| def EVADDIW : EVXForm_1<514, (outs gprc:$RT), (ins gprc:$RA, u5imm:$RB), |
| "evaddiw $RT, $RB, $RA", IIC_VecFP>; |
| def EVADDSMIAAW : EVXForm_2<1225, (outs gprc:$RT), (ins gprc:$RA), |
| "evaddsmiaaw $RT, $RA", IIC_VecFP>; |
| def EVADDSSIAAW : EVXForm_2<1217, (outs gprc:$RT), (ins gprc:$RA), |
| "evaddssiaaw $RT, $RA", IIC_VecFP>; |
| def EVADDUSIAAW : EVXForm_2<1216, (outs gprc:$RT), (ins gprc:$RA), |
| "evaddusiaaw $RT, $RA", IIC_VecFP>; |
| def EVADDUMIAAW : EVXForm_2<1224, (outs gprc:$RT), (ins gprc:$RA), |
| "evaddumiaaw $RT, $RA", IIC_VecFP>; |
| def EVADDW : EVXForm_1<512, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evaddw $RT, $RA, $RB", IIC_VecFP>; |
| |
| def EVAND : EVXForm_1<529, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evand $RT, $RA, $RB", IIC_VecFP>; |
| def EVANDC : EVXForm_1<530, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evandc $RT, $RA, $RB", IIC_VecFP>; |
| |
| def EVCMPEQ : EVXForm_3<564, (outs crrc:$crD), (ins gprc:$RA, gprc:$RB), |
| "evcmpeq $crD, $RA, $RB", IIC_VecFP>; |
| def EVCMPGTS : EVXForm_3<561, (outs crrc:$crD), (ins gprc:$RA, gprc:$RB), |
| "evcmpgts $crD, $RA, $RB", IIC_VecFP>; |
| def EVCMPGTU : EVXForm_3<560, (outs crrc:$crD), (ins gprc:$RA, gprc:$RB), |
| "evcmpgtu $crD, $RA, $RB", IIC_VecFP>; |
| def EVCMPLTS : EVXForm_3<563, (outs crrc:$crD), (ins gprc:$RA, gprc:$RB), |
| "evcmplts $crD, $RA, $RB", IIC_VecFP>; |
| def EVCMPLTU : EVXForm_3<562, (outs crrc:$crD), (ins gprc:$RA, gprc:$RB), |
| "evcmpltu $crD, $RA, $RB", IIC_VecFP>; |
| |
| def EVCNTLSW : EVXForm_2<526, (outs gprc:$RT), (ins gprc:$RA), |
| "evcntlsw $RT, $RA", IIC_VecFP>; |
| def EVCNTLZW : EVXForm_2<525, (outs gprc:$RT), (ins gprc:$RA), |
| "evcntlzw $RT, $RA", IIC_VecFP>; |
| |
| def EVDIVWS : EVXForm_1<1222, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evdivws $RT, $RA, $RB", IIC_VecFP>; |
| def EVDIVWU : EVXForm_1<1223, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evdivwu $RT, $RA, $RB", IIC_VecFP>; |
| |
| def EVEQV : EVXForm_1<537, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "eveqv $RT, $RA, $RB", IIC_VecFP>; |
| |
| def EVEXTSB : EVXForm_2<522, (outs gprc:$RT), (ins gprc:$RA), |
| "evextsb $RT, $RA", IIC_VecFP>; |
| def EVEXTSH : EVXForm_2<523, (outs gprc:$RT), (ins gprc:$RA), |
| "evextsh $RT, $RA", IIC_VecFP>; |
| |
| def EVLDDX : EVXForm_1<768, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evlddx $RT, $RA, $RB", IIC_VecFP>; |
| def EVLDWX : EVXForm_1<770, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evldwx $RT, $RA, $RB", IIC_VecFP>; |
| def EVLDHX : EVXForm_1<772, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evldhx $RT, $RA, $RB", IIC_VecFP>; |
| def EVLHHESPLATX : EVXForm_1<776, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evlhhesplatx $RT, $RA, $RB", IIC_VecFP>; |
| def EVLHHOUSPLATX : EVXForm_1<780, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evlhhousplatx $RT, $RA, $RB", IIC_VecFP>; |
| def EVLHHOSSPLATX : EVXForm_1<782, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evlhhossplatx $RT, $RA, $RB", IIC_VecFP>; |
| def EVLWHEX : EVXForm_1<784, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evlwhex $RT, $RA, $RB", IIC_VecFP>; |
| def EVLWHOUX : EVXForm_1<788, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evlwhoux $RT, $RA, $RB", IIC_VecFP>; |
| def EVLWHOSX : EVXForm_1<790, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evlwhosx $RT, $RA, $RB", IIC_VecFP>; |
| def EVLWWSPLATX : EVXForm_1<792, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evlwwsplatx $RT, $RA, $RB", IIC_VecFP>; |
| def EVLWHSPLATX : EVXForm_1<796, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evlwhsplatx $RT, $RA, $RB", IIC_VecFP>; |
| |
| def EVMERGEHI : EVXForm_1<556, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmergehi $RT, $RA, $RB", IIC_VecFP>; |
| def EVMERGELO : EVXForm_1<557, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmergelo $RT, $RA, $RB", IIC_VecFP>; |
| def EVMERGEHILO : EVXForm_1<558, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmergehilo $RT, $RA, $RB", IIC_VecFP>; |
| def EVMERGELOHI : EVXForm_1<559, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmergelohi $RT, $RA, $RB", IIC_VecFP>; |
| |
| def EVMHEGSMFAA : EVXForm_1<1323, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhegsmfaa $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHEGSMFAN : EVXForm_1<1451, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhegsmfan $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHEGSMIAA : EVXForm_1<1321, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhegsmiaa $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHEGSMIAN : EVXForm_1<1449, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhegsmian $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHEGUMIAA : EVXForm_1<1320, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhegumiaa $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHEGUMIAN : EVXForm_1<1448, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhegumian $RT, $RA, $RB", IIC_VecFP>; |
| |
| def EVMHESMF : EVXForm_1<1035, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhesmf $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHESMFA : EVXForm_1<1067, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhesmfa $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHESMFAAW : EVXForm_1<1291, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhesmfaaw $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHESMFANW : EVXForm_1<1419, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhesmfanw $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHESMI : EVXForm_1<1033, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhesmi $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHESMIA : EVXForm_1<1065, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhesmia $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHESMIAAW : EVXForm_1<1289, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhesmiaaw $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHESMIANW : EVXForm_1<1417, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhesmianw $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHESSF : EVXForm_1<1027, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhessf $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHESSFA : EVXForm_1<1059, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhessfa $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHESSFAAW : EVXForm_1<1283, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhessfaaw $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHESSFANW : EVXForm_1<1411, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhessfanw $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHESSIAAW : EVXForm_1<1281, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhessiaaw $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHESSIANW : EVXForm_1<1409, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhessianw $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHEUMI : EVXForm_1<1032, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmheumi $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHEUMIA : EVXForm_1<1064, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmheumia $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHEUMIAAW : EVXForm_1<1288, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmheumiaaw $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHEUMIANW : EVXForm_1<1416, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmheumianw $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHEUSIAAW : EVXForm_1<1280, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmheusiaaw $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHEUSIANW : EVXForm_1<1408, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmheusianw $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHOGSMFAA : EVXForm_1<1327, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhogsmfaa $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHOGSMFAN : EVXForm_1<1455, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhogsmfan $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHOGSMIAA : EVXForm_1<1325, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhogsmiaa $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHOGSMIAN : EVXForm_1<1453, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhogsmian $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHOGUMIAA : EVXForm_1<1324, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhogumiaa $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHOGUMIAN : EVXForm_1<1452, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhogumian $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHOSMF : EVXForm_1<1039, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhosmf $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHOSMFA : EVXForm_1<1071, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhosmfa $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHOSMFAAW : EVXForm_1<1295, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhosmfaaw $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHOSMFANW : EVXForm_1<1423, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhosmfanw $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHOSMI : EVXForm_1<1037, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhosmi $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHOSMIA : EVXForm_1<1069, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhosmia $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHOSMIAAW : EVXForm_1<1293, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhosmiaaw $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHOSMIANW : EVXForm_1<1421, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhosmianw $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHOSSF : EVXForm_1<1031, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhossf $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHOSSFA : EVXForm_1<1063, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhossfa $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHOSSFAAW : EVXForm_1<1287, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhossfaaw $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHOSSFANW : EVXForm_1<1415, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhossfanw $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHOSSIAAW : EVXForm_1<1285, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhossiaaw $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHOSSIANW : EVXForm_1<1413, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhossianw $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHOUMI : EVXForm_1<1036, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhoumi $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHOUMIA : EVXForm_1<1068, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhoumia $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHOUMIAAW : EVXForm_1<1292, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhoumiaaw $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHOUMIANW : EVXForm_1<1420, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhoumianw $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHOUSIAAW : EVXForm_1<1284, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhousiaaw $RT, $RA, $RB", IIC_VecFP>; |
| def EVMHOUSIANW : EVXForm_1<1412, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmhousianw $RT, $RA, $RB", IIC_VecFP>; |
| |
| |
| def EVMWHSMF : EVXForm_1<1103, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmwhsmf $RT, $RA, $RB", IIC_VecFP>; |
| def EVMWHSMFA : EVXForm_1<1135, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmwhsmfa $RT, $RA, $RB", IIC_VecFP>; |
| def EVMWHSMI : EVXForm_1<1101, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmwhsmi $RT, $RA, $RB", IIC_VecFP>; |
| def EVMWHSMIA : EVXForm_1<1133, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmwhsmia $RT, $RA, $RB", IIC_VecFP>; |
| def EVMWHSSF : EVXForm_1<1095, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmwhssf $RT, $RA, $RB", IIC_VecFP>; |
| def EVMWHSSFA : EVXForm_1<1127, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmwhssfa $RT, $RA, $RB", IIC_VecFP>; |
| def EVMWHUMI : EVXForm_1<1100, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmwhumi $RT, $RA, $RB", IIC_VecFP>; |
| def EVMWHUMIA : EVXForm_1<1132, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmwhumia $RT, $RA, $RB", IIC_VecFP>; |
| def EVMWLSMIAAW : EVXForm_1<1353, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmwlsmiaaw $RT, $RA, $RB", IIC_VecFP>; |
| def EVMWLSMIANW : EVXForm_1<1481, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmwlsmianw $RT, $RA, $RB", IIC_VecFP>; |
| def EVMWLSSIAAW : EVXForm_1<1345, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmwlssiaaw $RT, $RA, $RB", IIC_VecFP>; |
| def EVMWLSSIANW : EVXForm_1<1473, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmwlssianw $RT, $RA, $RB", IIC_VecFP>; |
| def EVMWLUMI : EVXForm_1<1096, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmwlumi $RT, $RA, $RB", IIC_VecFP>; |
| def EVMWLUMIA : EVXForm_1<1128, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmwlumia $RT, $RA, $RB", IIC_VecFP>; |
| def EVMWLUMIAAW : EVXForm_1<1352, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmwlumiaaw $RT, $RA, $RB", IIC_VecFP>; |
| def EVMWLUMIANW : EVXForm_1<1480, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmwlumianw $RT, $RA, $RB", IIC_VecFP>; |
| def EVMWLUSIAAW : EVXForm_1<1344, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmwlusiaaw $RT, $RA, $RB", IIC_VecFP>; |
| def EVMWLUSIANW : EVXForm_1<1472, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmwlusianw $RT, $RA, $RB", IIC_VecFP>; |
| def EVMWSMF : EVXForm_1<1115, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmwsmf $RT, $RA, $RB", IIC_VecFP>; |
| def EVMWSMFA : EVXForm_1<1147, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmwsmfa $RT, $RA, $RB", IIC_VecFP>; |
| def EVMWSMFAA : EVXForm_1<1371, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmwsmfaa $RT, $RA, $RB", IIC_VecFP>; |
| def EVMWSMFAN : EVXForm_1<1499, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmwsmfan $RT, $RA, $RB", IIC_VecFP>; |
| def EVMWSMI : EVXForm_1<1113, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmwsmi $RT, $RA, $RB", IIC_VecFP>; |
| def EVMWSMIA : EVXForm_1<1145, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmwsmia $RT, $RA, $RB", IIC_VecFP>; |
| def EVMWSMIAA : EVXForm_1<1369, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmwsmiaa $RT, $RA, $RB", IIC_VecFP>; |
| def EVMWSMIAN : EVXForm_1<1497, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmwsmian $RT, $RA, $RB", IIC_VecFP>; |
| def EVMWSSF : EVXForm_1<1107, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmwssf $RT, $RA, $RB", IIC_VecFP>; |
| def EVMWSSFA : EVXForm_1<1139, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmwssfa $RT, $RA, $RB", IIC_VecFP>; |
| def EVMWSSFAA : EVXForm_1<1363, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmwssfaa $RT, $RA, $RB", IIC_VecFP>; |
| def EVMWSSFAN : EVXForm_1<1491, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmwssfan $RT, $RA, $RB", IIC_VecFP>; |
| def EVMWUMI : EVXForm_1<1112, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmwumi $RT, $RA, $RB", IIC_VecFP>; |
| def EVMWUMIA : EVXForm_1<1144, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmwumia $RT, $RA, $RB", IIC_VecFP>; |
| def EVMWUMIAA : EVXForm_1<1368, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmwumiaa $RT, $RA, $RB", IIC_VecFP>; |
| def EVMWUMIAN : EVXForm_1<1496, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evmwumian $RT, $RA, $RB", IIC_VecFP>; |
| |
| |
| def EVNAND : EVXForm_1<542, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evnand $RT, $RA, $RB", IIC_VecFP>; |
| |
| def EVNEG : EVXForm_2<521, (outs gprc:$RT), (ins gprc:$RA), |
| "evneg $RT, $RA", IIC_VecFP>; |
| |
| def EVNOR : EVXForm_1<536, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evnor $RT, $RA, $RB", IIC_VecFP>; |
| def EVOR : EVXForm_1<535, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evor $RT, $RA, $RB", IIC_VecFP>; |
| def EVORC : EVXForm_1<539, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evorc $RT, $RA, $RB", IIC_VecFP>; |
| |
| def EVRLWI : EVXForm_1<554, (outs gprc:$RT), (ins gprc:$RA, u5imm:$RB), |
| "evrlwi $RT, $RA, $RB", IIC_VecFP>; |
| def EVRLW : EVXForm_1<552, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evrlw $RT, $RA, $RB", IIC_VecFP>; |
| |
| def EVRNDW : EVXForm_2<524, (outs gprc:$RT), (ins gprc:$RA), |
| "evrndw $RT, $RA", IIC_VecFP>; |
| |
| def EVSLWI : EVXForm_1<550, (outs gprc:$RT), (ins gprc:$RA, u5imm:$RB), |
| "evslwi $RT, $RA, $RB", IIC_VecFP>; |
| def EVSLW : EVXForm_1<548, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evslw $RT, $RA, $RB", IIC_VecFP>; |
| |
| def EVSPLATFI : EVXForm_2<555, (outs gprc:$RT), (ins i32imm:$RA), |
| "evsplatfi $RT, $RA", IIC_VecFP>; |
| def EVSPLATI : EVXForm_2<553, (outs gprc:$RT), (ins i32imm:$RA), |
| "evsplati $RT, $RA", IIC_VecFP>; |
| |
| def EVSRWIS : EVXForm_1<547, (outs gprc:$RT), (ins gprc:$RA, u5imm:$RB), |
| "evsrwis $RT, $RA, $RB", IIC_VecFP>; |
| def EVSRWIU : EVXForm_1<546, (outs gprc:$RT), (ins gprc:$RA, u5imm:$RB), |
| "evsrwiu $RT, $RA, $RB", IIC_VecFP>; |
| def EVSRWS : EVXForm_1<545, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evsrws $RT, $RA, $RB", IIC_VecFP>; |
| def EVSRWU : EVXForm_1<544, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evsrwu $RT, $RA, $RB", IIC_VecFP>; |
| |
| def EVSTDDX : EVXForm_1<800, (outs), (ins gprc:$RT, gprc:$RA, gprc:$RB), |
| "evstddx $RT, $RA, $RB", IIC_VecFP>; |
| def EVSTDHX : EVXForm_1<804, (outs), (ins gprc:$RT, gprc:$RA, gprc:$RB), |
| "evstdhx $RT, $RA, $RB", IIC_VecFP>; |
| def EVSTDWX : EVXForm_1<802, (outs), (ins gprc:$RT, gprc:$RA, gprc:$RB), |
| "evstdwx $RT, $RA, $RB", IIC_VecFP>; |
| def EVSTWHEX : EVXForm_1<816, (outs), (ins gprc:$RT, gprc:$RA, gprc:$RB), |
| "evstwhex $RT, $RA, $RB", IIC_VecFP>; |
| def EVSTWHOX : EVXForm_1<820, (outs), (ins gprc:$RT, gprc:$RA, gprc:$RB), |
| "evstwhox $RT, $RA, $RB", IIC_VecFP>; |
| def EVSTWWEX : EVXForm_1<824, (outs), (ins gprc:$RT, gprc:$RA, gprc:$RB), |
| "evstwwex $RT, $RA, $RB", IIC_VecFP>; |
| def EVSTWWOX : EVXForm_1<828, (outs), (ins gprc:$RT, gprc:$RA, gprc:$RB), |
| "evstwwox $RT, $RA, $RB", IIC_VecFP>; |
| |
| def EVSUBFSSIAAW : EVXForm_2<1219, (outs gprc:$RT), (ins gprc:$RA), |
| "evsubfssiaaw $RT, $RA", IIC_VecFP>; |
| def EVSUBFSMIAAW : EVXForm_2<1227, (outs gprc:$RT), (ins gprc:$RA), |
| "evsubfsmiaaw $RT, $RA", IIC_VecFP>; |
| def EVSUBFUMIAAW : EVXForm_2<1226, (outs gprc:$RT), (ins gprc:$RA), |
| "evsubfumiaaw $RT, $RA", IIC_VecFP>; |
| def EVSUBFUSIAAW : EVXForm_2<1218, (outs gprc:$RT), (ins gprc:$RA), |
| "evsubfusiaaw $RT, $RA", IIC_VecFP>; |
| def EVSUBFW : EVXForm_1<516, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evsubfw $RT, $RA, $RB", IIC_VecFP>; |
| def EVSUBIFW : EVXForm_1<518, (outs gprc:$RT), (ins u5imm:$RA, gprc:$RB), |
| "evsubifw $RT, $RA, $RB", IIC_VecFP>; |
| def EVXOR : EVXForm_1<534, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| "evxor $RT, $RA, $RB", IIC_VecFP>; |
| |
| } // HasSPE |