1# RUN: llvm-mc -triple=hexagon -disassemble < %s | FileCheck %s 2# Hexagon Programmer's Reference Manual 11.7.2 NV/ST 3 4# Store new-value byte 50x1f 0x40 0x7f 0x70 0x82 0xf5 0xb1 0x3b 6# CHECK: r31 = r31 7# CHECK-NEXT: memb(r17 + r21<<#3) = r31.new 80x1f 0x40 0x7f 0x70 0x11 0xc2 0xa0 0x48 9# CHECK: r31 = r31 10# CHECK-NEXT: memb(#17) = r31.new 110x1f 0x40 0x7f 0x70 0x15 0xc2 0xb1 0xa1 12# CHECK: r31 = r31 13# CHECK-NEXT: memb(r17+#21) = r31.new 140x1f 0x40 0x7f 0x70 0x02 0xe2 0xb1 0xa9 15# CHECK: r31 = r31 16# CHECK-NEXT: memb(r17 ++ I:circ(m1)) = r31.new 170x1f 0x40 0x7f 0x70 0x28 0xe2 0xb1 0xa9 18# CHECK: r31 = r31 19# CHECK-NEXT: memb(r17 ++ #5:circ(m1)) = r31.new 200x1f 0x40 0x7f 0x70 0x28 0xc2 0xb1 0xab 21# CHECK: r31 = r31 22# CHECK-NEXT: memb(r17++#5) = r31.new 230x1f 0x40 0x7f 0x70 0x00 0xe2 0xb1 0xad 24# CHECK: r31 = r31 25# CHECK-NEXT: memb(r17++m1) = r31.new 260x1f 0x40 0x7f 0x70 0x00 0xe2 0xb1 0xaf 27# CHECK: r31 = r31 28# CHECK-NEXT: memb(r17 ++ m1:brev) = r31.new 29 30# Store new-value byte conditionally 310x1f 0x40 0x7f 0x70 0xe2 0xf5 0xb1 0x34 32# CHECK: r31 = r31 33# CHECK-NEXT: if (p3) memb(r17+r21<<#3) = r31.new 340x1f 0x40 0x7f 0x70 0xe2 0xf5 0xb1 0x35 35# CHECK: r31 = r31 36# CHECK-NEXT: if (!p3) memb(r17+r21<<#3) = r31.new 370x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xe2 0xf5 0xb1 0x36 38# CHECK: p3 = r5 39# CHECK-NEXT: r31 = r31 40# CHECK-NEXT: if (p3.new) memb(r17+r21<<#3) = r31.new 410x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xe2 0xf5 0xb1 0x37 42# CHECK: p3 = r5 43# CHECK-NEXT: r31 = r31 44# CHECK-NEXT: if (!p3.new) memb(r17+r21<<#3) = r31.new 450x1f 0x40 0x7f 0x70 0xab 0xc2 0xb1 0x40 46# CHECK: r31 = r31 47# CHECK-NEXT: if (p3) memb(r17+#21) = r31.new 480x1f 0x40 0x7f 0x70 0xab 0xc2 0xb1 0x44 49# CHECK: r31 = r31 50# CHECK-NEXT: if (!p3) memb(r17+#21) = r31.new 510x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xab 0xc2 0xb1 0x42 52# CHECK: p3 = r5 53# CHECK-NEXT: r31 = r31 54# CHECK-NEXT: if (p3.new) memb(r17+#21) = r31.new 550x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xab 0xc2 0xb1 0x46 56# CHECK: p3 = r5 57# CHECK-NEXT: r31 = r31 58# CHECK-NEXT: if (!p3.new) memb(r17+#21) = r31.new 590x1f 0x40 0x7f 0x70 0x2b 0xe2 0xb1 0xab 60# CHECK: r31 = r31 61# CHECK-NEXT: if (p3) memb(r17++#5) = r31.new 620x1f 0x40 0x7f 0x70 0x2f 0xe2 0xb1 0xab 63# CHECK: r31 = r31 64# CHECK-NEXT: if (!p3) memb(r17++#5) = r31.new 650x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xab 0xe2 0xb1 0xab 66# CHECK: p3 = r5 67# CHECK-NEXT: r31 = r31 68# CHECK-NEXT: if (p3.new) memb(r17++#5) = r31.new 690x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xaf 0xe2 0xb1 0xab 70# CHECK: p3 = r5 71# CHECK-NEXT: r31 = r31 72# CHECK-NEXT: if (!p3.new) memb(r17++#5) = r31.new 73 74# Store new-value halfword 750x1f 0x40 0x7f 0x70 0x8a 0xf5 0xb1 0x3b 76# CHECK: r31 = r31 77# CHECK-NEXT: memh(r17 + r21<<#3) = r31.new 780x1f 0x40 0x7f 0x70 0x15 0xca 0xa0 0x48 79# CHECK: r31 = r31 80# CHECK-NEXT: memh(#42) = r31.new 810x1f 0x40 0x7f 0x70 0x15 0xca 0xb1 0xa1 82# CHECK: r31 = r31 83# CHECK-NEXT: memh(r17+#42) = r31.new 840x1f 0x40 0x7f 0x70 0x02 0xea 0xb1 0xa9 85# CHECK: r31 = r31 86# CHECK-NEXT: memh(r17 ++ I:circ(m1)) = r31.new 870x1f 0x40 0x7f 0x70 0x28 0xea 0xb1 0xa9 88# CHECK: r31 = r31 89# CHECK-NEXT: memh(r17 ++ #10:circ(m1)) = r31.new 900x1f 0x40 0x7f 0x70 0x28 0xca 0xb1 0xab 91# CHECK: r31 = r31 92# CHECK-NEXT: memh(r17++#10) = r31.new 930x1f 0x40 0x7f 0x70 0x00 0xea 0xb1 0xad 94# CHECK: r31 = r31 95# CHECK-NEXT: memh(r17++m1) = r31.new 960x1f 0x40 0x7f 0x70 0x00 0xea 0xb1 0xaf 97# CHECK: r31 = r31 98# CHECK-NEXT: memh(r17 ++ m1:brev) = r31.new 99 100# Store new-value halfword conditionally 1010x1f 0x40 0x7f 0x70 0xea 0xf5 0xb1 0x34 102# CHECK: r31 = r31 103# CHECK-NEXT: if (p3) memh(r17+r21<<#3) = r31.new 1040x1f 0x40 0x7f 0x70 0xea 0xf5 0xb1 0x35 105# CHECK: r31 = r31 106# CHECK-NEXT: if (!p3) memh(r17+r21<<#3) = r31.new 1070x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xea 0xf5 0xb1 0x36 108# CHECK: p3 = r5 109# CHECK-NEXT: r31 = r31 110# CHECK-NEXT: if (p3.new) memh(r17+r21<<#3) = r31.new 1110x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xea 0xf5 0xb1 0x37 112# CHECK: p3 = r5 113# CHECK-NEXT: r31 = r31 114# CHECK-NEXT: if (!p3.new) memh(r17+r21<<#3) = r31.new 1150x1f 0x40 0x7f 0x70 0xab 0xca 0xb1 0x40 116# CHECK: r31 = r31 117# CHECK-NEXT: if (p3) memh(r17+#42) = r31.new 1180x1f 0x40 0x7f 0x70 0xab 0xca 0xb1 0x44 119# CHECK: r31 = r31 120# CHECK-NEXT: if (!p3) memh(r17+#42) = r31.new 1210x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xab 0xca 0xb1 0x42 122# CHECK: p3 = r5 123# CHECK-NEXT: r31 = r31 124# CHECK-NEXT: if (p3.new) memh(r17+#42) = r31.new 1250x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xab 0xca 0xb1 0x46 126# CHECK: p3 = r5 127# CHECK-NEXT: r31 = r31 128# CHECK-NEXT: if (!p3.new) memh(r17+#42) = r31.new 1290x1f 0x40 0x7f 0x70 0x2b 0xea 0xb1 0xab 130# CHECK: r31 = r31 131# CHECK-NEXT: if (p3) memh(r17++#10) = r31.new 1320x1f 0x40 0x7f 0x70 0x2f 0xea 0xb1 0xab 133# CHECK: r31 = r31 134# CHECK-NEXT: if (!p3) memh(r17++#10) = r31.new 1350x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xab 0xea 0xb1 0xab 136# CHECK: p3 = r5 137# CHECK-NEXT: r31 = r31 138# CHECK-NEXT: if (p3.new) memh(r17++#10) = r31.new 1390x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xaf 0xea 0xb1 0xab 140# CHECK: p3 = r5 141# CHECK-NEXT: r31 = r31 142# CHECK-NEXT: if (!p3.new) memh(r17++#10) = r31.new 143 144# Store new-value word 1450x1f 0x40 0x7f 0x70 0x92 0xf5 0xb1 0x3b 146# CHECK: r31 = r31 147# CHECK-NEXT: memw(r17 + r21<<#3) = r31.new 1480x1f 0x40 0x7f 0x70 0x15 0xd2 0xa0 0x48 149# CHECK: r31 = r31 150# CHECK-NEXT: memw(#84) = r31.new 1510x1f 0x40 0x7f 0x70 0x15 0xd2 0xb1 0xa1 152# CHECK: r31 = r31 153# CHECK-NEXT: memw(r17+#84) = r31.new 1540x1f 0x40 0x7f 0x70 0x02 0xf2 0xb1 0xa9 155# CHECK: r31 = r31 156# CHECK-NEXT: memw(r17 ++ I:circ(m1)) = r31.new 1570x1f 0x40 0x7f 0x70 0x28 0xf2 0xb1 0xa9 158# CHECK: r31 = r31 159# CHECK-NEXT: memw(r17 ++ #20:circ(m1)) = r31.new 1600x1f 0x40 0x7f 0x70 0x28 0xd2 0xb1 0xab 161# CHECK: r31 = r31 162# CHECK-NEXT: memw(r17++#20) = r31.new 1630x1f 0x40 0x7f 0x70 0x00 0xf2 0xb1 0xad 164# CHECK: r31 = r31 165# CHECK-NEXT: memw(r17++m1) = r31.new 1660x1f 0x40 0x7f 0x70 0x00 0xf2 0xb1 0xaf 167# CHECK: r31 = r31 168# CHECK-NEXT: memw(r17 ++ m1:brev) = r31.new 169 170# Store new-value word conditionally 1710x1f 0x40 0x7f 0x70 0xf2 0xf5 0xb1 0x34 172# CHECK: r31 = r31 173# CHECK-NEXT: if (p3) memw(r17+r21<<#3) = r31.new 1740x1f 0x40 0x7f 0x70 0xf2 0xf5 0xb1 0x35 175# CHECK: r31 = r31 176# CHECK-NEXT: if (!p3) memw(r17+r21<<#3) = r31.new 1770x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xf2 0xf5 0xb1 0x36 178# CHECK: p3 = r5 179# CHECK-NEXT: r31 = r31 180# CHECK-NEXT: if (p3.new) memw(r17+r21<<#3) = r31.new 1810x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xf2 0xf5 0xb1 0x37 182# CHECK: p3 = r5 183# CHECK-NEXT: r31 = r31 184# CHECK-NEXT: if (!p3.new) memw(r17+r21<<#3) = r31.new 1850x1f 0x40 0x7f 0x70 0xab 0xd2 0xb1 0x40 186# CHECK: r31 = r31 187# CHECK-NEXT: if (p3) memw(r17+#84) = r31.new 1880x1f 0x40 0x7f 0x70 0xab 0xd2 0xb1 0x44 189# CHECK: r31 = r31 190# CHECK-NEXT: if (!p3) memw(r17+#84) = r31.new 1910x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xab 0xd2 0xb1 0x42 192# CHECK: p3 = r5 193# CHECK-NEXT: r31 = r31 194# CHECK-NEXT: if (p3.new) memw(r17+#84) = r31.new 1950x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xab 0xd2 0xb1 0x46 196# CHECK: p3 = r5 197# CHECK-NEXT: r31 = r31 198# CHECK-NEXT: if (!p3.new) memw(r17+#84) = r31.new 1990x1f 0x40 0x7f 0x70 0x2b 0xf2 0xb1 0xab 200# CHECK: r31 = r31 201# CHECK-NEXT: if (p3) memw(r17++#20) = r31.new 2020x1f 0x40 0x7f 0x70 0x2f 0xf2 0xb1 0xab 203# CHECK: r31 = r31 204# CHECK-NEXT: if (!p3) memw(r17++#20) = r31.new 2050x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xab 0xf2 0xb1 0xab 206# CHECK: p3 = r5 207# CHECK-NEXT: r31 = r31 208# CHECK-NEXT: if (p3.new) memw(r17++#20) = r31.new 2090x03 0x40 0x45 0x85 0x1f 0x40 0x7f 0x70 0xaf 0xf2 0xb1 0xab 210# CHECK: p3 = r5 211# CHECK-NEXT: r31 = r31 212# CHECK-NEXT: if (!p3.new) memw(r17++#20) = r31.new 213