1*9880d681SAndroid Build Coastguard Worker//==- HexagonInstrAlias.td - Hexagon Instruction Aliases ---*- tablegen -*--==// 2*9880d681SAndroid Build Coastguard Worker// 3*9880d681SAndroid Build Coastguard Worker// The LLVM Compiler Infrastructure 4*9880d681SAndroid Build Coastguard Worker// 5*9880d681SAndroid Build Coastguard Worker// This file is distributed under the University of Illinois Open Source 6*9880d681SAndroid Build Coastguard Worker// License. See LICENSE.TXT for details. 7*9880d681SAndroid Build Coastguard Worker// 8*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 9*9880d681SAndroid Build Coastguard Worker// Hexagon Instruction Mappings 10*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 11*9880d681SAndroid Build Coastguard Worker 12*9880d681SAndroid Build Coastguard Worker 13*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memb({GP}+#$addr) = $Nt.new", 14*9880d681SAndroid Build Coastguard Worker (S2_storerbnewgp u16_0Imm:$addr, IntRegs:$Nt)>; 15*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memh({GP}+#$addr) = $Nt.new", 16*9880d681SAndroid Build Coastguard Worker (S2_storerhnewgp u16_1Imm:$addr, IntRegs:$Nt)>; 17*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memw({GP}+#$addr) = $Nt.new", 18*9880d681SAndroid Build Coastguard Worker (S2_storerinewgp u16_2Imm:$addr, IntRegs:$Nt)>; 19*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memb({GP}+#$addr) = $Nt", 20*9880d681SAndroid Build Coastguard Worker (S2_storerbgp u16_0Imm:$addr, IntRegs:$Nt)>; 21*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memh({GP}+#$addr) = $Nt", 22*9880d681SAndroid Build Coastguard Worker (S2_storerhgp u16_1Imm:$addr, IntRegs:$Nt)>; 23*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memh({GP}+#$addr) = $Nt.h", 24*9880d681SAndroid Build Coastguard Worker (S2_storerfgp u16_1Imm:$addr, IntRegs:$Nt)>; 25*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memw({GP}+#$addr) = $Nt", 26*9880d681SAndroid Build Coastguard Worker (S2_storerigp u16_2Imm:$addr, IntRegs:$Nt)>; 27*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memd({GP}+#$addr) = $Nt", 28*9880d681SAndroid Build Coastguard Worker (S2_storerdgp u16_3Imm:$addr, DoubleRegs:$Nt)>; 29*9880d681SAndroid Build Coastguard Worker 30*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Nt = memb({GP}+#$addr)", 31*9880d681SAndroid Build Coastguard Worker (L2_loadrbgp IntRegs:$Nt, u16_0Imm:$addr)>; 32*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Nt = memub({GP}+#$addr)", 33*9880d681SAndroid Build Coastguard Worker (L2_loadrubgp IntRegs:$Nt, u16_0Imm:$addr)>; 34*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Nt = memh({GP}+#$addr)", 35*9880d681SAndroid Build Coastguard Worker (L2_loadrhgp IntRegs:$Nt, u16_1Imm:$addr)>; 36*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Nt = memuh({GP}+#$addr)", 37*9880d681SAndroid Build Coastguard Worker (L2_loadruhgp IntRegs:$Nt, u16_1Imm:$addr)>; 38*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Nt = memw({GP}+#$addr)", 39*9880d681SAndroid Build Coastguard Worker (L2_loadrigp IntRegs:$Nt, u16_2Imm:$addr)>; 40*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Nt = memd({GP}+#$addr)", 41*9880d681SAndroid Build Coastguard Worker (L2_loadrdgp DoubleRegs:$Nt, u16_3Imm:$addr)>; 42*9880d681SAndroid Build Coastguard Worker 43*9880d681SAndroid Build Coastguard Worker// Alias of: memXX($Rs+#XX) = $Rt to memXX($Rs) = $Rt 44*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memb($Rs) = $Rt", 45*9880d681SAndroid Build Coastguard Worker (S2_storerb_io IntRegs:$Rs, 0, IntRegs:$Rt), 0>; 46*9880d681SAndroid Build Coastguard Worker 47*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memh($Rs) = $Rt", 48*9880d681SAndroid Build Coastguard Worker (S2_storerh_io IntRegs:$Rs, 0, IntRegs:$Rt), 0>; 49*9880d681SAndroid Build Coastguard Worker 50*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memh($Rs) = $Rt.h", 51*9880d681SAndroid Build Coastguard Worker (S2_storerf_io IntRegs:$Rs, 0, IntRegs:$Rt), 0>; 52*9880d681SAndroid Build Coastguard Worker 53*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memw($Rs) = $Rt", 54*9880d681SAndroid Build Coastguard Worker (S2_storeri_io IntRegs:$Rs, 0, IntRegs:$Rt), 0>; 55*9880d681SAndroid Build Coastguard Worker 56*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memb($Rs) = $Rt.new", 57*9880d681SAndroid Build Coastguard Worker (S2_storerbnew_io IntRegs:$Rs, 0, IntRegs:$Rt), 0>; 58*9880d681SAndroid Build Coastguard Worker 59*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memh($Rs) = $Rt.new", 60*9880d681SAndroid Build Coastguard Worker (S2_storerhnew_io IntRegs:$Rs, 0, IntRegs:$Rt), 0>; 61*9880d681SAndroid Build Coastguard Worker 62*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memw($Rs) = $Rt.new", 63*9880d681SAndroid Build Coastguard Worker (S2_storerinew_io IntRegs:$Rs, 0, IntRegs:$Rt), 0>; 64*9880d681SAndroid Build Coastguard Worker 65*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memb($Rs) = #$S8", 66*9880d681SAndroid Build Coastguard Worker (S4_storeirb_io IntRegs:$Rs, 0, s8Ext:$S8), 0>; 67*9880d681SAndroid Build Coastguard Worker 68*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memh($Rs) = #$S8", 69*9880d681SAndroid Build Coastguard Worker (S4_storeirh_io IntRegs:$Rs, 0, s8Ext:$S8), 0>; 70*9880d681SAndroid Build Coastguard Worker 71*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memw($Rs) = #$S8", 72*9880d681SAndroid Build Coastguard Worker (S4_storeiri_io IntRegs:$Rs, 0, s8Ext:$S8), 0>; 73*9880d681SAndroid Build Coastguard Worker 74*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memd($Rs) = $Rtt", 75*9880d681SAndroid Build Coastguard Worker (S2_storerd_io IntRegs:$Rs, 0, DoubleRegs:$Rtt), 0>; 76*9880d681SAndroid Build Coastguard Worker 77*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memb($Rs) = setbit(#$U5)", 78*9880d681SAndroid Build Coastguard Worker (L4_ior_memopb_io IntRegs:$Rs, 0, u5Imm:$U5), 0>; 79*9880d681SAndroid Build Coastguard Worker 80*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memh($Rs) = setbit(#$U5)", 81*9880d681SAndroid Build Coastguard Worker (L4_ior_memoph_io IntRegs:$Rs, 0, u5Imm:$U5), 0>; 82*9880d681SAndroid Build Coastguard Worker 83*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memw($Rs) = setbit(#$U5)", 84*9880d681SAndroid Build Coastguard Worker (L4_ior_memopw_io IntRegs:$Rs, 0, u5Imm:$U5), 0>; 85*9880d681SAndroid Build Coastguard Worker 86*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memb($Rs) = clrbit(#$U5)", 87*9880d681SAndroid Build Coastguard Worker (L4_iand_memopb_io IntRegs:$Rs, 0, u5Imm:$U5), 0>; 88*9880d681SAndroid Build Coastguard Worker 89*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memh($Rs) = clrbit(#$U5)", 90*9880d681SAndroid Build Coastguard Worker (L4_iand_memoph_io IntRegs:$Rs, 0, u5Imm:$U5), 0>; 91*9880d681SAndroid Build Coastguard Worker 92*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memw($Rs) = clrbit(#$U5)", 93*9880d681SAndroid Build Coastguard Worker (L4_iand_memopw_io IntRegs:$Rs, 0, u5Imm:$U5), 0>; 94*9880d681SAndroid Build Coastguard Worker 95*9880d681SAndroid Build Coastguard Worker// Alias of: $Rd = memXX($Rs+#XX) to $Rd = memXX($Rs) 96*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Rd = memb($Rs)", 97*9880d681SAndroid Build Coastguard Worker (L2_loadrb_io IntRegs:$Rd, IntRegs:$Rs, 0), 0>; 98*9880d681SAndroid Build Coastguard Worker 99*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Rd = memub($Rs)", 100*9880d681SAndroid Build Coastguard Worker (L2_loadrub_io IntRegs:$Rd, IntRegs:$Rs, 0), 0>; 101*9880d681SAndroid Build Coastguard Worker 102*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Rd = memh($Rs)", 103*9880d681SAndroid Build Coastguard Worker (L2_loadrh_io IntRegs:$Rd, IntRegs:$Rs, 0), 0>; 104*9880d681SAndroid Build Coastguard Worker 105*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Rd = memuh($Rs)", 106*9880d681SAndroid Build Coastguard Worker (L2_loadruh_io IntRegs:$Rd, IntRegs:$Rs, 0), 0>; 107*9880d681SAndroid Build Coastguard Worker 108*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Rd = memw($Rs)", 109*9880d681SAndroid Build Coastguard Worker (L2_loadri_io IntRegs:$Rd, IntRegs:$Rs, 0), 0>; 110*9880d681SAndroid Build Coastguard Worker 111*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Rdd = memd($Rs)", 112*9880d681SAndroid Build Coastguard Worker (L2_loadrd_io DoubleRegs:$Rdd, IntRegs:$Rs, 0), 0>; 113*9880d681SAndroid Build Coastguard Worker 114*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Rd = memubh($Rs)", 115*9880d681SAndroid Build Coastguard Worker (L2_loadbzw2_io IntRegs:$Rd, IntRegs:$Rs, 0), 0>; 116*9880d681SAndroid Build Coastguard Worker 117*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Rdd = memubh($Rs)", 118*9880d681SAndroid Build Coastguard Worker (L2_loadbzw4_io DoubleRegs:$Rdd, IntRegs:$Rs, 0), 0>; 119*9880d681SAndroid Build Coastguard Worker 120*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Rd = membh($Rs)", 121*9880d681SAndroid Build Coastguard Worker (L2_loadbsw2_io IntRegs:$Rd, IntRegs:$Rs, 0), 0>; 122*9880d681SAndroid Build Coastguard Worker 123*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Rdd = membh($Rs)", 124*9880d681SAndroid Build Coastguard Worker (L2_loadbsw4_io DoubleRegs:$Rdd, IntRegs:$Rs, 0), 0>; 125*9880d681SAndroid Build Coastguard Worker 126*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Rdd = memb_fifo($Rs)", 127*9880d681SAndroid Build Coastguard Worker (L2_loadalignb_io DoubleRegs:$Rdd, IntRegs:$Rs, 0), 0>; 128*9880d681SAndroid Build Coastguard Worker 129*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Rdd = memh_fifo($Rs)", 130*9880d681SAndroid Build Coastguard Worker (L2_loadalignh_io DoubleRegs:$Rdd, IntRegs:$Rs, 0), 0>; 131*9880d681SAndroid Build Coastguard Worker 132*9880d681SAndroid Build Coastguard Worker// Alias of: if ($Pt) $Rd = memXX($Rs + #$u6_X) 133*9880d681SAndroid Build Coastguard Worker// to: if ($Pt) $Rd = memXX($Rs) 134*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt) $Rd = memb($Rs)", 135*9880d681SAndroid Build Coastguard Worker (L2_ploadrbt_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>; 136*9880d681SAndroid Build Coastguard Worker 137*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt) $Rd = memub($Rs)", 138*9880d681SAndroid Build Coastguard Worker (L2_ploadrubt_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>; 139*9880d681SAndroid Build Coastguard Worker 140*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt) $Rd = memh($Rs)", 141*9880d681SAndroid Build Coastguard Worker (L2_ploadrht_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>; 142*9880d681SAndroid Build Coastguard Worker 143*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt) $Rd = memuh($Rs)", 144*9880d681SAndroid Build Coastguard Worker (L2_ploadruht_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>; 145*9880d681SAndroid Build Coastguard Worker 146*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt) $Rd = memw($Rs)", 147*9880d681SAndroid Build Coastguard Worker (L2_ploadrit_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>; 148*9880d681SAndroid Build Coastguard Worker 149*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt) $Rdd = memd($Rs)", 150*9880d681SAndroid Build Coastguard Worker (L2_ploadrdt_io DoubleRegs:$Rdd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>; 151*9880d681SAndroid Build Coastguard Worker 152*9880d681SAndroid Build Coastguard Worker// Alias of: if ($Pt) memXX($Rs + #$u6_X) = $Rt 153*9880d681SAndroid Build Coastguard Worker// to: if ($Pt) memXX($Rs) = $Rt 154*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt) memb($Rs) = $Rt", 155*9880d681SAndroid Build Coastguard Worker (S2_pstorerbt_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>; 156*9880d681SAndroid Build Coastguard Worker 157*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt) memh($Rs) = $Rt", 158*9880d681SAndroid Build Coastguard Worker (S2_pstorerht_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>; 159*9880d681SAndroid Build Coastguard Worker 160*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt) memh($Rs) = $Rt.h", 161*9880d681SAndroid Build Coastguard Worker (S2_pstorerft_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>; 162*9880d681SAndroid Build Coastguard Worker 163*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt) memw($Rs) = $Rt", 164*9880d681SAndroid Build Coastguard Worker (S2_pstorerit_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>; 165*9880d681SAndroid Build Coastguard Worker 166*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt) memd($Rs) = $Rtt", 167*9880d681SAndroid Build Coastguard Worker (S2_pstorerdt_io PredRegs:$Pt, IntRegs:$Rs, 0, DoubleRegs:$Rtt), 0>; 168*9880d681SAndroid Build Coastguard Worker 169*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt) memb($Rs) = $Rt.new", 170*9880d681SAndroid Build Coastguard Worker (S2_pstorerbnewt_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>; 171*9880d681SAndroid Build Coastguard Worker 172*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt) memh($Rs) = $Rt.new", 173*9880d681SAndroid Build Coastguard Worker (S2_pstorerhnewt_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>; 174*9880d681SAndroid Build Coastguard Worker 175*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt) memw($Rs) = $Rt.new", 176*9880d681SAndroid Build Coastguard Worker (S2_pstorerinewt_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>; 177*9880d681SAndroid Build Coastguard Worker 178*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt.new) memb($Rs) = $Rt.new", 179*9880d681SAndroid Build Coastguard Worker (S4_pstorerbnewtnew_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>; 180*9880d681SAndroid Build Coastguard Worker 181*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt.new) memh($Rs) = $Rt.new", 182*9880d681SAndroid Build Coastguard Worker (S4_pstorerhnewtnew_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>; 183*9880d681SAndroid Build Coastguard Worker 184*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt.new) memw($Rs) = $Rt.new", 185*9880d681SAndroid Build Coastguard Worker (S4_pstorerinewtnew_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>; 186*9880d681SAndroid Build Coastguard Worker 187*9880d681SAndroid Build Coastguard Worker 188*9880d681SAndroid Build Coastguard Worker// Alias of: if (!$Pt) $Rd = memXX($Rs + #$u6_X) 189*9880d681SAndroid Build Coastguard Worker// to: if (!$Pt) $Rd = memXX($Rs) 190*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt) $Rd = memb($Rs)", 191*9880d681SAndroid Build Coastguard Worker (L2_ploadrbf_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>; 192*9880d681SAndroid Build Coastguard Worker 193*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt) $Rd = memub($Rs)", 194*9880d681SAndroid Build Coastguard Worker (L2_ploadrubf_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>; 195*9880d681SAndroid Build Coastguard Worker 196*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt) $Rd = memh($Rs)", 197*9880d681SAndroid Build Coastguard Worker (L2_ploadrhf_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>; 198*9880d681SAndroid Build Coastguard Worker 199*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt) $Rd = memuh($Rs)", 200*9880d681SAndroid Build Coastguard Worker (L2_ploadruhf_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>; 201*9880d681SAndroid Build Coastguard Worker 202*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt) $Rd = memw($Rs)", 203*9880d681SAndroid Build Coastguard Worker (L2_ploadrif_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>; 204*9880d681SAndroid Build Coastguard Worker 205*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt) $Rdd = memd($Rs)", 206*9880d681SAndroid Build Coastguard Worker (L2_ploadrdf_io DoubleRegs:$Rdd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>; 207*9880d681SAndroid Build Coastguard Worker 208*9880d681SAndroid Build Coastguard Worker// Alias of: if (!$Pt) memXX($Rs + #$u6_X) = $Rt 209*9880d681SAndroid Build Coastguard Worker// to: if (!$Pt) memXX($Rs) = $Rt 210*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt) memb($Rs) = $Rt", 211*9880d681SAndroid Build Coastguard Worker (S2_pstorerbf_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>; 212*9880d681SAndroid Build Coastguard Worker 213*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt) memh($Rs) = $Rt", 214*9880d681SAndroid Build Coastguard Worker (S2_pstorerhf_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>; 215*9880d681SAndroid Build Coastguard Worker 216*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt) memh($Rs) = $Rt.h", 217*9880d681SAndroid Build Coastguard Worker (S2_pstorerff_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>; 218*9880d681SAndroid Build Coastguard Worker 219*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt) memw($Rs) = $Rt", 220*9880d681SAndroid Build Coastguard Worker (S2_pstorerif_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>; 221*9880d681SAndroid Build Coastguard Worker 222*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt) memd($Rs) = $Rtt", 223*9880d681SAndroid Build Coastguard Worker (S2_pstorerdf_io PredRegs:$Pt, IntRegs:$Rs, 0, DoubleRegs:$Rtt), 0>; 224*9880d681SAndroid Build Coastguard Worker 225*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt) memb($Rs) = $Rt.new", 226*9880d681SAndroid Build Coastguard Worker (S2_pstorerbnewf_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>; 227*9880d681SAndroid Build Coastguard Worker 228*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt) memh($Rs) = $Rt.new", 229*9880d681SAndroid Build Coastguard Worker (S2_pstorerhnewf_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>; 230*9880d681SAndroid Build Coastguard Worker 231*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt) memw($Rs) = $Rt.new", 232*9880d681SAndroid Build Coastguard Worker (S2_pstorerinewf_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>; 233*9880d681SAndroid Build Coastguard Worker 234*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt.new) memb($Rs) = $Rt.new", 235*9880d681SAndroid Build Coastguard Worker (S4_pstorerbnewfnew_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>; 236*9880d681SAndroid Build Coastguard Worker 237*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt.new) memh($Rs) = $Rt.new", 238*9880d681SAndroid Build Coastguard Worker (S4_pstorerhnewfnew_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>; 239*9880d681SAndroid Build Coastguard Worker 240*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt.new) memw($Rs) = $Rt.new", 241*9880d681SAndroid Build Coastguard Worker (S4_pstorerinewfnew_io PredRegs:$Pt, IntRegs:$Rs, 0, IntRegs:$Rt), 0>; 242*9880d681SAndroid Build Coastguard Worker 243*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt) memb($Rs) = #$S6", 244*9880d681SAndroid Build Coastguard Worker (S4_storeirbt_io PredRegs:$Pt, IntRegs:$Rs, 0, s6Ext:$S6), 0>; 245*9880d681SAndroid Build Coastguard Worker 246*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt) memh($Rs) = #$S6", 247*9880d681SAndroid Build Coastguard Worker (S4_storeirht_io PredRegs:$Pt, IntRegs:$Rs, 0, s6Ext:$S6), 0>; 248*9880d681SAndroid Build Coastguard Worker 249*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt) memw($Rs) = #$S6", 250*9880d681SAndroid Build Coastguard Worker (S4_storeirit_io PredRegs:$Pt, IntRegs:$Rs, 0, s6Ext:$S6), 0>; 251*9880d681SAndroid Build Coastguard Worker 252*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt.new) memb($Rs) = #$S6", 253*9880d681SAndroid Build Coastguard Worker (S4_storeirbtnew_io PredRegs:$Pt, IntRegs:$Rs, 0, s6Ext:$S6), 0>; 254*9880d681SAndroid Build Coastguard Worker 255*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt.new) memh($Rs) = #$S6", 256*9880d681SAndroid Build Coastguard Worker (S4_storeirhtnew_io PredRegs:$Pt, IntRegs:$Rs, 0, s6Ext:$S6), 0>; 257*9880d681SAndroid Build Coastguard Worker 258*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt.new) memw($Rs) = #$S6", 259*9880d681SAndroid Build Coastguard Worker (S4_storeiritnew_io PredRegs:$Pt, IntRegs:$Rs, 0, s6Ext:$S6), 0>; 260*9880d681SAndroid Build Coastguard Worker 261*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt) memb($Rs) = #$S6", 262*9880d681SAndroid Build Coastguard Worker (S4_storeirbf_io PredRegs:$Pt, IntRegs:$Rs, 0, s6Ext:$S6), 0>; 263*9880d681SAndroid Build Coastguard Worker 264*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt) memh($Rs) = #$S6", 265*9880d681SAndroid Build Coastguard Worker (S4_storeirhf_io PredRegs:$Pt, IntRegs:$Rs, 0, s6Ext:$S6), 0>; 266*9880d681SAndroid Build Coastguard Worker 267*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt) memw($Rs) = #$S6", 268*9880d681SAndroid Build Coastguard Worker (S4_storeirif_io PredRegs:$Pt, IntRegs:$Rs, 0, s6Ext:$S6), 0>; 269*9880d681SAndroid Build Coastguard Worker 270*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt.new) memb($Rs) = #$S6", 271*9880d681SAndroid Build Coastguard Worker (S4_storeirbfnew_io PredRegs:$Pt, IntRegs:$Rs, 0, s6Ext:$S6), 0>; 272*9880d681SAndroid Build Coastguard Worker 273*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt.new) memh($Rs) = #$S6", 274*9880d681SAndroid Build Coastguard Worker (S4_storeirhfnew_io PredRegs:$Pt, IntRegs:$Rs, 0, s6Ext:$S6), 0>; 275*9880d681SAndroid Build Coastguard Worker 276*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt.new) memw($Rs) = #$S6", 277*9880d681SAndroid Build Coastguard Worker (S4_storeirifnew_io PredRegs:$Pt, IntRegs:$Rs, 0, s6Ext:$S6), 0>; 278*9880d681SAndroid Build Coastguard Worker 279*9880d681SAndroid Build Coastguard Worker// Alias of: memXX($Rs + $u6_X) |= $Rt, also &=, +=, -= 280*9880d681SAndroid Build Coastguard Worker// to: memXX($Rs) |= $Rt 281*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memb($Rs) &= $Rt", 282*9880d681SAndroid Build Coastguard Worker (L4_and_memopb_io IntRegs:$Rs, 0, IntRegs:$Rt), 0>, 283*9880d681SAndroid Build Coastguard Worker Requires<[UseMEMOP]>; 284*9880d681SAndroid Build Coastguard Worker 285*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memb($Rs) |= $Rt", 286*9880d681SAndroid Build Coastguard Worker (L4_or_memopb_io IntRegs:$Rs, 0, IntRegs:$Rt), 0>, 287*9880d681SAndroid Build Coastguard Worker Requires<[UseMEMOP]>; 288*9880d681SAndroid Build Coastguard Worker 289*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memb($Rs) += $Rt", 290*9880d681SAndroid Build Coastguard Worker (L4_add_memopb_io IntRegs:$Rs, 0, IntRegs:$Rt), 0>, 291*9880d681SAndroid Build Coastguard Worker Requires<[UseMEMOP]>; 292*9880d681SAndroid Build Coastguard Worker 293*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memb($Rs) -= $Rt", 294*9880d681SAndroid Build Coastguard Worker (L4_sub_memopb_io IntRegs:$Rs, 0, IntRegs:$Rt), 0>, 295*9880d681SAndroid Build Coastguard Worker Requires<[UseMEMOP]>; 296*9880d681SAndroid Build Coastguard Worker 297*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memb($Rs) += #$U5", 298*9880d681SAndroid Build Coastguard Worker (L4_iadd_memopb_io IntRegs:$Rs, 0, u5Imm:$U5), 0>, 299*9880d681SAndroid Build Coastguard Worker Requires<[UseMEMOP]>; 300*9880d681SAndroid Build Coastguard Worker 301*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memb($Rs) -= #$U5", 302*9880d681SAndroid Build Coastguard Worker (L4_isub_memopb_io IntRegs:$Rs, 0, u5Imm:$U5), 0>, 303*9880d681SAndroid Build Coastguard Worker Requires<[UseMEMOP]>; 304*9880d681SAndroid Build Coastguard Worker 305*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memh($Rs) &= $Rt", 306*9880d681SAndroid Build Coastguard Worker (L4_and_memoph_io IntRegs:$Rs, 0, IntRegs:$Rt), 0>, 307*9880d681SAndroid Build Coastguard Worker Requires<[UseMEMOP]>; 308*9880d681SAndroid Build Coastguard Worker 309*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memh($Rs) |= $Rt", 310*9880d681SAndroid Build Coastguard Worker (L4_or_memoph_io IntRegs:$Rs, 0, IntRegs:$Rt), 0>, 311*9880d681SAndroid Build Coastguard Worker Requires<[UseMEMOP]>; 312*9880d681SAndroid Build Coastguard Worker 313*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memh($Rs) += $Rt", 314*9880d681SAndroid Build Coastguard Worker (L4_add_memoph_io IntRegs:$Rs, 0, IntRegs:$Rt), 0>, 315*9880d681SAndroid Build Coastguard Worker Requires<[UseMEMOP]>; 316*9880d681SAndroid Build Coastguard Worker 317*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memh($Rs) -= $Rt", 318*9880d681SAndroid Build Coastguard Worker (L4_sub_memoph_io IntRegs:$Rs, 0, IntRegs:$Rt), 0>, 319*9880d681SAndroid Build Coastguard Worker Requires<[UseMEMOP]>; 320*9880d681SAndroid Build Coastguard Worker 321*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memh($Rs) += #$U5", 322*9880d681SAndroid Build Coastguard Worker (L4_iadd_memoph_io IntRegs:$Rs, 0, u5Imm:$U5), 0>, 323*9880d681SAndroid Build Coastguard Worker Requires<[UseMEMOP]>; 324*9880d681SAndroid Build Coastguard Worker 325*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memh($Rs) -= #$U5", 326*9880d681SAndroid Build Coastguard Worker (L4_isub_memoph_io IntRegs:$Rs, 0, u5Imm:$U5), 0>, 327*9880d681SAndroid Build Coastguard Worker Requires<[UseMEMOP]>; 328*9880d681SAndroid Build Coastguard Worker 329*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memw($Rs) &= $Rt", 330*9880d681SAndroid Build Coastguard Worker (L4_and_memopw_io IntRegs:$Rs, 0, IntRegs:$Rt), 0>, 331*9880d681SAndroid Build Coastguard Worker Requires<[UseMEMOP]>; 332*9880d681SAndroid Build Coastguard Worker 333*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memw($Rs) |= $Rt", 334*9880d681SAndroid Build Coastguard Worker (L4_or_memopw_io IntRegs:$Rs, 0, IntRegs:$Rt), 0>, 335*9880d681SAndroid Build Coastguard Worker Requires<[UseMEMOP]>; 336*9880d681SAndroid Build Coastguard Worker 337*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memw($Rs) += $Rt", 338*9880d681SAndroid Build Coastguard Worker (L4_add_memopw_io IntRegs:$Rs, 0, IntRegs:$Rt), 0>, 339*9880d681SAndroid Build Coastguard Worker Requires<[UseMEMOP]>; 340*9880d681SAndroid Build Coastguard Worker 341*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memw($Rs) -= $Rt", 342*9880d681SAndroid Build Coastguard Worker (L4_sub_memopw_io IntRegs:$Rs, 0, IntRegs:$Rt), 0>, 343*9880d681SAndroid Build Coastguard Worker Requires<[UseMEMOP]>; 344*9880d681SAndroid Build Coastguard Worker 345*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memw($Rs) += #$U5", 346*9880d681SAndroid Build Coastguard Worker (L4_iadd_memopw_io IntRegs:$Rs, 0, u5Imm:$U5), 0>, 347*9880d681SAndroid Build Coastguard Worker Requires<[UseMEMOP]>; 348*9880d681SAndroid Build Coastguard Worker 349*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"memw($Rs) -= #$U5", 350*9880d681SAndroid Build Coastguard Worker (L4_isub_memopw_io IntRegs:$Rs, 0, u5Imm:$U5), 0>, 351*9880d681SAndroid Build Coastguard Worker Requires<[UseMEMOP]>; 352*9880d681SAndroid Build Coastguard Worker 353*9880d681SAndroid Build Coastguard Worker// 354*9880d681SAndroid Build Coastguard Worker// Alias of: if ($Pv.new) memX($Rs) = $Rt 355*9880d681SAndroid Build Coastguard Worker// to: if (p3.new) memX(r17 + #0) = $Rt 356*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pv.new) memb($Rs) = $Rt", 357*9880d681SAndroid Build Coastguard Worker (S4_pstorerbtnew_io PredRegs:$Pv, IntRegs:$Rs, 0, IntRegs:$Rt), 0>; 358*9880d681SAndroid Build Coastguard Worker 359*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pv.new) memh($Rs) = $Rt", 360*9880d681SAndroid Build Coastguard Worker (S4_pstorerhtnew_io PredRegs:$Pv, IntRegs:$Rs, 0, IntRegs:$Rt), 0>; 361*9880d681SAndroid Build Coastguard Worker 362*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pv.new) memh($Rs) = $Rt.h", 363*9880d681SAndroid Build Coastguard Worker (S4_pstorerftnew_io PredRegs:$Pv, IntRegs:$Rs, 0, IntRegs:$Rt), 0>; 364*9880d681SAndroid Build Coastguard Worker 365*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pv.new) memw($Rs) = $Rt", 366*9880d681SAndroid Build Coastguard Worker (S4_pstoreritnew_io PredRegs:$Pv, IntRegs:$Rs, 0, IntRegs:$Rt), 0>; 367*9880d681SAndroid Build Coastguard Worker 368*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pv.new) memd($Rs) = $Rtt", 369*9880d681SAndroid Build Coastguard Worker (S4_pstorerdtnew_io 370*9880d681SAndroid Build Coastguard Worker PredRegs:$Pv, IntRegs:$Rs, 0, DoubleRegs:$Rtt), 0>; 371*9880d681SAndroid Build Coastguard Worker 372*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pv.new) memb($Rs) = $Rt", 373*9880d681SAndroid Build Coastguard Worker (S4_pstorerbfnew_io PredRegs:$Pv, IntRegs:$Rs, 0, IntRegs:$Rt), 0>; 374*9880d681SAndroid Build Coastguard Worker 375*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pv.new) memh($Rs) = $Rt", 376*9880d681SAndroid Build Coastguard Worker (S4_pstorerhfnew_io PredRegs:$Pv, IntRegs:$Rs, 0, IntRegs:$Rt), 0>; 377*9880d681SAndroid Build Coastguard Worker 378*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pv.new) memh($Rs) = $Rt.h", 379*9880d681SAndroid Build Coastguard Worker (S4_pstorerffnew_io PredRegs:$Pv, IntRegs:$Rs, 0, IntRegs:$Rt), 0>; 380*9880d681SAndroid Build Coastguard Worker 381*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pv.new) memw($Rs) = $Rt", 382*9880d681SAndroid Build Coastguard Worker (S4_pstorerifnew_io PredRegs:$Pv, IntRegs:$Rs, 0, IntRegs:$Rt), 0>; 383*9880d681SAndroid Build Coastguard Worker 384*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pv.new) memd($Rs) = $Rtt", 385*9880d681SAndroid Build Coastguard Worker (S4_pstorerdfnew_io 386*9880d681SAndroid Build Coastguard Worker PredRegs:$Pv, IntRegs:$Rs, 0, DoubleRegs:$Rtt), 0>; 387*9880d681SAndroid Build Coastguard Worker 388*9880d681SAndroid Build Coastguard Worker// 389*9880d681SAndroid Build Coastguard Worker// Alias of: if ($Pt.new) $Rd = memub($Rs) -- And if (!$Pt.new) ... 390*9880d681SAndroid Build Coastguard Worker// to: if ($Pt.new) $Rd = memub($Rs + #$u6_0) 391*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt.new) $Rd = memub($Rs)", 392*9880d681SAndroid Build Coastguard Worker (L2_ploadrubtnew_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>; 393*9880d681SAndroid Build Coastguard Worker 394*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt.new) $Rd = memb($Rs)", 395*9880d681SAndroid Build Coastguard Worker (L2_ploadrbtnew_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>; 396*9880d681SAndroid Build Coastguard Worker 397*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt.new) $Rd = memh($Rs)", 398*9880d681SAndroid Build Coastguard Worker (L2_ploadrhtnew_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>; 399*9880d681SAndroid Build Coastguard Worker 400*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt.new) $Rd = memuh($Rs)", 401*9880d681SAndroid Build Coastguard Worker (L2_ploadruhtnew_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>; 402*9880d681SAndroid Build Coastguard Worker 403*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt.new) $Rd = memw($Rs)", 404*9880d681SAndroid Build Coastguard Worker (L2_ploadritnew_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>; 405*9880d681SAndroid Build Coastguard Worker 406*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pt.new) $Rdd = memd($Rs)", 407*9880d681SAndroid Build Coastguard Worker (L2_ploadrdtnew_io DoubleRegs:$Rdd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>; 408*9880d681SAndroid Build Coastguard Worker 409*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt.new) $Rd = memub($Rs)", 410*9880d681SAndroid Build Coastguard Worker (L2_ploadrubfnew_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>; 411*9880d681SAndroid Build Coastguard Worker 412*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt.new) $Rd = memb($Rs)", 413*9880d681SAndroid Build Coastguard Worker (L2_ploadrbfnew_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>; 414*9880d681SAndroid Build Coastguard Worker 415*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt.new) $Rd = memh($Rs)", 416*9880d681SAndroid Build Coastguard Worker (L2_ploadrhfnew_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>; 417*9880d681SAndroid Build Coastguard Worker 418*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt.new) $Rd = memuh($Rs)", 419*9880d681SAndroid Build Coastguard Worker (L2_ploadruhfnew_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>; 420*9880d681SAndroid Build Coastguard Worker 421*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt.new) $Rd = memw($Rs)", 422*9880d681SAndroid Build Coastguard Worker (L2_ploadrifnew_io IntRegs:$Rd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>; 423*9880d681SAndroid Build Coastguard Worker 424*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pt.new) $Rdd = memd($Rs)", 425*9880d681SAndroid Build Coastguard Worker (L2_ploadrdfnew_io DoubleRegs:$Rdd, PredRegs:$Pt, IntRegs:$Rs, 0), 0>; 426*9880d681SAndroid Build Coastguard Worker 427*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"dcfetch($Rs)", 428*9880d681SAndroid Build Coastguard Worker (Y2_dcfetchbo IntRegs:$Rs, 0), 0>; 429*9880d681SAndroid Build Coastguard Worker 430*9880d681SAndroid Build Coastguard Worker// Alias of some insn mappings, others must be handled by the parser 431*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Pd=cmp.lt($Rs, $Rt)", 432*9880d681SAndroid Build Coastguard Worker (C2_cmpgt PredRegs:$Pd, IntRegs:$Rt, IntRegs:$Rs), 0>; 433*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Pd=cmp.ltu($Rs, $Rt)", 434*9880d681SAndroid Build Coastguard Worker (C2_cmpgtu PredRegs:$Pd, IntRegs:$Rt, IntRegs:$Rs), 0>; 435*9880d681SAndroid Build Coastguard Worker 436*9880d681SAndroid Build Coastguard Worker// Rd=neg(Rs) is aliased to Rd=sub(#0,Rs) 437*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Rd = neg($Rs)", 438*9880d681SAndroid Build Coastguard Worker (A2_subri IntRegs:$Rd, 0, IntRegs:$Rs), 0>; 439*9880d681SAndroid Build Coastguard Worker 440*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"m0 = $Rs", (A2_tfrrcr C6, IntRegs:$Rs)>; 441*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Rd = m0", (A2_tfrcrr IntRegs:$Rd, C6)>; 442*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"m1 = $Rs", (A2_tfrrcr C7, IntRegs:$Rs)>; 443*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Rd = m1", (A2_tfrcrr IntRegs:$Rd, C7)>; 444*9880d681SAndroid Build Coastguard Worker 445*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Pd = $Ps", 446*9880d681SAndroid Build Coastguard Worker (C2_or PredRegs:$Pd, PredRegs:$Ps, PredRegs:$Ps), 0>; 447*9880d681SAndroid Build Coastguard Worker 448*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Rdd = vaddb($Rss, $Rtt)", 449*9880d681SAndroid Build Coastguard Worker (A2_vaddub DoubleRegs:$Rdd, DoubleRegs:$Rss, DoubleRegs:$Rtt), 1>; 450*9880d681SAndroid Build Coastguard Worker 451*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Rdd = vsubb($Rss,$Rtt)", 452*9880d681SAndroid Build Coastguard Worker (A2_vsubub DoubleRegs:$Rdd, DoubleRegs:$Rss, DoubleRegs:$Rtt), 0>; 453*9880d681SAndroid Build Coastguard Worker 454*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Rd = mpyui($Rs,$Rt)", 455*9880d681SAndroid Build Coastguard Worker (M2_mpyi IntRegs:$Rd, IntRegs:$Rs, IntRegs:$Rt), 0>; 456*9880d681SAndroid Build Coastguard Worker 457*9880d681SAndroid Build Coastguard Worker// Assembler mapped insns: cmp.lt(a,b) -> cmp.gt(b,a) 458*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Pd=cmp.lt($Rs, $Rt)", 459*9880d681SAndroid Build Coastguard Worker (C2_cmpgt PredRegs:$Pd, IntRegs:$Rt, IntRegs:$Rs), 0>; 460*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Pd=cmp.ltu($Rs, $Rt)", 461*9880d681SAndroid Build Coastguard Worker (C2_cmpgtu PredRegs:$Pd, IntRegs:$Rt, IntRegs:$Rs), 0>; 462*9880d681SAndroid Build Coastguard Worker 463*9880d681SAndroid Build Coastguard Worker// maps if (!Pu) jumpr Rs -> if (!Pu) jumpr:nt Rs 464*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pu) jumpr $Rs", 465*9880d681SAndroid Build Coastguard Worker (J2_jumprf PredRegs:$Pu, IntRegs:$Rs)>, 466*9880d681SAndroid Build Coastguard Worker Requires<[HasV60T]>; 467*9880d681SAndroid Build Coastguard Worker 468*9880d681SAndroid Build Coastguard Worker// maps if (Pu) jumpr Rs -> if (Pu) jumpr:nt Rs 469*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pu) jumpr $Rs", 470*9880d681SAndroid Build Coastguard Worker (J2_jumprt PredRegs:$Pu, IntRegs:$Rs)>, 471*9880d681SAndroid Build Coastguard Worker Requires<[HasV60T]>; 472*9880d681SAndroid Build Coastguard Worker 473*9880d681SAndroid Build Coastguard Worker// maps if (!Pu) jump $r15_2 -> if (!Pu) jump:nt $r15_2 474*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pu) jump $r15_2", 475*9880d681SAndroid Build Coastguard Worker (J2_jumpf PredRegs:$Pu, brtarget:$r15_2)>, 476*9880d681SAndroid Build Coastguard Worker Requires<[HasV60T]>; 477*9880d681SAndroid Build Coastguard Worker 478*9880d681SAndroid Build Coastguard Worker// maps if (Pu) jump $r15_2 -> if (Pu) jump:nt $r15_2 479*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pu) jump $r15_2", 480*9880d681SAndroid Build Coastguard Worker (J2_jumpt PredRegs:$Pu, brtarget:$r15_2)>, 481*9880d681SAndroid Build Coastguard Worker Requires<[HasV60T]>; 482*9880d681SAndroid Build Coastguard Worker 483*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($src) jump $r15_2", 484*9880d681SAndroid Build Coastguard Worker (J2_jumpt PredRegs:$src, brtarget:$r15_2), 0>; 485*9880d681SAndroid Build Coastguard Worker 486*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$src) jump $r15_2", 487*9880d681SAndroid Build Coastguard Worker (J2_jumpf PredRegs:$src, brtarget:$r15_2), 0>; 488*9880d681SAndroid Build Coastguard Worker 489*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($src1) jumpr $src2", 490*9880d681SAndroid Build Coastguard Worker (J2_jumprt PredRegs:$src1, IntRegs:$src2), 0>; 491*9880d681SAndroid Build Coastguard Worker 492*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$src1) jumpr $src2", 493*9880d681SAndroid Build Coastguard Worker (J2_jumprf PredRegs:$src1, IntRegs:$src2), 0>; 494*9880d681SAndroid Build Coastguard Worker 495*9880d681SAndroid Build Coastguard Worker// V6_vassignp: Vector assign mapping. 496*9880d681SAndroid Build Coastguard Workerlet hasNewValue = 1, opNewValue = 0, isAsmParserOnly = 1 in 497*9880d681SAndroid Build Coastguard Workerdef HEXAGON_V6_vassignpair: CVI_VA_DV_Resource < 498*9880d681SAndroid Build Coastguard Worker (outs VecDblRegs:$Vdd), 499*9880d681SAndroid Build Coastguard Worker (ins VecDblRegs:$Vss), 500*9880d681SAndroid Build Coastguard Worker "$Vdd = $Vss">; 501*9880d681SAndroid Build Coastguard Worker 502*9880d681SAndroid Build Coastguard Worker// maps Vd = #0 to Vd = vxor(Vd, Vd) 503*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Vd = #0", 504*9880d681SAndroid Build Coastguard Worker (V6_vxor VectorRegs:$Vd, VectorRegs:$Vd, VectorRegs:$Vd)>, 505*9880d681SAndroid Build Coastguard Worker Requires<[HasV60T]>; 506*9880d681SAndroid Build Coastguard Worker 507*9880d681SAndroid Build Coastguard Worker// maps Vdd = #0 to Vdd = vsub(Vdd, Vdd) 508*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Vdd = #0", 509*9880d681SAndroid Build Coastguard Worker (V6_vsubw_dv VecDblRegs:$Vdd, VecDblRegs:$Vdd, VecDblRegs:$Vdd)>, 510*9880d681SAndroid Build Coastguard Worker Requires<[HasV60T]>; 511*9880d681SAndroid Build Coastguard Worker 512*9880d681SAndroid Build Coastguard Worker// maps "$Qd = vcmp.eq($Vu.uh, $Vv.uh)" -> "$Qd = vcmp.eq($Vu.h, $Vv.h)" 513*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Qd = vcmp.eq($Vu.uh, $Vv.uh)", 514*9880d681SAndroid Build Coastguard Worker (V6_veqh VecPredRegs:$Qd, VectorRegs:$Vu, VectorRegs:$Vv)>, 515*9880d681SAndroid Build Coastguard Worker Requires<[HasV60T]>; 516*9880d681SAndroid Build Coastguard Worker 517*9880d681SAndroid Build Coastguard Worker// maps "$Qd &= vcmp.eq($Vu.uh, $Vv.uh)" -> "$Qd &= vcmp.eq($Vu.h, $Vv.h)" 518*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Qd &= vcmp.eq($Vu.uh, $Vv.uh)", 519*9880d681SAndroid Build Coastguard Worker (V6_veqh_and VecPredRegs:$Qd, VectorRegs:$Vu, VectorRegs:$Vv)>, 520*9880d681SAndroid Build Coastguard Worker Requires<[HasV60T]>; 521*9880d681SAndroid Build Coastguard Worker 522*9880d681SAndroid Build Coastguard Worker// maps "$Qd |= vcmp.eq($Vu.uh, $Vv.uh)" -> "$Qd |= vcmp.eq($Vu.h, $Vv.h)" 523*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Qd |= vcmp.eq($Vu.uh, $Vv.uh)", 524*9880d681SAndroid Build Coastguard Worker (V6_veqh_or VecPredRegs:$Qd, VectorRegs:$Vu, VectorRegs:$Vv)>, 525*9880d681SAndroid Build Coastguard Worker Requires<[HasV60T]>; 526*9880d681SAndroid Build Coastguard Worker 527*9880d681SAndroid Build Coastguard Worker// maps "$Qd ^= vcmp.eq($Vu.uh, $Vv.uh)" -> "$Qd ^= vcmp.eq($Vu.h, $Vv.h)" 528*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Qd ^= vcmp.eq($Vu.uh, $Vv.uh)", 529*9880d681SAndroid Build Coastguard Worker (V6_veqh_xor VecPredRegs:$Qd, VectorRegs:$Vu, VectorRegs:$Vv)>, 530*9880d681SAndroid Build Coastguard Worker Requires<[HasV60T]>; 531*9880d681SAndroid Build Coastguard Worker 532*9880d681SAndroid Build Coastguard Worker// maps "$Qd = vcmp.eq($Vu.uw, $Vv.uw)" -> "$Qd = vcmp.eq($Vu.w, $Vv.w)" 533*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Qd = vcmp.eq($Vu.uw, $Vv.uw)", 534*9880d681SAndroid Build Coastguard Worker (V6_veqw VecPredRegs:$Qd, VectorRegs:$Vu, VectorRegs:$Vv)>, 535*9880d681SAndroid Build Coastguard Worker Requires<[HasV60T]>; 536*9880d681SAndroid Build Coastguard Worker 537*9880d681SAndroid Build Coastguard Worker// maps "$Qd &= vcmp.eq($Vu.uw, $Vv.uw)" -> "$Qd &= vcmp.eq($Vu.w, $Vv.w)" 538*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Qd &= vcmp.eq($Vu.uw, $Vv.uw)", 539*9880d681SAndroid Build Coastguard Worker (V6_veqw_and VecPredRegs:$Qd, VectorRegs:$Vu, VectorRegs:$Vv)>, 540*9880d681SAndroid Build Coastguard Worker Requires<[HasV60T]>; 541*9880d681SAndroid Build Coastguard Worker 542*9880d681SAndroid Build Coastguard Worker// maps "$Qd |= vcmp.eq($Vu.uw, $Vv.uw)" -> "$Qd |= vcmp.eq($Vu.w, $Vv.w)" 543*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Qd |= vcmp.eq($Vu.uw, $Vv.uw)", 544*9880d681SAndroid Build Coastguard Worker (V6_veqh_or VecPredRegs:$Qd, VectorRegs:$Vu, VectorRegs:$Vv)>, 545*9880d681SAndroid Build Coastguard Worker Requires<[HasV60T]>; 546*9880d681SAndroid Build Coastguard Worker 547*9880d681SAndroid Build Coastguard Worker// maps "$Qd ^= vcmp.eq($Vu.uw, $Vv.uw)" -> "$Qd ^= vcmp.eq($Vu.w, $Vv.w)" 548*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Qd ^= vcmp.eq($Vu.uw, $Vv.uw)", 549*9880d681SAndroid Build Coastguard Worker (V6_veqw_xor VecPredRegs:$Qd, VectorRegs:$Vu, VectorRegs:$Vv)>, 550*9880d681SAndroid Build Coastguard Worker Requires<[HasV60T]>; 551*9880d681SAndroid Build Coastguard Worker 552*9880d681SAndroid Build Coastguard Worker// maps "$Qd = vcmp.eq($Vu.ub, $Vv.ub)" -> "$Qd = vcmp.eq($Vu.b, $Vv.b)" 553*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Qd = vcmp.eq($Vu.ub, $Vv.ub)", 554*9880d681SAndroid Build Coastguard Worker (V6_veqb VecPredRegs:$Qd, VectorRegs:$Vu, VectorRegs:$Vv)>, 555*9880d681SAndroid Build Coastguard Worker Requires<[HasV60T]>; 556*9880d681SAndroid Build Coastguard Worker 557*9880d681SAndroid Build Coastguard Worker// maps "$Qd &= vcmp.eq($Vu.ub, $Vv.ub)" -> "$Qd &= vcmp.eq($Vu.b, $Vv.b)" 558*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Qd &= vcmp.eq($Vu.ub, $Vv.ub)", 559*9880d681SAndroid Build Coastguard Worker (V6_veqb_and VecPredRegs:$Qd, VectorRegs:$Vu, VectorRegs:$Vv)>, 560*9880d681SAndroid Build Coastguard Worker Requires<[HasV60T]>; 561*9880d681SAndroid Build Coastguard Worker 562*9880d681SAndroid Build Coastguard Worker// maps "$Qd |= vcmp.eq($Vu.ub, $Vv.ub)" -> "$Qd |= vcmp.eq($Vu.b, $Vv.b)" 563*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Qd |= vcmp.eq($Vu.ub, $Vv.ub)", 564*9880d681SAndroid Build Coastguard Worker (V6_veqb_or VecPredRegs:$Qd, VectorRegs:$Vu, VectorRegs:$Vv)>, 565*9880d681SAndroid Build Coastguard Worker Requires<[HasV60T]>; 566*9880d681SAndroid Build Coastguard Worker 567*9880d681SAndroid Build Coastguard Worker// maps "$Qd ^= vcmp.eq($Vu.ub, $Vv.ub)" -> "$Qd ^= vcmp.eq($Vu.b, $Vv.b)" 568*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Qd ^= vcmp.eq($Vu.ub, $Vv.ub)", 569*9880d681SAndroid Build Coastguard Worker (V6_veqb_xor VecPredRegs:$Qd, VectorRegs:$Vu, VectorRegs:$Vv)>, 570*9880d681SAndroid Build Coastguard Worker Requires<[HasV60T]>; 571*9880d681SAndroid Build Coastguard Worker 572*9880d681SAndroid Build Coastguard Worker// maps "$Rd.w = vextract($Vu, $Rs)" -> "$Rd = vextract($Vu, $Rs)" 573*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Rd.w = vextract($Vu, $Rs)", 574*9880d681SAndroid Build Coastguard Worker (V6_extractw IntRegs:$Rd, VectorRegs:$Vu, IntRegs:$Rs)>, 575*9880d681SAndroid Build Coastguard Worker Requires<[HasV60T]>; 576*9880d681SAndroid Build Coastguard Worker 577*9880d681SAndroid Build Coastguard Worker// Mapping from vtrans2x2(Vy32,Vx32,Rt32) to vshuff(Vy32,Vx32,Rt32) 578*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"vtrans2x2($Vy, $Vx, $Rt)", 579*9880d681SAndroid Build Coastguard Worker (V6_vshuff VectorRegs:$Vy, VectorRegs:$Vx, IntRegs:$Rt)>, 580*9880d681SAndroid Build Coastguard Worker Requires<[HasV60T]>; 581*9880d681SAndroid Build Coastguard Worker 582*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Vt=vmem($Rs)", 583*9880d681SAndroid Build Coastguard Worker (V6_vL32b_ai VectorRegs:$Vt, IntRegs:$Rs, 0)>, 584*9880d681SAndroid Build Coastguard Worker Requires<[HasV60T]>; 585*9880d681SAndroid Build Coastguard Worker 586*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Vt=vmem($Rs):nt", 587*9880d681SAndroid Build Coastguard Worker (V6_vL32b_nt_ai VectorRegs:$Vt, IntRegs:$Rs, 0)>, 588*9880d681SAndroid Build Coastguard Worker Requires<[HasV60T]>; 589*9880d681SAndroid Build Coastguard Worker 590*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"vmem($Rs)=$Vt", 591*9880d681SAndroid Build Coastguard Worker (V6_vS32b_ai IntRegs:$Rs, 0, VectorRegs:$Vt)>, 592*9880d681SAndroid Build Coastguard Worker Requires<[HasV60T]>; 593*9880d681SAndroid Build Coastguard Worker 594*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"vmem($Rs):nt=$Vt", 595*9880d681SAndroid Build Coastguard Worker (V6_vS32b_nt_ai IntRegs:$Rs, 0, VectorRegs:$Vt)>, 596*9880d681SAndroid Build Coastguard Worker Requires<[HasV60T]>; 597*9880d681SAndroid Build Coastguard Worker 598*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"vmem($Rs)=$Vt.new", 599*9880d681SAndroid Build Coastguard Worker (V6_vS32b_new_ai IntRegs:$Rs, 0, VectorRegs:$Vt)>, 600*9880d681SAndroid Build Coastguard Worker Requires<[HasV60T]>; 601*9880d681SAndroid Build Coastguard Worker 602*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"vmem($Rs):nt=$Vt.new", 603*9880d681SAndroid Build Coastguard Worker (V6_vS32b_nt_new_ai IntRegs:$Rs, 0, VectorRegs:$Vt)>, 604*9880d681SAndroid Build Coastguard Worker Requires<[HasV60T]>; 605*9880d681SAndroid Build Coastguard Worker 606*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Qv) vmem($Rs)=$Vt", 607*9880d681SAndroid Build Coastguard Worker (V6_vS32b_qpred_ai VecPredRegs:$Qv, IntRegs:$Rs, 0, VectorRegs:$Vt)>, 608*9880d681SAndroid Build Coastguard Worker Requires<[HasV60T]>; 609*9880d681SAndroid Build Coastguard Worker 610*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Qv) vmem($Rs)=$Vt", 611*9880d681SAndroid Build Coastguard Worker (V6_vS32b_nqpred_ai VecPredRegs:$Qv, IntRegs:$Rs, 0, VectorRegs:$Vt)>, 612*9880d681SAndroid Build Coastguard Worker Requires<[HasV60T]>; 613*9880d681SAndroid Build Coastguard Worker 614*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Qv) vmem($Rs):nt=$Vt", 615*9880d681SAndroid Build Coastguard Worker (V6_vS32b_nt_qpred_ai VecPredRegs:$Qv, IntRegs:$Rs, 0, VectorRegs:$Vt)>, 616*9880d681SAndroid Build Coastguard Worker Requires<[HasV60T]>; 617*9880d681SAndroid Build Coastguard Worker 618*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Qv) vmem($Rs):nt=$Vt", 619*9880d681SAndroid Build Coastguard Worker (V6_vS32b_nt_nqpred_ai VecPredRegs:$Qv, IntRegs:$Rs, 0, VectorRegs:$Vt)>, 620*9880d681SAndroid Build Coastguard Worker Requires<[HasV60T]>; 621*9880d681SAndroid Build Coastguard Worker 622*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pv) vmem($Rs)=$Vt", 623*9880d681SAndroid Build Coastguard Worker (V6_vS32b_pred_ai PredRegs:$Pv, IntRegs:$Rs, 0, VectorRegs:$Vt)>, 624*9880d681SAndroid Build Coastguard Worker Requires<[HasV60T]>; 625*9880d681SAndroid Build Coastguard Worker 626*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pv) vmem($Rs)=$Vt", 627*9880d681SAndroid Build Coastguard Worker (V6_vS32b_npred_ai PredRegs:$Pv, IntRegs:$Rs, 0, VectorRegs:$Vt)>, 628*9880d681SAndroid Build Coastguard Worker Requires<[HasV60T]>; 629*9880d681SAndroid Build Coastguard Worker 630*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pv) vmem($Rs):nt=$Vt", 631*9880d681SAndroid Build Coastguard Worker (V6_vS32b_nt_pred_ai PredRegs:$Pv, IntRegs:$Rs, 0, VectorRegs:$Vt)>, 632*9880d681SAndroid Build Coastguard Worker Requires<[HasV60T]>; 633*9880d681SAndroid Build Coastguard Worker 634*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pv) vmem($Rs):nt=$Vt", 635*9880d681SAndroid Build Coastguard Worker (V6_vS32b_nt_npred_ai PredRegs:$Pv, IntRegs:$Rs, 0, VectorRegs:$Vt)>, 636*9880d681SAndroid Build Coastguard Worker Requires<[HasV60T]>; 637*9880d681SAndroid Build Coastguard Worker 638*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"$Vt=vmemu($Rs)", 639*9880d681SAndroid Build Coastguard Worker (V6_vL32Ub_ai VectorRegs:$Vt, IntRegs:$Rs, 0)>, 640*9880d681SAndroid Build Coastguard Worker Requires<[HasV60T]>; 641*9880d681SAndroid Build Coastguard Worker 642*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"vmemu($Rs)=$Vt", 643*9880d681SAndroid Build Coastguard Worker (V6_vS32Ub_ai IntRegs:$Rs, 0, VectorRegs:$Vt)>, 644*9880d681SAndroid Build Coastguard Worker Requires<[HasV60T]>; 645*9880d681SAndroid Build Coastguard Worker 646*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if ($Pv) vmemu($Rs)=$Vt", 647*9880d681SAndroid Build Coastguard Worker (V6_vS32Ub_pred_ai PredRegs:$Pv, IntRegs:$Rs, 0, VectorRegs:$Vt)>, 648*9880d681SAndroid Build Coastguard Worker Requires<[HasV60T]>; 649*9880d681SAndroid Build Coastguard Worker 650*9880d681SAndroid Build Coastguard Workerdef : InstAlias<"if (!$Pv) vmemu($Rs)=$Vt", 651*9880d681SAndroid Build Coastguard Worker (V6_vS32Ub_npred_ai PredRegs:$Pv, IntRegs:$Rs, 0, VectorRegs:$Vt)>, 652*9880d681SAndroid Build Coastguard Worker Requires<[HasV60T]>; 653*9880d681SAndroid Build Coastguard Worker 654*9880d681SAndroid Build Coastguard Worker 655