//=======-- 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 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 xo, dag OOL, dag IOL, string asmstr, InstrItinClass itin> : EVXForm_1 { let RB = 0; } class EVXForm_3 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 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