1dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines; RUN: llvm-mc -triple arm64-apple-darwin -mattr=neon -show-encoding < %s | FileCheck %s
236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesfoo:
436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines;==---------------------------------------------------------------------------==
536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; Add/Subtract with carry/borrow
636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines;==---------------------------------------------------------------------------==
736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  adc   w1, w2, w3
936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  adc   x1, x2, x3
1036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  adcs  w5, w4, w3
1136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  adcs  x5, x4, x3
1236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
1336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: adc  w1, w2, w3             ; encoding: [0x41,0x00,0x03,0x1a]
1436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: adc  x1, x2, x3             ; encoding: [0x41,0x00,0x03,0x9a]
1536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: adcs w5, w4, w3             ; encoding: [0x85,0x00,0x03,0x3a]
1636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: adcs x5, x4, x3             ; encoding: [0x85,0x00,0x03,0xba]
1736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
1836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sbc   w1, w2, w3
1936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sbc   x1, x2, x3
2036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sbcs  w1, w2, w3
2136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sbcs  x1, x2, x3
2236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
2336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sbc  w1, w2, w3             ; encoding: [0x41,0x00,0x03,0x5a]
2436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sbc  x1, x2, x3             ; encoding: [0x41,0x00,0x03,0xda]
2536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sbcs w1, w2, w3             ; encoding: [0x41,0x00,0x03,0x7a]
2636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sbcs x1, x2, x3             ; encoding: [0x41,0x00,0x03,0xfa]
2736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
2836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines;==---------------------------------------------------------------------------==
2936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; Add/Subtract with (optionally shifted) immediate
3036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines;==---------------------------------------------------------------------------==
3136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
3236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  add w3, w4, #1024
3336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  add w3, w4, #1024, lsl #0
3436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  add x3, x4, #1024
3536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  add x3, x4, #1024, lsl #0
3636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
3736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: add w3, w4, #1024           ; encoding: [0x83,0x00,0x10,0x11]
3836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: add w3, w4, #1024           ; encoding: [0x83,0x00,0x10,0x11]
3936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: add x3, x4, #1024           ; encoding: [0x83,0x00,0x10,0x91]
4036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: add x3, x4, #1024           ; encoding: [0x83,0x00,0x10,0x91]
4136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
4236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  add w3, w4, #1024, lsl #12
4336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  add w3, w4, #4194304
4436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  add w3, w4, #0, lsl #12
4536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  add x3, x4, #1024, lsl #12
4636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  add x3, x4, #4194304
4736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  add x3, x4, #0, lsl #12
4836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  add sp, sp, #32
4936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
50dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines; CHECK: add w3, w4, #1024, lsl #12  ; encoding: [0x83,0x00,0x50,0x11]
51dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines; CHECK: add w3, w4, #1024, lsl #12  ; encoding: [0x83,0x00,0x50,0x11]
5236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: add w3, w4, #0, lsl #12     ; encoding: [0x83,0x00,0x40,0x11]
53dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines; CHECK: add x3, x4, #1024, lsl #12  ; encoding: [0x83,0x00,0x50,0x91]
54dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines; CHECK: add x3, x4, #1024, lsl #12  ; encoding: [0x83,0x00,0x50,0x91]
5536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: add x3, x4, #0, lsl #12     ; encoding: [0x83,0x00,0x40,0x91]
5636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: add sp, sp, #32             ; encoding: [0xff,0x83,0x00,0x91]
5736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
5836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  adds w3, w4, #1024
5936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  adds w3, w4, #1024, lsl #0
6036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  adds w3, w4, #1024, lsl #12
6136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  adds x3, x4, #1024
6236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  adds x3, x4, #1024, lsl #0
6336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  adds x3, x4, #1024, lsl #12
6436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
6536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: adds w3, w4, #1024          ; encoding: [0x83,0x00,0x10,0x31]
6636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: adds w3, w4, #1024          ; encoding: [0x83,0x00,0x10,0x31]
67dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines; CHECK: adds w3, w4, #1024, lsl #12 ; encoding: [0x83,0x00,0x50,0x31]
6836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: adds x3, x4, #1024          ; encoding: [0x83,0x00,0x10,0xb1]
6936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: adds x3, x4, #1024          ; encoding: [0x83,0x00,0x10,0xb1]
70dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines; CHECK: adds x3, x4, #1024, lsl #12 ; encoding: [0x83,0x00,0x50,0xb1]
7136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
7236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sub w3, w4, #1024
7336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sub w3, w4, #1024, lsl #0
7436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sub w3, w4, #1024, lsl #12
7536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sub x3, x4, #1024
7636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sub x3, x4, #1024, lsl #0
7736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sub x3, x4, #1024, lsl #12
7836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sub sp, sp, #32
7936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
8036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sub w3, w4, #1024           ; encoding: [0x83,0x00,0x10,0x51]
8136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sub w3, w4, #1024           ; encoding: [0x83,0x00,0x10,0x51]
82dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines; CHECK: sub w3, w4, #1024, lsl #12  ; encoding: [0x83,0x00,0x50,0x51]
8336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sub x3, x4, #1024           ; encoding: [0x83,0x00,0x10,0xd1]
8436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sub x3, x4, #1024           ; encoding: [0x83,0x00,0x10,0xd1]
85dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines; CHECK: sub x3, x4, #1024, lsl #12  ; encoding: [0x83,0x00,0x50,0xd1]
8636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sub sp, sp, #32             ; encoding: [0xff,0x83,0x00,0xd1]
8736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
8836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  subs w3, w4, #1024
8936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  subs w3, w4, #1024, lsl #0
9036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  subs w3, w4, #1024, lsl #12
9136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  subs x3, x4, #1024
9236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  subs x3, x4, #1024, lsl #0
9336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  subs x3, x4, #1024, lsl #12
9436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
9536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: subs w3, w4, #1024          ; encoding: [0x83,0x00,0x10,0x71]
9636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: subs w3, w4, #1024          ; encoding: [0x83,0x00,0x10,0x71]
97dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines; CHECK: subs w3, w4, #1024, lsl #12 ; encoding: [0x83,0x00,0x50,0x71]
9836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: subs x3, x4, #1024          ; encoding: [0x83,0x00,0x10,0xf1]
9936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: subs x3, x4, #1024          ; encoding: [0x83,0x00,0x10,0xf1]
100dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines; CHECK: subs x3, x4, #1024, lsl #12 ; encoding: [0x83,0x00,0x50,0xf1]
10136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
10236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines;==---------------------------------------------------------------------------==
10336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; Add/Subtract register with (optional) shift
10436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines;==---------------------------------------------------------------------------==
10536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
10636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  add w12, w13, w14
10736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  add x12, x13, x14
10836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  add w12, w13, w14, lsl #12
10936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  add x12, x13, x14, lsl #12
11036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  add x12, x13, x14, lsr #42
11136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  add x12, x13, x14, asr #39
11236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
11336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: add w12, w13, w14           ; encoding: [0xac,0x01,0x0e,0x0b]
11436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: add x12, x13, x14           ; encoding: [0xac,0x01,0x0e,0x8b]
11536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: add w12, w13, w14, lsl #12  ; encoding: [0xac,0x31,0x0e,0x0b]
11636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: add x12, x13, x14, lsl #12  ; encoding: [0xac,0x31,0x0e,0x8b]
11736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: add x12, x13, x14, lsr #42  ; encoding: [0xac,0xa9,0x4e,0x8b]
11836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: add x12, x13, x14, asr #39  ; encoding: [0xac,0x9d,0x8e,0x8b]
11936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
12036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sub w12, w13, w14
12136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sub x12, x13, x14
12236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sub w12, w13, w14, lsl #12
12336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sub x12, x13, x14, lsl #12
12436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sub x12, x13, x14, lsr #42
12536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sub x12, x13, x14, asr #39
12636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
12736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sub w12, w13, w14           ; encoding: [0xac,0x01,0x0e,0x4b]
12836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sub x12, x13, x14           ; encoding: [0xac,0x01,0x0e,0xcb]
12936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sub w12, w13, w14, lsl #12  ; encoding: [0xac,0x31,0x0e,0x4b]
13036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sub x12, x13, x14, lsl #12  ; encoding: [0xac,0x31,0x0e,0xcb]
13136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sub x12, x13, x14, lsr #42  ; encoding: [0xac,0xa9,0x4e,0xcb]
13236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sub x12, x13, x14, asr #39  ; encoding: [0xac,0x9d,0x8e,0xcb]
13336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
13436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  adds w12, w13, w14
13536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  adds x12, x13, x14
13636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  adds w12, w13, w14, lsl #12
13736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  adds x12, x13, x14, lsl #12
13836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  adds x12, x13, x14, lsr #42
13936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  adds x12, x13, x14, asr #39
14036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
14136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: adds w12, w13, w14          ; encoding: [0xac,0x01,0x0e,0x2b]
14236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: adds x12, x13, x14          ; encoding: [0xac,0x01,0x0e,0xab]
14336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: adds w12, w13, w14, lsl #12 ; encoding: [0xac,0x31,0x0e,0x2b]
14436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: adds x12, x13, x14, lsl #12 ; encoding: [0xac,0x31,0x0e,0xab]
14536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: adds x12, x13, x14, lsr #42 ; encoding: [0xac,0xa9,0x4e,0xab]
14636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: adds x12, x13, x14, asr #39 ; encoding: [0xac,0x9d,0x8e,0xab]
14736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
14836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  subs w12, w13, w14
14936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  subs x12, x13, x14
15036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  subs w12, w13, w14, lsl #12
15136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  subs x12, x13, x14, lsl #12
15236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  subs x12, x13, x14, lsr #42
15336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  subs x12, x13, x14, asr #39
15436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
15536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: subs w12, w13, w14          ; encoding: [0xac,0x01,0x0e,0x6b]
15636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: subs x12, x13, x14          ; encoding: [0xac,0x01,0x0e,0xeb]
15736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: subs w12, w13, w14, lsl #12 ; encoding: [0xac,0x31,0x0e,0x6b]
15836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: subs x12, x13, x14, lsl #12 ; encoding: [0xac,0x31,0x0e,0xeb]
15936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: subs x12, x13, x14, lsr #42 ; encoding: [0xac,0xa9,0x4e,0xeb]
16036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: subs x12, x13, x14, asr #39 ; encoding: [0xac,0x9d,0x8e,0xeb]
16136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
16236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; Check use of upper case register names rdar://14354073
16336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  add X2, X2, X2
16436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: add x2, x2, x2              ; encoding: [0x42,0x00,0x02,0x8b]
16536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
16636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines;==---------------------------------------------------------------------------==
16736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; Add/Subtract with (optional) extend
16836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines;==---------------------------------------------------------------------------==
16936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
17036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  add w1, w2, w3, uxtb
17136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  add w1, w2, w3, uxth
17236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  add w1, w2, w3, uxtw
17336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  add w1, w2, w3, uxtx
17436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  add w1, w2, w3, sxtb
17536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  add w1, w2, w3, sxth
17636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  add w1, w2, w3, sxtw
17736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  add w1, w2, w3, sxtx
17836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
17936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: add w1, w2, w3, uxtb        ; encoding: [0x41,0x00,0x23,0x0b]
18036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: add w1, w2, w3, uxth        ; encoding: [0x41,0x20,0x23,0x0b]
18136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: add w1, w2, w3, uxtw        ; encoding: [0x41,0x40,0x23,0x0b]
18236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: add w1, w2, w3, uxtx        ; encoding: [0x41,0x60,0x23,0x0b]
18336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: add w1, w2, w3, sxtb        ; encoding: [0x41,0x80,0x23,0x0b]
18436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: add w1, w2, w3, sxth        ; encoding: [0x41,0xa0,0x23,0x0b]
18536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: add w1, w2, w3, sxtw        ; encoding: [0x41,0xc0,0x23,0x0b]
18636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: add w1, w2, w3, sxtx        ; encoding: [0x41,0xe0,0x23,0x0b]
18736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
18836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  add x1, x2, w3, uxtb
18936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  add x1, x2, w3, uxth
19036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  add x1, x2, w3, uxtw
19136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  add x1, x2, w3, sxtb
19236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  add x1, x2, w3, sxth
19336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  add x1, x2, w3, sxtw
19436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
19536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: add x1, x2, w3, uxtb        ; encoding: [0x41,0x00,0x23,0x8b]
19636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: add x1, x2, w3, uxth        ; encoding: [0x41,0x20,0x23,0x8b]
19736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: add x1, x2, w3, uxtw        ; encoding: [0x41,0x40,0x23,0x8b]
19836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: add x1, x2, w3, sxtb        ; encoding: [0x41,0x80,0x23,0x8b]
19936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: add x1, x2, w3, sxth        ; encoding: [0x41,0xa0,0x23,0x8b]
20036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: add x1, x2, w3, sxtw        ; encoding: [0x41,0xc0,0x23,0x8b]
20136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
20236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  add w1, wsp, w3
20336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  add w1, wsp, w3, uxtw #0
20436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  add w2, wsp, w3, lsl #1
20536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  add sp, x2, x3
20636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  add sp, x2, x3, uxtx #0
20736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
20836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: add w1, wsp, w3             ; encoding: [0xe1,0x43,0x23,0x0b]
20936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: add w1, wsp, w3             ; encoding: [0xe1,0x43,0x23,0x0b]
210dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines; CHECK: add w2, wsp, w3, lsl #1     ; encoding: [0xe2,0x47,0x23,0x0b]
21136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: add sp, x2, x3              ; encoding: [0x5f,0x60,0x23,0x8b]
21236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: add sp, x2, x3              ; encoding: [0x5f,0x60,0x23,0x8b]
21336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
21436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sub w1, w2, w3, uxtb
21536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sub w1, w2, w3, uxth
21636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sub w1, w2, w3, uxtw
21736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sub w1, w2, w3, uxtx
21836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sub w1, w2, w3, sxtb
21936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sub w1, w2, w3, sxth
22036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sub w1, w2, w3, sxtw
22136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sub w1, w2, w3, sxtx
22236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
22336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sub w1, w2, w3, uxtb        ; encoding: [0x41,0x00,0x23,0x4b]
22436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sub w1, w2, w3, uxth        ; encoding: [0x41,0x20,0x23,0x4b]
22536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sub w1, w2, w3, uxtw        ; encoding: [0x41,0x40,0x23,0x4b]
22636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sub w1, w2, w3, uxtx        ; encoding: [0x41,0x60,0x23,0x4b]
22736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sub w1, w2, w3, sxtb        ; encoding: [0x41,0x80,0x23,0x4b]
22836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sub w1, w2, w3, sxth        ; encoding: [0x41,0xa0,0x23,0x4b]
22936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sub w1, w2, w3, sxtw        ; encoding: [0x41,0xc0,0x23,0x4b]
23036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sub w1, w2, w3, sxtx        ; encoding: [0x41,0xe0,0x23,0x4b]
23136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
23236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sub x1, x2, w3, uxtb
23336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sub x1, x2, w3, uxth
23436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sub x1, x2, w3, uxtw
23536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sub x1, x2, w3, sxtb
23636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sub x1, x2, w3, sxth
23736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sub x1, x2, w3, sxtw
23836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
23936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sub x1, x2, w3, uxtb        ; encoding: [0x41,0x00,0x23,0xcb]
24036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sub x1, x2, w3, uxth        ; encoding: [0x41,0x20,0x23,0xcb]
24136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sub x1, x2, w3, uxtw        ; encoding: [0x41,0x40,0x23,0xcb]
24236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sub x1, x2, w3, sxtb        ; encoding: [0x41,0x80,0x23,0xcb]
24336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sub x1, x2, w3, sxth        ; encoding: [0x41,0xa0,0x23,0xcb]
24436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sub x1, x2, w3, sxtw        ; encoding: [0x41,0xc0,0x23,0xcb]
24536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
24636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sub w1, wsp, w3
24736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sub w1, wsp, w3, uxtw #0
24836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sub sp, x2, x3
24936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sub sp, x2, x3, uxtx #0
25036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sub sp, x3, x7, lsl #4
25136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
25236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sub w1, wsp, w3             ; encoding: [0xe1,0x43,0x23,0x4b]
25336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sub w1, wsp, w3             ; encoding: [0xe1,0x43,0x23,0x4b]
25436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sub sp, x2, x3              ; encoding: [0x5f,0x60,0x23,0xcb]
25536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sub sp, x2, x3              ; encoding: [0x5f,0x60,0x23,0xcb]
25636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sp, x3, x7, lsl #4          ; encoding: [0x7f,0x70,0x27,0xcb]
25736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
25836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  adds w1, w2, w3, uxtb
25936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  adds w1, w2, w3, uxth
26036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  adds w1, w2, w3, uxtw
26136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  adds w1, w2, w3, uxtx
26236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  adds w1, w2, w3, sxtb
26336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  adds w1, w2, w3, sxth
26436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  adds w1, w2, w3, sxtw
26536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  adds w1, w2, w3, sxtx
26636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
26736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: adds w1, w2, w3, uxtb       ; encoding: [0x41,0x00,0x23,0x2b]
26836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: adds w1, w2, w3, uxth       ; encoding: [0x41,0x20,0x23,0x2b]
26936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: adds w1, w2, w3, uxtw       ; encoding: [0x41,0x40,0x23,0x2b]
27036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: adds w1, w2, w3, uxtx       ; encoding: [0x41,0x60,0x23,0x2b]
27136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: adds w1, w2, w3, sxtb       ; encoding: [0x41,0x80,0x23,0x2b]
27236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: adds w1, w2, w3, sxth       ; encoding: [0x41,0xa0,0x23,0x2b]
27336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: adds w1, w2, w3, sxtw       ; encoding: [0x41,0xc0,0x23,0x2b]
27436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: adds w1, w2, w3, sxtx       ; encoding: [0x41,0xe0,0x23,0x2b]
27536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
27636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  adds x1, x2, w3, uxtb
27736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  adds x1, x2, w3, uxth
27836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  adds x1, x2, w3, uxtw
27936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  adds x1, x2, w3, uxtx
28036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  adds x1, x2, w3, sxtb
28136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  adds x1, x2, w3, sxth
28236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  adds x1, x2, w3, sxtw
28336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  adds x1, x2, w3, sxtx
28436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
28536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: adds x1, x2, w3, uxtb       ; encoding: [0x41,0x00,0x23,0xab]
28636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: adds x1, x2, w3, uxth       ; encoding: [0x41,0x20,0x23,0xab]
28736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: adds x1, x2, w3, uxtw       ; encoding: [0x41,0x40,0x23,0xab]
28836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: adds x1, x2, w3, uxtx       ; encoding: [0x41,0x60,0x23,0xab]
28936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: adds x1, x2, w3, sxtb       ; encoding: [0x41,0x80,0x23,0xab]
29036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: adds x1, x2, w3, sxth       ; encoding: [0x41,0xa0,0x23,0xab]
29136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: adds x1, x2, w3, sxtw       ; encoding: [0x41,0xc0,0x23,0xab]
29236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: adds x1, x2, w3, sxtx       ; encoding: [0x41,0xe0,0x23,0xab]
29336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
29436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  adds w1, wsp, w3
29536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  adds w1, wsp, w3, uxtw #0
29636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  adds wzr, wsp, w3, lsl #4
29736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
29836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: adds w1, wsp, w3            ; encoding: [0xe1,0x43,0x23,0x2b]
29936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: adds w1, wsp, w3            ; encoding: [0xe1,0x43,0x23,0x2b]
300dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines; CHECK: cmn wsp, w3, lsl #4         ; encoding: [0xff,0x53,0x23,0x2b]
30136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
30236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  subs w1, w2, w3, uxtb
30336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  subs w1, w2, w3, uxth
30436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  subs w1, w2, w3, uxtw
30536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  subs w1, w2, w3, uxtx
30636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  subs w1, w2, w3, sxtb
30736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  subs w1, w2, w3, sxth
30836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  subs w1, w2, w3, sxtw
30936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  subs w1, w2, w3, sxtx
31036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
31136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: subs w1, w2, w3, uxtb       ; encoding: [0x41,0x00,0x23,0x6b]
31236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: subs w1, w2, w3, uxth       ; encoding: [0x41,0x20,0x23,0x6b]
31336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: subs w1, w2, w3, uxtw       ; encoding: [0x41,0x40,0x23,0x6b]
31436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: subs w1, w2, w3, uxtx       ; encoding: [0x41,0x60,0x23,0x6b]
31536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: subs w1, w2, w3, sxtb       ; encoding: [0x41,0x80,0x23,0x6b]
31636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: subs w1, w2, w3, sxth       ; encoding: [0x41,0xa0,0x23,0x6b]
31736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: subs w1, w2, w3, sxtw       ; encoding: [0x41,0xc0,0x23,0x6b]
31836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: subs w1, w2, w3, sxtx       ; encoding: [0x41,0xe0,0x23,0x6b]
31936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
32036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  subs x1, x2, w3, uxtb
32136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  subs x1, x2, w3, uxth
32236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  subs x1, x2, w3, uxtw
32336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  subs x1, x2, w3, uxtx
32436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  subs x1, x2, w3, sxtb
32536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  subs x1, x2, w3, sxth
32636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  subs x1, x2, w3, sxtw
32736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  subs x1, x2, w3, sxtx
32836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
32936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: subs x1, x2, w3, uxtb       ; encoding: [0x41,0x00,0x23,0xeb]
33036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: subs x1, x2, w3, uxth       ; encoding: [0x41,0x20,0x23,0xeb]
33136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: subs x1, x2, w3, uxtw       ; encoding: [0x41,0x40,0x23,0xeb]
33236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: subs x1, x2, w3, uxtx       ; encoding: [0x41,0x60,0x23,0xeb]
33336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: subs x1, x2, w3, sxtb       ; encoding: [0x41,0x80,0x23,0xeb]
33436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: subs x1, x2, w3, sxth       ; encoding: [0x41,0xa0,0x23,0xeb]
33536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: subs x1, x2, w3, sxtw       ; encoding: [0x41,0xc0,0x23,0xeb]
33636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: subs x1, x2, w3, sxtx       ; encoding: [0x41,0xe0,0x23,0xeb]
33736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
33836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  subs w1, wsp, w3
33936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  subs w1, wsp, w3, uxtw #0
34036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
34136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: subs w1, wsp, w3            ; encoding: [0xe1,0x43,0x23,0x6b]
34236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: subs w1, wsp, w3            ; encoding: [0xe1,0x43,0x23,0x6b]
34336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
34436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  cmp wsp, w9, lsl #0
34536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  subs x3, sp, x9, lsl #2
34636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  cmp wsp, w8, uxtw
34736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  subs wzr, wsp, w8, uxtw
34836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  cmp sp, w8, uxtw
34936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  subs xzr, sp, w8, uxtw
35036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
351dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines; CHECK: cmp wsp, w9                 ; encoding: [0xff,0x43,0x29,0x6b]
35236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: subs x3, sp, x9, lsl #2     ; encoding: [0xe3,0x6b,0x29,0xeb]
35336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: cmp wsp, w8                 ; encoding: [0xff,0x43,0x28,0x6b]
35436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: cmp wsp, w8                 ; encoding: [0xff,0x43,0x28,0x6b]
355dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines; CHECK: cmp sp, w8, uxtw            ; encoding: [0xff,0x43,0x28,0xeb]
356dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines; CHECK: cmp sp, w8, uxtw            ; encoding: [0xff,0x43,0x28,0xeb]
35736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
35836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sub wsp, w9, w8, uxtw
35936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sub w1, wsp, w8, uxtw
36036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sub wsp, wsp, w8, uxtw
36136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sub sp, x9, w8, uxtw
36236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sub x1, sp, w8, uxtw
36336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sub sp, sp, w8, uxtw
36436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  subs w1, wsp, w8, uxtw
36536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  subs x1, sp, w8, uxtw
36636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
36736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sub wsp, w9, w8             ; encoding: [0x3f,0x41,0x28,0x4b]
36836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sub w1, wsp, w8             ; encoding: [0xe1,0x43,0x28,0x4b]
36936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sub wsp, wsp, w8            ; encoding: [0xff,0x43,0x28,0x4b]
370dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines; CHECK: sub sp, x9, w8, uxtw        ; encoding: [0x3f,0x41,0x28,0xcb]
371dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines; CHECK: sub x1, sp, w8, uxtw        ; encoding: [0xe1,0x43,0x28,0xcb]
372dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines; CHECK: sub sp, sp, w8, uxtw        ; encoding: [0xff,0x43,0x28,0xcb]
37336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: subs w1, wsp, w8            ; encoding: [0xe1,0x43,0x28,0x6b]
374dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines; CHECK: subs x1, sp, w8, uxtw       ; encoding: [0xe1,0x43,0x28,0xeb]
37536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
37636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines;==---------------------------------------------------------------------------==
37736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; Signed/Unsigned divide
37836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines;==---------------------------------------------------------------------------==
37936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
38036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sdiv w1, w2, w3
38136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  sdiv x1, x2, x3
38236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  udiv w1, w2, w3
38336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  udiv x1, x2, x3
38436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
38536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sdiv w1, w2, w3             ; encoding: [0x41,0x0c,0xc3,0x1a]
38636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: sdiv x1, x2, x3             ; encoding: [0x41,0x0c,0xc3,0x9a]
38736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: udiv w1, w2, w3             ; encoding: [0x41,0x08,0xc3,0x1a]
38836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: udiv x1, x2, x3             ; encoding: [0x41,0x08,0xc3,0x9a]
38936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
39036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines;==---------------------------------------------------------------------------==
39136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; Variable shifts
39236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines;==---------------------------------------------------------------------------==
39336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
39436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  asrv w1, w2, w3
39536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  asrv x1, x2, x3
39636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  asr w1, w2, w3
39736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  asr x1, x2, x3
39836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  lslv w1, w2, w3
39936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  lslv x1, x2, x3
40036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  lsl w1, w2, w3
40136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  lsl x1, x2, x3
40236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  lsrv w1, w2, w3
40336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  lsrv x1, x2, x3
40436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  lsr w1, w2, w3
40536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  lsr x1, x2, x3
40636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  rorv w1, w2, w3
40736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  rorv x1, x2, x3
40836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  ror w1, w2, w3
40936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  ror x1, x2, x3
41036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
41136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x41,0x28,0xc3,0x1a]
41236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x41,0x28,0xc3,0x9a]
41336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x41,0x28,0xc3,0x1a]
41436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x41,0x28,0xc3,0x9a]
41536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x41,0x20,0xc3,0x1a]
41636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x41,0x20,0xc3,0x9a]
41736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x41,0x20,0xc3,0x1a]
41836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x41,0x20,0xc3,0x9a]
41936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x41,0x24,0xc3,0x1a]
42036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x41,0x24,0xc3,0x9a]
42136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x41,0x24,0xc3,0x1a]
42236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x41,0x24,0xc3,0x9a]
42336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x41,0x2c,0xc3,0x1a]
42436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x41,0x2c,0xc3,0x9a]
42536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x41,0x2c,0xc3,0x1a]
42636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x41,0x2c,0xc3,0x9a]
42736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
42836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines;==---------------------------------------------------------------------------==
42936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; One operand instructions
43036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines;==---------------------------------------------------------------------------==
43136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
43236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  cls w1, w2
43336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  cls x1, x2
43436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  clz w1, w2
43536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  clz x1, x2
43636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  rbit w1, w2
43736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  rbit x1, x2
43836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  rev w1, w2
43936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  rev x1, x2
44036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  rev16 w1, w2
44136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  rev16 x1, x2
44236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  rev32 x1, x2
44336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
44436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x41,0x14,0xc0,0x5a]
44536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x41,0x14,0xc0,0xda]
44636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x41,0x10,0xc0,0x5a]
44736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x41,0x10,0xc0,0xda]
44836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x41,0x00,0xc0,0x5a]
44936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x41,0x00,0xc0,0xda]
45036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x41,0x08,0xc0,0x5a]
45136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x41,0x0c,0xc0,0xda]
45236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x41,0x04,0xc0,0x5a]
45336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x41,0x04,0xc0,0xda]
45436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x41,0x08,0xc0,0xda]
45536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
45636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines;==---------------------------------------------------------------------------==
45736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; 6.6.1 Multiply-add instructions
45836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines;==---------------------------------------------------------------------------==
45936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
46036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  madd   w1, w2, w3, w4
46136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  madd   x1, x2, x3, x4
46236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  msub   w1, w2, w3, w4
46336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  msub   x1, x2, x3, x4
46436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  smaddl x1, w2, w3, x4
46536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  smsubl x1, w2, w3, x4
46636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  umaddl x1, w2, w3, x4
46736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  umsubl x1, w2, w3, x4
46836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
46936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: madd   w1, w2, w3, w4       ; encoding: [0x41,0x10,0x03,0x1b]
47036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: madd   x1, x2, x3, x4       ; encoding: [0x41,0x10,0x03,0x9b]
47136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: msub   w1, w2, w3, w4       ; encoding: [0x41,0x90,0x03,0x1b]
47236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: msub   x1, x2, x3, x4       ; encoding: [0x41,0x90,0x03,0x9b]
47336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: smaddl x1, w2, w3, x4       ; encoding: [0x41,0x10,0x23,0x9b]
47436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: smsubl x1, w2, w3, x4       ; encoding: [0x41,0x90,0x23,0x9b]
47536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: umaddl x1, w2, w3, x4       ; encoding: [0x41,0x10,0xa3,0x9b]
47636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: umsubl x1, w2, w3, x4       ; encoding: [0x41,0x90,0xa3,0x9b]
47736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
47836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines;==---------------------------------------------------------------------------==
47936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; Multiply-high instructions
48036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines;==---------------------------------------------------------------------------==
48136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
48236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  smulh x1, x2, x3
48336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  umulh x1, x2, x3
48436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
48536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: smulh x1, x2, x3            ; encoding: [0x41,0x7c,0x43,0x9b]
48636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: umulh x1, x2, x3            ; encoding: [0x41,0x7c,0xc3,0x9b]
48736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
48836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines;==---------------------------------------------------------------------------==
48936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; Move immediate instructions
49036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines;==---------------------------------------------------------------------------==
49136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
49236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  movz w0, #1
49336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  movz x0, #1
49436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  movz w0, #1, lsl #16
49536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  movz x0, #1, lsl #16
49636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
497de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar; CHECK: mov w0, #1                 ; encoding: [0x20,0x00,0x80,0x52]
498de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar; CHECK: mov x0, #1                 ; encoding: [0x20,0x00,0x80,0xd2]
499de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar; CHECK: mov w0, #65536             ; encoding: [0x20,0x00,0xa0,0x52]
500de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar; CHECK: mov x0, #65536             ; encoding: [0x20,0x00,0xa0,0xd2]
50136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
50236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  movn w0, #2
50336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  movn x0, #2
50436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  movn w0, #2, lsl #16
50536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  movn x0, #2, lsl #16
50636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
507de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar; CHECK: mov w0, #-3                 ; encoding: [0x40,0x00,0x80,0x12]
508de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar; CHECK: mov x0, #-3                 ; encoding: [0x40,0x00,0x80,0x92]
509de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar; CHECK: mov w0, #-131073            ; encoding: [0x40,0x00,0xa0,0x12]
510de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar; CHECK: mov x0, #-131073            ; encoding: [0x40,0x00,0xa0,0x92]
51136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
51236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  movk w0, #1
51336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  movk x0, #1
51436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  movk w0, #1, lsl #16
51536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  movk x0, #1, lsl #16
51636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
517de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar; CHECK: movk w0, #1                 ; encoding: [0x20,0x00,0x80,0x72]
518de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar; CHECK: movk x0, #1                 ; encoding: [0x20,0x00,0x80,0xf2]
519de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar; CHECK: movk w0, #1, lsl #16        ; encoding: [0x20,0x00,0xa0,0x72]
520de2d8694e25a814696358e95141f4b1aa4d8847ePirama Arumuga Nainar; CHECK: movk x0, #1, lsl #16        ; encoding: [0x20,0x00,0xa0,0xf2]
52136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
52236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines;==---------------------------------------------------------------------------==
52336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; Conditionally set flags instructions
52436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines;==---------------------------------------------------------------------------==
52536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
52636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  ccmn w1, #2, #3, eq
52736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  ccmn x1, #2, #3, eq
52836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  ccmp w1, #2, #3, eq
52936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  ccmp x1, #2, #3, eq
53036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
53136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x23,0x08,0x42,0x3a]
53236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x23,0x08,0x42,0xba]
53336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x23,0x08,0x42,0x7a]
53436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x23,0x08,0x42,0xfa]
53536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
53636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  ccmn w1, w2, #3, eq
53736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  ccmn x1, x2, #3, eq
53836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  ccmp w1, w2, #3, eq
53936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  ccmp x1, x2, #3, eq
54036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
54136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x23,0x00,0x42,0x3a]
54236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x23,0x00,0x42,0xba]
54336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x23,0x00,0x42,0x7a]
54436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x23,0x00,0x42,0xfa]
54536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
54636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines;==---------------------------------------------------------------------------==
54736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; Conditional select instructions
54836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines;==---------------------------------------------------------------------------==
54936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
55036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  csel w1, w2, w3, eq
55136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  csel x1, x2, x3, eq
55236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  csinc w1, w2, w3, eq
55336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  csinc x1, x2, x3, eq
55436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  csinv w1, w2, w3, eq
55536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  csinv x1, x2, x3, eq
55636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  csneg w1, w2, w3, eq
55736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  csneg x1, x2, x3, eq
55836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
55936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x41,0x00,0x83,0x1a]
56036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x41,0x00,0x83,0x9a]
56136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x41,0x04,0x83,0x1a]
56236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x41,0x04,0x83,0x9a]
56336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x41,0x00,0x83,0x5a]
56436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x41,0x00,0x83,0xda]
56536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x41,0x04,0x83,0x5a]
56636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: encoding: [0x41,0x04,0x83,0xda]
56736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
56836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; Make sure we handle upper case, too. In particular, condition codes.
56936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  CSEL W16, W7, W27, EQ
57036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  CSEL W15, W6, W26, NE
57136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  CSEL W14, W5, W25, CS
57236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  CSEL W13, W4, W24, HS
57336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  csel w12, w3, w23, CC
57436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  csel w11, w2, w22, LO
57536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  csel w10, w1, w21, MI
57636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  csel x9, x9, x1, PL
57736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  csel x8, x8, x2, VS
57836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  CSEL X7, X7, X3, VC
57936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  CSEL X6, X7, X4, HI
58036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  CSEL X5, X6, X5, LS
58136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  CSEL X4, X5, X6, GE
58236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  csel x3, x4, x7, LT
58336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  csel x2, x3, x8, GT
58436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  csel x1, x2, x9, LE
58536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  csel x10, x1, x20, AL
58636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
58736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: csel	w16, w7, w27, eq        ; encoding: [0xf0,0x00,0x9b,0x1a]
58836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: csel	w15, w6, w26, ne        ; encoding: [0xcf,0x10,0x9a,0x1a]
589dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines; CHECK: csel	w14, w5, w25, hs        ; encoding: [0xae,0x20,0x99,0x1a]
590dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines; CHECK: csel	w13, w4, w24, hs        ; encoding: [0x8d,0x20,0x98,0x1a]
591dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines; CHECK: csel	w12, w3, w23, lo        ; encoding: [0x6c,0x30,0x97,0x1a]
592dce4a407a24b04eebc6a376f8e62b41aaa7b071fStephen Hines; CHECK: csel	w11, w2, w22, lo        ; encoding: [0x4b,0x30,0x96,0x1a]
59336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: csel	w10, w1, w21, mi        ; encoding: [0x2a,0x40,0x95,0x1a]
59436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: csel	x9, x9, x1, pl          ; encoding: [0x29,0x51,0x81,0x9a]
59536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: csel	x8, x8, x2, vs          ; encoding: [0x08,0x61,0x82,0x9a]
59636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: csel	x7, x7, x3, vc          ; encoding: [0xe7,0x70,0x83,0x9a]
59736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: csel	x6, x7, x4, hi          ; encoding: [0xe6,0x80,0x84,0x9a]
59836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: csel	x5, x6, x5, ls          ; encoding: [0xc5,0x90,0x85,0x9a]
59936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: csel	x4, x5, x6, ge          ; encoding: [0xa4,0xa0,0x86,0x9a]
60036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: csel	x3, x4, x7, lt          ; encoding: [0x83,0xb0,0x87,0x9a]
60136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: csel	x2, x3, x8, gt          ; encoding: [0x62,0xc0,0x88,0x9a]
60236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: csel	x1, x2, x9, le          ; encoding: [0x41,0xd0,0x89,0x9a]
60336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: csel	x10, x1, x20, al        ; encoding: [0x2a,0xe0,0x94,0x9a]
60436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
60536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
60636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines;==---------------------------------------------------------------------------==
60736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; Scalar saturating arithmetic
60836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines;==---------------------------------------------------------------------------==
60936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  uqxtn b4, h2
61036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  uqxtn h2, s3
61136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  uqxtn s9, d2
61236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
61336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: uqxtn b4, h2                  ; encoding: [0x44,0x48,0x21,0x7e]
61436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: uqxtn h2, s3                  ; encoding: [0x62,0x48,0x61,0x7e]
61536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines; CHECK: uqxtn s9, d2                  ; encoding: [0x49,0x48,0xa1,0x7e]
616