1*9880d681SAndroid Build Coastguard Worker# RUN: llvm-mc -triple hexagon -disassemble < %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker# Hexagon Programmer's Reference Manual 11.5 LD 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker# Load doubleword 5*9880d681SAndroid Build Coastguard Worker0x90 0xff 0xd5 0x3a 6*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memd(r21 + r31<<#3) 7*9880d681SAndroid Build Coastguard Worker0xb0 0xc2 0xc0 0x49 8*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memd(#168) 9*9880d681SAndroid Build Coastguard Worker0x02 0x40 0x00 0x00 0x10 0xc5 0xc0 0x49 10*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memd(##168) 11*9880d681SAndroid Build Coastguard Worker0xd0 0xc0 0xd5 0x91 12*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memd(r21 + #48) 13*9880d681SAndroid Build Coastguard Worker0xb0 0xe0 0xd5 0x99 14*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memd(r21 ++ #40:circ(m1)) 15*9880d681SAndroid Build Coastguard Worker0x10 0xe2 0xd5 0x99 16*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memd(r21 ++ I:circ(m1)) 17*9880d681SAndroid Build Coastguard Worker0x00 0x40 0x00 0x00 0x70 0xd7 0xd5 0x9b 18*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memd(r21 = ##31) 19*9880d681SAndroid Build Coastguard Worker0xb0 0xc0 0xd5 0x9b 20*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memd(r21++#40) 21*9880d681SAndroid Build Coastguard Worker0x10 0xe0 0xd5 0x9d 22*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memd(r21++m1) 23*9880d681SAndroid Build Coastguard Worker0x10 0xe0 0xd5 0x9f 24*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memd(r21 ++ m1:brev) 25*9880d681SAndroid Build Coastguard Worker 26*9880d681SAndroid Build Coastguard Worker# Load doubleword conditionally 27*9880d681SAndroid Build Coastguard Worker0xf0 0xff 0xd5 0x30 28*9880d681SAndroid Build Coastguard Worker# CHECK: if (p3) r17:16 = memd(r21+r31<<#3) 29*9880d681SAndroid Build Coastguard Worker0xf0 0xff 0xd5 0x31 30*9880d681SAndroid Build Coastguard Worker# CHECK: if (!p3) r17:16 = memd(r21+r31<<#3) 31*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xf0 0xff 0xd5 0x32 32*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 33*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) r17:16 = memd(r21+r31<<#3) 34*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xf0 0xff 0xd5 0x33 35*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 36*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) r17:16 = memd(r21+r31<<#3) 37*9880d681SAndroid Build Coastguard Worker0x70 0xd8 0xd5 0x41 38*9880d681SAndroid Build Coastguard Worker# CHECK: if (p3) r17:16 = memd(r21 + #24) 39*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0x70 0xd8 0xd5 0x43 40*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 41*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) r17:16 = memd(r21 + #24) 42*9880d681SAndroid Build Coastguard Worker0x70 0xd8 0xd5 0x45 43*9880d681SAndroid Build Coastguard Worker# CHECK: if (!p3) r17:16 = memd(r21 + #24) 44*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0x70 0xd8 0xd5 0x47 45*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 46*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) r17:16 = memd(r21 + #24) 47*9880d681SAndroid Build Coastguard Worker0xb0 0xe6 0xd5 0x9b 48*9880d681SAndroid Build Coastguard Worker# CHECK: if (p3) r17:16 = memd(r21++#40) 49*9880d681SAndroid Build Coastguard Worker0xb0 0xee 0xd5 0x9b 50*9880d681SAndroid Build Coastguard Worker# CHECK: if (!p3) r17:16 = memd(r21++#40) 51*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xb0 0xf6 0xd5 0x9b 52*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 53*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) r17:16 = memd(r21++#40) 54*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xb0 0xfe 0xd5 0x9b 55*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 56*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) r17:16 = memd(r21++#40) 57*9880d681SAndroid Build Coastguard Worker 58*9880d681SAndroid Build Coastguard Worker# Load byte 59*9880d681SAndroid Build Coastguard Worker0x91 0xff 0x15 0x3a 60*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memb(r21 + r31<<#3) 61*9880d681SAndroid Build Coastguard Worker0xb1 0xc2 0x00 0x49 62*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memb(#21) 63*9880d681SAndroid Build Coastguard Worker0x00 0x40 0x00 0x00 0xb1 0xc2 0x00 0x49 64*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memb(##21) 65*9880d681SAndroid Build Coastguard Worker0xf1 0xc3 0x15 0x91 66*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memb(r21 + #31) 67*9880d681SAndroid Build Coastguard Worker0xb1 0xe0 0x15 0x99 68*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memb(r21 ++ #5:circ(m1)) 69*9880d681SAndroid Build Coastguard Worker0x11 0xe2 0x15 0x99 70*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memb(r21 ++ I:circ(m1)) 71*9880d681SAndroid Build Coastguard Worker0x00 0x40 0x00 0x00 0x71 0xd7 0x15 0x9b 72*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memb(r21 = ##31) 73*9880d681SAndroid Build Coastguard Worker0xb1 0xc0 0x15 0x9b 74*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memb(r21++#5) 75*9880d681SAndroid Build Coastguard Worker0x11 0xe0 0x15 0x9d 76*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memb(r21++m1) 77*9880d681SAndroid Build Coastguard Worker0x11 0xe0 0x15 0x9f 78*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memb(r21 ++ m1:brev) 79*9880d681SAndroid Build Coastguard Worker 80*9880d681SAndroid Build Coastguard Worker# Load byte conditionally 81*9880d681SAndroid Build Coastguard Worker0xf1 0xff 0x15 0x30 82*9880d681SAndroid Build Coastguard Worker# CHECK: if (p3) r17 = memb(r21+r31<<#3) 83*9880d681SAndroid Build Coastguard Worker0xf1 0xff 0x15 0x31 84*9880d681SAndroid Build Coastguard Worker# CHECK: if (!p3) r17 = memb(r21+r31<<#3) 85*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xf1 0xff 0x15 0x32 86*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 87*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) r17 = memb(r21+r31<<#3) 88*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xf1 0xff 0x15 0x33 89*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 90*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) r17 = memb(r21+r31<<#3) 91*9880d681SAndroid Build Coastguard Worker0x91 0xdd 0x15 0x41 92*9880d681SAndroid Build Coastguard Worker# CHECK: if (p3) r17 = memb(r21 + #44) 93*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0x91 0xdd 0x15 0x43 94*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 95*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) r17 = memb(r21 + #44) 96*9880d681SAndroid Build Coastguard Worker0x91 0xdd 0x15 0x45 97*9880d681SAndroid Build Coastguard Worker# CHECK: if (!p3) r17 = memb(r21 + #44) 98*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0x91 0xdd 0x15 0x47 99*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 100*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) r17 = memb(r21 + #44) 101*9880d681SAndroid Build Coastguard Worker0xb1 0xe6 0x15 0x9b 102*9880d681SAndroid Build Coastguard Worker# CHECK: if (p3) r17 = memb(r21++#5) 103*9880d681SAndroid Build Coastguard Worker0xb1 0xee 0x15 0x9b 104*9880d681SAndroid Build Coastguard Worker# CHECK: if (!p3) r17 = memb(r21++#5) 105*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xb1 0xf6 0x15 0x9b 106*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 107*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) r17 = memb(r21++#5) 108*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xb1 0xfe 0x15 0x9b 109*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 110*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) r17 = memb(r21++#5) 111*9880d681SAndroid Build Coastguard Worker 112*9880d681SAndroid Build Coastguard Worker# Load byte into shifted vector 113*9880d681SAndroid Build Coastguard Worker0xf0 0xc3 0x95 0x90 114*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memb_fifo(r21 + #31) 115*9880d681SAndroid Build Coastguard Worker0xb0 0xe0 0x95 0x98 116*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memb_fifo(r21 ++ #5:circ(m1)) 117*9880d681SAndroid Build Coastguard Worker0x10 0xe2 0x95 0x98 118*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memb_fifo(r21 ++ I:circ(m1)) 119*9880d681SAndroid Build Coastguard Worker 120*9880d681SAndroid Build Coastguard Worker# Load half into shifted vector 121*9880d681SAndroid Build Coastguard Worker0xf0 0xc3 0x55 0x90 122*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memh_fifo(r21 + #62) 123*9880d681SAndroid Build Coastguard Worker0xb0 0xe0 0x55 0x98 124*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memh_fifo(r21 ++ #10:circ(m1)) 125*9880d681SAndroid Build Coastguard Worker0x10 0xe2 0x55 0x98 126*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memh_fifo(r21 ++ I:circ(m1)) 127*9880d681SAndroid Build Coastguard Worker 128*9880d681SAndroid Build Coastguard Worker# Load halfword 129*9880d681SAndroid Build Coastguard Worker0x91 0xff 0x55 0x3a 130*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memh(r21 + r31<<#3) 131*9880d681SAndroid Build Coastguard Worker0xb1 0xc2 0x40 0x49 132*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memh(#42) 133*9880d681SAndroid Build Coastguard Worker0x00 0x40 0x00 0x00 0x51 0xc5 0x40 0x49 134*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memh(##42) 135*9880d681SAndroid Build Coastguard Worker0xf1 0xc3 0x55 0x91 136*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memh(r21 + #62) 137*9880d681SAndroid Build Coastguard Worker0xb1 0xe0 0x55 0x99 138*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memh(r21 ++ #10:circ(m1)) 139*9880d681SAndroid Build Coastguard Worker0x11 0xe2 0x55 0x99 140*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memh(r21 ++ I:circ(m1)) 141*9880d681SAndroid Build Coastguard Worker0x00 0x40 0x00 0x00 0x71 0xd7 0x55 0x9b 142*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memh(r21 = ##31) 143*9880d681SAndroid Build Coastguard Worker0xb1 0xc0 0x55 0x9b 144*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memh(r21++#10) 145*9880d681SAndroid Build Coastguard Worker0x11 0xe0 0x55 0x9d 146*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memh(r21++m1) 147*9880d681SAndroid Build Coastguard Worker0x11 0xe0 0x55 0x9f 148*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memh(r21 ++ m1:brev) 149*9880d681SAndroid Build Coastguard Worker 150*9880d681SAndroid Build Coastguard Worker# Load halfword conditionally 151*9880d681SAndroid Build Coastguard Worker0xf1 0xff 0x55 0x30 152*9880d681SAndroid Build Coastguard Worker# CHECK: if (p3) r17 = memh(r21+r31<<#3) 153*9880d681SAndroid Build Coastguard Worker0xf1 0xff 0x55 0x31 154*9880d681SAndroid Build Coastguard Worker# CHECK: if (!p3) r17 = memh(r21+r31<<#3) 155*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xf1 0xff 0x55 0x32 156*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 157*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) r17 = memh(r21+r31<<#3) 158*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xf1 0xff 0x55 0x33 159*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 160*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) r17 = memh(r21+r31<<#3) 161*9880d681SAndroid Build Coastguard Worker0xb1 0xe6 0x55 0x9b 162*9880d681SAndroid Build Coastguard Worker# CHECK: if (p3) r17 = memh(r21++#10) 163*9880d681SAndroid Build Coastguard Worker0xb1 0xee 0x55 0x9b 164*9880d681SAndroid Build Coastguard Worker# CHECK: if (!p3) r17 = memh(r21++#10) 165*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xb1 0xf6 0x55 0x9b 166*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 167*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) r17 = memh(r21++#10) 168*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xb1 0xfe 0x55 0x9b 169*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 170*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) r17 = memh(r21++#10) 171*9880d681SAndroid Build Coastguard Worker0xf1 0xdb 0x55 0x41 172*9880d681SAndroid Build Coastguard Worker# CHECK: if (p3) r17 = memh(r21 + #62) 173*9880d681SAndroid Build Coastguard Worker0xf1 0xdb 0x55 0x45 174*9880d681SAndroid Build Coastguard Worker# CHECK: if (!p3) r17 = memh(r21 + #62) 175*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xf1 0xdb 0x55 0x43 176*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 177*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) r17 = memh(r21 + #62) 178*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xf1 0xdb 0x55 0x47 179*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 180*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) r17 = memh(r21 + #62) 181*9880d681SAndroid Build Coastguard Worker 182*9880d681SAndroid Build Coastguard Worker# Load unsigned byte 183*9880d681SAndroid Build Coastguard Worker0x91 0xff 0x35 0x3a 184*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memub(r21 + r31<<#3) 185*9880d681SAndroid Build Coastguard Worker0xb1 0xc2 0x20 0x49 186*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memub(#21) 187*9880d681SAndroid Build Coastguard Worker0x00 0x40 0x00 0x00 0xb1 0xc2 0x20 0x49 188*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memub(##21) 189*9880d681SAndroid Build Coastguard Worker0xf1 0xc3 0x35 0x91 190*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memub(r21 + #31) 191*9880d681SAndroid Build Coastguard Worker0xb1 0xe0 0x35 0x99 192*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memub(r21 ++ #5:circ(m1)) 193*9880d681SAndroid Build Coastguard Worker0x11 0xe2 0x35 0x99 194*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memub(r21 ++ I:circ(m1)) 195*9880d681SAndroid Build Coastguard Worker0x00 0x40 0x00 0x00 0x71 0xd7 0x35 0x9b 196*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memub(r21 = ##31) 197*9880d681SAndroid Build Coastguard Worker0xb1 0xc0 0x35 0x9b 198*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memub(r21++#5) 199*9880d681SAndroid Build Coastguard Worker0x11 0xe0 0x35 0x9d 200*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memub(r21++m1) 201*9880d681SAndroid Build Coastguard Worker0x11 0xe0 0x35 0x9f 202*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memub(r21 ++ m1:brev) 203*9880d681SAndroid Build Coastguard Worker 204*9880d681SAndroid Build Coastguard Worker# Load unsigned byte conditionally 205*9880d681SAndroid Build Coastguard Worker0xf1 0xff 0x35 0x30 206*9880d681SAndroid Build Coastguard Worker# CHECK: if (p3) r17 = memub(r21+r31<<#3) 207*9880d681SAndroid Build Coastguard Worker0xf1 0xff 0x35 0x31 208*9880d681SAndroid Build Coastguard Worker# CHECK: if (!p3) r17 = memub(r21+r31<<#3) 209*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xf1 0xff 0x35 0x32 210*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 211*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) r17 = memub(r21+r31<<#3) 212*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xf1 0xff 0x35 0x33 213*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 214*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) r17 = memub(r21+r31<<#3) 215*9880d681SAndroid Build Coastguard Worker0xf1 0xdb 0x35 0x41 216*9880d681SAndroid Build Coastguard Worker# CHECK: if (p3) r17 = memub(r21 + #31) 217*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xf1 0xdb 0x35 0x43 218*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 219*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) r17 = memub(r21 + #31) 220*9880d681SAndroid Build Coastguard Worker0xf1 0xdb 0x35 0x45 221*9880d681SAndroid Build Coastguard Worker# CHECK: if (!p3) r17 = memub(r21 + #31) 222*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xf1 0xdb 0x35 0x47 223*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 224*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) r17 = memub(r21 + #31) 225*9880d681SAndroid Build Coastguard Worker0xb1 0xe6 0x35 0x9b 226*9880d681SAndroid Build Coastguard Worker# CHECK: if (p3) r17 = memub(r21++#5) 227*9880d681SAndroid Build Coastguard Worker0xb1 0xee 0x35 0x9b 228*9880d681SAndroid Build Coastguard Worker# CHECK: if (!p3) r17 = memub(r21++#5) 229*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xb1 0xf6 0x35 0x9b 230*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 231*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) r17 = memub(r21++#5) 232*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xb1 0xfe 0x35 0x9b 233*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 234*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) r17 = memub(r21++#5) 235*9880d681SAndroid Build Coastguard Worker 236*9880d681SAndroid Build Coastguard Worker# Load unsigned halfword 237*9880d681SAndroid Build Coastguard Worker0x91 0xff 0x75 0x3a 238*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memuh(r21 + r31<<#3) 239*9880d681SAndroid Build Coastguard Worker0xb1 0xc2 0x60 0x49 240*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memuh(#42) 241*9880d681SAndroid Build Coastguard Worker0x00 0x40 0x00 0x00 0x51 0xc5 0x60 0x49 242*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memuh(##42) 243*9880d681SAndroid Build Coastguard Worker0xb1 0xc2 0x75 0x91 244*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memuh(r21 + #42) 245*9880d681SAndroid Build Coastguard Worker0xb1 0xe0 0x75 0x99 246*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memuh(r21 ++ #10:circ(m1)) 247*9880d681SAndroid Build Coastguard Worker0x11 0xe2 0x75 0x99 248*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memuh(r21 ++ I:circ(m1)) 249*9880d681SAndroid Build Coastguard Worker0x00 0x40 0x00 0x00 0x71 0xd7 0x75 0x9b 250*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memuh(r21 = ##31) 251*9880d681SAndroid Build Coastguard Worker0xb1 0xc0 0x75 0x9b 252*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memuh(r21++#10) 253*9880d681SAndroid Build Coastguard Worker0x11 0xe0 0x75 0x9d 254*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memuh(r21++m1) 255*9880d681SAndroid Build Coastguard Worker0x11 0xe0 0x75 0x9f 256*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memuh(r21 ++ m1:brev) 257*9880d681SAndroid Build Coastguard Worker 258*9880d681SAndroid Build Coastguard Worker# Load unsigned halfword conditionally 259*9880d681SAndroid Build Coastguard Worker0xf1 0xff 0x75 0x30 260*9880d681SAndroid Build Coastguard Worker# CHECK: if (p3) r17 = memuh(r21+r31<<#3) 261*9880d681SAndroid Build Coastguard Worker0xf1 0xff 0x75 0x31 262*9880d681SAndroid Build Coastguard Worker# CHECK: if (!p3) r17 = memuh(r21+r31<<#3) 263*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xf1 0xff 0x75 0x32 264*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 265*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) r17 = memuh(r21+r31<<#3) 266*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xf1 0xff 0x75 0x33 267*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 268*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) r17 = memuh(r21+r31<<#3) 269*9880d681SAndroid Build Coastguard Worker0xb1 0xda 0x75 0x41 270*9880d681SAndroid Build Coastguard Worker# CHECK: if (p3) r17 = memuh(r21 + #42) 271*9880d681SAndroid Build Coastguard Worker0xb1 0xda 0x75 0x45 272*9880d681SAndroid Build Coastguard Worker# CHECK: if (!p3) r17 = memuh(r21 + #42) 273*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xb1 0xda 0x75 0x43 274*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 275*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) r17 = memuh(r21 + #42) 276*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xb1 0xda 0x75 0x47 277*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 278*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) r17 = memuh(r21 + #42) 279*9880d681SAndroid Build Coastguard Worker0xb1 0xe6 0x75 0x9b 280*9880d681SAndroid Build Coastguard Worker# CHECK: if (p3) r17 = memuh(r21++#10) 281*9880d681SAndroid Build Coastguard Worker0xb1 0xee 0x75 0x9b 282*9880d681SAndroid Build Coastguard Worker# CHECK: if (!p3) r17 = memuh(r21++#10) 283*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xb1 0xf6 0x75 0x9b 284*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 285*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) r17 = memuh(r21++#10) 286*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xb1 0xfe 0x75 0x9b 287*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 288*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) r17 = memuh(r21++#10) 289*9880d681SAndroid Build Coastguard Worker 290*9880d681SAndroid Build Coastguard Worker# Load word 291*9880d681SAndroid Build Coastguard Worker0x91 0xff 0x95 0x3a 292*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memw(r21 + r31<<#3) 293*9880d681SAndroid Build Coastguard Worker0xb1 0xc2 0x80 0x49 294*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memw(#84) 295*9880d681SAndroid Build Coastguard Worker0x01 0x40 0x00 0x00 0x91 0xc2 0x80 0x49 296*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memw(##84) 297*9880d681SAndroid Build Coastguard Worker0xb1 0xc2 0x95 0x91 298*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memw(r21 + #84) 299*9880d681SAndroid Build Coastguard Worker0xb1 0xe0 0x95 0x99 300*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memw(r21 ++ #20:circ(m1)) 301*9880d681SAndroid Build Coastguard Worker0x11 0xe2 0x95 0x99 302*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memw(r21 ++ I:circ(m1)) 303*9880d681SAndroid Build Coastguard Worker0x00 0x40 0x00 0x00 0x71 0xd7 0x95 0x9b 304*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memw(r21 = ##31) 305*9880d681SAndroid Build Coastguard Worker0xb1 0xc0 0x95 0x9b 306*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memw(r21++#20) 307*9880d681SAndroid Build Coastguard Worker0x11 0xe0 0x95 0x9d 308*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memw(r21++m1) 309*9880d681SAndroid Build Coastguard Worker0x11 0xe0 0x95 0x9f 310*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memw(r21 ++ m1:brev) 311*9880d681SAndroid Build Coastguard Worker 312*9880d681SAndroid Build Coastguard Worker# Load word conditionally 313*9880d681SAndroid Build Coastguard Worker0xf1 0xff 0x95 0x30 314*9880d681SAndroid Build Coastguard Worker# CHECK: if (p3) r17 = memw(r21+r31<<#3) 315*9880d681SAndroid Build Coastguard Worker0xf1 0xff 0x95 0x31 316*9880d681SAndroid Build Coastguard Worker# CHECK: if (!p3) r17 = memw(r21+r31<<#3) 317*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xf1 0xff 0x95 0x32 318*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 319*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) r17 = memw(r21+r31<<#3) 320*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xf1 0xff 0x95 0x33 321*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 322*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) r17 = memw(r21+r31<<#3) 323*9880d681SAndroid Build Coastguard Worker0xb1 0xda 0x95 0x41 324*9880d681SAndroid Build Coastguard Worker# CHECK: if (p3) r17 = memw(r21 + #84) 325*9880d681SAndroid Build Coastguard Worker0xb1 0xda 0x95 0x45 326*9880d681SAndroid Build Coastguard Worker# CHECK: if (!p3) r17 = memw(r21 + #84) 327*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xb1 0xda 0x95 0x43 328*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 329*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) r17 = memw(r21 + #84) 330*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xb1 0xda 0x95 0x47 331*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 332*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) r17 = memw(r21 + #84) 333*9880d681SAndroid Build Coastguard Worker0xb1 0xe6 0x95 0x9b 334*9880d681SAndroid Build Coastguard Worker# CHECK: if (p3) r17 = memw(r21++#20) 335*9880d681SAndroid Build Coastguard Worker0xb1 0xee 0x95 0x9b 336*9880d681SAndroid Build Coastguard Worker# CHECK: if (!p3) r17 = memw(r21++#20) 337*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xb1 0xf6 0x95 0x9b 338*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 339*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) r17 = memw(r21++#20) 340*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0xb1 0xfe 0x95 0x9b 341*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 342*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) r17 = memw(r21++#20) 343*9880d681SAndroid Build Coastguard Worker 344*9880d681SAndroid Build Coastguard Worker# Deallocate stack frame 345*9880d681SAndroid Build Coastguard Worker0x1e 0xc0 0x1e 0x90 346*9880d681SAndroid Build Coastguard Worker# CHECK: deallocframe 347*9880d681SAndroid Build Coastguard Worker 348*9880d681SAndroid Build Coastguard Worker# Deallocate stack frame and return 349*9880d681SAndroid Build Coastguard Worker0x1e 0xc0 0x1e 0x96 350*9880d681SAndroid Build Coastguard Worker# CHECK: dealloc_return 351*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0x1e 0xcb 0x1e 0x96 352*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 353*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) dealloc_return:nt 354*9880d681SAndroid Build Coastguard Worker0x1e 0xd3 0x1e 0x96 355*9880d681SAndroid Build Coastguard Worker# CHECK: if (p3) dealloc_return 356*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0x1e 0xdb 0x1e 0x96 357*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 358*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (p3.new) dealloc_return:t 359*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0x1e 0xeb 0x1e 0x96 360*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 361*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) dealloc_return:nt 362*9880d681SAndroid Build Coastguard Worker0x1e 0xf3 0x1e 0x96 363*9880d681SAndroid Build Coastguard Worker# CHECK: if (!p3) dealloc_return 364*9880d681SAndroid Build Coastguard Worker0x03 0x40 0x45 0x85 0x1e 0xfb 0x1e 0x96 365*9880d681SAndroid Build Coastguard Worker# CHECK: p3 = r5 366*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: if (!p3.new) dealloc_return:t 367*9880d681SAndroid Build Coastguard Worker 368*9880d681SAndroid Build Coastguard Worker# Load and unpack bytes to halfwords 369*9880d681SAndroid Build Coastguard Worker0xf1 0xc3 0x35 0x90 370*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = membh(r21 + #62) 371*9880d681SAndroid Build Coastguard Worker0xf1 0xc3 0x75 0x90 372*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memubh(r21 + #62) 373*9880d681SAndroid Build Coastguard Worker0xf0 0xc3 0xb5 0x90 374*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memubh(r21 + #124) 375*9880d681SAndroid Build Coastguard Worker0xf0 0xc3 0xf5 0x90 376*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = membh(r21 + #124) 377*9880d681SAndroid Build Coastguard Worker0xb1 0xe0 0x35 0x98 378*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = membh(r21 ++ #10:circ(m1)) 379*9880d681SAndroid Build Coastguard Worker0x11 0xe2 0x35 0x98 380*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = membh(r21 ++ I:circ(m1)) 381*9880d681SAndroid Build Coastguard Worker0xb1 0xe0 0x75 0x98 382*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memubh(r21 ++ #10:circ(m1)) 383*9880d681SAndroid Build Coastguard Worker0x11 0xe2 0x75 0x98 384*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memubh(r21 ++ I:circ(m1)) 385*9880d681SAndroid Build Coastguard Worker0xb0 0xe0 0xf5 0x98 386*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = membh(r21 ++ #20:circ(m1)) 387*9880d681SAndroid Build Coastguard Worker0x10 0xe2 0xf5 0x98 388*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = membh(r21 ++ I:circ(m1)) 389*9880d681SAndroid Build Coastguard Worker0xb0 0xe0 0xb5 0x98 390*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memubh(r21 ++ #20:circ(m1)) 391*9880d681SAndroid Build Coastguard Worker0x10 0xe2 0xb5 0x98 392*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memubh(r21 ++ I:circ(m1)) 393*9880d681SAndroid Build Coastguard Worker0x00 0x40 0x00 0x00 0x71 0xd7 0x35 0x9a 394*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = membh(r21 = ##31) 395*9880d681SAndroid Build Coastguard Worker0xb1 0xc0 0x35 0x9a 396*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = membh(r21++#10) 397*9880d681SAndroid Build Coastguard Worker0x00 0x40 0x00 0x00 0x71 0xd7 0x75 0x9a 398*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memubh(r21 = ##31) 399*9880d681SAndroid Build Coastguard Worker0xb1 0xc0 0x75 0x9a 400*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memubh(r21++#10) 401*9880d681SAndroid Build Coastguard Worker0x00 0x40 0x00 0x00 0x70 0xd7 0xb5 0x9a 402*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memubh(r21 = ##31) 403*9880d681SAndroid Build Coastguard Worker0xb0 0xc0 0xb5 0x9a 404*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memubh(r21++#20) 405*9880d681SAndroid Build Coastguard Worker0x00 0x40 0x00 0x00 0x70 0xd7 0xf5 0x9a 406*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = membh(r21 = ##31) 407*9880d681SAndroid Build Coastguard Worker0xb0 0xc0 0xf5 0x9a 408*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = membh(r21++#20) 409*9880d681SAndroid Build Coastguard Worker0x00 0x40 0x00 0x00 0xf1 0xf7 0x35 0x9c 410*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = membh(r21<<#3 + ##31) 411*9880d681SAndroid Build Coastguard Worker0x11 0xe0 0x35 0x9c 412*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = membh(r21++m1) 413*9880d681SAndroid Build Coastguard Worker0x00 0x40 0x00 0x00 0xf1 0xf7 0x75 0x9c 414*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memubh(r21<<#3 + ##31) 415*9880d681SAndroid Build Coastguard Worker0x11 0xe0 0x75 0x9c 416*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memubh(r21++m1) 417*9880d681SAndroid Build Coastguard Worker0x00 0x40 0x00 0x00 0xf0 0xf7 0xf5 0x9c 418*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = membh(r21<<#3 + ##31) 419*9880d681SAndroid Build Coastguard Worker0x10 0xe0 0xf5 0x9c 420*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = membh(r21++m1) 421*9880d681SAndroid Build Coastguard Worker0x00 0x40 0x00 0x00 0xf0 0xf7 0xb5 0x9c 422*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memubh(r21<<#3 + ##31) 423*9880d681SAndroid Build Coastguard Worker0x11 0xe0 0x35 0x9c 424*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = membh(r21++m1) 425*9880d681SAndroid Build Coastguard Worker0x11 0xe0 0x75 0x9c 426*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memubh(r21++m1) 427*9880d681SAndroid Build Coastguard Worker0x10 0xe0 0xf5 0x9c 428*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = membh(r21++m1) 429*9880d681SAndroid Build Coastguard Worker0x10 0xe0 0xb5 0x9c 430*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memubh(r21++m1) 431*9880d681SAndroid Build Coastguard Worker0x11 0xe0 0x35 0x9e 432*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = membh(r21 ++ m1:brev) 433*9880d681SAndroid Build Coastguard Worker0x11 0xe0 0x75 0x9e 434*9880d681SAndroid Build Coastguard Worker# CHECK: r17 = memubh(r21 ++ m1:brev) 435*9880d681SAndroid Build Coastguard Worker0x10 0xe0 0xb5 0x9e 436*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = memubh(r21 ++ m1:brev) 437*9880d681SAndroid Build Coastguard Worker0x10 0xe0 0xf5 0x9e 438*9880d681SAndroid Build Coastguard Worker# CHECK: r17:16 = membh(r21 ++ m1:brev) 439