1*9880d681SAndroid Build Coastguard Worker# RUN: llvm-mc -triple=hexagon -filetype=obj -o - %s | llvm-objdump -d - | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker# Hexagon Programmer's Reference Manual 11.8 ST 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker# Store doubleword 5*9880d681SAndroid Build Coastguard Worker# CHECK: 9e f5 d1 3b 6*9880d681SAndroid Build Coastguard Workermemd(r17 + r21<<#3) = r31:30 7*9880d681SAndroid Build Coastguard Worker# CHECK: 28 d4 c0 48 8*9880d681SAndroid Build Coastguard Workermemd(#320) = r21:20 9*9880d681SAndroid Build Coastguard Worker# CHECK: 02 40 00 00 10*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: 28 d4 c0 48 11*9880d681SAndroid Build Coastguard Workermemd(##168) = r21:20 12*9880d681SAndroid Build Coastguard Workermemd(r17+#168) = r21:20 13*9880d681SAndroid Build Coastguard Worker# CHECK: 02 f4 d1 a9 14*9880d681SAndroid Build Coastguard Workermemd(r17 ++ I:circ(m1)) = r21:20 15*9880d681SAndroid Build Coastguard Worker# CHECK: 28 f4 d1 a9 16*9880d681SAndroid Build Coastguard Workermemd(r17 ++ #40:circ(m1)) = r21:20 17*9880d681SAndroid Build Coastguard Worker# CHECK: 28 d4 d1 ab 18*9880d681SAndroid Build Coastguard Workermemd(r17++#40) = r21:20 19*9880d681SAndroid Build Coastguard Worker# CHECK: 00 40 00 00 20*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: d5 fe d1 ad 21*9880d681SAndroid Build Coastguard Workermemd(r17<<#3 + ##21) = r31:30 22*9880d681SAndroid Build Coastguard Workermemd(r17++m1) = r21:20 23*9880d681SAndroid Build Coastguard Worker# CHECK: 00 f4 d1 af 24*9880d681SAndroid Build Coastguard Workermemd(r17 ++ m1:brev) = r21:20 25*9880d681SAndroid Build Coastguard Worker 26*9880d681SAndroid Build Coastguard Worker# Store doubleword conditionally 27*9880d681SAndroid Build Coastguard Worker# CHECK: fe f5 d1 34 28*9880d681SAndroid Build Coastguard Workerif (p3) memd(r17+r21<<#3) = r31:30 29*9880d681SAndroid Build Coastguard Worker# CHECK: fe f5 d1 35 30*9880d681SAndroid Build Coastguard Workerif (!p3) memd(r17+r21<<#3) = r31:30 31*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 32*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: fe f5 d1 36 33*9880d681SAndroid Build Coastguard Worker{ p3 = r5 34*9880d681SAndroid Build Coastguard Worker if (p3.new) memd(r17+r21<<#3) = r31:30 } 35*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 36*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: fe f5 d1 37 37*9880d681SAndroid Build Coastguard Worker{ p3 = r5 38*9880d681SAndroid Build Coastguard Worker if (!p3.new) memd(r17+r21<<#3) = r31:30 } 39*9880d681SAndroid Build Coastguard Worker# CHECK: ab de d1 40 40*9880d681SAndroid Build Coastguard Workerif (p3) memd(r17+#168) = r31:30 41*9880d681SAndroid Build Coastguard Worker# CHECK: ab de d1 44 42*9880d681SAndroid Build Coastguard Workerif (!p3) memd(r17+#168) = r31:30 43*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 44*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: ab de d1 42 45*9880d681SAndroid Build Coastguard Worker{ p3 = r5 46*9880d681SAndroid Build Coastguard Worker if (p3.new) memd(r17+#168) = r31:30 } 47*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 48*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: ab de d1 46 49*9880d681SAndroid Build Coastguard Worker{ p3 = r5 50*9880d681SAndroid Build Coastguard Worker if (!p3.new) memd(r17+#168) = r31:30 } 51*9880d681SAndroid Build Coastguard Worker# CHECK: 2b f4 d1 ab 52*9880d681SAndroid Build Coastguard Workerif (p3) memd(r17++#40) = r21:20 53*9880d681SAndroid Build Coastguard Worker# CHECK: 2f f4 d1 ab 54*9880d681SAndroid Build Coastguard Workerif (!p3) memd(r17++#40) = r21:20 55*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 56*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: ab f4 d1 ab 57*9880d681SAndroid Build Coastguard Worker{ p3 = r5 58*9880d681SAndroid Build Coastguard Worker if (p3.new) memd(r17++#40) = r21:20 } 59*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 60*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: af f4 d1 ab 61*9880d681SAndroid Build Coastguard Worker{ p3 = r5 62*9880d681SAndroid Build Coastguard Worker if (!p3.new) memd(r17++#40) = r21:20 } 63*9880d681SAndroid Build Coastguard Worker# CHECK: 02 40 00 00 64*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: c3 d4 c2 af 65*9880d681SAndroid Build Coastguard Workerif (p3) memd(##168) = r21:20 66*9880d681SAndroid Build Coastguard Worker# CHECK: 02 40 00 00 67*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: c7 d4 c2 af 68*9880d681SAndroid Build Coastguard Workerif (!p3) memd(##168) = r21:20 69*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 70*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: 02 40 00 00 71*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: c3 f4 c2 af 72*9880d681SAndroid Build Coastguard Worker{ p3 = r5 73*9880d681SAndroid Build Coastguard Worker if (p3.new) memd(##168) = r21:20 } 74*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 75*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: 02 40 00 00 76*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: c7 f4 c2 af 77*9880d681SAndroid Build Coastguard Worker{ p3 = r5 78*9880d681SAndroid Build Coastguard Worker if (!p3.new) memd(##168) = r21:20 } 79*9880d681SAndroid Build Coastguard Worker 80*9880d681SAndroid Build Coastguard Worker# Store byte 81*9880d681SAndroid Build Coastguard Worker# CHECK: 9f f5 11 3b 82*9880d681SAndroid Build Coastguard Workermemb(r17 + r21<<#3) = r31 83*9880d681SAndroid Build Coastguard Worker# CHECK: 9f ca 11 3c 84*9880d681SAndroid Build Coastguard Workermemb(r17+#21)=#31 85*9880d681SAndroid Build Coastguard Worker# CHECK: 15 d5 00 48 86*9880d681SAndroid Build Coastguard Workermemb(#21) = r21 87*9880d681SAndroid Build Coastguard Worker# CHECK: 00 40 00 00 88*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: 15 d5 00 48 89*9880d681SAndroid Build Coastguard Workermemb(##21) = r21 90*9880d681SAndroid Build Coastguard Worker# CHECK: 15 d5 11 a1 91*9880d681SAndroid Build Coastguard Workermemb(r17+#21) = r21 92*9880d681SAndroid Build Coastguard Worker# CHECK: 02 f5 11 a9 93*9880d681SAndroid Build Coastguard Workermemb(r17 ++ I:circ(m1)) = r21 94*9880d681SAndroid Build Coastguard Worker# CHECK: 28 f5 11 a9 95*9880d681SAndroid Build Coastguard Workermemb(r17 ++ #5:circ(m1)) = r21 96*9880d681SAndroid Build Coastguard Worker# CHECK: 28 d5 11 ab 97*9880d681SAndroid Build Coastguard Workermemb(r17++#5) = r21 98*9880d681SAndroid Build Coastguard Worker# CHECK: 00 40 00 00 99*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: d5 ff 11 ad 100*9880d681SAndroid Build Coastguard Workermemb(r17<<#3 + ##21) = r31 101*9880d681SAndroid Build Coastguard Worker# CHECK: 00 f5 11 ad 102*9880d681SAndroid Build Coastguard Workermemb(r17++m1) = r21 103*9880d681SAndroid Build Coastguard Worker# CHECK: 00 f5 11 af 104*9880d681SAndroid Build Coastguard Workermemb(r17 ++ m1:brev) = r21 105*9880d681SAndroid Build Coastguard Worker 106*9880d681SAndroid Build Coastguard Worker# Store byte conditionally 107*9880d681SAndroid Build Coastguard Worker# CHECK: ff f5 11 34 108*9880d681SAndroid Build Coastguard Workerif (p3) memb(r17+r21<<#3) = r31 109*9880d681SAndroid Build Coastguard Worker# CHECK: ff f5 11 35 110*9880d681SAndroid Build Coastguard Workerif (!p3) memb(r17+r21<<#3) = r31 111*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 112*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: ff f5 11 36 113*9880d681SAndroid Build Coastguard Worker{ p3 = r5 114*9880d681SAndroid Build Coastguard Worker if (p3.new) memb(r17+r21<<#3) = r31 } 115*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 116*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: ff f5 11 37 117*9880d681SAndroid Build Coastguard Worker{ p3 = r5 118*9880d681SAndroid Build Coastguard Worker if (!p3.new) memb(r17+r21<<#3) = r31 } 119*9880d681SAndroid Build Coastguard Worker# CHECK: ff ca 11 38 120*9880d681SAndroid Build Coastguard Workerif (p3) memb(r17+#21)=#31 121*9880d681SAndroid Build Coastguard Worker# CHECK: ff ca 91 38 122*9880d681SAndroid Build Coastguard Workerif (!p3) memb(r17+#21)=#31 123*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 124*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: ff ca 11 39 125*9880d681SAndroid Build Coastguard Worker{ p3 = r5 126*9880d681SAndroid Build Coastguard Worker if (p3.new) memb(r17+#21)=#31 } 127*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 128*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: ff ca 91 39 129*9880d681SAndroid Build Coastguard Worker{ p3 = r5 130*9880d681SAndroid Build Coastguard Worker if (!p3.new) memb(r17+#21)=#31 } 131*9880d681SAndroid Build Coastguard Worker# CHECK: ab df 11 40 132*9880d681SAndroid Build Coastguard Workerif (p3) memb(r17+#21) = r31 133*9880d681SAndroid Build Coastguard Worker# CHECK: ab df 11 44 134*9880d681SAndroid Build Coastguard Workerif (!p3) memb(r17+#21) = r31 135*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 136*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: ab df 11 42 137*9880d681SAndroid Build Coastguard Worker{ p3 = r5 138*9880d681SAndroid Build Coastguard Worker if (p3.new) memb(r17+#21) = r31 } 139*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 140*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: ab df 11 46 141*9880d681SAndroid Build Coastguard Worker{ p3 = r5 142*9880d681SAndroid Build Coastguard Worker if (!p3.new) memb(r17+#21) = r31 } 143*9880d681SAndroid Build Coastguard Worker# CHECK: 2b f5 11 ab 144*9880d681SAndroid Build Coastguard Workerif (p3) memb(r17++#5) = r21 145*9880d681SAndroid Build Coastguard Worker# CHECK: 2f f5 11 ab 146*9880d681SAndroid Build Coastguard Workerif (!p3) memb(r17++#5) = r21 147*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 148*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: ab f5 11 ab 149*9880d681SAndroid Build Coastguard Worker{ p3 = r5 150*9880d681SAndroid Build Coastguard Worker if (p3.new) memb(r17++#5) = r21 } 151*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 152*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: af f5 11 ab 153*9880d681SAndroid Build Coastguard Worker{ p3 = r5 154*9880d681SAndroid Build Coastguard Worker if (!p3.new) memb(r17++#5) = r21 } 155*9880d681SAndroid Build Coastguard Worker# CHECK: 00 40 00 00 156*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: ab d5 01 af 157*9880d681SAndroid Build Coastguard Workerif (p3) memb(##21) = r21 158*9880d681SAndroid Build Coastguard Worker# CHECK: 00 40 00 00 159*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: af d5 01 af 160*9880d681SAndroid Build Coastguard Workerif (!p3) memb(##21) = r21 161*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 162*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: 00 40 00 00 163*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: ab f5 01 af 164*9880d681SAndroid Build Coastguard Worker{ p3 = r5 165*9880d681SAndroid Build Coastguard Worker if (p3.new) memb(##21) = r21 } 166*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 167*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: 00 40 00 00 168*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: af f5 01 af 169*9880d681SAndroid Build Coastguard Worker{ p3 = r5 170*9880d681SAndroid Build Coastguard Worker if (!p3.new) memb(##21) = r21 } 171*9880d681SAndroid Build Coastguard Worker 172*9880d681SAndroid Build Coastguard Worker# Store halfword 173*9880d681SAndroid Build Coastguard Worker# CHECK: 9f f5 51 3b 174*9880d681SAndroid Build Coastguard Workermemh(r17 + r21<<#3) = r31 175*9880d681SAndroid Build Coastguard Worker# CHECK: 9f f5 71 3b 176*9880d681SAndroid Build Coastguard Workermemh(r17 + r21<<#3) = r31.h 177*9880d681SAndroid Build Coastguard Worker# CHECK: 95 cf 31 3c 178*9880d681SAndroid Build Coastguard Workermemh(r17+#62)=#21 179*9880d681SAndroid Build Coastguard Worker# CHECK: 00 40 00 00 180*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: 2a d5 40 48 181*9880d681SAndroid Build Coastguard Workermemh(##42) = r21 182*9880d681SAndroid Build Coastguard Worker# CHECK: 00 40 00 00 183*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: 2a d5 60 48 184*9880d681SAndroid Build Coastguard Workermemh(##42) = r21.h 185*9880d681SAndroid Build Coastguard Worker# CHECK: 2a d5 40 48 186*9880d681SAndroid Build Coastguard Workermemh(#84) = r21 187*9880d681SAndroid Build Coastguard Worker# CHECK: 2a d5 60 48 188*9880d681SAndroid Build Coastguard Workermemh(#84) = r21.h 189*9880d681SAndroid Build Coastguard Worker# CHECK: 15 df 51 a1 190*9880d681SAndroid Build Coastguard Workermemh(r17+#42) = r31 191*9880d681SAndroid Build Coastguard Worker# CHECK: 15 df 71 a1 192*9880d681SAndroid Build Coastguard Workermemh(r17+#42) = r31.h 193*9880d681SAndroid Build Coastguard Worker# CHECK: 02 f5 51 a9 194*9880d681SAndroid Build Coastguard Workermemh(r17 ++ I:circ(m1)) = r21 195*9880d681SAndroid Build Coastguard Worker# CHECK: 28 f5 51 a9 196*9880d681SAndroid Build Coastguard Workermemh(r17 ++ #10:circ(m1)) = r21 197*9880d681SAndroid Build Coastguard Worker# CHECK: 02 f5 71 a9 198*9880d681SAndroid Build Coastguard Workermemh(r17 ++ I:circ(m1)) = r21.h 199*9880d681SAndroid Build Coastguard Worker# CHECK: 28 f5 71 a9 200*9880d681SAndroid Build Coastguard Workermemh(r17 ++ #10:circ(m1)) = r21.h 201*9880d681SAndroid Build Coastguard Worker# CHECK: 28 d5 51 ab 202*9880d681SAndroid Build Coastguard Workermemh(r17++#10) = r21 203*9880d681SAndroid Build Coastguard Worker# CHECK: 00 40 00 00 204*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: d5 ff 51 ad 205*9880d681SAndroid Build Coastguard Workermemh(r17<<#3 + ##21) = r31 206*9880d681SAndroid Build Coastguard Worker# CHECK: 28 d5 71 ab 207*9880d681SAndroid Build Coastguard Workermemh(r17++#10) = r21.h 208*9880d681SAndroid Build Coastguard Worker# CHECK: 00 40 00 00 209*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: d5 ff 71 ad 210*9880d681SAndroid Build Coastguard Workermemh(r17<<#3 + ##21) = r31.h 211*9880d681SAndroid Build Coastguard Worker# CHECK: 00 f5 51 ad 212*9880d681SAndroid Build Coastguard Workermemh(r17++m1) = r21 213*9880d681SAndroid Build Coastguard Worker# CHECK: 00 f5 71 ad 214*9880d681SAndroid Build Coastguard Workermemh(r17++m1) = r21.h 215*9880d681SAndroid Build Coastguard Worker# CHECK: 00 f5 51 af 216*9880d681SAndroid Build Coastguard Workermemh(r17 ++ m1:brev) = r21 217*9880d681SAndroid Build Coastguard Worker# CHECK: 00 f5 71 af 218*9880d681SAndroid Build Coastguard Workermemh(r17 ++ m1:brev) = r21.h 219*9880d681SAndroid Build Coastguard Worker 220*9880d681SAndroid Build Coastguard Worker# Store halfword conditionally 221*9880d681SAndroid Build Coastguard Worker# CHECK: ff f5 51 34 222*9880d681SAndroid Build Coastguard Workerif (p3) memh(r17+r21<<#3) = r31 223*9880d681SAndroid Build Coastguard Worker# CHECK: ff f5 71 34 224*9880d681SAndroid Build Coastguard Workerif (p3) memh(r17+r21<<#3) = r31.h 225*9880d681SAndroid Build Coastguard Worker# CHECK: ff f5 51 35 226*9880d681SAndroid Build Coastguard Workerif (!p3) memh(r17+r21<<#3) = r31 227*9880d681SAndroid Build Coastguard Worker# CHECK: ff f5 71 35 228*9880d681SAndroid Build Coastguard Workerif (!p3) memh(r17+r21<<#3) = r31.h 229*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 230*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: ff f5 51 36 231*9880d681SAndroid Build Coastguard Worker{ p3 = r5 232*9880d681SAndroid Build Coastguard Worker if (p3.new) memh(r17+r21<<#3) = r31 } 233*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 234*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: ff f5 71 36 235*9880d681SAndroid Build Coastguard Worker{ p3 = r5 236*9880d681SAndroid Build Coastguard Worker if (p3.new) memh(r17+r21<<#3) = r31.h } 237*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 238*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: ff f5 51 37 239*9880d681SAndroid Build Coastguard Worker{ p3 = r5 240*9880d681SAndroid Build Coastguard Worker if (!p3.new) memh(r17+r21<<#3) = r31 } 241*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 242*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: ff f5 71 37 243*9880d681SAndroid Build Coastguard Worker{ p3 = r5 244*9880d681SAndroid Build Coastguard Worker if (!p3.new) memh(r17+r21<<#3) = r31.h } 245*9880d681SAndroid Build Coastguard Worker# CHECK: f5 cf 31 38 246*9880d681SAndroid Build Coastguard Workerif (p3) memh(r17+#62)=#21 247*9880d681SAndroid Build Coastguard Worker# CHECK: f5 cf b1 38 248*9880d681SAndroid Build Coastguard Workerif (!p3) memh(r17+#62)=#21 249*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 250*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: f5 cf 31 39 251*9880d681SAndroid Build Coastguard Worker{ p3 = r5 252*9880d681SAndroid Build Coastguard Worker if (p3.new) memh(r17+#62)=#21 } 253*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 254*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: f5 cf b1 39 255*9880d681SAndroid Build Coastguard Worker{ p3 = r5 256*9880d681SAndroid Build Coastguard Worker if (!p3.new) memh(r17+#62)=#21 } 257*9880d681SAndroid Build Coastguard Worker# CHECK: fb d5 51 40 258*9880d681SAndroid Build Coastguard Workerif (p3) memh(r17+#62) = r21 259*9880d681SAndroid Build Coastguard Worker# CHECK: fb d5 71 40 260*9880d681SAndroid Build Coastguard Workerif (p3) memh(r17+#62) = r21.h 261*9880d681SAndroid Build Coastguard Worker# CHECK: fb d5 51 44 262*9880d681SAndroid Build Coastguard Workerif (!p3) memh(r17+#62) = r21 263*9880d681SAndroid Build Coastguard Worker# CHECK: fb d5 71 44 264*9880d681SAndroid Build Coastguard Workerif (!p3) memh(r17+#62) = r21.h 265*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 266*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: fb d5 51 42 267*9880d681SAndroid Build Coastguard Worker{ p3 = r5 268*9880d681SAndroid Build Coastguard Worker if (p3.new) memh(r17+#62) = r21 } 269*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 270*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: fb d5 71 42 271*9880d681SAndroid Build Coastguard Worker{ p3 = r5 272*9880d681SAndroid Build Coastguard Worker if (p3.new) memh(r17+#62) = r21.h } 273*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 274*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: fb d5 51 46 275*9880d681SAndroid Build Coastguard Worker{ p3 = r5 276*9880d681SAndroid Build Coastguard Worker if (!p3.new) memh(r17+#62) = r21 } 277*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 278*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: fb d5 71 46 279*9880d681SAndroid Build Coastguard Worker{ p3 = r5 280*9880d681SAndroid Build Coastguard Worker if (!p3.new) memh(r17+#62) = r21.h } 281*9880d681SAndroid Build Coastguard Worker# CHECK: 2b f5 51 ab 282*9880d681SAndroid Build Coastguard Workerif (p3) memh(r17++#10) = r21 283*9880d681SAndroid Build Coastguard Worker# CHECK: 2f f5 51 ab 284*9880d681SAndroid Build Coastguard Workerif (!p3) memh(r17++#10) = r21 285*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 286*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: ab f5 51 ab 287*9880d681SAndroid Build Coastguard Worker{ p3 = r5 288*9880d681SAndroid Build Coastguard Worker if (p3.new) memh(r17++#10) = r21 } 289*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 290*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: af f5 51 ab 291*9880d681SAndroid Build Coastguard Worker{ p3 = r5 292*9880d681SAndroid Build Coastguard Worker if (!p3.new) memh(r17++#10) = r21 } 293*9880d681SAndroid Build Coastguard Worker# CHECK: 2b f5 71 ab 294*9880d681SAndroid Build Coastguard Workerif (p3) memh(r17++#10) = r21.h 295*9880d681SAndroid Build Coastguard Worker# CHECK: 2f f5 71 ab 296*9880d681SAndroid Build Coastguard Workerif (!p3) memh(r17++#10) = r21.h 297*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 298*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: ab f5 71 ab 299*9880d681SAndroid Build Coastguard Worker{ p3 = r5 300*9880d681SAndroid Build Coastguard Worker if (p3.new) memh(r17++#10) = r21.h } 301*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 302*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: af f5 71 ab 303*9880d681SAndroid Build Coastguard Worker{ p3 = r5 304*9880d681SAndroid Build Coastguard Worker if (!p3.new) memh(r17++#10) = r21.h } 305*9880d681SAndroid Build Coastguard Worker# CHECK: 00 40 00 00 306*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: d3 d5 42 af 307*9880d681SAndroid Build Coastguard Workerif (p3) memh(##42) = r21 308*9880d681SAndroid Build Coastguard Worker# CHECK: 00 40 00 00 309*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: d3 d5 62 af 310*9880d681SAndroid Build Coastguard Workerif (p3) memh(##42) = r21.h 311*9880d681SAndroid Build Coastguard Worker# CHECK: 00 40 00 00 312*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: d7 d5 42 af 313*9880d681SAndroid Build Coastguard Workerif (!p3) memh(##42) = r21 314*9880d681SAndroid Build Coastguard Worker# CHECK: 00 40 00 00 315*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: d7 d5 62 af 316*9880d681SAndroid Build Coastguard Workerif (!p3) memh(##42) = r21.h 317*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 318*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: 00 40 00 00 319*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: d3 f5 42 af 320*9880d681SAndroid Build Coastguard Worker{ p3 = r5 321*9880d681SAndroid Build Coastguard Worker if (p3.new) memh(##42) = r21 } 322*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 323*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: 00 40 00 00 324*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: d3 f5 62 af 325*9880d681SAndroid Build Coastguard Worker{ p3 = r5 326*9880d681SAndroid Build Coastguard Worker if (p3.new) memh(##42) = r21.h } 327*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 328*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: 00 40 00 00 329*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: d7 f5 42 af 330*9880d681SAndroid Build Coastguard Worker{ p3 = r5 331*9880d681SAndroid Build Coastguard Worker if (!p3.new) memh(##42) = r21 } 332*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 333*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: 00 40 00 00 334*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: d7 f5 62 af 335*9880d681SAndroid Build Coastguard Worker{ p3 = r5 336*9880d681SAndroid Build Coastguard Worker if (!p3.new) memh(##42) = r21.h } 337*9880d681SAndroid Build Coastguard Worker 338*9880d681SAndroid Build Coastguard Worker# Store word 339*9880d681SAndroid Build Coastguard Worker# CHECK: 9f f5 91 3b 340*9880d681SAndroid Build Coastguard Workermemw(r17 + r21<<#3) = r31 341*9880d681SAndroid Build Coastguard Worker# CHECK: 9f ca 51 3c 342*9880d681SAndroid Build Coastguard Workermemw(r17+#84)=#31 343*9880d681SAndroid Build Coastguard Worker# CHECK: 15 df 80 48 344*9880d681SAndroid Build Coastguard Workermemw(#84) = r31 345*9880d681SAndroid Build Coastguard Worker# CHECK: 01 40 00 00 346*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: 14 d5 80 48 347*9880d681SAndroid Build Coastguard Workermemw(##84) = r21 348*9880d681SAndroid Build Coastguard Worker# CHECK: 9f ca 51 3c 349*9880d681SAndroid Build Coastguard Workermemw(r17+#84)=#31 350*9880d681SAndroid Build Coastguard Worker# CHECK: 15 df 91 a1 351*9880d681SAndroid Build Coastguard Workermemw(r17+#84) = r31 352*9880d681SAndroid Build Coastguard Worker# CHECK: 02 f5 91 a9 353*9880d681SAndroid Build Coastguard Workermemw(r17 ++ I:circ(m1)) = r21 354*9880d681SAndroid Build Coastguard Worker# CHECK: 28 f5 91 a9 355*9880d681SAndroid Build Coastguard Workermemw(r17 ++ #20:circ(m1)) = r21 356*9880d681SAndroid Build Coastguard Worker# CHECK: 28 d5 91 ab 357*9880d681SAndroid Build Coastguard Workermemw(r17++#20) = r21 358*9880d681SAndroid Build Coastguard Worker# CHECK: 00 40 00 00 359*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: d5 ff 91 ad 360*9880d681SAndroid Build Coastguard Workermemw(r17<<#3 + ##21) = r31 361*9880d681SAndroid Build Coastguard Worker# CHECK: 00 f5 91 ad 362*9880d681SAndroid Build Coastguard Workermemw(r17++m1) = r21 363*9880d681SAndroid Build Coastguard Worker# CHECK: 00 f5 91 af 364*9880d681SAndroid Build Coastguard Workermemw(r17 ++ m1:brev) = r21 365*9880d681SAndroid Build Coastguard Worker 366*9880d681SAndroid Build Coastguard Worker# Store word conditionally 367*9880d681SAndroid Build Coastguard Worker# CHECK: ff f5 91 34 368*9880d681SAndroid Build Coastguard Workerif (p3) memw(r17+r21<<#3) = r31 369*9880d681SAndroid Build Coastguard Worker# CHECK: ff f5 91 35 370*9880d681SAndroid Build Coastguard Workerif (!p3) memw(r17+r21<<#3) = r31 371*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 372*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: ff f5 91 36 373*9880d681SAndroid Build Coastguard Worker{ p3 = r5 374*9880d681SAndroid Build Coastguard Worker if (p3.new) memw(r17+r21<<#3) = r31 } 375*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 376*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: ff f5 91 37 377*9880d681SAndroid Build Coastguard Worker{ p3 = r5 378*9880d681SAndroid Build Coastguard Worker if (!p3.new) memw(r17+r21<<#3) = r31 } 379*9880d681SAndroid Build Coastguard Worker# CHECK: ff ca 51 38 380*9880d681SAndroid Build Coastguard Workerif (p3) memw(r17+#84)=#31 381*9880d681SAndroid Build Coastguard Worker# CHECK: ff ca d1 38 382*9880d681SAndroid Build Coastguard Workerif (!p3) memw(r17+#84)=#31 383*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 384*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: ff ca 51 39 385*9880d681SAndroid Build Coastguard Worker{ p3 = r5 386*9880d681SAndroid Build Coastguard Worker if (p3.new) memw(r17+#84)=#31 } 387*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 388*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: ff ca d1 39 389*9880d681SAndroid Build Coastguard Worker{ p3 = r5 390*9880d681SAndroid Build Coastguard Worker if (!p3.new) memw(r17+#84)=#31 } 391*9880d681SAndroid Build Coastguard Worker# CHECK: ab df 91 40 392*9880d681SAndroid Build Coastguard Workerif (p3) memw(r17+#84) = r31 393*9880d681SAndroid Build Coastguard Worker# CHECK: ab df 91 44 394*9880d681SAndroid Build Coastguard Workerif (!p3) memw(r17+#84) = r31 395*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 396*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: ab df 91 42 397*9880d681SAndroid Build Coastguard Worker{ p3 = r5 398*9880d681SAndroid Build Coastguard Worker if (p3.new) memw(r17+#84) = r31 } 399*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 400*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: ab df 91 46 401*9880d681SAndroid Build Coastguard Worker{ p3 = r5 402*9880d681SAndroid Build Coastguard Worker if (!p3.new) memw(r17+#84) = r31 } 403*9880d681SAndroid Build Coastguard Worker# CHECK: 2b f5 91 ab 404*9880d681SAndroid Build Coastguard Workerif (p3) memw(r17++#20) = r21 405*9880d681SAndroid Build Coastguard Worker# CHECK: 2f f5 91 ab 406*9880d681SAndroid Build Coastguard Workerif (!p3) memw(r17++#20) = r21 407*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 408*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: af f5 91 ab 409*9880d681SAndroid Build Coastguard Worker{ p3 = r5 410*9880d681SAndroid Build Coastguard Worker if (!p3.new) memw(r17++#20) = r21 } 411*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 412*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: ab f5 91 ab 413*9880d681SAndroid Build Coastguard Worker{ p3 = r5 414*9880d681SAndroid Build Coastguard Worker if (p3.new) memw(r17++#20) = r21 } 415*9880d681SAndroid Build Coastguard Worker# CHECK: 01 40 00 00 416*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: a3 d5 81 af 417*9880d681SAndroid Build Coastguard Workerif (p3) memw(##84) = r21 418*9880d681SAndroid Build Coastguard Worker# CHECK: 01 40 00 00 419*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: a7 d5 81 af 420*9880d681SAndroid Build Coastguard Workerif (!p3) memw(##84) = r21 421*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 422*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: 01 40 00 00 423*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: a3 f5 81 af 424*9880d681SAndroid Build Coastguard Worker{ p3 = r5 425*9880d681SAndroid Build Coastguard Worker if (p3.new) memw(##84) = r21 } 426*9880d681SAndroid Build Coastguard Worker# CHECK: 03 40 45 85 427*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: 01 40 00 00 428*9880d681SAndroid Build Coastguard Worker# CHECK-NEXT: a7 f5 81 af 429*9880d681SAndroid Build Coastguard Worker{ p3 = r5 430*9880d681SAndroid Build Coastguard Worker if (!p3.new) memw(##84) = r21 } 431*9880d681SAndroid Build Coastguard Worker 432*9880d681SAndroid Build Coastguard Worker# Allocate stack frame 433*9880d681SAndroid Build Coastguard Worker# CHECK: 1f c0 9d a0 434*9880d681SAndroid Build Coastguard Workerallocframe(#248) 435