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 7STLURB SP, [X1, #1] 8ldapurb SP, [x12, #1] 9STLURB W1, [XZR, #1] 10 11STLURB W1, [X10, #-257] 12stlurb w2, [x11, #256] 13STLURB W3, [SP, #-257] 14 15ldapurb w4, [x12, #-257] 16LDAPURB W5, [X13, #256] 17LDAPURB W6, [SP, #256] 18 19LDAPURSB W7, [X14, #-257] 20ldapursb w8, [x15, #256] 21ldapursb w9, [sp, #-257] 22 23LDAPURSB X0, [X16, #-257] 24LDAPURSB X1, [X17, #256] 25ldapursb x2, [sp, #256] 26 27stlurh w10, [x18, #-257] 28STLURH W11, [X19, #256] 29STLURH W12, [SP, #-257] 30 31LDAPURH W13, [X20, #-257] 32ldapurh w14, [x21, #256] 33LDAPURH W15, [SP, #256] 34 35LDAPURSH W16, [X22, #-257] 36LDAPURSH W17, [X23, #256] 37ldapursh w18, [sp, #-257] 38 39ldapursh x3, [x24, #-257] 40LDAPURSH X4, [X25, #256] 41LDAPURSH X5, [SP, #256] 42 43STLUR W19, [X26, #-257] 44stlur w20, [x27, #256] 45STLUR W21, [SP, #-257] 46 47LDAPUR W22, [X28, #-257] 48LDAPUR W23, [X29, #256] 49ldapur w24, [sp, #256] 50 51ldapursw x6, [x30, #-257] 52LDAPURSW X7, [X0, #256] 53LDAPURSW X8, [SP, #-257] 54 55STLUR X9, [X1, #-257] 56stlur x10, [x2, #256] 57STLUR X11, [SP, #256] 58 59LDAPUR X12, [X3, #-257] 60LDAPUR X13, [X4, #256] 61ldapur 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