1//=- LoongArchLASXInstrInfo.td - LoongArch LASX instructions -*- tablegen -*-=// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8// 9// This file describes the Advanced SIMD extension instructions. 10// 11//===----------------------------------------------------------------------===// 12 13//===----------------------------------------------------------------------===// 14// Instruction class templates 15//===----------------------------------------------------------------------===// 16 17class LASX1RI13_XI<bits<32> op, Operand ImmOpnd = simm13> 18 : Fmt1RI13_XI<op, (outs LASX256:$xd), (ins ImmOpnd:$imm13), "$xd, $imm13">; 19 20class LASX2R_XX<bits<32> op> 21 : Fmt2R_XX<op, (outs LASX256:$xd), (ins LASX256:$xj), "$xd, $xj">; 22 23class LASX2R_XR<bits<32> op> 24 : Fmt2R_XR<op, (outs LASX256:$xd), (ins GPR:$rj), "$xd, $rj">; 25 26class LASX2R_CX<bits<32> op> 27 : Fmt2R_CX<op, (outs CFR:$cd), (ins LASX256:$xj), "$cd, $xj">; 28 29class LASX2RI1_XXI<bits<32> op, Operand ImmOpnd = uimm1> 30 : Fmt2RI1_XXI<op, (outs LASX256:$xd), (ins LASX256:$xj, ImmOpnd:$imm1), 31 "$xd, $xj, $imm1">; 32 33class LASX2RI2_XXI<bits<32> op, Operand ImmOpnd = uimm2> 34 : Fmt2RI2_XXI<op, (outs LASX256:$xd), (ins LASX256:$xj, ImmOpnd:$imm2), 35 "$xd, $xj, $imm2">; 36 37class LASX2RI2_RXI<bits<32> op, Operand ImmOpnd = uimm2> 38 : Fmt2RI2_RXI<op, (outs GPR:$rd), (ins LASX256:$xj, ImmOpnd:$imm2), 39 "$rd, $xj, $imm2">; 40 41class LASX2RI3_XXI<bits<32> op, Operand ImmOpnd = uimm3> 42 : Fmt2RI3_XXI<op, (outs LASX256:$xd), (ins LASX256:$xj, ImmOpnd:$imm3), 43 "$xd, $xj, $imm3">; 44 45class LASX2RI3_RXI<bits<32> op, Operand ImmOpnd = uimm3> 46 : Fmt2RI3_RXI<op, (outs GPR:$rd), (ins LASX256:$xj, ImmOpnd:$imm3), 47 "$rd, $xj, $imm3">; 48 49class LASX2RI4_XXI<bits<32> op, Operand ImmOpnd = uimm4> 50 : Fmt2RI4_XXI<op, (outs LASX256:$xd), (ins LASX256:$xj, ImmOpnd:$imm4), 51 "$xd, $xj, $imm4">; 52 53class LASX2RI4_XRI<bits<32> op, Operand ImmOpnd = uimm4> 54 : Fmt2RI4_XRI<op, (outs LASX256:$xd), (ins GPR:$rj, ImmOpnd:$imm4), 55 "$xd, $rj, $imm4">; 56 57class LASX2RI4_RXI<bits<32> op, Operand ImmOpnd = uimm4> 58 : Fmt2RI4_RXI<op, (outs GPR:$rd), (ins LASX256:$xj, ImmOpnd:$imm4), 59 "$rd, $xj, $imm4">; 60 61class LASX2RI5_XXI<bits<32> op, Operand ImmOpnd = uimm5> 62 : Fmt2RI5_XXI<op, (outs LASX256:$xd), (ins LASX256:$xj, ImmOpnd:$imm5), 63 "$xd, $xj, $imm5">; 64 65class LASX2RI6_XXI<bits<32> op, Operand ImmOpnd = uimm6> 66 : Fmt2RI6_XXI<op, (outs LASX256:$xd), (ins LASX256:$xj, ImmOpnd:$imm6), 67 "$xd, $xj, $imm6">; 68 69class LASX2RI8_XXI<bits<32> op, Operand ImmOpnd = uimm8> 70 : Fmt2RI8_XXI<op, (outs LASX256:$xd), (ins LASX256:$xj, ImmOpnd:$imm8), 71 "$xd, $xj, $imm8">; 72 73class LASX2RI8I2_XRII<bits<32> op, Operand ImmOpnd = simm8, 74 Operand IdxOpnd = uimm2> 75 : Fmt2RI8I2_XRII<op, (outs), 76 (ins LASX256:$xd, GPR:$rj, ImmOpnd:$imm8, IdxOpnd:$imm2), 77 "$xd, $rj, $imm8, $imm2">; 78class LASX2RI8I3_XRII<bits<32> op, Operand ImmOpnd = simm8, 79 Operand IdxOpnd = uimm3> 80 : Fmt2RI8I3_XRII<op, (outs), 81 (ins LASX256:$xd, GPR:$rj, ImmOpnd:$imm8, IdxOpnd:$imm3), 82 "$xd, $rj, $imm8, $imm3">; 83class LASX2RI8I4_XRII<bits<32> op, Operand ImmOpnd = simm8, 84 Operand IdxOpnd = uimm4> 85 : Fmt2RI8I4_XRII<op, (outs), 86 (ins LASX256:$xd, GPR:$rj, ImmOpnd:$imm8, IdxOpnd:$imm4), 87 "$xd, $rj, $imm8, $imm4">; 88class LASX2RI8I5_XRII<bits<32> op, Operand ImmOpnd = simm8, 89 Operand IdxOpnd = uimm5> 90 : Fmt2RI8I5_XRII<op, (outs), 91 (ins LASX256:$xd, GPR:$rj, ImmOpnd:$imm8, IdxOpnd:$imm5), 92 "$xd, $rj, $imm8, $imm5">; 93 94class LASX3R_XXX<bits<32> op> 95 : Fmt3R_XXX<op, (outs LASX256:$xd), (ins LASX256:$xj, LASX256:$xk), 96 "$xd, $xj, $xk">; 97 98class LASX3R_XXR<bits<32> op> 99 : Fmt3R_XXR<op, (outs LASX256:$xd), (ins LASX256:$xj, GPR:$rk), 100 "$xd, $xj, $rk">; 101 102class LASX4R_XXXX<bits<32> op> 103 : Fmt4R_XXXX<op, (outs LASX256:$xd), 104 (ins LASX256:$xj, LASX256:$xk, LASX256:$xa), 105 "$xd, $xj, $xk, $xa">; 106 107let Constraints = "$xd = $dst" in { 108 109class LASX2RI2_XXXI<bits<32> op, Operand ImmOpnd = uimm2> 110 : Fmt2RI2_XXI<op, (outs LASX256:$dst), (ins LASX256:$xd, LASX256:$xj, ImmOpnd:$imm2), 111 "$xd, $xj, $imm2">; 112class LASX2RI3_XXXI<bits<32> op, Operand ImmOpnd = uimm3> 113 : Fmt2RI3_XXI<op, (outs LASX256:$dst), (ins LASX256:$xd, LASX256:$xj, ImmOpnd:$imm3), 114 "$xd, $xj, $imm3">; 115 116class LASX2RI2_XXRI<bits<32> op, Operand ImmOpnd = uimm2> 117 : Fmt2RI2_XRI<op, (outs LASX256:$dst), (ins LASX256:$xd, GPR:$rj, ImmOpnd:$imm2), 118 "$xd, $rj, $imm2">; 119class LASX2RI3_XXRI<bits<32> op, Operand ImmOpnd = uimm3> 120 : Fmt2RI3_XRI<op, (outs LASX256:$dst), (ins LASX256:$xd, GPR:$rj, ImmOpnd:$imm3), 121 "$xd, $rj, $imm3">; 122 123class LASX2RI4_XXXI<bits<32> op, Operand ImmOpnd = uimm4> 124 : Fmt2RI4_XXI<op, (outs LASX256:$dst), (ins LASX256:$xd, LASX256:$xj, ImmOpnd:$imm4), 125 "$xd, $xj, $imm4">; 126class LASX2RI5_XXXI<bits<32> op, Operand ImmOpnd = uimm5> 127 : Fmt2RI5_XXI<op, (outs LASX256:$dst), (ins LASX256:$xd, LASX256:$xj, ImmOpnd:$imm5), 128 "$xd, $xj, $imm5">; 129class LASX2RI6_XXXI<bits<32> op, Operand ImmOpnd = uimm6> 130 : Fmt2RI6_XXI<op, (outs LASX256:$dst), (ins LASX256:$xd, LASX256:$xj, ImmOpnd:$imm6), 131 "$xd, $xj, $imm6">; 132class LASX2RI7_XXXI<bits<32> op, Operand ImmOpnd = uimm7> 133 : Fmt2RI7_XXI<op, (outs LASX256:$dst), (ins LASX256:$xd, LASX256:$xj, ImmOpnd:$imm7), 134 "$xd, $xj, $imm7">; 135 136class LASX2RI8_XXXI<bits<32> op, Operand ImmOpnd = uimm8> 137 : Fmt2RI8_XXI<op, (outs LASX256:$dst), (ins LASX256:$xd, LASX256:$xj, ImmOpnd:$imm8), 138 "$xd, $xj, $imm8">; 139 140class LASX3R_XXXX<bits<32> op> 141 : Fmt3R_XXX<op, (outs LASX256:$dst), (ins LASX256:$xd, LASX256:$xj, LASX256:$xk), 142 "$xd, $xj, $xk">; 143 144} // Constraints = "$xd = $dst" 145 146class LASX2RI9_Load<bits<32> op, Operand ImmOpnd = simm9_lsl3> 147 : Fmt2RI9_XRI<op, (outs LASX256:$xd), (ins GPR:$rj, ImmOpnd:$imm9), 148 "$xd, $rj, $imm9">; 149class LASX2RI10_Load<bits<32> op, Operand ImmOpnd = simm10_lsl2> 150 : Fmt2RI10_XRI<op, (outs LASX256:$xd), (ins GPR:$rj, ImmOpnd:$imm10), 151 "$xd, $rj, $imm10">; 152class LASX2RI11_Load<bits<32> op, Operand ImmOpnd = simm11_lsl1> 153 : Fmt2RI11_XRI<op, (outs LASX256:$xd), (ins GPR:$rj, ImmOpnd:$imm11), 154 "$xd, $rj, $imm11">; 155class LASX2RI12_Load<bits<32> op, Operand ImmOpnd = simm12> 156 : Fmt2RI12_XRI<op, (outs LASX256:$xd), (ins GPR:$rj, ImmOpnd:$imm12), 157 "$xd, $rj, $imm12">; 158class LASX2RI12_Store<bits<32> op, Operand ImmOpnd = simm12> 159 : Fmt2RI12_XRI<op, (outs), (ins LASX256:$xd, GPR:$rj, ImmOpnd:$imm12), 160 "$xd, $rj, $imm12">; 161 162class LASX3R_Load<bits<32> op> 163 : Fmt3R_XRR<op, (outs LASX256:$xd), (ins GPR:$rj, GPR:$rk), 164 "$xd, $rj, $rk">; 165class LASX3R_Store<bits<32> op> 166 : Fmt3R_XRR<op, (outs), (ins LASX256:$xd, GPR:$rj, GPR:$rk), 167 "$xd, $rj, $rk">; 168 169//===----------------------------------------------------------------------===// 170// Instructions 171//===----------------------------------------------------------------------===// 172 173let hasSideEffects = 0, Predicates = [HasExtLASX] in { 174 175let mayLoad = 0, mayStore = 0 in { 176def XVADD_B : LASX3R_XXX<0x740a0000>; 177def XVADD_H : LASX3R_XXX<0x740a8000>; 178def XVADD_W : LASX3R_XXX<0x740b0000>; 179def XVADD_D : LASX3R_XXX<0x740b8000>; 180def XVADD_Q : LASX3R_XXX<0x752d0000>; 181 182def XVSUB_B : LASX3R_XXX<0x740c0000>; 183def XVSUB_H : LASX3R_XXX<0x740c8000>; 184def XVSUB_W : LASX3R_XXX<0x740d0000>; 185def XVSUB_D : LASX3R_XXX<0x740d8000>; 186def XVSUB_Q : LASX3R_XXX<0x752d8000>; 187 188def XVADDI_BU : LASX2RI5_XXI<0x768a0000>; 189def XVADDI_HU : LASX2RI5_XXI<0x768a8000>; 190def XVADDI_WU : LASX2RI5_XXI<0x768b0000>; 191def XVADDI_DU : LASX2RI5_XXI<0x768b8000>; 192 193def XVSUBI_BU : LASX2RI5_XXI<0x768c0000>; 194def XVSUBI_HU : LASX2RI5_XXI<0x768c8000>; 195def XVSUBI_WU : LASX2RI5_XXI<0x768d0000>; 196def XVSUBI_DU : LASX2RI5_XXI<0x768d8000>; 197 198def XVNEG_B : LASX2R_XX<0x769c3000>; 199def XVNEG_H : LASX2R_XX<0x769c3400>; 200def XVNEG_W : LASX2R_XX<0x769c3800>; 201def XVNEG_D : LASX2R_XX<0x769c3c00>; 202 203def XVSADD_B : LASX3R_XXX<0x74460000>; 204def XVSADD_H : LASX3R_XXX<0x74468000>; 205def XVSADD_W : LASX3R_XXX<0x74470000>; 206def XVSADD_D : LASX3R_XXX<0x74478000>; 207def XVSADD_BU : LASX3R_XXX<0x744a0000>; 208def XVSADD_HU : LASX3R_XXX<0x744a8000>; 209def XVSADD_WU : LASX3R_XXX<0x744b0000>; 210def XVSADD_DU : LASX3R_XXX<0x744b8000>; 211 212def XVSSUB_B : LASX3R_XXX<0x74480000>; 213def XVSSUB_H : LASX3R_XXX<0x74488000>; 214def XVSSUB_W : LASX3R_XXX<0x74490000>; 215def XVSSUB_D : LASX3R_XXX<0x74498000>; 216def XVSSUB_BU : LASX3R_XXX<0x744c0000>; 217def XVSSUB_HU : LASX3R_XXX<0x744c8000>; 218def XVSSUB_WU : LASX3R_XXX<0x744d0000>; 219def XVSSUB_DU : LASX3R_XXX<0x744d8000>; 220 221def XVHADDW_H_B : LASX3R_XXX<0x74540000>; 222def XVHADDW_W_H : LASX3R_XXX<0x74548000>; 223def XVHADDW_D_W : LASX3R_XXX<0x74550000>; 224def XVHADDW_Q_D : LASX3R_XXX<0x74558000>; 225def XVHADDW_HU_BU : LASX3R_XXX<0x74580000>; 226def XVHADDW_WU_HU : LASX3R_XXX<0x74588000>; 227def XVHADDW_DU_WU : LASX3R_XXX<0x74590000>; 228def XVHADDW_QU_DU : LASX3R_XXX<0x74598000>; 229 230def XVHSUBW_H_B : LASX3R_XXX<0x74560000>; 231def XVHSUBW_W_H : LASX3R_XXX<0x74568000>; 232def XVHSUBW_D_W : LASX3R_XXX<0x74570000>; 233def XVHSUBW_Q_D : LASX3R_XXX<0x74578000>; 234def XVHSUBW_HU_BU : LASX3R_XXX<0x745a0000>; 235def XVHSUBW_WU_HU : LASX3R_XXX<0x745a8000>; 236def XVHSUBW_DU_WU : LASX3R_XXX<0x745b0000>; 237def XVHSUBW_QU_DU : LASX3R_XXX<0x745b8000>; 238 239def XVADDWEV_H_B : LASX3R_XXX<0x741e0000>; 240def XVADDWEV_W_H : LASX3R_XXX<0x741e8000>; 241def XVADDWEV_D_W : LASX3R_XXX<0x741f0000>; 242def XVADDWEV_Q_D : LASX3R_XXX<0x741f8000>; 243def XVADDWOD_H_B : LASX3R_XXX<0x74220000>; 244def XVADDWOD_W_H : LASX3R_XXX<0x74228000>; 245def XVADDWOD_D_W : LASX3R_XXX<0x74230000>; 246def XVADDWOD_Q_D : LASX3R_XXX<0x74238000>; 247 248def XVSUBWEV_H_B : LASX3R_XXX<0x74200000>; 249def XVSUBWEV_W_H : LASX3R_XXX<0x74208000>; 250def XVSUBWEV_D_W : LASX3R_XXX<0x74210000>; 251def XVSUBWEV_Q_D : LASX3R_XXX<0x74218000>; 252def XVSUBWOD_H_B : LASX3R_XXX<0x74240000>; 253def XVSUBWOD_W_H : LASX3R_XXX<0x74248000>; 254def XVSUBWOD_D_W : LASX3R_XXX<0x74250000>; 255def XVSUBWOD_Q_D : LASX3R_XXX<0x74258000>; 256 257def XVADDWEV_H_BU : LASX3R_XXX<0x742e0000>; 258def XVADDWEV_W_HU : LASX3R_XXX<0x742e8000>; 259def XVADDWEV_D_WU : LASX3R_XXX<0x742f0000>; 260def XVADDWEV_Q_DU : LASX3R_XXX<0x742f8000>; 261def XVADDWOD_H_BU : LASX3R_XXX<0x74320000>; 262def XVADDWOD_W_HU : LASX3R_XXX<0x74328000>; 263def XVADDWOD_D_WU : LASX3R_XXX<0x74330000>; 264def XVADDWOD_Q_DU : LASX3R_XXX<0x74338000>; 265 266def XVSUBWEV_H_BU : LASX3R_XXX<0x74300000>; 267def XVSUBWEV_W_HU : LASX3R_XXX<0x74308000>; 268def XVSUBWEV_D_WU : LASX3R_XXX<0x74310000>; 269def XVSUBWEV_Q_DU : LASX3R_XXX<0x74318000>; 270def XVSUBWOD_H_BU : LASX3R_XXX<0x74340000>; 271def XVSUBWOD_W_HU : LASX3R_XXX<0x74348000>; 272def XVSUBWOD_D_WU : LASX3R_XXX<0x74350000>; 273def XVSUBWOD_Q_DU : LASX3R_XXX<0x74358000>; 274 275def XVADDWEV_H_BU_B : LASX3R_XXX<0x743e0000>; 276def XVADDWEV_W_HU_H : LASX3R_XXX<0x743e8000>; 277def XVADDWEV_D_WU_W : LASX3R_XXX<0x743f0000>; 278def XVADDWEV_Q_DU_D : LASX3R_XXX<0x743f8000>; 279def XVADDWOD_H_BU_B : LASX3R_XXX<0x74400000>; 280def XVADDWOD_W_HU_H : LASX3R_XXX<0x74408000>; 281def XVADDWOD_D_WU_W : LASX3R_XXX<0x74410000>; 282def XVADDWOD_Q_DU_D : LASX3R_XXX<0x74418000>; 283 284def XVAVG_B : LASX3R_XXX<0x74640000>; 285def XVAVG_H : LASX3R_XXX<0x74648000>; 286def XVAVG_W : LASX3R_XXX<0x74650000>; 287def XVAVG_D : LASX3R_XXX<0x74658000>; 288def XVAVG_BU : LASX3R_XXX<0x74660000>; 289def XVAVG_HU : LASX3R_XXX<0x74668000>; 290def XVAVG_WU : LASX3R_XXX<0x74670000>; 291def XVAVG_DU : LASX3R_XXX<0x74678000>; 292def XVAVGR_B : LASX3R_XXX<0x74680000>; 293def XVAVGR_H : LASX3R_XXX<0x74688000>; 294def XVAVGR_W : LASX3R_XXX<0x74690000>; 295def XVAVGR_D : LASX3R_XXX<0x74698000>; 296def XVAVGR_BU : LASX3R_XXX<0x746a0000>; 297def XVAVGR_HU : LASX3R_XXX<0x746a8000>; 298def XVAVGR_WU : LASX3R_XXX<0x746b0000>; 299def XVAVGR_DU : LASX3R_XXX<0x746b8000>; 300 301def XVABSD_B : LASX3R_XXX<0x74600000>; 302def XVABSD_H : LASX3R_XXX<0x74608000>; 303def XVABSD_W : LASX3R_XXX<0x74610000>; 304def XVABSD_D : LASX3R_XXX<0x74618000>; 305def XVABSD_BU : LASX3R_XXX<0x74620000>; 306def XVABSD_HU : LASX3R_XXX<0x74628000>; 307def XVABSD_WU : LASX3R_XXX<0x74630000>; 308def XVABSD_DU : LASX3R_XXX<0x74638000>; 309 310def XVADDA_B : LASX3R_XXX<0x745c0000>; 311def XVADDA_H : LASX3R_XXX<0x745c8000>; 312def XVADDA_W : LASX3R_XXX<0x745d0000>; 313def XVADDA_D : LASX3R_XXX<0x745d8000>; 314 315def XVMAX_B : LASX3R_XXX<0x74700000>; 316def XVMAX_H : LASX3R_XXX<0x74708000>; 317def XVMAX_W : LASX3R_XXX<0x74710000>; 318def XVMAX_D : LASX3R_XXX<0x74718000>; 319def XVMAXI_B : LASX2RI5_XXI<0x76900000, simm5>; 320def XVMAXI_H : LASX2RI5_XXI<0x76908000, simm5>; 321def XVMAXI_W : LASX2RI5_XXI<0x76910000, simm5>; 322def XVMAXI_D : LASX2RI5_XXI<0x76918000, simm5>; 323def XVMAX_BU : LASX3R_XXX<0x74740000>; 324def XVMAX_HU : LASX3R_XXX<0x74748000>; 325def XVMAX_WU : LASX3R_XXX<0x74750000>; 326def XVMAX_DU : LASX3R_XXX<0x74758000>; 327def XVMAXI_BU : LASX2RI5_XXI<0x76940000>; 328def XVMAXI_HU : LASX2RI5_XXI<0x76948000>; 329def XVMAXI_WU : LASX2RI5_XXI<0x76950000>; 330def XVMAXI_DU : LASX2RI5_XXI<0x76958000>; 331 332def XVMIN_B : LASX3R_XXX<0x74720000>; 333def XVMIN_H : LASX3R_XXX<0x74728000>; 334def XVMIN_W : LASX3R_XXX<0x74730000>; 335def XVMIN_D : LASX3R_XXX<0x74738000>; 336def XVMINI_B : LASX2RI5_XXI<0x76920000, simm5>; 337def XVMINI_H : LASX2RI5_XXI<0x76928000, simm5>; 338def XVMINI_W : LASX2RI5_XXI<0x76930000, simm5>; 339def XVMINI_D : LASX2RI5_XXI<0x76938000, simm5>; 340def XVMIN_BU : LASX3R_XXX<0x74760000>; 341def XVMIN_HU : LASX3R_XXX<0x74768000>; 342def XVMIN_WU : LASX3R_XXX<0x74770000>; 343def XVMIN_DU : LASX3R_XXX<0x74778000>; 344def XVMINI_BU : LASX2RI5_XXI<0x76960000>; 345def XVMINI_HU : LASX2RI5_XXI<0x76968000>; 346def XVMINI_WU : LASX2RI5_XXI<0x76970000>; 347def XVMINI_DU : LASX2RI5_XXI<0x76978000>; 348 349def XVMUL_B : LASX3R_XXX<0x74840000>; 350def XVMUL_H : LASX3R_XXX<0x74848000>; 351def XVMUL_W : LASX3R_XXX<0x74850000>; 352def XVMUL_D : LASX3R_XXX<0x74858000>; 353 354def XVMUH_B : LASX3R_XXX<0x74860000>; 355def XVMUH_H : LASX3R_XXX<0x74868000>; 356def XVMUH_W : LASX3R_XXX<0x74870000>; 357def XVMUH_D : LASX3R_XXX<0x74878000>; 358def XVMUH_BU : LASX3R_XXX<0x74880000>; 359def XVMUH_HU : LASX3R_XXX<0x74888000>; 360def XVMUH_WU : LASX3R_XXX<0x74890000>; 361def XVMUH_DU : LASX3R_XXX<0x74898000>; 362 363def XVMULWEV_H_B : LASX3R_XXX<0x74900000>; 364def XVMULWEV_W_H : LASX3R_XXX<0x74908000>; 365def XVMULWEV_D_W : LASX3R_XXX<0x74910000>; 366def XVMULWEV_Q_D : LASX3R_XXX<0x74918000>; 367def XVMULWOD_H_B : LASX3R_XXX<0x74920000>; 368def XVMULWOD_W_H : LASX3R_XXX<0x74928000>; 369def XVMULWOD_D_W : LASX3R_XXX<0x74930000>; 370def XVMULWOD_Q_D : LASX3R_XXX<0x74938000>; 371def XVMULWEV_H_BU : LASX3R_XXX<0x74980000>; 372def XVMULWEV_W_HU : LASX3R_XXX<0x74988000>; 373def XVMULWEV_D_WU : LASX3R_XXX<0x74990000>; 374def XVMULWEV_Q_DU : LASX3R_XXX<0x74998000>; 375def XVMULWOD_H_BU : LASX3R_XXX<0x749a0000>; 376def XVMULWOD_W_HU : LASX3R_XXX<0x749a8000>; 377def XVMULWOD_D_WU : LASX3R_XXX<0x749b0000>; 378def XVMULWOD_Q_DU : LASX3R_XXX<0x749b8000>; 379def XVMULWEV_H_BU_B : LASX3R_XXX<0x74a00000>; 380def XVMULWEV_W_HU_H : LASX3R_XXX<0x74a08000>; 381def XVMULWEV_D_WU_W : LASX3R_XXX<0x74a10000>; 382def XVMULWEV_Q_DU_D : LASX3R_XXX<0x74a18000>; 383def XVMULWOD_H_BU_B : LASX3R_XXX<0x74a20000>; 384def XVMULWOD_W_HU_H : LASX3R_XXX<0x74a28000>; 385def XVMULWOD_D_WU_W : LASX3R_XXX<0x74a30000>; 386def XVMULWOD_Q_DU_D : LASX3R_XXX<0x74a38000>; 387 388def XVMADD_B : LASX3R_XXXX<0x74a80000>; 389def XVMADD_H : LASX3R_XXXX<0x74a88000>; 390def XVMADD_W : LASX3R_XXXX<0x74a90000>; 391def XVMADD_D : LASX3R_XXXX<0x74a98000>; 392 393def XVMSUB_B : LASX3R_XXXX<0x74aa0000>; 394def XVMSUB_H : LASX3R_XXXX<0x74aa8000>; 395def XVMSUB_W : LASX3R_XXXX<0x74ab0000>; 396def XVMSUB_D : LASX3R_XXXX<0x74ab8000>; 397 398def XVMADDWEV_H_B : LASX3R_XXXX<0x74ac0000>; 399def XVMADDWEV_W_H : LASX3R_XXXX<0x74ac8000>; 400def XVMADDWEV_D_W : LASX3R_XXXX<0x74ad0000>; 401def XVMADDWEV_Q_D : LASX3R_XXXX<0x74ad8000>; 402def XVMADDWOD_H_B : LASX3R_XXXX<0x74ae0000>; 403def XVMADDWOD_W_H : LASX3R_XXXX<0x74ae8000>; 404def XVMADDWOD_D_W : LASX3R_XXXX<0x74af0000>; 405def XVMADDWOD_Q_D : LASX3R_XXXX<0x74af8000>; 406def XVMADDWEV_H_BU : LASX3R_XXXX<0x74b40000>; 407def XVMADDWEV_W_HU : LASX3R_XXXX<0x74b48000>; 408def XVMADDWEV_D_WU : LASX3R_XXXX<0x74b50000>; 409def XVMADDWEV_Q_DU : LASX3R_XXXX<0x74b58000>; 410def XVMADDWOD_H_BU : LASX3R_XXXX<0x74b60000>; 411def XVMADDWOD_W_HU : LASX3R_XXXX<0x74b68000>; 412def XVMADDWOD_D_WU : LASX3R_XXXX<0x74b70000>; 413def XVMADDWOD_Q_DU : LASX3R_XXXX<0x74b78000>; 414def XVMADDWEV_H_BU_B : LASX3R_XXXX<0x74bc0000>; 415def XVMADDWEV_W_HU_H : LASX3R_XXXX<0x74bc8000>; 416def XVMADDWEV_D_WU_W : LASX3R_XXXX<0x74bd0000>; 417def XVMADDWEV_Q_DU_D : LASX3R_XXXX<0x74bd8000>; 418def XVMADDWOD_H_BU_B : LASX3R_XXXX<0x74be0000>; 419def XVMADDWOD_W_HU_H : LASX3R_XXXX<0x74be8000>; 420def XVMADDWOD_D_WU_W : LASX3R_XXXX<0x74bf0000>; 421def XVMADDWOD_Q_DU_D : LASX3R_XXXX<0x74bf8000>; 422 423def XVDIV_B : LASX3R_XXX<0x74e00000>; 424def XVDIV_H : LASX3R_XXX<0x74e08000>; 425def XVDIV_W : LASX3R_XXX<0x74e10000>; 426def XVDIV_D : LASX3R_XXX<0x74e18000>; 427def XVDIV_BU : LASX3R_XXX<0x74e40000>; 428def XVDIV_HU : LASX3R_XXX<0x74e48000>; 429def XVDIV_WU : LASX3R_XXX<0x74e50000>; 430def XVDIV_DU : LASX3R_XXX<0x74e58000>; 431 432def XVMOD_B : LASX3R_XXX<0x74e20000>; 433def XVMOD_H : LASX3R_XXX<0x74e28000>; 434def XVMOD_W : LASX3R_XXX<0x74e30000>; 435def XVMOD_D : LASX3R_XXX<0x74e38000>; 436def XVMOD_BU : LASX3R_XXX<0x74e60000>; 437def XVMOD_HU : LASX3R_XXX<0x74e68000>; 438def XVMOD_WU : LASX3R_XXX<0x74e70000>; 439def XVMOD_DU : LASX3R_XXX<0x74e78000>; 440 441def XVSAT_B : LASX2RI3_XXI<0x77242000>; 442def XVSAT_H : LASX2RI4_XXI<0x77244000>; 443def XVSAT_W : LASX2RI5_XXI<0x77248000>; 444def XVSAT_D : LASX2RI6_XXI<0x77250000>; 445def XVSAT_BU : LASX2RI3_XXI<0x77282000>; 446def XVSAT_HU : LASX2RI4_XXI<0x77284000>; 447def XVSAT_WU : LASX2RI5_XXI<0x77288000>; 448def XVSAT_DU : LASX2RI6_XXI<0x77290000>; 449 450def XVEXTH_H_B : LASX2R_XX<0x769ee000>; 451def XVEXTH_W_H : LASX2R_XX<0x769ee400>; 452def XVEXTH_D_W : LASX2R_XX<0x769ee800>; 453def XVEXTH_Q_D : LASX2R_XX<0x769eec00>; 454def XVEXTH_HU_BU : LASX2R_XX<0x769ef000>; 455def XVEXTH_WU_HU : LASX2R_XX<0x769ef400>; 456def XVEXTH_DU_WU : LASX2R_XX<0x769ef800>; 457def XVEXTH_QU_DU : LASX2R_XX<0x769efc00>; 458 459def VEXT2XV_H_B : LASX2R_XX<0x769f1000>; 460def VEXT2XV_W_B : LASX2R_XX<0x769f1400>; 461def VEXT2XV_D_B : LASX2R_XX<0x769f1800>; 462def VEXT2XV_W_H : LASX2R_XX<0x769f1c00>; 463def VEXT2XV_D_H : LASX2R_XX<0x769f2000>; 464def VEXT2XV_D_W : LASX2R_XX<0x769f2400>; 465def VEXT2XV_HU_BU : LASX2R_XX<0x769f2800>; 466def VEXT2XV_WU_BU : LASX2R_XX<0x769f2c00>; 467def VEXT2XV_DU_BU : LASX2R_XX<0x769f3000>; 468def VEXT2XV_WU_HU : LASX2R_XX<0x769f3400>; 469def VEXT2XV_DU_HU : LASX2R_XX<0x769f3800>; 470def VEXT2XV_DU_WU : LASX2R_XX<0x769f3c00>; 471 472def XVHSELI_D : LASX2RI5_XXI<0x769f8000>; 473 474def XVSIGNCOV_B : LASX3R_XXX<0x752e0000>; 475def XVSIGNCOV_H : LASX3R_XXX<0x752e8000>; 476def XVSIGNCOV_W : LASX3R_XXX<0x752f0000>; 477def XVSIGNCOV_D : LASX3R_XXX<0x752f8000>; 478 479def XVMSKLTZ_B : LASX2R_XX<0x769c4000>; 480def XVMSKLTZ_H : LASX2R_XX<0x769c4400>; 481def XVMSKLTZ_W : LASX2R_XX<0x769c4800>; 482def XVMSKLTZ_D : LASX2R_XX<0x769c4c00>; 483 484def XVMSKGEZ_B : LASX2R_XX<0x769c5000>; 485 486def XVMSKNZ_B : LASX2R_XX<0x769c6000>; 487 488def XVLDI : LASX1RI13_XI<0x77e00000>; 489 490def XVAND_V : LASX3R_XXX<0x75260000>; 491def XVOR_V : LASX3R_XXX<0x75268000>; 492def XVXOR_V : LASX3R_XXX<0x75270000>; 493def XVNOR_V : LASX3R_XXX<0x75278000>; 494def XVANDN_V : LASX3R_XXX<0x75280000>; 495def XVORN_V : LASX3R_XXX<0x75288000>; 496 497def XVANDI_B : LASX2RI8_XXI<0x77d00000>; 498def XVORI_B : LASX2RI8_XXI<0x77d40000>; 499def XVXORI_B : LASX2RI8_XXI<0x77d80000>; 500def XVNORI_B : LASX2RI8_XXI<0x77dc0000>; 501 502def XVSLL_B : LASX3R_XXX<0x74e80000>; 503def XVSLL_H : LASX3R_XXX<0x74e88000>; 504def XVSLL_W : LASX3R_XXX<0x74e90000>; 505def XVSLL_D : LASX3R_XXX<0x74e98000>; 506def XVSLLI_B : LASX2RI3_XXI<0x772c2000>; 507def XVSLLI_H : LASX2RI4_XXI<0x772c4000>; 508def XVSLLI_W : LASX2RI5_XXI<0x772c8000>; 509def XVSLLI_D : LASX2RI6_XXI<0x772d0000>; 510 511def XVSRL_B : LASX3R_XXX<0x74ea0000>; 512def XVSRL_H : LASX3R_XXX<0x74ea8000>; 513def XVSRL_W : LASX3R_XXX<0x74eb0000>; 514def XVSRL_D : LASX3R_XXX<0x74eb8000>; 515def XVSRLI_B : LASX2RI3_XXI<0x77302000>; 516def XVSRLI_H : LASX2RI4_XXI<0x77304000>; 517def XVSRLI_W : LASX2RI5_XXI<0x77308000>; 518def XVSRLI_D : LASX2RI6_XXI<0x77310000>; 519 520def XVSRA_B : LASX3R_XXX<0x74ec0000>; 521def XVSRA_H : LASX3R_XXX<0x74ec8000>; 522def XVSRA_W : LASX3R_XXX<0x74ed0000>; 523def XVSRA_D : LASX3R_XXX<0x74ed8000>; 524def XVSRAI_B : LASX2RI3_XXI<0x77342000>; 525def XVSRAI_H : LASX2RI4_XXI<0x77344000>; 526def XVSRAI_W : LASX2RI5_XXI<0x77348000>; 527def XVSRAI_D : LASX2RI6_XXI<0x77350000>; 528 529def XVROTR_B : LASX3R_XXX<0x74ee0000>; 530def XVROTR_H : LASX3R_XXX<0x74ee8000>; 531def XVROTR_W : LASX3R_XXX<0x74ef0000>; 532def XVROTR_D : LASX3R_XXX<0x74ef8000>; 533def XVROTRI_B : LASX2RI3_XXI<0x76a02000>; 534def XVROTRI_H : LASX2RI4_XXI<0x76a04000>; 535def XVROTRI_W : LASX2RI5_XXI<0x76a08000>; 536def XVROTRI_D : LASX2RI6_XXI<0x76a10000>; 537 538def XVSLLWIL_H_B : LASX2RI3_XXI<0x77082000>; 539def XVSLLWIL_W_H : LASX2RI4_XXI<0x77084000>; 540def XVSLLWIL_D_W : LASX2RI5_XXI<0x77088000>; 541def XVEXTL_Q_D : LASX2R_XX<0x77090000>; 542def XVSLLWIL_HU_BU : LASX2RI3_XXI<0x770c2000>; 543def XVSLLWIL_WU_HU : LASX2RI4_XXI<0x770c4000>; 544def XVSLLWIL_DU_WU : LASX2RI5_XXI<0x770c8000>; 545def XVEXTL_QU_DU : LASX2R_XX<0x770d0000>; 546 547def XVSRLR_B : LASX3R_XXX<0x74f00000>; 548def XVSRLR_H : LASX3R_XXX<0x74f08000>; 549def XVSRLR_W : LASX3R_XXX<0x74f10000>; 550def XVSRLR_D : LASX3R_XXX<0x74f18000>; 551def XVSRLRI_B : LASX2RI3_XXI<0x76a42000>; 552def XVSRLRI_H : LASX2RI4_XXI<0x76a44000>; 553def XVSRLRI_W : LASX2RI5_XXI<0x76a48000>; 554def XVSRLRI_D : LASX2RI6_XXI<0x76a50000>; 555 556def XVSRAR_B : LASX3R_XXX<0x74f20000>; 557def XVSRAR_H : LASX3R_XXX<0x74f28000>; 558def XVSRAR_W : LASX3R_XXX<0x74f30000>; 559def XVSRAR_D : LASX3R_XXX<0x74f38000>; 560def XVSRARI_B : LASX2RI3_XXI<0x76a82000>; 561def XVSRARI_H : LASX2RI4_XXI<0x76a84000>; 562def XVSRARI_W : LASX2RI5_XXI<0x76a88000>; 563def XVSRARI_D : LASX2RI6_XXI<0x76a90000>; 564 565def XVSRLN_B_H : LASX3R_XXX<0x74f48000>; 566def XVSRLN_H_W : LASX3R_XXX<0x74f50000>; 567def XVSRLN_W_D : LASX3R_XXX<0x74f58000>; 568def XVSRAN_B_H : LASX3R_XXX<0x74f68000>; 569def XVSRAN_H_W : LASX3R_XXX<0x74f70000>; 570def XVSRAN_W_D : LASX3R_XXX<0x74f78000>; 571 572def XVSRLNI_B_H : LASX2RI4_XXXI<0x77404000>; 573def XVSRLNI_H_W : LASX2RI5_XXXI<0x77408000>; 574def XVSRLNI_W_D : LASX2RI6_XXXI<0x77410000>; 575def XVSRLNI_D_Q : LASX2RI7_XXXI<0x77420000>; 576def XVSRANI_B_H : LASX2RI4_XXXI<0x77584000>; 577def XVSRANI_H_W : LASX2RI5_XXXI<0x77588000>; 578def XVSRANI_W_D : LASX2RI6_XXXI<0x77590000>; 579def XVSRANI_D_Q : LASX2RI7_XXXI<0x775a0000>; 580 581def XVSRLRN_B_H : LASX3R_XXX<0x74f88000>; 582def XVSRLRN_H_W : LASX3R_XXX<0x74f90000>; 583def XVSRLRN_W_D : LASX3R_XXX<0x74f98000>; 584def XVSRARN_B_H : LASX3R_XXX<0x74fa8000>; 585def XVSRARN_H_W : LASX3R_XXX<0x74fb0000>; 586def XVSRARN_W_D : LASX3R_XXX<0x74fb8000>; 587 588def XVSRLRNI_B_H : LASX2RI4_XXXI<0x77444000>; 589def XVSRLRNI_H_W : LASX2RI5_XXXI<0x77448000>; 590def XVSRLRNI_W_D : LASX2RI6_XXXI<0x77450000>; 591def XVSRLRNI_D_Q : LASX2RI7_XXXI<0x77460000>; 592def XVSRARNI_B_H : LASX2RI4_XXXI<0x775c4000>; 593def XVSRARNI_H_W : LASX2RI5_XXXI<0x775c8000>; 594def XVSRARNI_W_D : LASX2RI6_XXXI<0x775d0000>; 595def XVSRARNI_D_Q : LASX2RI7_XXXI<0x775e0000>; 596 597def XVSSRLN_B_H : LASX3R_XXX<0x74fc8000>; 598def XVSSRLN_H_W : LASX3R_XXX<0x74fd0000>; 599def XVSSRLN_W_D : LASX3R_XXX<0x74fd8000>; 600def XVSSRAN_B_H : LASX3R_XXX<0x74fe8000>; 601def XVSSRAN_H_W : LASX3R_XXX<0x74ff0000>; 602def XVSSRAN_W_D : LASX3R_XXX<0x74ff8000>; 603def XVSSRLN_BU_H : LASX3R_XXX<0x75048000>; 604def XVSSRLN_HU_W : LASX3R_XXX<0x75050000>; 605def XVSSRLN_WU_D : LASX3R_XXX<0x75058000>; 606def XVSSRAN_BU_H : LASX3R_XXX<0x75068000>; 607def XVSSRAN_HU_W : LASX3R_XXX<0x75070000>; 608def XVSSRAN_WU_D : LASX3R_XXX<0x75078000>; 609 610def XVSSRLNI_B_H : LASX2RI4_XXXI<0x77484000>; 611def XVSSRLNI_H_W : LASX2RI5_XXXI<0x77488000>; 612def XVSSRLNI_W_D : LASX2RI6_XXXI<0x77490000>; 613def XVSSRLNI_D_Q : LASX2RI7_XXXI<0x774a0000>; 614def XVSSRANI_B_H : LASX2RI4_XXXI<0x77604000>; 615def XVSSRANI_H_W : LASX2RI5_XXXI<0x77608000>; 616def XVSSRANI_W_D : LASX2RI6_XXXI<0x77610000>; 617def XVSSRANI_D_Q : LASX2RI7_XXXI<0x77620000>; 618def XVSSRLNI_BU_H : LASX2RI4_XXXI<0x774c4000>; 619def XVSSRLNI_HU_W : LASX2RI5_XXXI<0x774c8000>; 620def XVSSRLNI_WU_D : LASX2RI6_XXXI<0x774d0000>; 621def XVSSRLNI_DU_Q : LASX2RI7_XXXI<0x774e0000>; 622def XVSSRANI_BU_H : LASX2RI4_XXXI<0x77644000>; 623def XVSSRANI_HU_W : LASX2RI5_XXXI<0x77648000>; 624def XVSSRANI_WU_D : LASX2RI6_XXXI<0x77650000>; 625def XVSSRANI_DU_Q : LASX2RI7_XXXI<0x77660000>; 626 627def XVSSRLRN_B_H : LASX3R_XXX<0x75008000>; 628def XVSSRLRN_H_W : LASX3R_XXX<0x75010000>; 629def XVSSRLRN_W_D : LASX3R_XXX<0x75018000>; 630def XVSSRARN_B_H : LASX3R_XXX<0x75028000>; 631def XVSSRARN_H_W : LASX3R_XXX<0x75030000>; 632def XVSSRARN_W_D : LASX3R_XXX<0x75038000>; 633def XVSSRLRN_BU_H : LASX3R_XXX<0x75088000>; 634def XVSSRLRN_HU_W : LASX3R_XXX<0x75090000>; 635def XVSSRLRN_WU_D : LASX3R_XXX<0x75098000>; 636def XVSSRARN_BU_H : LASX3R_XXX<0x750a8000>; 637def XVSSRARN_HU_W : LASX3R_XXX<0x750b0000>; 638def XVSSRARN_WU_D : LASX3R_XXX<0x750b8000>; 639 640def XVSSRLRNI_B_H : LASX2RI4_XXXI<0x77504000>; 641def XVSSRLRNI_H_W : LASX2RI5_XXXI<0x77508000>; 642def XVSSRLRNI_W_D : LASX2RI6_XXXI<0x77510000>; 643def XVSSRLRNI_D_Q : LASX2RI7_XXXI<0x77520000>; 644def XVSSRARNI_B_H : LASX2RI4_XXXI<0x77684000>; 645def XVSSRARNI_H_W : LASX2RI5_XXXI<0x77688000>; 646def XVSSRARNI_W_D : LASX2RI6_XXXI<0x77690000>; 647def XVSSRARNI_D_Q : LASX2RI7_XXXI<0x776a0000>; 648def XVSSRLRNI_BU_H : LASX2RI4_XXXI<0x77544000>; 649def XVSSRLRNI_HU_W : LASX2RI5_XXXI<0x77548000>; 650def XVSSRLRNI_WU_D : LASX2RI6_XXXI<0x77550000>; 651def XVSSRLRNI_DU_Q : LASX2RI7_XXXI<0x77560000>; 652def XVSSRARNI_BU_H : LASX2RI4_XXXI<0x776c4000>; 653def XVSSRARNI_HU_W : LASX2RI5_XXXI<0x776c8000>; 654def XVSSRARNI_WU_D : LASX2RI6_XXXI<0x776d0000>; 655def XVSSRARNI_DU_Q : LASX2RI7_XXXI<0x776e0000>; 656 657def XVCLO_B : LASX2R_XX<0x769c0000>; 658def XVCLO_H : LASX2R_XX<0x769c0400>; 659def XVCLO_W : LASX2R_XX<0x769c0800>; 660def XVCLO_D : LASX2R_XX<0x769c0c00>; 661def XVCLZ_B : LASX2R_XX<0x769c1000>; 662def XVCLZ_H : LASX2R_XX<0x769c1400>; 663def XVCLZ_W : LASX2R_XX<0x769c1800>; 664def XVCLZ_D : LASX2R_XX<0x769c1c00>; 665 666def XVPCNT_B : LASX2R_XX<0x769c2000>; 667def XVPCNT_H : LASX2R_XX<0x769c2400>; 668def XVPCNT_W : LASX2R_XX<0x769c2800>; 669def XVPCNT_D : LASX2R_XX<0x769c2c00>; 670 671def XVBITCLR_B : LASX3R_XXX<0x750c0000>; 672def XVBITCLR_H : LASX3R_XXX<0x750c8000>; 673def XVBITCLR_W : LASX3R_XXX<0x750d0000>; 674def XVBITCLR_D : LASX3R_XXX<0x750d8000>; 675def XVBITCLRI_B : LASX2RI3_XXI<0x77102000>; 676def XVBITCLRI_H : LASX2RI4_XXI<0x77104000>; 677def XVBITCLRI_W : LASX2RI5_XXI<0x77108000>; 678def XVBITCLRI_D : LASX2RI6_XXI<0x77110000>; 679 680def XVBITSET_B : LASX3R_XXX<0x750e0000>; 681def XVBITSET_H : LASX3R_XXX<0x750e8000>; 682def XVBITSET_W : LASX3R_XXX<0x750f0000>; 683def XVBITSET_D : LASX3R_XXX<0x750f8000>; 684def XVBITSETI_B : LASX2RI3_XXI<0x77142000>; 685def XVBITSETI_H : LASX2RI4_XXI<0x77144000>; 686def XVBITSETI_W : LASX2RI5_XXI<0x77148000>; 687def XVBITSETI_D : LASX2RI6_XXI<0x77150000>; 688 689def XVBITREV_B : LASX3R_XXX<0x75100000>; 690def XVBITREV_H : LASX3R_XXX<0x75108000>; 691def XVBITREV_W : LASX3R_XXX<0x75110000>; 692def XVBITREV_D : LASX3R_XXX<0x75118000>; 693def XVBITREVI_B : LASX2RI3_XXI<0x77182000>; 694def XVBITREVI_H : LASX2RI4_XXI<0x77184000>; 695def XVBITREVI_W : LASX2RI5_XXI<0x77188000>; 696def XVBITREVI_D : LASX2RI6_XXI<0x77190000>; 697 698def XVFRSTP_B : LASX3R_XXXX<0x752b0000>; 699def XVFRSTP_H : LASX3R_XXXX<0x752b8000>; 700def XVFRSTPI_B : LASX2RI5_XXXI<0x769a0000>; 701def XVFRSTPI_H : LASX2RI5_XXXI<0x769a8000>; 702 703def XVFADD_S : LASX3R_XXX<0x75308000>; 704def XVFADD_D : LASX3R_XXX<0x75310000>; 705def XVFSUB_S : LASX3R_XXX<0x75328000>; 706def XVFSUB_D : LASX3R_XXX<0x75330000>; 707def XVFMUL_S : LASX3R_XXX<0x75388000>; 708def XVFMUL_D : LASX3R_XXX<0x75390000>; 709def XVFDIV_S : LASX3R_XXX<0x753a8000>; 710def XVFDIV_D : LASX3R_XXX<0x753b0000>; 711 712def XVFMADD_S : LASX4R_XXXX<0x0a100000>; 713def XVFMADD_D : LASX4R_XXXX<0x0a200000>; 714def XVFMSUB_S : LASX4R_XXXX<0x0a500000>; 715def XVFMSUB_D : LASX4R_XXXX<0x0a600000>; 716def XVFNMADD_S : LASX4R_XXXX<0x0a900000>; 717def XVFNMADD_D : LASX4R_XXXX<0x0aa00000>; 718def XVFNMSUB_S : LASX4R_XXXX<0x0ad00000>; 719def XVFNMSUB_D : LASX4R_XXXX<0x0ae00000>; 720 721def XVFMAX_S : LASX3R_XXX<0x753c8000>; 722def XVFMAX_D : LASX3R_XXX<0x753d0000>; 723def XVFMIN_S : LASX3R_XXX<0x753e8000>; 724def XVFMIN_D : LASX3R_XXX<0x753f0000>; 725 726def XVFMAXA_S : LASX3R_XXX<0x75408000>; 727def XVFMAXA_D : LASX3R_XXX<0x75410000>; 728def XVFMINA_S : LASX3R_XXX<0x75428000>; 729def XVFMINA_D : LASX3R_XXX<0x75430000>; 730 731def XVFLOGB_S : LASX2R_XX<0x769cc400>; 732def XVFLOGB_D : LASX2R_XX<0x769cc800>; 733 734def XVFCLASS_S : LASX2R_XX<0x769cd400>; 735def XVFCLASS_D : LASX2R_XX<0x769cd800>; 736 737def XVFSQRT_S : LASX2R_XX<0x769ce400>; 738def XVFSQRT_D : LASX2R_XX<0x769ce800>; 739def XVFRECIP_S : LASX2R_XX<0x769cf400>; 740def XVFRECIP_D : LASX2R_XX<0x769cf800>; 741def XVFRSQRT_S : LASX2R_XX<0x769d0400>; 742def XVFRSQRT_D : LASX2R_XX<0x769d0800>; 743 744def XVFCVTL_S_H : LASX2R_XX<0x769de800>; 745def XVFCVTH_S_H : LASX2R_XX<0x769dec00>; 746def XVFCVTL_D_S : LASX2R_XX<0x769df000>; 747def XVFCVTH_D_S : LASX2R_XX<0x769df400>; 748def XVFCVT_H_S : LASX3R_XXX<0x75460000>; 749def XVFCVT_S_D : LASX3R_XXX<0x75468000>; 750 751def XVFRINTRNE_S : LASX2R_XX<0x769d7400>; 752def XVFRINTRNE_D : LASX2R_XX<0x769d7800>; 753def XVFRINTRZ_S : LASX2R_XX<0x769d6400>; 754def XVFRINTRZ_D : LASX2R_XX<0x769d6800>; 755def XVFRINTRP_S : LASX2R_XX<0x769d5400>; 756def XVFRINTRP_D : LASX2R_XX<0x769d5800>; 757def XVFRINTRM_S : LASX2R_XX<0x769d4400>; 758def XVFRINTRM_D : LASX2R_XX<0x769d4800>; 759def XVFRINT_S : LASX2R_XX<0x769d3400>; 760def XVFRINT_D : LASX2R_XX<0x769d3800>; 761 762def XVFTINTRNE_W_S : LASX2R_XX<0x769e5000>; 763def XVFTINTRNE_L_D : LASX2R_XX<0x769e5400>; 764def XVFTINTRZ_W_S : LASX2R_XX<0x769e4800>; 765def XVFTINTRZ_L_D : LASX2R_XX<0x769e4c00>; 766def XVFTINTRP_W_S : LASX2R_XX<0x769e4000>; 767def XVFTINTRP_L_D : LASX2R_XX<0x769e4400>; 768def XVFTINTRM_W_S : LASX2R_XX<0x769e3800>; 769def XVFTINTRM_L_D : LASX2R_XX<0x769e3c00>; 770def XVFTINT_W_S : LASX2R_XX<0x769e3000>; 771def XVFTINT_L_D : LASX2R_XX<0x769e3400>; 772def XVFTINTRZ_WU_S : LASX2R_XX<0x769e7000>; 773def XVFTINTRZ_LU_D : LASX2R_XX<0x769e7400>; 774def XVFTINT_WU_S : LASX2R_XX<0x769e5800>; 775def XVFTINT_LU_D : LASX2R_XX<0x769e5c00>; 776 777def XVFTINTRNE_W_D : LASX3R_XXX<0x754b8000>; 778def XVFTINTRZ_W_D : LASX3R_XXX<0x754b0000>; 779def XVFTINTRP_W_D : LASX3R_XXX<0x754a8000>; 780def XVFTINTRM_W_D : LASX3R_XXX<0x754a0000>; 781def XVFTINT_W_D : LASX3R_XXX<0x75498000>; 782 783def XVFTINTRNEL_L_S : LASX2R_XX<0x769ea000>; 784def XVFTINTRNEH_L_S : LASX2R_XX<0x769ea400>; 785def XVFTINTRZL_L_S : LASX2R_XX<0x769e9800>; 786def XVFTINTRZH_L_S : LASX2R_XX<0x769e9c00>; 787def XVFTINTRPL_L_S : LASX2R_XX<0x769e9000>; 788def XVFTINTRPH_L_S : LASX2R_XX<0x769e9400>; 789def XVFTINTRML_L_S : LASX2R_XX<0x769e8800>; 790def XVFTINTRMH_L_S : LASX2R_XX<0x769e8c00>; 791def XVFTINTL_L_S : LASX2R_XX<0x769e8000>; 792def XVFTINTH_L_S : LASX2R_XX<0x769e8400>; 793 794def XVFFINT_S_W : LASX2R_XX<0x769e0000>; 795def XVFFINT_D_L : LASX2R_XX<0x769e0800>; 796def XVFFINT_S_WU : LASX2R_XX<0x769e0400>; 797def XVFFINT_D_LU : LASX2R_XX<0x769e0c00>; 798def XVFFINTL_D_W : LASX2R_XX<0x769e1000>; 799def XVFFINTH_D_W : LASX2R_XX<0x769e1400>; 800def XVFFINT_S_L : LASX3R_XXX<0x75480000>; 801 802def XVSEQ_B : LASX3R_XXX<0x74000000>; 803def XVSEQ_H : LASX3R_XXX<0x74008000>; 804def XVSEQ_W : LASX3R_XXX<0x74010000>; 805def XVSEQ_D : LASX3R_XXX<0x74018000>; 806def XVSEQI_B : LASX2RI5_XXI<0x76800000, simm5>; 807def XVSEQI_H : LASX2RI5_XXI<0x76808000, simm5>; 808def XVSEQI_W : LASX2RI5_XXI<0x76810000, simm5>; 809def XVSEQI_D : LASX2RI5_XXI<0x76818000, simm5>; 810 811def XVSLE_B : LASX3R_XXX<0x74020000>; 812def XVSLE_H : LASX3R_XXX<0x74028000>; 813def XVSLE_W : LASX3R_XXX<0x74030000>; 814def XVSLE_D : LASX3R_XXX<0x74038000>; 815def XVSLEI_B : LASX2RI5_XXI<0x76820000, simm5>; 816def XVSLEI_H : LASX2RI5_XXI<0x76828000, simm5>; 817def XVSLEI_W : LASX2RI5_XXI<0x76830000, simm5>; 818def XVSLEI_D : LASX2RI5_XXI<0x76838000, simm5>; 819 820def XVSLE_BU : LASX3R_XXX<0x74040000>; 821def XVSLE_HU : LASX3R_XXX<0x74048000>; 822def XVSLE_WU : LASX3R_XXX<0x74050000>; 823def XVSLE_DU : LASX3R_XXX<0x74058000>; 824def XVSLEI_BU : LASX2RI5_XXI<0x76840000>; 825def XVSLEI_HU : LASX2RI5_XXI<0x76848000>; 826def XVSLEI_WU : LASX2RI5_XXI<0x76850000>; 827def XVSLEI_DU : LASX2RI5_XXI<0x76858000>; 828 829def XVSLT_B : LASX3R_XXX<0x74060000>; 830def XVSLT_H : LASX3R_XXX<0x74068000>; 831def XVSLT_W : LASX3R_XXX<0x74070000>; 832def XVSLT_D : LASX3R_XXX<0x74078000>; 833def XVSLTI_B : LASX2RI5_XXI<0x76860000, simm5>; 834def XVSLTI_H : LASX2RI5_XXI<0x76868000, simm5>; 835def XVSLTI_W : LASX2RI5_XXI<0x76870000, simm5>; 836def XVSLTI_D : LASX2RI5_XXI<0x76878000, simm5>; 837 838def XVSLT_BU : LASX3R_XXX<0x74080000>; 839def XVSLT_HU : LASX3R_XXX<0x74088000>; 840def XVSLT_WU : LASX3R_XXX<0x74090000>; 841def XVSLT_DU : LASX3R_XXX<0x74098000>; 842def XVSLTI_BU : LASX2RI5_XXI<0x76880000>; 843def XVSLTI_HU : LASX2RI5_XXI<0x76888000>; 844def XVSLTI_WU : LASX2RI5_XXI<0x76890000>; 845def XVSLTI_DU : LASX2RI5_XXI<0x76898000>; 846 847def XVFCMP_CAF_S : LASX3R_XXX<0x0c900000>; 848def XVFCMP_SAF_S : LASX3R_XXX<0x0c908000>; 849def XVFCMP_CLT_S : LASX3R_XXX<0x0c910000>; 850def XVFCMP_SLT_S : LASX3R_XXX<0x0c918000>; 851def XVFCMP_CEQ_S : LASX3R_XXX<0x0c920000>; 852def XVFCMP_SEQ_S : LASX3R_XXX<0x0c928000>; 853def XVFCMP_CLE_S : LASX3R_XXX<0x0c930000>; 854def XVFCMP_SLE_S : LASX3R_XXX<0x0c938000>; 855def XVFCMP_CUN_S : LASX3R_XXX<0x0c940000>; 856def XVFCMP_SUN_S : LASX3R_XXX<0x0c948000>; 857def XVFCMP_CULT_S : LASX3R_XXX<0x0c950000>; 858def XVFCMP_SULT_S : LASX3R_XXX<0x0c958000>; 859def XVFCMP_CUEQ_S : LASX3R_XXX<0x0c960000>; 860def XVFCMP_SUEQ_S : LASX3R_XXX<0x0c968000>; 861def XVFCMP_CULE_S : LASX3R_XXX<0x0c970000>; 862def XVFCMP_SULE_S : LASX3R_XXX<0x0c978000>; 863def XVFCMP_CNE_S : LASX3R_XXX<0x0c980000>; 864def XVFCMP_SNE_S : LASX3R_XXX<0x0c988000>; 865def XVFCMP_COR_S : LASX3R_XXX<0x0c9a0000>; 866def XVFCMP_SOR_S : LASX3R_XXX<0x0c9a8000>; 867def XVFCMP_CUNE_S : LASX3R_XXX<0x0c9c0000>; 868def XVFCMP_SUNE_S : LASX3R_XXX<0x0c9c8000>; 869 870def XVFCMP_CAF_D : LASX3R_XXX<0x0ca00000>; 871def XVFCMP_SAF_D : LASX3R_XXX<0x0ca08000>; 872def XVFCMP_CLT_D : LASX3R_XXX<0x0ca10000>; 873def XVFCMP_SLT_D : LASX3R_XXX<0x0ca18000>; 874def XVFCMP_CEQ_D : LASX3R_XXX<0x0ca20000>; 875def XVFCMP_SEQ_D : LASX3R_XXX<0x0ca28000>; 876def XVFCMP_CLE_D : LASX3R_XXX<0x0ca30000>; 877def XVFCMP_SLE_D : LASX3R_XXX<0x0ca38000>; 878def XVFCMP_CUN_D : LASX3R_XXX<0x0ca40000>; 879def XVFCMP_SUN_D : LASX3R_XXX<0x0ca48000>; 880def XVFCMP_CULT_D : LASX3R_XXX<0x0ca50000>; 881def XVFCMP_SULT_D : LASX3R_XXX<0x0ca58000>; 882def XVFCMP_CUEQ_D : LASX3R_XXX<0x0ca60000>; 883def XVFCMP_SUEQ_D : LASX3R_XXX<0x0ca68000>; 884def XVFCMP_CULE_D : LASX3R_XXX<0x0ca70000>; 885def XVFCMP_SULE_D : LASX3R_XXX<0x0ca78000>; 886def XVFCMP_CNE_D : LASX3R_XXX<0x0ca80000>; 887def XVFCMP_SNE_D : LASX3R_XXX<0x0ca88000>; 888def XVFCMP_COR_D : LASX3R_XXX<0x0caa0000>; 889def XVFCMP_SOR_D : LASX3R_XXX<0x0caa8000>; 890def XVFCMP_CUNE_D : LASX3R_XXX<0x0cac0000>; 891def XVFCMP_SUNE_D : LASX3R_XXX<0x0cac8000>; 892 893def XVBITSEL_V : LASX4R_XXXX<0x0d200000>; 894 895def XVBITSELI_B : LASX2RI8_XXXI<0x77c40000>; 896 897def XVSETEQZ_V : LASX2R_CX<0x769c9800>; 898def XVSETNEZ_V : LASX2R_CX<0x769c9c00>; 899def XVSETANYEQZ_B : LASX2R_CX<0x769ca000>; 900def XVSETANYEQZ_H : LASX2R_CX<0x769ca400>; 901def XVSETANYEQZ_W : LASX2R_CX<0x769ca800>; 902def XVSETANYEQZ_D : LASX2R_CX<0x769cac00>; 903def XVSETALLNEZ_B : LASX2R_CX<0x769cb000>; 904def XVSETALLNEZ_H : LASX2R_CX<0x769cb400>; 905def XVSETALLNEZ_W : LASX2R_CX<0x769cb800>; 906def XVSETALLNEZ_D : LASX2R_CX<0x769cbc00>; 907 908def XVINSGR2VR_W : LASX2RI3_XXRI<0x76ebc000>; 909def XVINSGR2VR_D : LASX2RI2_XXRI<0x76ebe000>; 910def XVPICKVE2GR_W : LASX2RI3_RXI<0x76efc000>; 911def XVPICKVE2GR_D : LASX2RI2_RXI<0x76efe000>; 912def XVPICKVE2GR_WU : LASX2RI3_RXI<0x76f3c000>; 913def XVPICKVE2GR_DU : LASX2RI2_RXI<0x76f3e000>; 914 915def XVREPLGR2VR_B : LASX2R_XR<0x769f0000>; 916def XVREPLGR2VR_H : LASX2R_XR<0x769f0400>; 917def XVREPLGR2VR_W : LASX2R_XR<0x769f0800>; 918def XVREPLGR2VR_D : LASX2R_XR<0x769f0c00>; 919 920def XVREPLVE_B : LASX3R_XXR<0x75220000>; 921def XVREPLVE_H : LASX3R_XXR<0x75228000>; 922def XVREPLVE_W : LASX3R_XXR<0x75230000>; 923def XVREPLVE_D : LASX3R_XXR<0x75238000>; 924def XVREPL128VEI_B : LASX2RI4_XXI<0x76f78000>; 925def XVREPL128VEI_H : LASX2RI3_XXI<0x76f7c000>; 926def XVREPL128VEI_W : LASX2RI2_XXI<0x76f7e000>; 927def XVREPL128VEI_D : LASX2RI1_XXI<0x76f7f000>; 928 929def XVREPLVE0_B : LASX2R_XX<0x77070000>; 930def XVREPLVE0_H : LASX2R_XX<0x77078000>; 931def XVREPLVE0_W : LASX2R_XX<0x7707c000>; 932def XVREPLVE0_D : LASX2R_XX<0x7707e000>; 933def XVREPLVE0_Q : LASX2R_XX<0x7707f000>; 934 935def XVINSVE0_W : LASX2RI3_XXXI<0x76ffc000>; 936def XVINSVE0_D : LASX2RI2_XXXI<0x76ffe000>; 937 938def XVPICKVE_W : LASX2RI3_XXI<0x7703c000>; 939def XVPICKVE_D : LASX2RI2_XXI<0x7703e000>; 940 941def XVBSLL_V : LASX2RI5_XXI<0x768e0000>; 942def XVBSRL_V : LASX2RI5_XXI<0x768e8000>; 943 944def XVPACKEV_B : LASX3R_XXX<0x75160000>; 945def XVPACKEV_H : LASX3R_XXX<0x75168000>; 946def XVPACKEV_W : LASX3R_XXX<0x75170000>; 947def XVPACKEV_D : LASX3R_XXX<0x75178000>; 948def XVPACKOD_B : LASX3R_XXX<0x75180000>; 949def XVPACKOD_H : LASX3R_XXX<0x75188000>; 950def XVPACKOD_W : LASX3R_XXX<0x75190000>; 951def XVPACKOD_D : LASX3R_XXX<0x75198000>; 952 953def XVPICKEV_B : LASX3R_XXX<0x751e0000>; 954def XVPICKEV_H : LASX3R_XXX<0x751e8000>; 955def XVPICKEV_W : LASX3R_XXX<0x751f0000>; 956def XVPICKEV_D : LASX3R_XXX<0x751f8000>; 957def XVPICKOD_B : LASX3R_XXX<0x75200000>; 958def XVPICKOD_H : LASX3R_XXX<0x75208000>; 959def XVPICKOD_W : LASX3R_XXX<0x75210000>; 960def XVPICKOD_D : LASX3R_XXX<0x75218000>; 961 962def XVILVL_B : LASX3R_XXX<0x751a0000>; 963def XVILVL_H : LASX3R_XXX<0x751a8000>; 964def XVILVL_W : LASX3R_XXX<0x751b0000>; 965def XVILVL_D : LASX3R_XXX<0x751b8000>; 966def XVILVH_B : LASX3R_XXX<0x751c0000>; 967def XVILVH_H : LASX3R_XXX<0x751c8000>; 968def XVILVH_W : LASX3R_XXX<0x751d0000>; 969def XVILVH_D : LASX3R_XXX<0x751d8000>; 970 971def XVSHUF_B : LASX4R_XXXX<0x0d600000>; 972 973def XVSHUF_H : LASX3R_XXXX<0x757a8000>; 974def XVSHUF_W : LASX3R_XXXX<0x757b0000>; 975def XVSHUF_D : LASX3R_XXXX<0x757b8000>; 976 977def XVPERM_W : LASX3R_XXX<0x757d0000>; 978 979def XVSHUF4I_B : LASX2RI8_XXI<0x77900000>; 980def XVSHUF4I_H : LASX2RI8_XXI<0x77940000>; 981def XVSHUF4I_W : LASX2RI8_XXI<0x77980000>; 982def XVSHUF4I_D : LASX2RI8_XXXI<0x779c0000>; 983 984def XVPERMI_W : LASX2RI8_XXXI<0x77e40000>; 985def XVPERMI_D : LASX2RI8_XXI<0x77e80000>; 986def XVPERMI_Q : LASX2RI8_XXXI<0x77ec0000>; 987 988def XVEXTRINS_D : LASX2RI8_XXXI<0x77800000>; 989def XVEXTRINS_W : LASX2RI8_XXXI<0x77840000>; 990def XVEXTRINS_H : LASX2RI8_XXXI<0x77880000>; 991def XVEXTRINS_B : LASX2RI8_XXXI<0x778c0000>; 992} // mayLoad = 0, mayStore = 0 993 994let mayLoad = 1, mayStore = 0 in { 995def XVLD : LASX2RI12_Load<0x2c800000>; 996def XVLDX : LASX3R_Load<0x38480000>; 997 998def XVLDREPL_B : LASX2RI12_Load<0x32800000>; 999def XVLDREPL_H : LASX2RI11_Load<0x32400000>; 1000def XVLDREPL_W : LASX2RI10_Load<0x32200000>; 1001def XVLDREPL_D : LASX2RI9_Load<0x32100000>; 1002} // mayLoad = 1, mayStore = 0 1003 1004let mayLoad = 0, mayStore = 1 in { 1005def XVST : LASX2RI12_Store<0x2cc00000>; 1006def XVSTX : LASX3R_Store<0x384c0000>; 1007 1008def XVSTELM_B : LASX2RI8I5_XRII<0x33800000>; 1009def XVSTELM_H : LASX2RI8I4_XRII<0x33400000, simm8_lsl1>; 1010def XVSTELM_W : LASX2RI8I3_XRII<0x33200000, simm8_lsl2>; 1011def XVSTELM_D : LASX2RI8I2_XRII<0x33100000, simm8_lsl3>; 1012} // mayLoad = 0, mayStore = 1 1013 1014} // hasSideEffects = 0, Predicates = [HasExtLASX] 1015 1016/// Pseudo-instructions 1017 1018let Predicates = [HasExtLASX] in { 1019 1020let hasSideEffects = 0, mayLoad = 0, mayStore = 0, isCodeGenOnly = 0, 1021 isAsmParserOnly = 1 in { 1022def PseudoXVREPLI_B : Pseudo<(outs LASX256:$xd), (ins simm10:$imm), [], 1023 "xvrepli.b", "$xd, $imm">; 1024def PseudoXVREPLI_H : Pseudo<(outs LASX256:$xd), (ins simm10:$imm), [], 1025 "xvrepli.h", "$xd, $imm">; 1026def PseudoXVREPLI_W : Pseudo<(outs LASX256:$xd), (ins simm10:$imm), [], 1027 "xvrepli.w", "$xd, $imm">; 1028def PseudoXVREPLI_D : Pseudo<(outs LASX256:$xd), (ins simm10:$imm), [], 1029 "xvrepli.d", "$xd, $imm">; 1030} 1031 1032} // Predicates = [HasExtLASX] 1033