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 5 0x1f 0x40 0x7f 0x70 0x82 0xf5 0xb1 0x3b 6 # CHECK: r31 = r31 7 # CHECK-NEXT: memb(r17 + r21<<#3) = r31.new 8 0x1f 0x40 0x7f 0x70 0x11 0xc2 0xa0 0x48 9 # CHECK: r31 = r31 10 # CHECK-NEXT: memb(#17) = r31.new 11 0x1f 0x40 0x7f 0x70 0x15 0xc2 0xb1 0xa1 12 # CHECK: r31 = r31 13 # CHECK-NEXT: memb(r17+#21) = r31.new 14 0x1f 0x40 0x7f 0x70 0x02 0xe2 0xb1 0xa9 15 # CHECK: r31 = r31 16 # CHECK-NEXT: memb(r17 ++ I:circ(m1)) = r31.new 17 0x1f 0x40 0x7f 0x70 0x28 0xe2 0xb1 0xa9 18 # CHECK: r31 = r31 19 # CHECK-NEXT: memb(r17 ++ #5:circ(m1)) = r31.new 20 0x1f 0x40 0x7f 0x70 0x28 0xc2 0xb1 0xab 21 # CHECK: r31 = r31 22 # CHECK-NEXT: memb(r17++#5) = r31.new 23 0x1f 0x40 0x7f 0x70 0x00 0xe2 0xb1 0xad 24 # CHECK: r31 = r31 25 # CHECK-NEXT: memb(r17++m1) = r31.new 26 0x1f 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 31 0x1f 0x40 0x7f 0x70 0xe2 0xf5 0xb1 0x34 32 # CHECK: r31 = r31 33 # CHECK-NEXT: if (p3) memb(r17+r21<<#3) = r31.new 34 0x1f 0x40 0x7f 0x70 0xe2 0xf5 0xb1 0x35 35 # CHECK: r31 = r31 36 # CHECK-NEXT: if (!p3) memb(r17+r21<<#3) = r31.new 37 0x03 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 41 0x03 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 45 0x1f 0x40 0x7f 0x70 0xab 0xc2 0xb1 0x40 46 # CHECK: r31 = r31 47 # CHECK-NEXT: if (p3) memb(r17+#21) = r31.new 48 0x1f 0x40 0x7f 0x70 0xab 0xc2 0xb1 0x44 49 # CHECK: r31 = r31 50 # CHECK-NEXT: if (!p3) memb(r17+#21) = r31.new 51 0x03 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 55 0x03 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 59 0x1f 0x40 0x7f 0x70 0x2b 0xe2 0xb1 0xab 60 # CHECK: r31 = r31 61 # CHECK-NEXT: if (p3) memb(r17++#5) = r31.new 62 0x1f 0x40 0x7f 0x70 0x2f 0xe2 0xb1 0xab 63 # CHECK: r31 = r31 64 # CHECK-NEXT: if (!p3) memb(r17++#5) = r31.new 65 0x03 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 69 0x03 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 75 0x1f 0x40 0x7f 0x70 0x8a 0xf5 0xb1 0x3b 76 # CHECK: r31 = r31 77 # CHECK-NEXT: memh(r17 + r21<<#3) = r31.new 78 0x1f 0x40 0x7f 0x70 0x15 0xca 0xa0 0x48 79 # CHECK: r31 = r31 80 # CHECK-NEXT: memh(#42) = r31.new 81 0x1f 0x40 0x7f 0x70 0x15 0xca 0xb1 0xa1 82 # CHECK: r31 = r31 83 # CHECK-NEXT: memh(r17+#42) = r31.new 84 0x1f 0x40 0x7f 0x70 0x02 0xea 0xb1 0xa9 85 # CHECK: r31 = r31 86 # CHECK-NEXT: memh(r17 ++ I:circ(m1)) = r31.new 87 0x1f 0x40 0x7f 0x70 0x28 0xea 0xb1 0xa9 88 # CHECK: r31 = r31 89 # CHECK-NEXT: memh(r17 ++ #10:circ(m1)) = r31.new 90 0x1f 0x40 0x7f 0x70 0x28 0xca 0xb1 0xab 91 # CHECK: r31 = r31 92 # CHECK-NEXT: memh(r17++#10) = r31.new 93 0x1f 0x40 0x7f 0x70 0x00 0xea 0xb1 0xad 94 # CHECK: r31 = r31 95 # CHECK-NEXT: memh(r17++m1) = r31.new 96 0x1f 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 101 0x1f 0x40 0x7f 0x70 0xea 0xf5 0xb1 0x34 102 # CHECK: r31 = r31 103 # CHECK-NEXT: if (p3) memh(r17+r21<<#3) = r31.new 104 0x1f 0x40 0x7f 0x70 0xea 0xf5 0xb1 0x35 105 # CHECK: r31 = r31 106 # CHECK-NEXT: if (!p3) memh(r17+r21<<#3) = r31.new 107 0x03 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 111 0x03 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 115 0x1f 0x40 0x7f 0x70 0xab 0xca 0xb1 0x40 116 # CHECK: r31 = r31 117 # CHECK-NEXT: if (p3) memh(r17+#42) = r31.new 118 0x1f 0x40 0x7f 0x70 0xab 0xca 0xb1 0x44 119 # CHECK: r31 = r31 120 # CHECK-NEXT: if (!p3) memh(r17+#42) = r31.new 121 0x03 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 125 0x03 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 129 0x1f 0x40 0x7f 0x70 0x2b 0xea 0xb1 0xab 130 # CHECK: r31 = r31 131 # CHECK-NEXT: if (p3) memh(r17++#10) = r31.new 132 0x1f 0x40 0x7f 0x70 0x2f 0xea 0xb1 0xab 133 # CHECK: r31 = r31 134 # CHECK-NEXT: if (!p3) memh(r17++#10) = r31.new 135 0x03 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 139 0x03 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 145 0x1f 0x40 0x7f 0x70 0x92 0xf5 0xb1 0x3b 146 # CHECK: r31 = r31 147 # CHECK-NEXT: memw(r17 + r21<<#3) = r31.new 148 0x1f 0x40 0x7f 0x70 0x15 0xd2 0xa0 0x48 149 # CHECK: r31 = r31 150 # CHECK-NEXT: memw(#84) = r31.new 151 0x1f 0x40 0x7f 0x70 0x15 0xd2 0xb1 0xa1 152 # CHECK: r31 = r31 153 # CHECK-NEXT: memw(r17+#84) = r31.new 154 0x1f 0x40 0x7f 0x70 0x02 0xf2 0xb1 0xa9 155 # CHECK: r31 = r31 156 # CHECK-NEXT: memw(r17 ++ I:circ(m1)) = r31.new 157 0x1f 0x40 0x7f 0x70 0x28 0xf2 0xb1 0xa9 158 # CHECK: r31 = r31 159 # CHECK-NEXT: memw(r17 ++ #20:circ(m1)) = r31.new 160 0x1f 0x40 0x7f 0x70 0x28 0xd2 0xb1 0xab 161 # CHECK: r31 = r31 162 # CHECK-NEXT: memw(r17++#20) = r31.new 163 0x1f 0x40 0x7f 0x70 0x00 0xf2 0xb1 0xad 164 # CHECK: r31 = r31 165 # CHECK-NEXT: memw(r17++m1) = r31.new 166 0x1f 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 171 0x1f 0x40 0x7f 0x70 0xf2 0xf5 0xb1 0x34 172 # CHECK: r31 = r31 173 # CHECK-NEXT: if (p3) memw(r17+r21<<#3) = r31.new 174 0x1f 0x40 0x7f 0x70 0xf2 0xf5 0xb1 0x35 175 # CHECK: r31 = r31 176 # CHECK-NEXT: if (!p3) memw(r17+r21<<#3) = r31.new 177 0x03 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 181 0x03 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 185 0x1f 0x40 0x7f 0x70 0xab 0xd2 0xb1 0x40 186 # CHECK: r31 = r31 187 # CHECK-NEXT: if (p3) memw(r17+#84) = r31.new 188 0x1f 0x40 0x7f 0x70 0xab 0xd2 0xb1 0x44 189 # CHECK: r31 = r31 190 # CHECK-NEXT: if (!p3) memw(r17+#84) = r31.new 191 0x03 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 195 0x03 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 199 0x1f 0x40 0x7f 0x70 0x2b 0xf2 0xb1 0xab 200 # CHECK: r31 = r31 201 # CHECK-NEXT: if (p3) memw(r17++#20) = r31.new 202 0x1f 0x40 0x7f 0x70 0x2f 0xf2 0xb1 0xab 203 # CHECK: r31 = r31 204 # CHECK-NEXT: if (!p3) memw(r17++#20) = r31.new 205 0x03 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 209 0x03 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