brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.4 KiB · 37b29bc Raw
232 lines · plain
1; RUN: llvm-mc -triple arm64-apple-darwin -show-encoding < %s | FileCheck %s2 3foo:4;==---------------------------------------------------------------------------==5; 5.4.2 Logical (immediate)6;==---------------------------------------------------------------------------==7 8  and   w0, w0, #19  and   x0, x0, #110  and   w1, w2, #1511  and   x1, x2, #1512  and   sp, x5, #~1513  ands  w0, w0, #114  ands  x0, x0, #115  ands  w1, w2, #1516  ands  x1, x2, #1517 18; CHECK: and  w0, w0, #0x1           ; encoding: [0x00,0x00,0x00,0x12]19; CHECK: and  x0, x0, #0x1           ; encoding: [0x00,0x00,0x40,0x92]20; CHECK: and  w1, w2, #0xf           ; encoding: [0x41,0x0c,0x00,0x12]21; CHECK: and  x1, x2, #0xf           ; encoding: [0x41,0x0c,0x40,0x92]22; CHECK: and  sp, x5, #0xfffffffffffffff0 ; encoding: [0xbf,0xec,0x7c,0x92]23; CHECK: ands w0, w0, #0x1           ; encoding: [0x00,0x00,0x00,0x72]24; CHECK: ands x0, x0, #0x1           ; encoding: [0x00,0x00,0x40,0xf2]25; CHECK: ands w1, w2, #0xf           ; encoding: [0x41,0x0c,0x00,0x72]26; CHECK: ands x1, x2, #0xf           ; encoding: [0x41,0x0c,0x40,0xf2]27 28  eor w1, w2, #0x400029  eor x1, x2, #0x800030 31; CHECK: eor w1, w2, #0x4000         ; encoding: [0x41,0x00,0x12,0x52]32; CHECK: eor x1, x2, #0x8000         ; encoding: [0x41,0x00,0x71,0xd2]33 34  orr w1, w2, #0x400035  orr x1, x2, #0x800036 37; CHECK: orr w1, w2, #0x4000         ; encoding: [0x41,0x00,0x12,0x32]38; CHECK: orr x1, x2, #0x8000         ; encoding: [0x41,0x00,0x71,0xb2]39 40  orr w8, wzr, #0x141  orr x8, xzr, #0x142 43; CHECK: orr w8, wzr, #0x1           ; encoding: [0xe8,0x03,0x00,0x32]44; CHECK: orr x8, xzr, #0x1           ; encoding: [0xe8,0x03,0x40,0xb2]45 46;==---------------------------------------------------------------------------==47; 5.5.3 Logical (shifted register)48;==---------------------------------------------------------------------------==49 50  and   w1, w2, w351  and   x1, x2, x352  and   w1, w2, w3, lsl #253  and   x1, x2, x3, lsl #254  and   w1, w2, w3, lsr #255  and   x1, x2, x3, lsr #256  and   w1, w2, w3, asr #257  and   x1, x2, x3, asr #258  and   w1, w2, w3, ror #259  and   x1, x2, x3, ror #260 61; CHECK: and  w1, w2, w3             ; encoding: [0x41,0x00,0x03,0x0a]62; CHECK: and  x1, x2, x3             ; encoding: [0x41,0x00,0x03,0x8a]63; CHECK: and  w1, w2, w3, lsl #2     ; encoding: [0x41,0x08,0x03,0x0a]64; CHECK: and  x1, x2, x3, lsl #2     ; encoding: [0x41,0x08,0x03,0x8a]65; CHECK: and  w1, w2, w3, lsr #2     ; encoding: [0x41,0x08,0x43,0x0a]66; CHECK: and  x1, x2, x3, lsr #2     ; encoding: [0x41,0x08,0x43,0x8a]67; CHECK: and  w1, w2, w3, asr #2     ; encoding: [0x41,0x08,0x83,0x0a]68; CHECK: and  x1, x2, x3, asr #2     ; encoding: [0x41,0x08,0x83,0x8a]69; CHECK: and  w1, w2, w3, ror #2     ; encoding: [0x41,0x08,0xc3,0x0a]70; CHECK: and  x1, x2, x3, ror #2     ; encoding: [0x41,0x08,0xc3,0x8a]71 72  ands  w1, w2, w373  ands  x1, x2, x374  ands  w1, w2, w3, lsl #275  ands  x1, x2, x3, lsl #276  ands  w1, w2, w3, lsr #277  ands  x1, x2, x3, lsr #278  ands  w1, w2, w3, asr #279  ands  x1, x2, x3, asr #280  ands  w1, w2, w3, ror #281  ands  x1, x2, x3, ror #282 83; CHECK: ands w1, w2, w3             ; encoding: [0x41,0x00,0x03,0x6a]84; CHECK: ands x1, x2, x3             ; encoding: [0x41,0x00,0x03,0xea]85; CHECK: ands w1, w2, w3, lsl #2     ; encoding: [0x41,0x08,0x03,0x6a]86; CHECK: ands x1, x2, x3, lsl #2     ; encoding: [0x41,0x08,0x03,0xea]87; CHECK: ands w1, w2, w3, lsr #2     ; encoding: [0x41,0x08,0x43,0x6a]88; CHECK: ands x1, x2, x3, lsr #2     ; encoding: [0x41,0x08,0x43,0xea]89; CHECK: ands w1, w2, w3, asr #2     ; encoding: [0x41,0x08,0x83,0x6a]90; CHECK: ands x1, x2, x3, asr #2     ; encoding: [0x41,0x08,0x83,0xea]91; CHECK: ands w1, w2, w3, ror #2     ; encoding: [0x41,0x08,0xc3,0x6a]92; CHECK: ands x1, x2, x3, ror #2     ; encoding: [0x41,0x08,0xc3,0xea]93 94  bic w1, w2, w395  bic x1, x2, x396  bic w1, w2, w3, lsl #397  bic x1, x2, x3, lsl #398  bic w1, w2, w3, lsr #399  bic x1, x2, x3, lsr #3100  bic w1, w2, w3, asr #3101  bic x1, x2, x3, asr #3102  bic w1, w2, w3, ror #3103  bic x1, x2, x3, ror #3104 105; CHECK: bic w1, w2, w3              ; encoding: [0x41,0x00,0x23,0x0a]106; CHECK: bic x1, x2, x3              ; encoding: [0x41,0x00,0x23,0x8a]107; CHECK: bic w1, w2, w3, lsl #3      ; encoding: [0x41,0x0c,0x23,0x0a]108; CHECK: bic x1, x2, x3, lsl #3      ; encoding: [0x41,0x0c,0x23,0x8a]109; CHECK: bic w1, w2, w3, lsr #3      ; encoding: [0x41,0x0c,0x63,0x0a]110; CHECK: bic x1, x2, x3, lsr #3      ; encoding: [0x41,0x0c,0x63,0x8a]111; CHECK: bic w1, w2, w3, asr #3      ; encoding: [0x41,0x0c,0xa3,0x0a]112; CHECK: bic x1, x2, x3, asr #3      ; encoding: [0x41,0x0c,0xa3,0x8a]113; CHECK: bic w1, w2, w3, ror #3      ; encoding: [0x41,0x0c,0xe3,0x0a]114; CHECK: bic x1, x2, x3, ror #3      ; encoding: [0x41,0x0c,0xe3,0x8a]115 116  bics w1, w2, w3117  bics x1, x2, x3118  bics w1, w2, w3, lsl #3119  bics x1, x2, x3, lsl #3120  bics w1, w2, w3, lsr #3121  bics x1, x2, x3, lsr #3122  bics w1, w2, w3, asr #3123  bics x1, x2, x3, asr #3124  bics w1, w2, w3, ror #3125  bics x1, x2, x3, ror #3126 127; CHECK: bics w1, w2, w3             ; encoding: [0x41,0x00,0x23,0x6a]128; CHECK: bics x1, x2, x3             ; encoding: [0x41,0x00,0x23,0xea]129; CHECK: bics w1, w2, w3, lsl #3     ; encoding: [0x41,0x0c,0x23,0x6a]130; CHECK: bics x1, x2, x3, lsl #3     ; encoding: [0x41,0x0c,0x23,0xea]131; CHECK: bics w1, w2, w3, lsr #3     ; encoding: [0x41,0x0c,0x63,0x6a]132; CHECK: bics x1, x2, x3, lsr #3     ; encoding: [0x41,0x0c,0x63,0xea]133; CHECK: bics w1, w2, w3, asr #3     ; encoding: [0x41,0x0c,0xa3,0x6a]134; CHECK: bics x1, x2, x3, asr #3     ; encoding: [0x41,0x0c,0xa3,0xea]135; CHECK: bics w1, w2, w3, ror #3     ; encoding: [0x41,0x0c,0xe3,0x6a]136; CHECK: bics x1, x2, x3, ror #3     ; encoding: [0x41,0x0c,0xe3,0xea]137 138  eon w1, w2, w3139  eon x1, x2, x3140  eon w1, w2, w3, lsl #4141  eon x1, x2, x3, lsl #4142  eon w1, w2, w3, lsr #4143  eon x1, x2, x3, lsr #4144  eon w1, w2, w3, asr #4145  eon x1, x2, x3, asr #4146  eon w1, w2, w3, ror #4147  eon x1, x2, x3, ror #4148 149; CHECK: eon w1, w2, w3              ; encoding: [0x41,0x00,0x23,0x4a]150; CHECK: eon x1, x2, x3              ; encoding: [0x41,0x00,0x23,0xca]151; CHECK: eon w1, w2, w3, lsl #4      ; encoding: [0x41,0x10,0x23,0x4a]152; CHECK: eon x1, x2, x3, lsl #4      ; encoding: [0x41,0x10,0x23,0xca]153; CHECK: eon w1, w2, w3, lsr #4      ; encoding: [0x41,0x10,0x63,0x4a]154; CHECK: eon x1, x2, x3, lsr #4      ; encoding: [0x41,0x10,0x63,0xca]155; CHECK: eon w1, w2, w3, asr #4      ; encoding: [0x41,0x10,0xa3,0x4a]156; CHECK: eon x1, x2, x3, asr #4      ; encoding: [0x41,0x10,0xa3,0xca]157; CHECK: eon w1, w2, w3, ror #4      ; encoding: [0x41,0x10,0xe3,0x4a]158; CHECK: eon x1, x2, x3, ror #4      ; encoding: [0x41,0x10,0xe3,0xca]159 160  eor w1, w2, w3161  eor x1, x2, x3162  eor w1, w2, w3, lsl #5163  eor x1, x2, x3, lsl #5164  eor w1, w2, w3, lsr #5165  eor x1, x2, x3, lsr #5166  eor w1, w2, w3, asr #5167  eor x1, x2, x3, asr #5168  eor w1, w2, w3, ror #5169  eor x1, x2, x3, ror #5170 171; CHECK: eor w1, w2, w3              ; encoding: [0x41,0x00,0x03,0x4a]172; CHECK: eor x1, x2, x3              ; encoding: [0x41,0x00,0x03,0xca]173; CHECK: eor w1, w2, w3, lsl #5      ; encoding: [0x41,0x14,0x03,0x4a]174; CHECK: eor x1, x2, x3, lsl #5      ; encoding: [0x41,0x14,0x03,0xca]175; CHECK: eor w1, w2, w3, lsr #5      ; encoding: [0x41,0x14,0x43,0x4a]176; CHECK: eor x1, x2, x3, lsr #5      ; encoding: [0x41,0x14,0x43,0xca]177; CHECK: eor w1, w2, w3, asr #5      ; encoding: [0x41,0x14,0x83,0x4a]178; CHECK: eor x1, x2, x3, asr #5      ; encoding: [0x41,0x14,0x83,0xca]179; CHECK: eor w1, w2, w3, ror #5      ; encoding: [0x41,0x14,0xc3,0x4a]180; CHECK: eor x1, x2, x3, ror #5      ; encoding: [0x41,0x14,0xc3,0xca]181 182  orr w1, w2, w3183  orr x1, x2, x3184  orr w1, w2, w3, lsl #6185  orr x1, x2, x3, lsl #6186  orr w1, w2, w3, lsr #6187  orr x1, x2, x3, lsr #6188  orr w1, w2, w3, asr #6189  orr x1, x2, x3, asr #6190  orr w1, w2, w3, ror #6191  orr x1, x2, x3, ror #6192 193; CHECK: orr w1, w2, w3              ; encoding: [0x41,0x00,0x03,0x2a]194; CHECK: orr x1, x2, x3              ; encoding: [0x41,0x00,0x03,0xaa]195; CHECK: orr w1, w2, w3, lsl #6      ; encoding: [0x41,0x18,0x03,0x2a]196; CHECK: orr x1, x2, x3, lsl #6      ; encoding: [0x41,0x18,0x03,0xaa]197; CHECK: orr w1, w2, w3, lsr #6      ; encoding: [0x41,0x18,0x43,0x2a]198; CHECK: orr x1, x2, x3, lsr #6      ; encoding: [0x41,0x18,0x43,0xaa]199; CHECK: orr w1, w2, w3, asr #6      ; encoding: [0x41,0x18,0x83,0x2a]200; CHECK: orr x1, x2, x3, asr #6      ; encoding: [0x41,0x18,0x83,0xaa]201; CHECK: orr w1, w2, w3, ror #6      ; encoding: [0x41,0x18,0xc3,0x2a]202; CHECK: orr x1, x2, x3, ror #6      ; encoding: [0x41,0x18,0xc3,0xaa]203 204  orn w1, w2, w3205  orn x1, x2, x3206  orn w1, w2, w3, lsl #7207  orn x1, x2, x3, lsl #7208  orn w1, w2, w3, lsr #7209  orn x1, x2, x3, lsr #7210  orn w1, w2, w3, asr #7211  orn x1, x2, x3, asr #7212  orn w1, w2, w3, ror #7213  orn x1, x2, x3, ror #7214 215; CHECK: orn w1, w2, w3              ; encoding: [0x41,0x00,0x23,0x2a]216; CHECK: orn x1, x2, x3              ; encoding: [0x41,0x00,0x23,0xaa]217; CHECK: orn w1, w2, w3, lsl #7      ; encoding: [0x41,0x1c,0x23,0x2a]218; CHECK: orn x1, x2, x3, lsl #7      ; encoding: [0x41,0x1c,0x23,0xaa]219; CHECK: orn w1, w2, w3, lsr #7      ; encoding: [0x41,0x1c,0x63,0x2a]220; CHECK: orn x1, x2, x3, lsr #7      ; encoding: [0x41,0x1c,0x63,0xaa]221; CHECK: orn w1, w2, w3, asr #7      ; encoding: [0x41,0x1c,0xa3,0x2a]222; CHECK: orn x1, x2, x3, asr #7      ; encoding: [0x41,0x1c,0xa3,0xaa]223; CHECK: orn w1, w2, w3, ror #7      ; encoding: [0x41,0x1c,0xe3,0x2a]224; CHECK: orn x1, x2, x3, ror #7      ; encoding: [0x41,0x1c,0xe3,0xaa]225 226;; Allow all-1 in top bits.227  and w0, w0, #~(0xfe<<24)228  and w1, w1, #~(0xff<<24)229 230; CHECK: and w0, w0, #0x1ffffff231; CHECK: and w1, w1, #0xffffff232