1 // RUN: not llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.4a < %s 2>&1 | FileCheck %s --check-prefix=CHECK-ERROR 2 3 //------------------------------------------------------------------------------ 4 // Armv8.4-A LDAPR and STLR instructions with immediate offsets 5 //------------------------------------------------------------------------------ 6 7 STLURB SP, [X1, #1] 8 ldapurb SP, [x12, #1] 9 STLURB W1, [XZR, #1] 10 11 STLURB W1, [X10, #-257] 12 stlurb w2, [x11, #256] 13 STLURB W3, [SP, #-257] 14 15 ldapurb w4, [x12, #-257] 16 LDAPURB W5, [X13, #256] 17 LDAPURB W6, [SP, #256] 18 19 LDAPURSB W7, [X14, #-257] 20 ldapursb w8, [x15, #256] 21 ldapursb w9, [sp, #-257] 22 23 LDAPURSB X0, [X16, #-257] 24 LDAPURSB X1, [X17, #256] 25 ldapursb x2, [sp, #256] 26 27 stlurh w10, [x18, #-257] 28 STLURH W11, [X19, #256] 29 STLURH W12, [SP, #-257] 30 31 LDAPURH W13, [X20, #-257] 32 ldapurh w14, [x21, #256] 33 LDAPURH W15, [SP, #256] 34 35 LDAPURSH W16, [X22, #-257] 36 LDAPURSH W17, [X23, #256] 37 ldapursh w18, [sp, #-257] 38 39 ldapursh x3, [x24, #-257] 40 LDAPURSH X4, [X25, #256] 41 LDAPURSH X5, [SP, #256] 42 43 STLUR W19, [X26, #-257] 44 stlur w20, [x27, #256] 45 STLUR W21, [SP, #-257] 46 47 LDAPUR W22, [X28, #-257] 48 LDAPUR W23, [X29, #256] 49 ldapur w24, [sp, #256] 50 51 ldapursw x6, [x30, #-257] 52 LDAPURSW X7, [X0, #256] 53 LDAPURSW X8, [SP, #-257] 54 55 STLUR X9, [X1, #-257] 56 stlur x10, [x2, #256] 57 STLUR X11, [SP, #256] 58 59 LDAPUR X12, [X3, #-257] 60 LDAPUR X13, [X4, #256] 61 ldapur x14, [sp, #-257] 62 63 //CHECK-ERROR: error: invalid operand for instruction 64 //CHECK-ERROR-NEXT: STLURB SP, [X1, #1] 65 //CHECK-ERROR-NEXT: ^ 66 //CHECK-ERROR-NEXT: error: invalid operand for instruction 67 //CHECK-ERROR-NEXT: ldapurb SP, [x12, #1] 68 //CHECK-ERROR-NEXT: ^ 69 //CHECK-ERROR-NEXT: error: invalid operand for instruction 70 //CHECK-ERROR-NEXT: STLURB W1, [XZR, #1] 71 //CHECK-ERROR-NEXT: ^ 72 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 73 //CHECK-ERROR-NEXT: STLURB W1, [X10, #-257] 74 //CHECK-ERROR-NEXT: ^ 75 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 76 //CHECK-ERROR-NEXT: stlurb w2, [x11, #256] 77 //CHECK-ERROR-NEXT: ^ 78 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 79 //CHECK-ERROR-NEXT: STLURB W3, [SP, #-257] 80 //CHECK-ERROR-NEXT: ^ 81 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 82 //CHECK-ERROR-NEXT: ldapurb w4, [x12, #-257] 83 //CHECK-ERROR-NEXT: ^ 84 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 85 //CHECK-ERROR-NEXT: LDAPURB W5, [X13, #256] 86 //CHECK-ERROR-NEXT: ^ 87 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 88 //CHECK-ERROR-NEXT: LDAPURB W6, [SP, #256] 89 //CHECK-ERROR-NEXT: ^ 90 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 91 //CHECK-ERROR-NEXT: LDAPURSB W7, [X14, #-257] 92 //CHECK-ERROR-NEXT: ^ 93 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 94 //CHECK-ERROR-NEXT: ldapursb w8, [x15, #256] 95 //CHECK-ERROR-NEXT: ^ 96 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 97 //CHECK-ERROR-NEXT: ldapursb w9, [sp, #-257] 98 //CHECK-ERROR-NEXT: ^ 99 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 100 //CHECK-ERROR-NEXT: LDAPURSB X0, [X16, #-257] 101 //CHECK-ERROR-NEXT: ^ 102 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 103 //CHECK-ERROR-NEXT: LDAPURSB X1, [X17, #256] 104 //CHECK-ERROR-NEXT: ^ 105 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 106 //CHECK-ERROR-NEXT: ldapursb x2, [sp, #256] 107 //CHECK-ERROR-NEXT: ^ 108 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 109 //CHECK-ERROR-NEXT: stlurh w10, [x18, #-257] 110 //CHECK-ERROR-NEXT: ^ 111 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 112 //CHECK-ERROR-NEXT: STLURH W11, [X19, #256] 113 //CHECK-ERROR-NEXT: ^ 114 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 115 //CHECK-ERROR-NEXT: STLURH W12, [SP, #-257] 116 //CHECK-ERROR-NEXT: ^ 117 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 118 //CHECK-ERROR-NEXT: LDAPURH W13, [X20, #-257] 119 //CHECK-ERROR-NEXT: ^ 120 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 121 //CHECK-ERROR-NEXT: ldapurh w14, [x21, #256] 122 //CHECK-ERROR-NEXT: ^ 123 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 124 //CHECK-ERROR-NEXT: LDAPURH W15, [SP, #256] 125 //CHECK-ERROR-NEXT: ^ 126 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 127 //CHECK-ERROR-NEXT: LDAPURSH W16, [X22, #-257] 128 //CHECK-ERROR-NEXT: ^ 129 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 130 //CHECK-ERROR-NEXT: LDAPURSH W17, [X23, #256] 131 //CHECK-ERROR-NEXT: ^ 132 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 133 //CHECK-ERROR-NEXT: ldapursh w18, [sp, #-257] 134 //CHECK-ERROR-NEXT: ^ 135 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 136 //CHECK-ERROR-NEXT: ldapursh x3, [x24, #-257] 137 //CHECK-ERROR-NEXT: ^ 138 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 139 //CHECK-ERROR-NEXT: LDAPURSH X4, [X25, #256] 140 //CHECK-ERROR-NEXT: ^ 141 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 142 //CHECK-ERROR-NEXT: LDAPURSH X5, [SP, #256] 143 //CHECK-ERROR-NEXT: ^ 144 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 145 //CHECK-ERROR-NEXT: STLUR W19, [X26, #-257] 146 //CHECK-ERROR-NEXT: ^ 147 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 148 //CHECK-ERROR-NEXT: stlur w20, [x27, #256] 149 //CHECK-ERROR-NEXT: ^ 150 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 151 //CHECK-ERROR-NEXT: STLUR W21, [SP, #-257] 152 //CHECK-ERROR-NEXT: ^ 153 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 154 //CHECK-ERROR-NEXT: LDAPUR W22, [X28, #-257] 155 //CHECK-ERROR-NEXT: ^ 156 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 157 //CHECK-ERROR-NEXT: LDAPUR W23, [X29, #256] 158 //CHECK-ERROR-NEXT: ^ 159 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 160 //CHECK-ERROR-NEXT: ldapur w24, [sp, #256] 161 //CHECK-ERROR-NEXT: ^ 162 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 163 //CHECK-ERROR-NEXT: ldapursw x6, [x30, #-257] 164 //CHECK-ERROR-NEXT: ^ 165 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 166 //CHECK-ERROR-NEXT: LDAPURSW X7, [X0, #256] 167 //CHECK-ERROR-NEXT: ^ 168 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 169 //CHECK-ERROR-NEXT: LDAPURSW X8, [SP, #-257] 170 //CHECK-ERROR-NEXT: ^ 171 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 172 //CHECK-ERROR-NEXT: STLUR X9, [X1, #-257] 173 //CHECK-ERROR-NEXT: ^ 174 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 175 //CHECK-ERROR-NEXT: stlur x10, [x2, #256] 176 //CHECK-ERROR-NEXT: ^ 177 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 178 //CHECK-ERROR-NEXT: STLUR X11, [SP, #256] 179 //CHECK-ERROR-NEXT: ^ 180 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 181 //CHECK-ERROR-NEXT: LDAPUR X12, [X3, #-257] 182 //CHECK-ERROR-NEXT: ^ 183 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 184 //CHECK-ERROR-NEXT: LDAPUR X13, [X4, #256] 185 //CHECK-ERROR-NEXT: ^ 186 //CHECK-ERROR-NEXT: error: index must be an integer in range [-256, 255]. 187 //CHECK-ERROR-NEXT: ldapur x14, [sp, #-257] 188 //CHECK-ERROR-NEXT: ^ 189