|  | # RUN: llvm-mc -triple arm64-apple-darwin --disassemble < %s | FileCheck %s | 
|  |  | 
|  | #==---------------------------------------------------------------------------== | 
|  | # 5.4.2 Logical (immediate) | 
|  | #==---------------------------------------------------------------------------== | 
|  |  | 
|  | 0x00 0x00 0x00 0x12 | 
|  | 0x00 0x00 0x40 0x92 | 
|  | 0x41 0x0c 0x00 0x12 | 
|  | 0x41 0x0c 0x40 0x92 | 
|  | 0xbf 0xec 0x7c 0x92 | 
|  | 0x00 0x00 0x00 0x72 | 
|  | 0x00 0x00 0x40 0xf2 | 
|  | 0x41 0x0c 0x00 0x72 | 
|  | 0x41 0x0c 0x40 0xf2 | 
|  | 0x5f 0x0c 0x40 0xf2 | 
|  |  | 
|  | # CHECK: and  w0, w0, #0x1 | 
|  | # CHECK: and  x0, x0, #0x1 | 
|  | # CHECK: and  w1, w2, #0xf | 
|  | # CHECK: and  x1, x2, #0xf | 
|  | # CHECK: and  sp, x5, #0xfffffffffffffff0 | 
|  | # CHECK: ands w0, w0, #0x1 | 
|  | # CHECK: ands x0, x0, #0x1 | 
|  | # CHECK: ands w1, w2, #0xf | 
|  | # CHECK: ands x1, x2, #0xf | 
|  | # CHECK: tst x2, #0xf | 
|  |  | 
|  | 0x41 0x00 0x12 0x52 | 
|  | 0x41 0x00 0x71 0xd2 | 
|  | 0x5f 0x00 0x71 0xd2 | 
|  |  | 
|  | # CHECK: eor w1, w2, #0x4000 | 
|  | # CHECK: eor x1, x2, #0x8000 | 
|  | # CHECK: eor sp, x2, #0x8000 | 
|  |  | 
|  | 0x41 0x00 0x12 0x32 | 
|  | 0x41 0x00 0x71 0xb2 | 
|  | 0x5f 0x00 0x71 0xb2 | 
|  |  | 
|  | # CHECK: orr w1, w2, #0x4000 | 
|  | # CHECK: orr x1, x2, #0x8000 | 
|  | # CHECK: orr sp, x2, #0x8000 | 
|  |  | 
|  | #==---------------------------------------------------------------------------== | 
|  | # 5.5.3 Logical (shifted register) | 
|  | #==---------------------------------------------------------------------------== | 
|  |  | 
|  | 0x41 0x00 0x03 0x0a | 
|  | 0x41 0x00 0x03 0x8a | 
|  | 0x41 0x08 0x03 0x0a | 
|  | 0x41 0x08 0x03 0x8a | 
|  | 0x41 0x08 0x43 0x0a | 
|  | 0x41 0x08 0x43 0x8a | 
|  | 0x41 0x08 0x83 0x0a | 
|  | 0x41 0x08 0x83 0x8a | 
|  | 0x41 0x08 0xc3 0x0a | 
|  | 0x41 0x08 0xc3 0x8a | 
|  |  | 
|  | # CHECK: and  w1, w2, w3 | 
|  | # CHECK: and  x1, x2, x3 | 
|  | # CHECK: and  w1, w2, w3, lsl #2 | 
|  | # CHECK: and  x1, x2, x3, lsl #2 | 
|  | # CHECK: and  w1, w2, w3, lsr #2 | 
|  | # CHECK: and  x1, x2, x3, lsr #2 | 
|  | # CHECK: and  w1, w2, w3, asr #2 | 
|  | # CHECK: and  x1, x2, x3, asr #2 | 
|  | # CHECK: and  w1, w2, w3, ror #2 | 
|  | # CHECK: and  x1, x2, x3, ror #2 | 
|  |  | 
|  | 0x41 0x00 0x03 0x6a | 
|  | 0x41 0x00 0x03 0xea | 
|  | 0x41 0x08 0x03 0x6a | 
|  | 0x41 0x08 0x03 0xea | 
|  | 0x41 0x08 0x43 0x6a | 
|  | 0x41 0x08 0x43 0xea | 
|  | 0x41 0x08 0x83 0x6a | 
|  | 0x41 0x08 0x83 0xea | 
|  | 0x41 0x08 0xc3 0x6a | 
|  | 0x41 0x08 0xc3 0xea | 
|  |  | 
|  | # CHECK: ands w1, w2, w3 | 
|  | # CHECK: ands x1, x2, x3 | 
|  | # CHECK: ands w1, w2, w3, lsl #2 | 
|  | # CHECK: ands x1, x2, x3, lsl #2 | 
|  | # CHECK: ands w1, w2, w3, lsr #2 | 
|  | # CHECK: ands x1, x2, x3, lsr #2 | 
|  | # CHECK: ands w1, w2, w3, asr #2 | 
|  | # CHECK: ands x1, x2, x3, asr #2 | 
|  | # CHECK: ands w1, w2, w3, ror #2 | 
|  | # CHECK: ands x1, x2, x3, ror #2 | 
|  |  | 
|  | 0x41 0x00 0x23 0x0a | 
|  | 0x41 0x00 0x23 0x8a | 
|  | 0x41 0x0c 0x23 0x0a | 
|  | 0x41 0x0c 0x23 0x8a | 
|  | 0x41 0x0c 0x63 0x0a | 
|  | 0x41 0x0c 0x63 0x8a | 
|  | 0x41 0x0c 0xa3 0x0a | 
|  | 0x41 0x0c 0xa3 0x8a | 
|  | 0x41 0x0c 0xe3 0x0a | 
|  | 0x41 0x0c 0xe3 0x8a | 
|  |  | 
|  | # CHECK: bic w1, w2, w3 | 
|  | # CHECK: bic x1, x2, x3 | 
|  | # CHECK: bic w1, w2, w3, lsl #3 | 
|  | # CHECK: bic x1, x2, x3, lsl #3 | 
|  | # CHECK: bic w1, w2, w3, lsr #3 | 
|  | # CHECK: bic x1, x2, x3, lsr #3 | 
|  | # CHECK: bic w1, w2, w3, asr #3 | 
|  | # CHECK: bic x1, x2, x3, asr #3 | 
|  | # CHECK: bic w1, w2, w3, ror #3 | 
|  | # CHECK: bic x1, x2, x3, ror #3 | 
|  |  | 
|  | 0x41 0x00 0x23 0x6a | 
|  | 0x41 0x00 0x23 0xea | 
|  | 0x41 0x0c 0x23 0x6a | 
|  | 0x41 0x0c 0x23 0xea | 
|  | 0x41 0x0c 0x63 0x6a | 
|  | 0x41 0x0c 0x63 0xea | 
|  | 0x41 0x0c 0xa3 0x6a | 
|  | 0x41 0x0c 0xa3 0xea | 
|  | 0x41 0x0c 0xe3 0x6a | 
|  | 0x41 0x0c 0xe3 0xea | 
|  |  | 
|  | # CHECK: bics w1, w2, w3 | 
|  | # CHECK: bics x1, x2, x3 | 
|  | # CHECK: bics w1, w2, w3, lsl #3 | 
|  | # CHECK: bics x1, x2, x3, lsl #3 | 
|  | # CHECK: bics w1, w2, w3, lsr #3 | 
|  | # CHECK: bics x1, x2, x3, lsr #3 | 
|  | # CHECK: bics w1, w2, w3, asr #3 | 
|  | # CHECK: bics x1, x2, x3, asr #3 | 
|  | # CHECK: bics w1, w2, w3, ror #3 | 
|  | # CHECK: bics x1, x2, x3, ror #3 | 
|  |  | 
|  | 0x41 0x00 0x23 0x4a | 
|  | 0x41 0x00 0x23 0xca | 
|  | 0x41 0x10 0x23 0x4a | 
|  | 0x41 0x10 0x23 0xca | 
|  | 0x41 0x10 0x63 0x4a | 
|  | 0x41 0x10 0x63 0xca | 
|  | 0x41 0x10 0xa3 0x4a | 
|  | 0x41 0x10 0xa3 0xca | 
|  | 0x41 0x10 0xe3 0x4a | 
|  | 0x41 0x10 0xe3 0xca | 
|  |  | 
|  | # CHECK: eon w1, w2, w3 | 
|  | # CHECK: eon x1, x2, x3 | 
|  | # CHECK: eon w1, w2, w3, lsl #4 | 
|  | # CHECK: eon x1, x2, x3, lsl #4 | 
|  | # CHECK: eon w1, w2, w3, lsr #4 | 
|  | # CHECK: eon x1, x2, x3, lsr #4 | 
|  | # CHECK: eon w1, w2, w3, asr #4 | 
|  | # CHECK: eon x1, x2, x3, asr #4 | 
|  | # CHECK: eon w1, w2, w3, ror #4 | 
|  | # CHECK: eon x1, x2, x3, ror #4 | 
|  |  | 
|  | 0x41 0x00 0x03 0x4a | 
|  | 0x41 0x00 0x03 0xca | 
|  | 0x41 0x14 0x03 0x4a | 
|  | 0x41 0x14 0x03 0xca | 
|  | 0x41 0x14 0x43 0x4a | 
|  | 0x41 0x14 0x43 0xca | 
|  | 0x41 0x14 0x83 0x4a | 
|  | 0x41 0x14 0x83 0xca | 
|  | 0x41 0x14 0xc3 0x4a | 
|  | 0x41 0x14 0xc3 0xca | 
|  |  | 
|  | # CHECK: eor w1, w2, w3 | 
|  | # CHECK: eor x1, x2, x3 | 
|  | # CHECK: eor w1, w2, w3, lsl #5 | 
|  | # CHECK: eor x1, x2, x3, lsl #5 | 
|  | # CHECK: eor w1, w2, w3, lsr #5 | 
|  | # CHECK: eor x1, x2, x3, lsr #5 | 
|  | # CHECK: eor w1, w2, w3, asr #5 | 
|  | # CHECK: eor x1, x2, x3, asr #5 | 
|  | # CHECK: eor w1, w2, w3, ror #5 | 
|  | # CHECK: eor x1, x2, x3, ror #5 | 
|  |  | 
|  | 0x41 0x00 0x03 0x2a | 
|  | 0x41 0x00 0x03 0xaa | 
|  | 0x41 0x18 0x03 0x2a | 
|  | 0x41 0x18 0x03 0xaa | 
|  | 0x41 0x18 0x43 0x2a | 
|  | 0x41 0x18 0x43 0xaa | 
|  | 0x41 0x18 0x83 0x2a | 
|  | 0x41 0x18 0x83 0xaa | 
|  | 0x41 0x18 0xc3 0x2a | 
|  | 0x41 0x18 0xc3 0xaa | 
|  |  | 
|  | # CHECK: orr w1, w2, w3 | 
|  | # CHECK: orr x1, x2, x3 | 
|  | # CHECK: orr w1, w2, w3, lsl #6 | 
|  | # CHECK: orr x1, x2, x3, lsl #6 | 
|  | # CHECK: orr w1, w2, w3, lsr #6 | 
|  | # CHECK: orr x1, x2, x3, lsr #6 | 
|  | # CHECK: orr w1, w2, w3, asr #6 | 
|  | # CHECK: orr x1, x2, x3, asr #6 | 
|  | # CHECK: orr w1, w2, w3, ror #6 | 
|  | # CHECK: orr x1, x2, x3, ror #6 | 
|  |  | 
|  | 0x41 0x00 0x23 0x2a | 
|  | 0x41 0x00 0x23 0xaa | 
|  | 0x41 0x1c 0x23 0x2a | 
|  | 0x41 0x1c 0x23 0xaa | 
|  | 0x41 0x1c 0x63 0x2a | 
|  | 0x41 0x1c 0x63 0xaa | 
|  | 0x41 0x1c 0xa3 0x2a | 
|  | 0x41 0x1c 0xa3 0xaa | 
|  | 0x41 0x1c 0xe3 0x2a | 
|  | 0x41 0x1c 0xe3 0xaa | 
|  |  | 
|  | # CHECK: orn w1, w2, w3 | 
|  | # CHECK: orn x1, x2, x3 | 
|  | # CHECK: orn w1, w2, w3, lsl #7 | 
|  | # CHECK: orn x1, x2, x3, lsl #7 | 
|  | # CHECK: orn w1, w2, w3, lsr #7 | 
|  | # CHECK: orn x1, x2, x3, lsr #7 | 
|  | # CHECK: orn w1, w2, w3, asr #7 | 
|  | # CHECK: orn x1, x2, x3, asr #7 | 
|  | # CHECK: orn w1, w2, w3, ror #7 | 
|  | # CHECK: orn x1, x2, x3, ror #7 |