diff --git a/lib/Target/PowerPC/PPCInstrSPE.td b/lib/Target/PowerPC/PPCInstrSPE.td index c54272d4ba8..86b7c424a91 100644 --- a/lib/Target/PowerPC/PPCInstrSPE.td +++ b/lib/Target/PowerPC/PPCInstrSPE.td @@ -26,6 +26,26 @@ class EVXForm_1 xo, dag OOL, dag IOL, string asmstr, 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; +} + let Predicates = [HasSPE], isAsmParserOnly = 1 in { def EVMRA : EVXForm_1<1220, (outs gprc:$RT), (ins gprc:$RA), @@ -33,6 +53,58 @@ def EVMRA : EVXForm_1<1220, (outs gprc:$RT), (ins gprc:$RA), 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), @@ -65,4 +137,251 @@ def EVMERGEHILO : EVXForm_1<558, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), 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 diff --git a/test/MC/PowerPC/ppc64-encoding-spe.s b/test/MC/PowerPC/ppc64-encoding-spe.s index d16003f36bf..574e275dfa4 100644 --- a/test/MC/PowerPC/ppc64-encoding-spe.s +++ b/test/MC/PowerPC/ppc64-encoding-spe.s @@ -48,3 +48,418 @@ # CHECK-BE: evmergelohi 14, 21, 28 # encoding: [0x11,0xd5,0xe2,0x2f] # CHECK-LE: evmergelohi 14, 21, 28 # encoding: [0x2f,0xe2,0xd5,0x11] evmergelohi %r14, %r21, %r28 + +# CHECK-BE: brinc 14, 22, 19 # encoding: [0x11,0xd6,0x9a,0x0f] +# CHECK-LE: brinc 14, 22, 19 # encoding: [0x0f,0x9a,0xd6,0x11] + brinc %r14, %r22, %r19 +# CHECK-BE: evabs 14, 22 # encoding: [0x11,0xd6,0x02,0x08] +# CHECK-LE: evabs 14, 22 # encoding: [0x08,0x02,0xd6,0x11] + evabs %r14, %r22 +# CHECK-BE: evaddsmiaaw 14, 22 # encoding: [0x11,0xd6,0x04,0xc9] +# CHECK-LE: evaddsmiaaw 14, 22 # encoding: [0xc9,0x04,0xd6,0x11] + evaddsmiaaw %r14, %r22 +# CHECK-BE: evaddssiaaw 14, 22 # encoding: [0x11,0xd6,0x04,0xc1] +# CHECK-LE: evaddssiaaw 14, 22 # encoding: [0xc1,0x04,0xd6,0x11] + evaddssiaaw %r14, %r22 +# CHECK-BE: evaddusiaaw 14, 22 # encoding: [0x11,0xd6,0x04,0xc0] +# CHECK-LE: evaddusiaaw 14, 22 # encoding: [0xc0,0x04,0xd6,0x11] + evaddusiaaw %r14, %r22 +# CHECK-BE: evaddumiaaw 14, 22 # encoding: [0x11,0xd6,0x04,0xc8] +# CHECK-LE: evaddumiaaw 14, 22 # encoding: [0xc8,0x04,0xd6,0x11] + evaddumiaaw %r14, %r22 +# CHECK-BE: evaddw 14, 22, 19 # encoding: [0x11,0xd6,0x9a,0x00] +# CHECK-LE: evaddw 14, 22, 19 # encoding: [0x00,0x9a,0xd6,0x11] + evaddw %r14, %r22, %r19 +# CHECK-BE: evaddiw 14, 29, 19 # encoding: [0x11,0xd3,0xea,0x02] +# CHECK-LE: evaddiw 14, 29, 19 # encoding: [0x02,0xea,0xd3,0x11] + evaddiw %r14, 29, %r19 +# CHECK-BE: evand 14, 22, 19 # encoding: [0x11,0xd6,0x9a,0x11] +# CHECK-LE: evand 14, 22, 19 # encoding: [0x11,0x9a,0xd6,0x11] + evand %r14, %r22, %r19 +# CHECK-BE: evandc 14, 22, 19 # encoding: [0x11,0xd6,0x9a,0x12] +# CHECK-LE: evandc 14, 22, 19 # encoding: [0x12,0x9a,0xd6,0x11] + evandc %r14, %r22, %r19 +# CHECK-BE: evcmpeq 3, 22, 19 # encoding: [0x11,0x96,0x9a,0x34] +# CHECK-LE: evcmpeq 3, 22, 19 # encoding: [0x34,0x9a,0x96,0x11] + evcmpeq %cr3, %r22, %r19 +# CHECK-BE: evcmpgts 3, 22, 19 # encoding: [0x11,0x96,0x9a,0x31] +# CHECK-LE: evcmpgts 3, 22, 19 # encoding: [0x31,0x9a,0x96,0x11] + evcmpgts %cr3, %r22, %r19 +# CHECK-BE: evcmpgtu 3, 22, 19 # encoding: [0x11,0x96,0x9a,0x30] +# CHECK-LE: evcmpgtu 3, 22, 19 # encoding: [0x30,0x9a,0x96,0x11] + evcmpgtu %cr3, %r22, %r19 +# CHECK-BE: evcmplts 3, 22, 19 # encoding: [0x11,0x96,0x9a,0x33] +# CHECK-LE: evcmplts 3, 22, 19 # encoding: [0x33,0x9a,0x96,0x11] + evcmplts %cr3, %r22, %r19 +# CHECK-BE: evcmpltu 3, 22, 19 # encoding: [0x11,0x96,0x9a,0x32] +# CHECK-LE: evcmpltu 3, 22, 19 # encoding: [0x32,0x9a,0x96,0x11] + evcmpltu %cr3, %r22, %r19 +# CHECK-BE: evcntlsw 14, 22 # encoding: [0x11,0xd6,0x02,0x0e] +# CHECK-LE: evcntlsw 14, 22 # encoding: [0x0e,0x02,0xd6,0x11] + evcntlsw %r14, %r22 +# CHECK-BE: evcntlzw 14, 22 # encoding: [0x11,0xd6,0x02,0x0d] +# CHECK-LE: evcntlzw 14, 22 # encoding: [0x0d,0x02,0xd6,0x11] + evcntlzw %r14, %r22 +# CHECK-BE: evdivws 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0xc6] +# CHECK-LE: evdivws 14, 22, 19 # encoding: [0xc6,0x9c,0xd6,0x11] + evdivws %r14, %r22, %r19 +# CHECK-BE: evdivwu 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0xc7] +# CHECK-LE: evdivwu 14, 22, 19 # encoding: [0xc7,0x9c,0xd6,0x11] + evdivwu %r14, %r22, %r19 +# CHECK-BE: eveqv 14, 22, 19 # encoding: [0x11,0xd6,0x9a,0x19] +# CHECK-LE: eveqv 14, 22, 19 # encoding: [0x19,0x9a,0xd6,0x11] + eveqv %r14, %r22, %r19 +# CHECK-BE: evextsb 14, 22 # encoding: [0x11,0xd6,0x02,0x0a] +# CHECK-LE: evextsb 14, 22 # encoding: [0x0a,0x02,0xd6,0x11] + evextsb %r14, %r22 +# CHECK-BE: evextsh 14, 22 # encoding: [0x11,0xd6,0x02,0x0b] +# CHECK-LE: evextsh 14, 22 # encoding: [0x0b,0x02,0xd6,0x11] + evextsh %r14, %r22 +# CHECK-BE: evmhegsmfaa 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x2b] +# CHECK-LE: evmhegsmfaa 14, 22, 19 # encoding: [0x2b,0x9d,0xd6,0x11] + evmhegsmfaa %r14, %r22, %r19 +# CHECK-BE: evmhegsmfan 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0xab] +# CHECK-LE: evmhegsmfan 14, 22, 19 # encoding: [0xab,0x9d,0xd6,0x11] + evmhegsmfan %r14, %r22, %r19 +# CHECK-BE: evmhegsmiaa 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x29] +# CHECK-LE: evmhegsmiaa 14, 22, 19 # encoding: [0x29,0x9d,0xd6,0x11] + evmhegsmiaa %r14, %r22, %r19 +# CHECK-BE: evmhegsmian 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0xa9] +# CHECK-LE: evmhegsmian 14, 22, 19 # encoding: [0xa9,0x9d,0xd6,0x11] + evmhegsmian %r14, %r22, %r19 +# CHECK-BE: evmhegumiaa 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x28] +# CHECK-LE: evmhegumiaa 14, 22, 19 # encoding: [0x28,0x9d,0xd6,0x11] + evmhegumiaa %r14, %r22, %r19 +# CHECK-BE: evmhegumian 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0xa8] +# CHECK-LE: evmhegumian 14, 22, 19 # encoding: [0xa8,0x9d,0xd6,0x11] + evmhegumian %r14, %r22, %r19 +# CHECK-BE: evmhesmf 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x0b] +# CHECK-LE: evmhesmf 14, 22, 19 # encoding: [0x0b,0x9c,0xd6,0x11] + evmhesmf %r14, %r22, %r19 +# CHECK-BE: evmhesmfa 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x2b] +# CHECK-LE: evmhesmfa 14, 22, 19 # encoding: [0x2b,0x9c,0xd6,0x11] + evmhesmfa %r14, %r22, %r19 +# CHECK-BE: evmhesmfaaw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x0b] +# CHECK-LE: evmhesmfaaw 14, 22, 19 # encoding: [0x0b,0x9d,0xd6,0x11] + evmhesmfaaw %r14, %r22, %r19 +# CHECK-BE: evmhesmfanw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x8b] +# CHECK-LE: evmhesmfanw 14, 22, 19 # encoding: [0x8b,0x9d,0xd6,0x11] + evmhesmfanw %r14, %r22, %r19 +# CHECK-BE: evmhesmi 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x09] +# CHECK-LE: evmhesmi 14, 22, 19 # encoding: [0x09,0x9c,0xd6,0x11] + evmhesmi %r14, %r22, %r19 +# CHECK-BE: evmhesmia 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x29] +# CHECK-LE: evmhesmia 14, 22, 19 # encoding: [0x29,0x9c,0xd6,0x11] + evmhesmia %r14, %r22, %r19 +# CHECK-BE: evmhesmiaaw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x09] +# CHECK-LE: evmhesmiaaw 14, 22, 19 # encoding: [0x09,0x9d,0xd6,0x11] + evmhesmiaaw %r14, %r22, %r19 +# CHECK-BE: evmhesmianw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x89] +# CHECK-LE: evmhesmianw 14, 22, 19 # encoding: [0x89,0x9d,0xd6,0x11] + evmhesmianw %r14, %r22, %r19 +# CHECK-BE: evmhessf 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x03] +# CHECK-LE: evmhessf 14, 22, 19 # encoding: [0x03,0x9c,0xd6,0x11] + evmhessf %r14, %r22, %r19 +# CHECK-BE: evmhessfa 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x23] +# CHECK-LE: evmhessfa 14, 22, 19 # encoding: [0x23,0x9c,0xd6,0x11] + evmhessfa %r14, %r22, %r19 +# CHECK-BE: evmhessfaaw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x03] +# CHECK-LE: evmhessfaaw 14, 22, 19 # encoding: [0x03,0x9d,0xd6,0x11] + evmhessfaaw %r14, %r22, %r19 +# CHECK-BE: evmhessfanw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x83] +# CHECK-LE: evmhessfanw 14, 22, 19 # encoding: [0x83,0x9d,0xd6,0x11] + evmhessfanw %r14, %r22, %r19 +# CHECK-BE: evmhessiaaw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x01] +# CHECK-LE: evmhessiaaw 14, 22, 19 # encoding: [0x01,0x9d,0xd6,0x11] + evmhessiaaw %r14, %r22, %r19 +# CHECK-BE: evmhessianw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x81] +# CHECK-LE: evmhessianw 14, 22, 19 # encoding: [0x81,0x9d,0xd6,0x11] + evmhessianw %r14, %r22, %r19 +# CHECK-BE: evmheumi 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x08] +# CHECK-LE: evmheumi 14, 22, 19 # encoding: [0x08,0x9c,0xd6,0x11] + evmheumi %r14, %r22, %r19 +# CHECK-BE: evmheumia 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x28] +# CHECK-LE: evmheumia 14, 22, 19 # encoding: [0x28,0x9c,0xd6,0x11] + evmheumia %r14, %r22, %r19 +# CHECK-BE: evmheumiaaw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x08] +# CHECK-LE: evmheumiaaw 14, 22, 19 # encoding: [0x08,0x9d,0xd6,0x11] + evmheumiaaw %r14, %r22, %r19 +# CHECK-BE: evmheumianw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x88] +# CHECK-LE: evmheumianw 14, 22, 19 # encoding: [0x88,0x9d,0xd6,0x11] + evmheumianw %r14, %r22, %r19 +# CHECK-BE: evmheusiaaw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x00] +# CHECK-LE: evmheusiaaw 14, 22, 19 # encoding: [0x00,0x9d,0xd6,0x11] + evmheusiaaw %r14, %r22, %r19 +# CHECK-BE: evmheusianw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x80] +# CHECK-LE: evmheusianw 14, 22, 19 # encoding: [0x80,0x9d,0xd6,0x11] + evmheusianw %r14, %r22, %r19 +# CHECK-BE: evmhogsmfaa 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x2f] +# CHECK-LE: evmhogsmfaa 14, 22, 19 # encoding: [0x2f,0x9d,0xd6,0x11] + evmhogsmfaa %r14, %r22, %r19 +# CHECK-BE: evmhogsmfan 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0xaf] +# CHECK-LE: evmhogsmfan 14, 22, 19 # encoding: [0xaf,0x9d,0xd6,0x11] + evmhogsmfan %r14, %r22, %r19 +# CHECK-BE: evmhogsmiaa 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x2d] +# CHECK-LE: evmhogsmiaa 14, 22, 19 # encoding: [0x2d,0x9d,0xd6,0x11] + evmhogsmiaa %r14, %r22, %r19 +# CHECK-BE: evmhogsmian 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0xad] +# CHECK-LE: evmhogsmian 14, 22, 19 # encoding: [0xad,0x9d,0xd6,0x11] + evmhogsmian %r14, %r22, %r19 +# CHECK-BE: evmhogumiaa 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x2c] +# CHECK-LE: evmhogumiaa 14, 22, 19 # encoding: [0x2c,0x9d,0xd6,0x11] + evmhogumiaa %r14, %r22, %r19 +# CHECK-BE: evmhogumian 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0xac] +# CHECK-LE: evmhogumian 14, 22, 19 # encoding: [0xac,0x9d,0xd6,0x11] + evmhogumian %r14, %r22, %r19 +# CHECK-BE: evmhosmf 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x0f] +# CHECK-LE: evmhosmf 14, 22, 19 # encoding: [0x0f,0x9c,0xd6,0x11] + evmhosmf %r14, %r22, %r19 +# CHECK-BE: evmhosmfa 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x2f] +# CHECK-LE: evmhosmfa 14, 22, 19 # encoding: [0x2f,0x9c,0xd6,0x11] + evmhosmfa %r14, %r22, %r19 +# CHECK-BE: evmhosmfaaw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x0f] +# CHECK-LE: evmhosmfaaw 14, 22, 19 # encoding: [0x0f,0x9d,0xd6,0x11] + evmhosmfaaw %r14, %r22, %r19 +# CHECK-BE: evmhosmfanw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x8f] +# CHECK-LE: evmhosmfanw 14, 22, 19 # encoding: [0x8f,0x9d,0xd6,0x11] + evmhosmfanw %r14, %r22, %r19 +# CHECK-BE: evmhosmi 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x0d] +# CHECK-LE: evmhosmi 14, 22, 19 # encoding: [0x0d,0x9c,0xd6,0x11] + evmhosmi %r14, %r22, %r19 +# CHECK-BE: evmhosmia 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x2d] +# CHECK-LE: evmhosmia 14, 22, 19 # encoding: [0x2d,0x9c,0xd6,0x11] + evmhosmia %r14, %r22, %r19 +# CHECK-BE: evmhosmiaaw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x0d] +# CHECK-LE: evmhosmiaaw 14, 22, 19 # encoding: [0x0d,0x9d,0xd6,0x11] + evmhosmiaaw %r14, %r22, %r19 +# CHECK-BE: evmhosmianw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x8d] +# CHECK-LE: evmhosmianw 14, 22, 19 # encoding: [0x8d,0x9d,0xd6,0x11] + evmhosmianw %r14, %r22, %r19 +# CHECK-BE: evmhossf 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x07] +# CHECK-LE: evmhossf 14, 22, 19 # encoding: [0x07,0x9c,0xd6,0x11] + evmhossf %r14, %r22, %r19 +# CHECK-BE: evmhossfa 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x27] +# CHECK-LE: evmhossfa 14, 22, 19 # encoding: [0x27,0x9c,0xd6,0x11] + evmhossfa %r14, %r22, %r19 +# CHECK-BE: evmhossfaaw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x07] +# CHECK-LE: evmhossfaaw 14, 22, 19 # encoding: [0x07,0x9d,0xd6,0x11] + evmhossfaaw %r14, %r22, %r19 +# CHECK-BE: evmhossfanw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x87] +# CHECK-LE: evmhossfanw 14, 22, 19 # encoding: [0x87,0x9d,0xd6,0x11] + evmhossfanw %r14, %r22, %r19 +# CHECK-BE: evmhossiaaw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x05] +# CHECK-LE: evmhossiaaw 14, 22, 19 # encoding: [0x05,0x9d,0xd6,0x11] + evmhossiaaw %r14, %r22, %r19 +# CHECK-BE: evmhossianw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x85] +# CHECK-LE: evmhossianw 14, 22, 19 # encoding: [0x85,0x9d,0xd6,0x11] + evmhossianw %r14, %r22, %r19 +# CHECK-BE: evmhoumi 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x0c] +# CHECK-LE: evmhoumi 14, 22, 19 # encoding: [0x0c,0x9c,0xd6,0x11] + evmhoumi %r14, %r22, %r19 +# CHECK-BE: evmhoumia 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x2c] +# CHECK-LE: evmhoumia 14, 22, 19 # encoding: [0x2c,0x9c,0xd6,0x11] + evmhoumia %r14, %r22, %r19 +# CHECK-BE: evmhoumiaaw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x0c] +# CHECK-LE: evmhoumiaaw 14, 22, 19 # encoding: [0x0c,0x9d,0xd6,0x11] + evmhoumiaaw %r14, %r22, %r19 +# CHECK-BE: evmhoumianw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x8c] +# CHECK-LE: evmhoumianw 14, 22, 19 # encoding: [0x8c,0x9d,0xd6,0x11] + evmhoumianw %r14, %r22, %r19 +# CHECK-BE: evmhousiaaw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x04] +# CHECK-LE: evmhousiaaw 14, 22, 19 # encoding: [0x04,0x9d,0xd6,0x11] + evmhousiaaw %r14, %r22, %r19 +# CHECK-BE: evmhousianw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x84] +# CHECK-LE: evmhousianw 14, 22, 19 # encoding: [0x84,0x9d,0xd6,0x11] + evmhousianw %r14, %r22, %r19 +# CHECK-BE: evmwhsmf 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x4f] +# CHECK-LE: evmwhsmf 14, 22, 19 # encoding: [0x4f,0x9c,0xd6,0x11] + evmwhsmf %r14, %r22, %r19 +# CHECK-BE: evmwhsmfa 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x6f] +# CHECK-LE: evmwhsmfa 14, 22, 19 # encoding: [0x6f,0x9c,0xd6,0x11] + evmwhsmfa %r14, %r22, %r19 +# CHECK-BE: evmwhsmi 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x4d] +# CHECK-LE: evmwhsmi 14, 22, 19 # encoding: [0x4d,0x9c,0xd6,0x11] + evmwhsmi %r14, %r22, %r19 +# CHECK-BE: evmwhsmia 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x6d] +# CHECK-LE: evmwhsmia 14, 22, 19 # encoding: [0x6d,0x9c,0xd6,0x11] + evmwhsmia %r14, %r22, %r19 +# CHECK-BE: evmwhssf 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x47] +# CHECK-LE: evmwhssf 14, 22, 19 # encoding: [0x47,0x9c,0xd6,0x11] + evmwhssf %r14, %r22, %r19 +# CHECK-BE: evmwhssfa 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x67] +# CHECK-LE: evmwhssfa 14, 22, 19 # encoding: [0x67,0x9c,0xd6,0x11] + evmwhssfa %r14, %r22, %r19 +# CHECK-BE: evmwhumi 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x4c] +# CHECK-LE: evmwhumi 14, 22, 19 # encoding: [0x4c,0x9c,0xd6,0x11] + evmwhumi %r14, %r22, %r19 +# CHECK-BE: evmwhumia 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x6c] +# CHECK-LE: evmwhumia 14, 22, 19 # encoding: [0x6c,0x9c,0xd6,0x11] + evmwhumia %r14, %r22, %r19 +# CHECK-BE: evmwlsmiaaw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x49] +# CHECK-LE: evmwlsmiaaw 14, 22, 19 # encoding: [0x49,0x9d,0xd6,0x11] + evmwlsmiaaw %r14, %r22, %r19 +# CHECK-BE: evmwlsmianw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0xc9] +# CHECK-LE: evmwlsmianw 14, 22, 19 # encoding: [0xc9,0x9d,0xd6,0x11] + evmwlsmianw %r14, %r22, %r19 +# CHECK-BE: evmwlssiaaw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x41] +# CHECK-LE: evmwlssiaaw 14, 22, 19 # encoding: [0x41,0x9d,0xd6,0x11] + evmwlssiaaw %r14, %r22, %r19 +# CHECK-BE: evmwlssianw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0xc1] +# CHECK-LE: evmwlssianw 14, 22, 19 # encoding: [0xc1,0x9d,0xd6,0x11] + evmwlssianw %r14, %r22, %r19 +# CHECK-BE: evmwlumi 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x48] +# CHECK-LE: evmwlumi 14, 22, 19 # encoding: [0x48,0x9c,0xd6,0x11] + evmwlumi %r14, %r22, %r19 +# CHECK-BE: evmwlumia 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x68] +# CHECK-LE: evmwlumia 14, 22, 19 # encoding: [0x68,0x9c,0xd6,0x11] + evmwlumia %r14, %r22, %r19 +# CHECK-BE: evmwlumiaaw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x48] +# CHECK-LE: evmwlumiaaw 14, 22, 19 # encoding: [0x48,0x9d,0xd6,0x11] + evmwlumiaaw %r14, %r22, %r19 +# CHECK-BE: evmwlumianw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0xc8] +# CHECK-LE: evmwlumianw 14, 22, 19 # encoding: [0xc8,0x9d,0xd6,0x11] + evmwlumianw %r14, %r22, %r19 +# CHECK-BE: evmwlusiaaw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x40] +# CHECK-LE: evmwlusiaaw 14, 22, 19 # encoding: [0x40,0x9d,0xd6,0x11] + evmwlusiaaw %r14, %r22, %r19 +# CHECK-BE: evmwlusianw 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0xc0] +# CHECK-LE: evmwlusianw 14, 22, 19 # encoding: [0xc0,0x9d,0xd6,0x11] + evmwlusianw %r14, %r22, %r19 +# CHECK-BE: evmwsmf 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x5b] +# CHECK-LE: evmwsmf 14, 22, 19 # encoding: [0x5b,0x9c,0xd6,0x11] + evmwsmf %r14, %r22, %r19 +# CHECK-BE: evmwsmfa 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x7b] +# CHECK-LE: evmwsmfa 14, 22, 19 # encoding: [0x7b,0x9c,0xd6,0x11] + evmwsmfa %r14, %r22, %r19 +# CHECK-BE: evmwsmfaa 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x5b] +# CHECK-LE: evmwsmfaa 14, 22, 19 # encoding: [0x5b,0x9d,0xd6,0x11] + evmwsmfaa %r14, %r22, %r19 +# CHECK-BE: evmwsmfan 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0xdb] +# CHECK-LE: evmwsmfan 14, 22, 19 # encoding: [0xdb,0x9d,0xd6,0x11] + evmwsmfan %r14, %r22, %r19 +# CHECK-BE: evmwsmi 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x59] +# CHECK-LE: evmwsmi 14, 22, 19 # encoding: [0x59,0x9c,0xd6,0x11] + evmwsmi %r14, %r22, %r19 +# CHECK-BE: evmwsmia 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x79] +# CHECK-LE: evmwsmia 14, 22, 19 # encoding: [0x79,0x9c,0xd6,0x11] + evmwsmia %r14, %r22, %r19 +# CHECK-BE: evmwsmiaa 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x59] +# CHECK-LE: evmwsmiaa 14, 22, 19 # encoding: [0x59,0x9d,0xd6,0x11] + evmwsmiaa %r14, %r22, %r19 +# CHECK-BE: evmwsmian 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0xd9] +# CHECK-LE: evmwsmian 14, 22, 19 # encoding: [0xd9,0x9d,0xd6,0x11] + evmwsmian %r14, %r22, %r19 +# CHECK-BE: evmwssf 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x53] +# CHECK-LE: evmwssf 14, 22, 19 # encoding: [0x53,0x9c,0xd6,0x11] + evmwssf %r14, %r22, %r19 +# CHECK-BE: evmwssfa 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x73] +# CHECK-LE: evmwssfa 14, 22, 19 # encoding: [0x73,0x9c,0xd6,0x11] + evmwssfa %r14, %r22, %r19 +# CHECK-BE: evmwssfaa 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x53] +# CHECK-LE: evmwssfaa 14, 22, 19 # encoding: [0x53,0x9d,0xd6,0x11] + evmwssfaa %r14, %r22, %r19 +# CHECK-BE: evmwssfan 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0xd3] +# CHECK-LE: evmwssfan 14, 22, 19 # encoding: [0xd3,0x9d,0xd6,0x11] + evmwssfan %r14, %r22, %r19 +# CHECK-BE: evmwumi 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x58] +# CHECK-LE: evmwumi 14, 22, 19 # encoding: [0x58,0x9c,0xd6,0x11] + evmwumi %r14, %r22, %r19 +# CHECK-BE: evmwumia 14, 22, 19 # encoding: [0x11,0xd6,0x9c,0x78] +# CHECK-LE: evmwumia 14, 22, 19 # encoding: [0x78,0x9c,0xd6,0x11] + evmwumia %r14, %r22, %r19 +# CHECK-BE: evmwumiaa 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0x58] +# CHECK-LE: evmwumiaa 14, 22, 19 # encoding: [0x58,0x9d,0xd6,0x11] + evmwumiaa %r14, %r22, %r19 +# CHECK-BE: evmwumian 14, 22, 19 # encoding: [0x11,0xd6,0x9d,0xd8] +# CHECK-LE: evmwumian 14, 22, 19 # encoding: [0xd8,0x9d,0xd6,0x11] + evmwumian %r14, %r22, %r19 +# CHECK-BE: evnand 14, 22, 19 # encoding: [0x11,0xd6,0x9a,0x1e] +# CHECK-LE: evnand 14, 22, 19 # encoding: [0x1e,0x9a,0xd6,0x11] + evnand %r14, %r22, %r19 +# CHECK-BE: evneg 14, 22 # encoding: [0x11,0xd6,0x02,0x09] +# CHECK-LE: evneg 14, 22 # encoding: [0x09,0x02,0xd6,0x11] + evneg %r14, %r22 +# CHECK-BE: evnor 14, 22, 19 # encoding: [0x11,0xd6,0x9a,0x18] +# CHECK-LE: evnor 14, 22, 19 # encoding: [0x18,0x9a,0xd6,0x11] + evnor %r14, %r22, %r19 +# CHECK-BE: evor 14, 22, 19 # encoding: [0x11,0xd6,0x9a,0x17] +# CHECK-LE: evor 14, 22, 19 # encoding: [0x17,0x9a,0xd6,0x11] + evor %r14, %r22, %r19 +# CHECK-BE: evorc 14, 22, 19 # encoding: [0x11,0xd6,0x9a,0x1b] +# CHECK-LE: evorc 14, 22, 19 # encoding: [0x1b,0x9a,0xd6,0x11] + evorc %r14, %r22, %r19 +# CHECK-BE: evrlwi 14, 29, 19 # encoding: [0x11,0xdd,0x9a,0x2a] +# CHECK-LE: evrlwi 14, 29, 19 # encoding: [0x2a,0x9a,0xdd,0x11] + evrlwi %r14, 29, %r19 +# CHECK-BE: evrlw 14, 22, 19 # encoding: [0x11,0xd6,0x9a,0x28] +# CHECK-LE: evrlw 14, 22, 19 # encoding: [0x28,0x9a,0xd6,0x11] + evrlw %r14, %r22, %r19 +# CHECK-BE: evrndw 14, 22 # encoding: [0x11,0xd6,0x02,0x0c] +# CHECK-LE: evrndw 14, 22 # encoding: [0x0c,0x02,0xd6,0x11] + evrndw %r14, %r22 +# CHECK-BE: evslwi 14, 29, 19 # encoding: [0x11,0xdd,0x9a,0x26] +# CHECK-LE: evslwi 14, 29, 19 # encoding: [0x26,0x9a,0xdd,0x11] + evslwi %r14, 29, %r19 +# CHECK-BE: evslw 14, 22, 19 # encoding: [0x11,0xd6,0x9a,0x24] +# CHECK-LE: evslw 14, 22, 19 # encoding: [0x24,0x9a,0xd6,0x11] + evslw %r14, %r22, %r19 +# CHECK-BE: evsplatfi 14, -13 # encoding: [0x11,0xd3,0x02,0x2b] +# CHECK-LE: evsplatfi 14, -13 # encoding: [0x2b,0x02,0xd3,0x11] + evsplatfi %r14, -13 +# CHECK-BE: evsplati 14, -13 # encoding: [0x11,0xd3,0x02,0x29] +# CHECK-LE: evsplati 14, -13 # encoding: [0x29,0x02,0xd3,0x11] + evsplati %r14, -13 +# CHECK-BE: evsrwis 14, 29, 19 # encoding: [0x11,0xdd,0x9a,0x23] +# CHECK-LE: evsrwis 14, 29, 19 # encoding: [0x23,0x9a,0xdd,0x11] + evsrwis %r14, 29, %r19 +# CHECK-BE: evsrwiu 14, 29, 19 # encoding: [0x11,0xdd,0x9a,0x22] +# CHECK-LE: evsrwiu 14, 29, 19 # encoding: [0x22,0x9a,0xdd,0x11] + evsrwiu %r14, 29, %r19 +# CHECK-BE: evsrws 14, 22, 19 # encoding: [0x11,0xd6,0x9a,0x21] +# CHECK-LE: evsrws 14, 22, 19 # encoding: [0x21,0x9a,0xd6,0x11] + evsrws %r14, %r22, %r19 +# CHECK-BE: evsrwu 14, 22, 19 # encoding: [0x11,0xd6,0x9a,0x20] +# CHECK-LE: evsrwu 14, 22, 19 # encoding: [0x20,0x9a,0xd6,0x11] + evsrwu %r14, %r22, %r19 +# CHECK-BE: evstddx 14, 22, 19 # encoding: [0x11,0xd6,0x9b,0x20] +# CHECK-LE: evstddx 14, 22, 19 # encoding: [0x20,0x9b,0xd6,0x11] + evstddx %r14, %r22, %r19 +# CHECK-BE: evstdhx 14, 22, 19 # encoding: [0x11,0xd6,0x9b,0x24] +# CHECK-LE: evstdhx 14, 22, 19 # encoding: [0x24,0x9b,0xd6,0x11] + evstdhx %r14, %r22, %r19 +# CHECK-BE: evstdwx 14, 22, 19 # encoding: [0x11,0xd6,0x9b,0x22] +# CHECK-LE: evstdwx 14, 22, 19 # encoding: [0x22,0x9b,0xd6,0x11] + evstdwx %r14, %r22, %r19 +# CHECK-BE: evstwhex 14, 22, 19 # encoding: [0x11,0xd6,0x9b,0x30] +# CHECK-LE: evstwhex 14, 22, 19 # encoding: [0x30,0x9b,0xd6,0x11] + evstwhex %r14, %r22, %r19 +# CHECK-BE: evstwhox 14, 22, 19 # encoding: [0x11,0xd6,0x9b,0x34] +# CHECK-LE: evstwhox 14, 22, 19 # encoding: [0x34,0x9b,0xd6,0x11] + evstwhox %r14, %r22, %r19 +# CHECK-BE: evstwwex 14, 22, 19 # encoding: [0x11,0xd6,0x9b,0x38] +# CHECK-LE: evstwwex 14, 22, 19 # encoding: [0x38,0x9b,0xd6,0x11] + evstwwex %r14, %r22, %r19 +# CHECK-BE: evstwwox 14, 22, 19 # encoding: [0x11,0xd6,0x9b,0x3c] +# CHECK-LE: evstwwox 14, 22, 19 # encoding: [0x3c,0x9b,0xd6,0x11] + evstwwox %r14, %r22, %r19 +# CHECK-BE: evsubfssiaaw 14, 22 # encoding: [0x11,0xd6,0x04,0xc3] +# CHECK-LE: evsubfssiaaw 14, 22 # encoding: [0xc3,0x04,0xd6,0x11] + evsubfssiaaw %r14, %r22 +# CHECK-BE: evsubfsmiaaw 14, 22 # encoding: [0x11,0xd6,0x04,0xcb] +# CHECK-LE: evsubfsmiaaw 14, 22 # encoding: [0xcb,0x04,0xd6,0x11] + evsubfsmiaaw %r14, %r22 +# CHECK-BE: evsubfumiaaw 14, 22 # encoding: [0x11,0xd6,0x04,0xca] +# CHECK-LE: evsubfumiaaw 14, 22 # encoding: [0xca,0x04,0xd6,0x11] + evsubfumiaaw %r14, %r22 +# CHECK-BE: evsubfusiaaw 14, 22 # encoding: [0x11,0xd6,0x04,0xc2] +# CHECK-LE: evsubfusiaaw 14, 22 # encoding: [0xc2,0x04,0xd6,0x11] + evsubfusiaaw %r14, %r22 +# CHECK-BE: evsubfw 14, 22, 19 # encoding: [0x11,0xd6,0x9a,0x04] +# CHECK-LE: evsubfw 14, 22, 19 # encoding: [0x04,0x9a,0xd6,0x11] + evsubfw %r14, %r22, %r19 +# CHECK-BE: evsubifw 14, 29, 19 # encoding: [0x11,0xdd,0x9a,0x06] +# CHECK-LE: evsubifw 14, 29, 19 # encoding: [0x06,0x9a,0xdd,0x11] + evsubifw %r14, 29, %r19 +# CHECK-BE: evxor 14, 22, 19 # encoding: [0x11,0xd6,0x9a,0x16] +# CHECK-LE: evxor 14, 22, 19 # encoding: [0x16,0x9a,0xd6,0x11] + evxor %r14, %r22, %r19