1# RUN: not llvm-mc -triple s390x-linux-gnu < %s 2> %t 2# RUN: FileCheck < %t %s 3 4# Test GR32 operands 5# 6#CHECK: error: invalid operand for instruction 7#CHECK: lr %f0,%r1 8#CHECK: error: invalid operand for instruction 9#CHECK: lr %a0,%r1 10#CHECK: error: invalid operand for instruction 11#CHECK: lr %c0,%r1 12#CHECK: error: invalid operand for instruction 13#CHECK: lr %r0,%f1 14#CHECK: error: invalid operand for instruction 15#CHECK: lr %r0,%a1 16#CHECK: error: invalid operand for instruction 17#CHECK: lr %r0,%c1 18#CHECK: error: invalid register 19#CHECK: lr %r0,16 20#CHECK: error: unexpected token in argument list 21#CHECK: lr %r0,0(%r1) 22 23 lr %f0,%r1 24 lr %a0,%r1 25 lr %c0,%r1 26 lr %r0,%f1 27 lr %r0,%a1 28 lr %r0,%c1 29 lr %r0,16 30 lr %r0,0(%r1) 31 32# Test GR64 operands 33# 34#CHECK: error: invalid operand for instruction 35#CHECK: lgr %f0,%r1 36#CHECK: error: invalid operand for instruction 37#CHECK: lgr %a0,%r1 38#CHECK: error: invalid operand for instruction 39#CHECK: lgr %c0,%r1 40#CHECK: error: invalid operand for instruction 41#CHECK: lgr %r0,%f1 42#CHECK: error: invalid operand for instruction 43#CHECK: lgr %r0,%a1 44#CHECK: error: invalid operand for instruction 45#CHECK: lgr %r0,%c1 46#CHECK: error: invalid register 47#CHECK: lgr %r0,16 48#CHECK: error: unexpected token in argument list 49#CHECK: lgr %r0,0(%r1) 50 51 lgr %f0,%r1 52 lgr %a0,%r1 53 lgr %c0,%r1 54 lgr %r0,%f1 55 lgr %r0,%a1 56 lgr %r0,%c1 57 lgr %r0,16 58 lgr %r0,0(%r1) 59 60# Test GR128 operands 61# 62#CHECK: error: invalid register pair 63#CHECK: dlr %r1,%r0 64#CHECK: error: invalid register pair 65#CHECK: dlr %r3,%r0 66#CHECK: error: invalid register pair 67#CHECK: dlr %r5,%r0 68#CHECK: error: invalid register pair 69#CHECK: dlr %r7,%r0 70#CHECK: error: invalid register pair 71#CHECK: dlr %r9,%r0 72#CHECK: error: invalid register pair 73#CHECK: dlr %r11,%r0 74#CHECK: error: invalid register pair 75#CHECK: dlr %r13,%r0 76#CHECK: error: invalid register pair 77#CHECK: dlr %r15,%r0 78#CHECK: error: invalid operand for instruction 79#CHECK: dlr %f0,%r1 80#CHECK: error: invalid operand for instruction 81#CHECK: dlr %a0,%r1 82#CHECK: error: invalid operand for instruction 83#CHECK: dlr %c0,%r1 84#CHECK: error: invalid operand for instruction 85#CHECK: dlr %r0,%f1 86#CHECK: error: invalid operand for instruction 87#CHECK: dlr %r0,%a1 88#CHECK: error: invalid operand for instruction 89#CHECK: dlr %r0,%c1 90#CHECK: error: invalid register 91#CHECK: dlr %r0,16 92#CHECK: error: unexpected token in argument list 93#CHECK: dlr %r0,0(%r1) 94 95 dlr %r1,%r0 96 dlr %r3,%r0 97 dlr %r5,%r0 98 dlr %r7,%r0 99 dlr %r9,%r0 100 dlr %r11,%r0 101 dlr %r13,%r0 102 dlr %r15,%r0 103 dlr %f0,%r1 104 dlr %a0,%r1 105 dlr %c0,%r1 106 dlr %r0,%f1 107 dlr %r0,%a1 108 dlr %r0,%c1 109 dlr %r0,16 110 dlr %r0,0(%r1) 111 112# Test FP32 operands 113# 114#CHECK: error: invalid operand for instruction 115#CHECK: ler %r0,%f1 116#CHECK: error: invalid operand for instruction 117#CHECK: ler %a0,%f1 118#CHECK: error: invalid operand for instruction 119#CHECK: ler %c0,%f1 120#CHECK: error: invalid operand for instruction 121#CHECK: ler %f0,%r1 122#CHECK: error: invalid operand for instruction 123#CHECK: ler %f0,%a1 124#CHECK: error: invalid operand for instruction 125#CHECK: ler %f0,%c1 126#CHECK: error: invalid register 127#CHECK: ler %f0,16 128#CHECK: error: unexpected token in argument list 129#CHECK: ler %f0,0(%r1) 130 131 ler %r0,%f1 132 ler %a0,%f1 133 ler %c0,%f1 134 ler %f0,%r1 135 ler %f0,%a1 136 ler %f0,%c1 137 ler %f0,16 138 ler %f0,0(%r1) 139 140# Test FP64 operands 141# 142#CHECK: error: invalid operand for instruction 143#CHECK: ldr %r0,%f1 144#CHECK: error: invalid operand for instruction 145#CHECK: ldr %a0,%f1 146#CHECK: error: invalid operand for instruction 147#CHECK: ldr %c0,%f1 148#CHECK: error: invalid operand for instruction 149#CHECK: ldr %f0,%r1 150#CHECK: error: invalid operand for instruction 151#CHECK: ldr %f0,%a1 152#CHECK: error: invalid operand for instruction 153#CHECK: ldr %f0,%c1 154#CHECK: error: invalid register 155#CHECK: ldr %f0,16 156#CHECK: error: unexpected token in argument list 157#CHECK: ldr %f0,0(%r1) 158 159 ldr %r0,%f1 160 ldr %a0,%f1 161 ldr %c0,%f1 162 ldr %f0,%r1 163 ldr %f0,%a1 164 ldr %f0,%c1 165 ldr %f0,16 166 ldr %f0,0(%r1) 167 168# Test FP128 operands 169# 170#CHECK: error: invalid register pair 171#CHECK: lxr %f2,%f0 172#CHECK: error: invalid register pair 173#CHECK: lxr %f0,%f3 174#CHECK: error: invalid register pair 175#CHECK: lxr %f6,%f0 176#CHECK: error: invalid register pair 177#CHECK: lxr %f0,%f7 178#CHECK: error: invalid register pair 179#CHECK: lxr %f10,%f0 180#CHECK: error: invalid register pair 181#CHECK: lxr %f0,%f11 182#CHECK: error: invalid register pair 183#CHECK: lxr %f14,%f0 184#CHECK: error: invalid register pair 185#CHECK: lxr %f0,%f15 186#CHECK: error: invalid operand for instruction 187#CHECK: lxr %r0,%f1 188#CHECK: error: invalid operand for instruction 189#CHECK: lxr %a0,%f1 190#CHECK: error: invalid operand for instruction 191#CHECK: lxr %c0,%f1 192#CHECK: error: invalid operand for instruction 193#CHECK: lxr %f0,%r1 194#CHECK: error: invalid operand for instruction 195#CHECK: lxr %f0,%a1 196#CHECK: error: invalid operand for instruction 197#CHECK: lxr %f0,%c1 198#CHECK: error: invalid register 199#CHECK: lxr %f0,16 200#CHECK: error: unexpected token in argument list 201#CHECK: lxr %f0,0(%r1) 202 203 lxr %f2,%f0 204 lxr %f0,%f3 205 lxr %f6,%f0 206 lxr %f0,%f7 207 lxr %f10,%f0 208 lxr %f0,%f11 209 lxr %f14,%f0 210 lxr %f0,%f15 211 lxr %r0,%f1 212 lxr %a0,%f1 213 lxr %c0,%f1 214 lxr %f0,%r1 215 lxr %f0,%a1 216 lxr %f0,%c1 217 lxr %f0,16 218 lxr %f0,0(%r1) 219 220# Test that a high (>=16) vector register is not accepted in a non-vector 221# operand. 222# 223#CHECK: error: invalid register 224#CHECK: .insn rr,0x1800,%v16,%v0 225.insn rr,0x1800,%v16,%v0 226 227# Test access register operands 228# 229#CHECK: error: invalid operand for instruction 230#CHECK: ear %r0,%r0 231#CHECK: error: invalid operand for instruction 232#CHECK: ear %r0,%f0 233#CHECK: error: invalid operand for instruction 234#CHECK: ear %r0,%c0 235#CHECK: error: invalid register 236#CHECK: ear %r0,16 237#CHECK: error: unexpected token in argument list 238#CHECK: ear %r0,0(%r1) 239 240 ear %r0,%r0 241 ear %r0,%f0 242 ear %r0,%c0 243 ear %r0,16 244 ear %r0,0(%r1) 245 246# Test control register operands 247# 248#CHECK: error: invalid operand for instruction 249#CHECK: lctl %c0,%r0,0 250#CHECK: lctl %c0,%f0,0 251#CHECK: lctl %c0,%a0,0 252#CHECK: lctl %c0,16,0 253#CHECK: lctl %c0,0(%r1),0 254 255 lctl %c0,%r0,0 256 lctl %c0,%f0,0 257 lctl %c0,%a0,0 258 lctl %c0,16,0 259 lctl %c0,0(%r1),0 260 261 .cfi_startproc 262 263# Test general register parsing, with no predetermined class in mind. 264# 265#CHECK: error: register expected 266#CHECK: .cfi_offset r0,0 267#CHECK: error: invalid register 268#CHECK: .cfi_offset %,0 269#CHECK: error: invalid register 270#CHECK: .cfi_offset %r,0 271#CHECK: error: invalid register 272#CHECK: .cfi_offset %f,0 273#CHECK: error: invalid register 274#CHECK: .cfi_offset %a,0 275#CHECK: error: invalid register 276#CHECK: .cfi_offset %c,0 277#CHECK: error: invalid register 278#CHECK: .cfi_offset %0,0 279#CHECK: error: invalid register 280#CHECK: .cfi_offset %r16,0 281#CHECK: error: invalid register 282#CHECK: .cfi_offset %f16,0 283#CHECK: error: invalid register 284#CHECK: .cfi_offset %a16,0 285#CHECK: error: invalid register 286#CHECK: .cfi_offset %c16,0 287#CHECK: error: invalid register 288#CHECK: .cfi_offset %reef,0 289#CHECK: error: invalid register 290#CHECK: .cfi_offset %arid,0 291 292 .cfi_offset r0,0 293 .cfi_offset %,0 294 .cfi_offset %r,0 295 .cfi_offset %f,0 296 .cfi_offset %a,0 297 .cfi_offset %c,0 298 .cfi_offset %0,0 299 .cfi_offset %r16,0 300 .cfi_offset %f16,0 301 .cfi_offset %a16,0 302 .cfi_offset %c16,0 303 .cfi_offset %reef,0 304 .cfi_offset %arid,0 305 306 .cfi_endproc 307