Home | History | Annotate | Download | only in AArch64
      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