; RUN: llvm-mc -triple arm64-apple-darwin -mattr=crypto -output-asm-variant=1 -show-encoding < %s | FileCheck %s

foo:

  abs.8b  v0, v0
  abs.16b v0, v0
  abs.4h  v0, v0
  abs.8h  v0, v0
  abs.2s  v0, v0
  abs.4s  v0, v0

; CHECK: abs.8b  v0, v0              ; encoding: [0x00,0xb8,0x20,0x0e]
; CHECK: abs.16b v0, v0              ; encoding: [0x00,0xb8,0x20,0x4e]
; CHECK: abs.4h  v0, v0              ; encoding: [0x00,0xb8,0x60,0x0e]
; CHECK: abs.8h  v0, v0              ; encoding: [0x00,0xb8,0x60,0x4e]
; CHECK: abs.2s  v0, v0              ; encoding: [0x00,0xb8,0xa0,0x0e]
; CHECK: abs.4s  v0, v0              ; encoding: [0x00,0xb8,0xa0,0x4e]

  add.8b  v0, v0, v0
  add.16b v0, v0, v0
  add.4h  v0, v0, v0
  add.8h  v0, v0, v0
  add.2s  v0, v0, v0
  add.4s  v0, v0, v0
  add.2d  v0, v0, v0

; CHECK: add.8b  v0, v0, v0          ; encoding: [0x00,0x84,0x20,0x0e]
; CHECK: add.16b v0, v0, v0          ; encoding: [0x00,0x84,0x20,0x4e]
; CHECK: add.4h  v0, v0, v0          ; encoding: [0x00,0x84,0x60,0x0e]
; CHECK: add.8h  v0, v0, v0          ; encoding: [0x00,0x84,0x60,0x4e]
; CHECK: add.2s  v0, v0, v0          ; encoding: [0x00,0x84,0xa0,0x0e]
; CHECK: add.4s  v0, v0, v0          ; encoding: [0x00,0x84,0xa0,0x4e]
; CHECK: add.2d  v0, v0, v0          ; encoding: [0x00,0x84,0xe0,0x4e]

  add d1, d2, d3

; CHECK: add d1, d2, d3              ; encoding: [0x41,0x84,0xe3,0x5e]

  addhn.8b   v0, v0, v0
  addhn2.16b v0, v0, v0
  addhn.4h   v0, v0, v0
  addhn2.8h  v0, v0, v0
  addhn.2s   v0, v0, v0
  addhn2.4s  v0, v0, v0

; CHECK: addhn.8b   v0, v0, v0       ; encoding: [0x00,0x40,0x20,0x0e]
; CHECK: addhn2.16b v0, v0, v0       ; encoding: [0x00,0x40,0x20,0x4e]
; CHECK: addhn.4h   v0, v0, v0       ; encoding: [0x00,0x40,0x60,0x0e]
; CHECK: addhn2.8h  v0, v0, v0       ; encoding: [0x00,0x40,0x60,0x4e]
; CHECK: addhn.2s   v0, v0, v0       ; encoding: [0x00,0x40,0xa0,0x0e]
; CHECK: addhn2.4s  v0, v0, v0       ; encoding: [0x00,0x40,0xa0,0x4e]

  addp.8b  v0, v0, v0
  addp.16b v0, v0, v0
  addp.4h  v0, v0, v0
  addp.8h  v0, v0, v0
  addp.2s  v0, v0, v0
  addp.4s  v0, v0, v0
  addp.2d  v0, v0, v0

; CHECK: addp.8b   v0, v0, v0        ; encoding: [0x00,0xbc,0x20,0x0e]
; CHECK: addp.16b  v0, v0, v0        ; encoding: [0x00,0xbc,0x20,0x4e]
; CHECK: addp.4h   v0, v0, v0        ; encoding: [0x00,0xbc,0x60,0x0e]
; CHECK: addp.8h   v0, v0, v0        ; encoding: [0x00,0xbc,0x60,0x4e]
; CHECK: addp.2s   v0, v0, v0        ; encoding: [0x00,0xbc,0xa0,0x0e]
; CHECK: addp.4s   v0, v0, v0        ; encoding: [0x00,0xbc,0xa0,0x4e]
; CHECK: addp.2d   v0, v0, v0        ; encoding: [0x00,0xbc,0xe0,0x4e]

  addp.2d  d0, v0

; CHECK: addp.2d d0, v0              ; encoding: [0x00,0xb8,0xf1,0x5e]

  addv.8b  b0, v0
  addv.16b b0, v0
  addv.4h  h0, v0
  addv.8h  h0, v0
  addv.4s  s0, v0

; CHECK: addv.8b  b0, v0             ; encoding: [0x00,0xb8,0x31,0x0e]
; CHECK: addv.16b b0, v0             ; encoding: [0x00,0xb8,0x31,0x4e]
; CHECK: addv.4h  h0, v0             ; encoding: [0x00,0xb8,0x71,0x0e]
; CHECK: addv.8h  h0, v0             ; encoding: [0x00,0xb8,0x71,0x4e]
; CHECK: addv.4s  s0, v0             ; encoding: [0x00,0xb8,0xb1,0x4e]


; INS/DUP
  dup.2d  v0, x3
  dup.4s  v0, w3
  dup.2s  v0, w3
  dup.8h  v0, w3
  dup.4h  v0, w3
  dup.16b v0, w3
  dup.8b  v0, w3

  dup v1.2d, x3
  dup v2.4s, w4
  dup v3.2s, w5
  dup v4.8h, w6
  dup v5.4h, w7
  dup v6.16b, w8
  dup v7.8b, w9

; CHECK: dup.2d  v0, x3              ; encoding: [0x60,0x0c,0x08,0x4e]
; CHECK: dup.4s  v0, w3              ; encoding: [0x60,0x0c,0x04,0x4e]
; CHECK: dup.2s  v0, w3              ; encoding: [0x60,0x0c,0x04,0x0e]
; CHECK: dup.8h  v0, w3              ; encoding: [0x60,0x0c,0x02,0x4e]
; CHECK: dup.4h  v0, w3              ; encoding: [0x60,0x0c,0x02,0x0e]
; CHECK: dup.16b v0, w3              ; encoding: [0x60,0x0c,0x01,0x4e]
; CHECK: dup.8b  v0, w3              ; encoding: [0x60,0x0c,0x01,0x0e]

; CHECK: dup.2d	v1, x3               ; encoding: [0x61,0x0c,0x08,0x4e]
; CHECK: dup.4s	v2, w4               ; encoding: [0x82,0x0c,0x04,0x4e]
; CHECK: dup.2s	v3, w5               ; encoding: [0xa3,0x0c,0x04,0x0e]
; CHECK: dup.8h	v4, w6               ; encoding: [0xc4,0x0c,0x02,0x4e]
; CHECK: dup.4h	v5, w7               ; encoding: [0xe5,0x0c,0x02,0x0e]
; CHECK: dup.16b v6, w8              ; encoding: [0x06,0x0d,0x01,0x4e]
; CHECK: dup.8b	v7, w9               ; encoding: [0x27,0x0d,0x01,0x0e]

  dup.2d  v0, v3[1]
  dup.2s  v0, v3[1]
  dup.4s  v0, v3[1]
  dup.4h  v0, v3[1]
  dup.8h  v0, v3[1]
  dup.8b  v0, v3[1]
  dup.16b v0, v3[1]

  dup v7.2d, v9.d[1]
  dup v6.2s, v8.s[1]
  dup v5.4s, v7.s[2]
  dup v4.4h, v6.h[3]
  dup v3.8h, v5.h[4]
  dup v2.8b, v4.b[5]
  dup v1.16b, v3.b[6]

; CHECK: dup.2d  v0, v3[1]           ; encoding: [0x60,0x04,0x18,0x4e]
; CHECK: dup.2s  v0, v3[1]           ; encoding: [0x60,0x04,0x0c,0x0e]
; CHECK: dup.4s  v0, v3[1]           ; encoding: [0x60,0x04,0x0c,0x4e]
; CHECK: dup.4h  v0, v3[1]           ; encoding: [0x60,0x04,0x06,0x0e]
; CHECK: dup.8h  v0, v3[1]           ; encoding: [0x60,0x04,0x06,0x4e]
; CHECK: dup.8b  v0, v3[1]           ; encoding: [0x60,0x04,0x03,0x0e]
; CHECK: dup.16b v0, v3[1]           ; encoding: [0x60,0x04,0x03,0x4e]

; CHECK: dup.2d  v7, v9[1]            ; encoding: [0x27,0x05,0x18,0x4e]
; CHECK: dup.2s  v6, v8[1]            ; encoding: [0x06,0x05,0x0c,0x0e]
; CHECK: dup.4s  v5, v7[2]            ; encoding: [0xe5,0x04,0x14,0x4e]
; CHECK: dup.4h  v4, v6[3]            ; encoding: [0xc4,0x04,0x0e,0x0e]
; CHECK: dup.8h  v3, v5[4]            ; encoding: [0xa3,0x04,0x12,0x4e]
; CHECK: dup.8b  v2, v4[5]            ; encoding: [0x82,0x04,0x0b,0x0e]
; CHECK: dup.16b v1, v3[6]            ; encoding: [0x61,0x04,0x0d,0x4e]

  dup b3, v4[1]
  dup h3, v4[1]
  dup s3, v4[1]
  dup d3, v4[1]
  dup b3, v4.b[1]
  dup h3, v4.h[1]
  dup s3, v4.s[1]
  dup d3, v4.d[1]

  mov b3, v4[1]
  mov h3, v4[1]
  mov s3, v4[1]
  mov d3, v4[1]
  mov b3, v4.b[1]
  mov h3, v4.h[1]
  mov s3, v4.s[1]
  mov d3, v4.d[1]

; CHECK: mov b3, v4[1]               ; encoding: [0x83,0x04,0x03,0x5e]
; CHECK: mov h3, v4[1]               ; encoding: [0x83,0x04,0x06,0x5e]
; CHECK: mov s3, v4[1]               ; encoding: [0x83,0x04,0x0c,0x5e]
; CHECK: mov d3, v4[1]               ; encoding: [0x83,0x04,0x18,0x5e]
; CHECK: mov b3, v4[1]               ; encoding: [0x83,0x04,0x03,0x5e]
; CHECK: mov h3, v4[1]               ; encoding: [0x83,0x04,0x06,0x5e]
; CHECK: mov s3, v4[1]               ; encoding: [0x83,0x04,0x0c,0x5e]
; CHECK: mov d3, v4[1]               ; encoding: [0x83,0x04,0x18,0x5e]

; CHECK: mov b3, v4[1]               ; encoding: [0x83,0x04,0x03,0x5e]
; CHECK: mov h3, v4[1]               ; encoding: [0x83,0x04,0x06,0x5e]
; CHECK: mov s3, v4[1]               ; encoding: [0x83,0x04,0x0c,0x5e]
; CHECK: mov d3, v4[1]               ; encoding: [0x83,0x04,0x18,0x5e]
; CHECK: mov b3, v4[1]               ; encoding: [0x83,0x04,0x03,0x5e]
; CHECK: mov h3, v4[1]               ; encoding: [0x83,0x04,0x06,0x5e]
; CHECK: mov s3, v4[1]               ; encoding: [0x83,0x04,0x0c,0x5e]
; CHECK: mov d3, v4[1]               ; encoding: [0x83,0x04,0x18,0x5e]

  smov.s x3, v2[2]
  smov   x3, v2.s[2]
  umov.s w3, v2[2]
  umov   w3, v2.s[2]
  umov.d x3, v2[1]
  umov   x3, v2.d[1]

; CHECK: smov.s  x3, v2[2]           ; encoding: [0x43,0x2c,0x14,0x4e]
; CHECK: smov.s  x3, v2[2]           ; encoding: [0x43,0x2c,0x14,0x4e]
; CHECK: mov.s  w3, v2[2]           ; encoding: [0x43,0x3c,0x14,0x0e]
; CHECK: mov.s  w3, v2[2]           ; encoding: [0x43,0x3c,0x14,0x0e]
; CHECK: mov.d  x3, v2[1]           ; encoding: [0x43,0x3c,0x18,0x4e]
; CHECK: mov.d  x3, v2[1]           ; encoding: [0x43,0x3c,0x18,0x4e]

  ; MOV aliases for UMOV instructions above

  mov.s w2, v3[3]
  mov   w5, v7.s[2]
  mov.d x11, v13[1]
  mov   x17, v19.d[0]

; CHECK: mov.s  w2, v3[3]               ; encoding: [0x62,0x3c,0x1c,0x0e]
; CHECK: mov.s  w5, v7[2]               ; encoding: [0xe5,0x3c,0x14,0x0e]
; CHECK: mov.d  x11, v13[1]             ; encoding: [0xab,0x3d,0x18,0x4e]
; CHECK: mov.d  x17, v19[0]             ; encoding: [0x71,0x3e,0x08,0x4e]

  ins.d v2[1], x5
  ins.s v2[1], w5
  ins.h v2[1], w5
  ins.b v2[1], w5

  ins   v2.d[1], x5
  ins   v2.s[1], w5
  ins   v2.h[1], w5
  ins   v2.b[1], w5

; CHECK: ins.d v2[1], x5             ; encoding: [0xa2,0x1c,0x18,0x4e]
; CHECK: ins.s v2[1], w5             ; encoding: [0xa2,0x1c,0x0c,0x4e]
; CHECK: ins.h v2[1], w5             ; encoding: [0xa2,0x1c,0x06,0x4e]
; CHECK: ins.b v2[1], w5             ; encoding: [0xa2,0x1c,0x03,0x4e]

; CHECK: ins.d v2[1], x5             ; encoding: [0xa2,0x1c,0x18,0x4e]
; CHECK: ins.s v2[1], w5             ; encoding: [0xa2,0x1c,0x0c,0x4e]
; CHECK: ins.h v2[1], w5             ; encoding: [0xa2,0x1c,0x06,0x4e]
; CHECK: ins.b v2[1], w5             ; encoding: [0xa2,0x1c,0x03,0x4e]

  ins.d v2[1], v15[1]
  ins.s v2[1], v15[1]
  ins.h v2[1], v15[1]
  ins.b v2[1], v15[1]

  ins   v2.d[1], v15.d[0]
  ins   v2.s[3], v15.s[2]
  ins   v2.h[7], v15.h[3]
  ins   v2.b[10], v15.b[5]

; CHECK: ins.d v2[1], v15[1]         ; encoding: [0xe2,0x45,0x18,0x6e]
; CHECK: ins.s v2[1], v15[1]         ; encoding: [0xe2,0x25,0x0c,0x6e]
; CHECK: ins.h v2[1], v15[1]         ; encoding: [0xe2,0x15,0x06,0x6e]
; CHECK: ins.b v2[1], v15[1]         ; encoding: [0xe2,0x0d,0x03,0x6e]

; CHECK: ins.d v2[1], v15[0]         ; encoding: [0xe2,0x05,0x18,0x6e]
; CHECK: ins.s v2[3], v15[2]         ; encoding: [0xe2,0x45,0x1c,0x6e]
; CHECK: ins.h v2[7], v15[3]         ; encoding: [0xe2,0x35,0x1e,0x6e]
; CHECK: ins.b v2[10], v15[5]        ; encoding: [0xe2,0x2d,0x15,0x6e]

; MOV aliases for the above INS instructions.
  mov.d v2[1], x5
  mov.s v3[1], w6
  mov.h v4[1], w7
  mov.b v5[1], w8

  mov   v9.d[1], x2
  mov   v8.s[1], w3
  mov   v7.h[1], w4
  mov   v6.b[1], w5

  mov.d v1[1], v10[1]
  mov.s v2[1], v11[1]
  mov.h v7[1], v12[1]
  mov.b v8[1], v15[1]

  mov   v2.d[1], v15.d[0]
  mov   v7.s[3], v16.s[2]
  mov   v8.h[7], v17.h[3]
  mov   v9.b[10], v18.b[5]

; CHECK: ins.d	v2[1], x5               ; encoding: [0xa2,0x1c,0x18,0x4e]
; CHECK: ins.s	v3[1], w6               ; encoding: [0xc3,0x1c,0x0c,0x4e]
; CHECK: ins.h	v4[1], w7               ; encoding: [0xe4,0x1c,0x06,0x4e]
; CHECK: ins.b	v5[1], w8               ; encoding: [0x05,0x1d,0x03,0x4e]
; CHECK: ins.d	v9[1], x2               ; encoding: [0x49,0x1c,0x18,0x4e]
; CHECK: ins.s	v8[1], w3               ; encoding: [0x68,0x1c,0x0c,0x4e]
; CHECK: ins.h	v7[1], w4               ; encoding: [0x87,0x1c,0x06,0x4e]
; CHECK: ins.b	v6[1], w5               ; encoding: [0xa6,0x1c,0x03,0x4e]
; CHECK: ins.d	v1[1], v10[1]           ; encoding: [0x41,0x45,0x18,0x6e]
; CHECK: ins.s	v2[1], v11[1]           ; encoding: [0x62,0x25,0x0c,0x6e]
; CHECK: ins.h	v7[1], v12[1]           ; encoding: [0x87,0x15,0x06,0x6e]
; CHECK: ins.b	v8[1], v15[1]           ; encoding: [0xe8,0x0d,0x03,0x6e]
; CHECK: ins.d	v2[1], v15[0]           ; encoding: [0xe2,0x05,0x18,0x6e]
; CHECK: ins.s	v7[3], v16[2]           ; encoding: [0x07,0x46,0x1c,0x6e]
; CHECK: ins.h	v8[7], v17[3]           ; encoding: [0x28,0x36,0x1e,0x6e]
; CHECK: ins.b	v9[10], v18[5]          ; encoding: [0x49,0x2e,0x15,0x6e]


  and.8b  v0, v0, v0
  and.16b v0, v0, v0

; CHECK: and.8b  v0, v0, v0          ; encoding: [0x00,0x1c,0x20,0x0e]
; CHECK: and.16b v0, v0, v0          ; encoding: [0x00,0x1c,0x20,0x4e]

  bic.8b  v0, v0, v0

; CHECK: bic.8b  v0, v0, v0          ; encoding: [0x00,0x1c,0x60,0x0e]

  cmeq.8b v0, v0, v0
  cmge.8b v0, v0, v0
  cmgt.8b v0, v0, v0
  cmhi.8b v0, v0, v0
  cmhs.8b v0, v0, v0
  cmtst.8b v0, v0, v0
  fabd.2s v0, v0, v0
  facge.2s  v0, v0, v0
  facgt.2s  v0, v0, v0
  faddp.2s v0, v0, v0
  fadd.2s v0, v0, v0
  fcmeq.2s  v0, v0, v0
  fcmge.2s  v0, v0, v0
  fcmgt.2s  v0, v0, v0
  fdiv.2s v0, v0, v0
  fmaxnmp.2s v0, v0, v0
  fmaxnm.2s v0, v0, v0
  fmaxp.2s v0, v0, v0
  fmax.2s v0, v0, v0
  fminnmp.2s v0, v0, v0
  fminnm.2s v0, v0, v0
  fminp.2s v0, v0, v0
  fmin.2s v0, v0, v0
  fmla.2s v0, v0, v0
  fmls.2s v0, v0, v0
  fmulx.2s v0, v0, v0
  fmul.2s v0, v0, v0
  fmulx	d2, d3, d1
  fmulx	s2, s3, s1
  frecps.2s v0, v0, v0
  frsqrts.2s v0, v0, v0
  fsub.2s v0, v0, v0
  mla.8b v0, v0, v0
  mls.8b v0, v0, v0
  mul.8b v0, v0, v0
  pmul.8b v0, v0, v0
  saba.8b v0, v0, v0
  sabd.8b v0, v0, v0
  shadd.8b v0, v0, v0
  shsub.8b v0, v0, v0
  smaxp.8b v0, v0, v0
  smax.8b v0, v0, v0
  sminp.8b v0, v0, v0
  smin.8b v0, v0, v0
  sqadd.8b v0, v0, v0
  sqdmulh.4h v0, v0, v0
  sqrdmulh.4h v0, v0, v0
  sqrshl.8b v0, v0, v0
  sqshl.8b v0, v0, v0
  sqsub.8b v0, v0, v0
  srhadd.8b v0, v0, v0
  srshl.8b v0, v0, v0
  sshl.8b v0, v0, v0
  sub.8b v0, v0, v0
  uaba.8b v0, v0, v0
  uabd.8b v0, v0, v0
  uhadd.8b v0, v0, v0
  uhsub.8b v0, v0, v0
  umaxp.8b v0, v0, v0
  umax.8b v0, v0, v0
  uminp.8b v0, v0, v0
  umin.8b v0, v0, v0
  uqadd.8b v0, v0, v0
  uqrshl.8b v0, v0, v0
  uqshl.8b v0, v0, v0
  uqsub.8b v0, v0, v0
  urhadd.8b v0, v0, v0
  urshl.8b v0, v0, v0
  ushl.8b v0, v0, v0

; CHECK: cmeq.8b	v0, v0, v0              ; encoding: [0x00,0x8c,0x20,0x2e]
; CHECK: cmge.8b	v0, v0, v0              ; encoding: [0x00,0x3c,0x20,0x0e]
; CHECK: cmgt.8b	v0, v0, v0              ; encoding: [0x00,0x34,0x20,0x0e]
; CHECK: cmhi.8b	v0, v0, v0              ; encoding: [0x00,0x34,0x20,0x2e]
; CHECK: cmhs.8b	v0, v0, v0              ; encoding: [0x00,0x3c,0x20,0x2e]
; CHECK: cmtst.8b	v0, v0, v0      ; encoding: [0x00,0x8c,0x20,0x0e]
; CHECK: fabd.2s	v0, v0, v0              ; encoding: [0x00,0xd4,0xa0,0x2e]
; CHECK: facge.2s	v0, v0, v0      ; encoding: [0x00,0xec,0x20,0x2e]
; CHECK: facgt.2s	v0, v0, v0      ; encoding: [0x00,0xec,0xa0,0x2e]
; CHECK: faddp.2s	v0, v0, v0      ; encoding: [0x00,0xd4,0x20,0x2e]
; CHECK: fadd.2s	v0, v0, v0              ; encoding: [0x00,0xd4,0x20,0x0e]
; CHECK: fcmeq.2s	v0, v0, v0      ; encoding: [0x00,0xe4,0x20,0x0e]
; CHECK: fcmge.2s	v0, v0, v0      ; encoding: [0x00,0xe4,0x20,0x2e]
; CHECK: fcmgt.2s	v0, v0, v0      ; encoding: [0x00,0xe4,0xa0,0x2e]
; CHECK: fdiv.2s	v0, v0, v0              ; encoding: [0x00,0xfc,0x20,0x2e]
; CHECK: fmaxnmp.2s	v0, v0, v0      ; encoding: [0x00,0xc4,0x20,0x2e]
; CHECK: fmaxnm.2s	v0, v0, v0      ; encoding: [0x00,0xc4,0x20,0x0e]
; CHECK: fmaxp.2s	v0, v0, v0      ; encoding: [0x00,0xf4,0x20,0x2e]
; CHECK: fmax.2s	v0, v0, v0              ; encoding: [0x00,0xf4,0x20,0x0e]
; CHECK: fminnmp.2s	v0, v0, v0      ; encoding: [0x00,0xc4,0xa0,0x2e]
; CHECK: fminnm.2s	v0, v0, v0      ; encoding: [0x00,0xc4,0xa0,0x0e]
; CHECK: fminp.2s	v0, v0, v0      ; encoding: [0x00,0xf4,0xa0,0x2e]
; CHECK: fmin.2s	v0, v0, v0              ; encoding: [0x00,0xf4,0xa0,0x0e]
; CHECK: fmla.2s	v0, v0, v0              ; encoding: [0x00,0xcc,0x20,0x0e]
; CHECK: fmls.2s	v0, v0, v0              ; encoding: [0x00,0xcc,0xa0,0x0e]
; CHECK: fmulx.2s	v0, v0, v0      ; encoding: [0x00,0xdc,0x20,0x0e]

; CHECK: fmul.2s	v0, v0, v0              ; encoding: [0x00,0xdc,0x20,0x2e]
; CHECK: fmulx	d2, d3, d1              ; encoding: [0x62,0xdc,0x61,0x5e]
; CHECK: fmulx	s2, s3, s1              ; encoding: [0x62,0xdc,0x21,0x5e]
; CHECK: frecps.2s	v0, v0, v0      ; encoding: [0x00,0xfc,0x20,0x0e]
; CHECK: frsqrts.2s	v0, v0, v0      ; encoding: [0x00,0xfc,0xa0,0x0e]
; CHECK: fsub.2s	v0, v0, v0              ; encoding: [0x00,0xd4,0xa0,0x0e]
; CHECK: mla.8b	v0, v0, v0              ; encoding: [0x00,0x94,0x20,0x0e]
; CHECK: mls.8b	v0, v0, v0              ; encoding: [0x00,0x94,0x20,0x2e]
; CHECK: mul.8b	v0, v0, v0              ; encoding: [0x00,0x9c,0x20,0x0e]
; CHECK: pmul.8b	v0, v0, v0              ; encoding: [0x00,0x9c,0x20,0x2e]
; CHECK: saba.8b	v0, v0, v0              ; encoding: [0x00,0x7c,0x20,0x0e]
; CHECK: sabd.8b	v0, v0, v0              ; encoding: [0x00,0x74,0x20,0x0e]
; CHECK: shadd.8b	v0, v0, v0      ; encoding: [0x00,0x04,0x20,0x0e]
; CHECK: shsub.8b	v0, v0, v0      ; encoding: [0x00,0x24,0x20,0x0e]
; CHECK: smaxp.8b	v0, v0, v0      ; encoding: [0x00,0xa4,0x20,0x0e]
; CHECK: smax.8b	v0, v0, v0              ; encoding: [0x00,0x64,0x20,0x0e]
; CHECK: sminp.8b	v0, v0, v0      ; encoding: [0x00,0xac,0x20,0x0e]
; CHECK: smin.8b	v0, v0, v0              ; encoding: [0x00,0x6c,0x20,0x0e]
; CHECK: sqadd.8b	v0, v0, v0      ; encoding: [0x00,0x0c,0x20,0x0e]
; CHECK: sqdmulh.4h v0, v0, v0 ; encoding: [0x00,0xb4,0x60,0x0e]
; CHECK: sqrdmulh.4h v0, v0, v0 ; encoding: [0x00,0xb4,0x60,0x2e]
; CHECK: sqrshl.8b	v0, v0, v0      ; encoding: [0x00,0x5c,0x20,0x0e]
; CHECK: sqshl.8b	v0, v0, v0      ; encoding: [0x00,0x4c,0x20,0x0e]
; CHECK: sqsub.8b	v0, v0, v0      ; encoding: [0x00,0x2c,0x20,0x0e]
; CHECK: srhadd.8b	v0, v0, v0      ; encoding: [0x00,0x14,0x20,0x0e]
; CHECK: srshl.8b	v0, v0, v0      ; encoding: [0x00,0x54,0x20,0x0e]
; CHECK: sshl.8b	v0, v0, v0              ; encoding: [0x00,0x44,0x20,0x0e]
; CHECK: sub.8b	v0, v0, v0              ; encoding: [0x00,0x84,0x20,0x2e]
; CHECK: uaba.8b	v0, v0, v0              ; encoding: [0x00,0x7c,0x20,0x2e]
; CHECK: uabd.8b	v0, v0, v0              ; encoding: [0x00,0x74,0x20,0x2e]
; CHECK: uhadd.8b	v0, v0, v0      ; encoding: [0x00,0x04,0x20,0x2e]
; CHECK: uhsub.8b	v0, v0, v0      ; encoding: [0x00,0x24,0x20,0x2e]
; CHECK: umaxp.8b	v0, v0, v0      ; encoding: [0x00,0xa4,0x20,0x2e]
; CHECK: umax.8b	v0, v0, v0              ; encoding: [0x00,0x64,0x20,0x2e]
; CHECK: uminp.8b	v0, v0, v0      ; encoding: [0x00,0xac,0x20,0x2e]
; CHECK: umin.8b	v0, v0, v0              ; encoding: [0x00,0x6c,0x20,0x2e]
; CHECK: uqadd.8b	v0, v0, v0      ; encoding: [0x00,0x0c,0x20,0x2e]
; CHECK: uqrshl.8b	v0, v0, v0      ; encoding: [0x00,0x5c,0x20,0x2e]
; CHECK: uqshl.8b	v0, v0, v0      ; encoding: [0x00,0x4c,0x20,0x2e]
; CHECK: uqsub.8b	v0, v0, v0      ; encoding: [0x00,0x2c,0x20,0x2e]
; CHECK: urhadd.8b	v0, v0, v0      ; encoding: [0x00,0x14,0x20,0x2e]
; CHECK: urshl.8b	v0, v0, v0      ; encoding: [0x00,0x54,0x20,0x2e]
; CHECK: ushl.8b	v0, v0, v0              ; encoding: [0x00,0x44,0x20,0x2e]

  bif.8b v0, v0, v0
  bit.8b v0, v0, v0
  bsl.8b v0, v0, v0
  eor.8b v0, v0, v0
  orn.8b v0, v0, v0
  orr.8b v0, v0, v1

; CHECK: bif.8b	v0, v0, v0              ; encoding: [0x00,0x1c,0xe0,0x2e]
; CHECK: bit.8b	v0, v0, v0              ; encoding: [0x00,0x1c,0xa0,0x2e]
; CHECK: bsl.8b	v0, v0, v0              ; encoding: [0x00,0x1c,0x60,0x2e]
; CHECK: eor.8b	v0, v0, v0              ; encoding: [0x00,0x1c,0x20,0x2e]
; CHECK: orn.8b	v0, v0, v0              ; encoding: [0x00,0x1c,0xe0,0x0e]
; CHECK: orr.8b v0, v0, v1              ; encoding: [0x00,0x1c,0xa1,0x0e]

  sadalp.4h   v0, v0
  sadalp.8h  v0, v0
  sadalp.2s   v0, v0
  sadalp.4s   v0, v0
  sadalp.1d   v0, v0
  sadalp.2d   v0, v0

; CHECK: sadalp.4h	v0, v0          ; encoding: [0x00,0x68,0x20,0x0e]
; CHECK: sadalp.8h	v0, v0          ; encoding: [0x00,0x68,0x20,0x4e]
; CHECK: sadalp.2s	v0, v0          ; encoding: [0x00,0x68,0x60,0x0e]
; CHECK: sadalp.4s	v0, v0          ; encoding: [0x00,0x68,0x60,0x4e]
; CHECK: sadalp.1d	v0, v0          ; encoding: [0x00,0x68,0xa0,0x0e]
; CHECK: sadalp.2d	v0, v0          ; encoding: [0x00,0x68,0xa0,0x4e]

  cls.8b      v0, v0
  clz.8b      v0, v0
  cnt.8b      v0, v0
  fabs.2s     v0, v0
  fneg.2s     v0, v0
  frecpe.2s   v0, v0
  frinta.2s   v0, v0
  frintx.2s   v0, v0
  frinti.2s   v0, v0
  frintm.2s   v0, v0
  frintn.2s   v0, v0
  frintp.2s   v0, v0
  frintz.2s   v0, v0
  frsqrte.2s  v0, v0
  fsqrt.2s    v0, v0
  neg.8b      v0, v0
  not.8b      v0, v0
  rbit.8b     v0, v0
  rev16.8b    v0, v0
  rev32.8b    v0, v0
  rev64.8b    v0, v0
  sadalp.4h   v0, v0
  saddlp.4h	  v0, v0
  scvtf.2s    v0, v0
  sqabs.8b    v0, v0
  sqneg.8b    v0, v0
  sqxtn.8b    v0, v0
  sqxtun.8b   v0, v0
  suqadd.8b   v0, v0
  uadalp.4h   v0, v0
  uaddlp.4h   v0, v0
  ucvtf.2s    v0, v0
  uqxtn.8b    v0, v0
  urecpe.2s   v0, v0
  ursqrte.2s  v0, v0
  usqadd.8b   v0, v0
  xtn.8b      v0, v0
  shll.8h v1, v2, #8
  shll.4s v3, v4, #16
  shll.2d v5, v6, #32
  shll2.8h v7, v8, #8
  shll2.4s v9, v10, #16
  shll2.2d v11, v12, #32
  shll v1.8h, v2.8b, #8
  shll v1.4s, v2.4h, #16
  shll v1.2d, v2.2s, #32
  shll2 v1.8h, v2.16b, #8
  shll2 v1.4s, v2.8h, #16
  shll2 v1.2d, v2.4s, #32

; CHECK: cls.8b	v0, v0                  ; encoding: [0x00,0x48,0x20,0x0e]
; CHECK: clz.8b	v0, v0                  ; encoding: [0x00,0x48,0x20,0x2e]
; CHECK: cnt.8b	v0, v0                  ; encoding: [0x00,0x58,0x20,0x0e]
; CHECK: fabs.2s	v0, v0                  ; encoding: [0x00,0xf8,0xa0,0x0e]
; CHECK: fneg.2s	v0, v0                  ; encoding: [0x00,0xf8,0xa0,0x2e]
; CHECK: frecpe.2s	v0, v0          ; encoding: [0x00,0xd8,0xa1,0x0e]
; CHECK: frinta.2s	v0, v0          ; encoding: [0x00,0x88,0x21,0x2e]
; CHECK: frintx.2s	v0, v0          ; encoding: [0x00,0x98,0x21,0x2e]
; CHECK: frinti.2s	v0, v0          ; encoding: [0x00,0x98,0xa1,0x2e]
; CHECK: frintm.2s	v0, v0          ; encoding: [0x00,0x98,0x21,0x0e]
; CHECK: frintn.2s	v0, v0          ; encoding: [0x00,0x88,0x21,0x0e]
; CHECK: frintp.2s	v0, v0          ; encoding: [0x00,0x88,0xa1,0x0e]
; CHECK: frintz.2s	v0, v0          ; encoding: [0x00,0x98,0xa1,0x0e]
; CHECK: frsqrte.2s	v0, v0          ; encoding: [0x00,0xd8,0xa1,0x2e]
; CHECK: fsqrt.2s	v0, v0          ; encoding: [0x00,0xf8,0xa1,0x2e]
; CHECK: neg.8b	v0, v0                  ; encoding: [0x00,0xb8,0x20,0x2e]
; CHECK: mvn.8b	v0, v0                  ; encoding: [0x00,0x58,0x20,0x2e]
; CHECK: rbit.8b	v0, v0                  ; encoding: [0x00,0x58,0x60,0x2e]
; CHECK: rev16.8b	v0, v0          ; encoding: [0x00,0x18,0x20,0x0e]
; CHECK: rev32.8b	v0, v0          ; encoding: [0x00,0x08,0x20,0x2e]
; CHECK: rev64.8b	v0, v0          ; encoding: [0x00,0x08,0x20,0x0e]
; CHECK: sadalp.4h	v0, v0          ; encoding: [0x00,0x68,0x20,0x0e]
; CHECK: saddlp.4h	v0, v0          ; encoding: [0x00,0x28,0x20,0x0e]
; CHECK: scvtf.2s	v0, v0          ; encoding: [0x00,0xd8,0x21,0x0e]
; CHECK: sqabs.8b	v0, v0          ; encoding: [0x00,0x78,0x20,0x0e]
; CHECK: sqneg.8b	v0, v0          ; encoding: [0x00,0x78,0x20,0x2e]
; CHECK: sqxtn.8b	v0, v0          ; encoding: [0x00,0x48,0x21,0x0e]
; CHECK: sqxtun.8b	v0, v0          ; encoding: [0x00,0x28,0x21,0x2e]
; CHECK: suqadd.8b	v0, v0          ; encoding: [0x00,0x38,0x20,0x0e]
; CHECK: uadalp.4h	v0, v0          ; encoding: [0x00,0x68,0x20,0x2e]
; CHECK: uaddlp.4h	v0, v0          ; encoding: [0x00,0x28,0x20,0x2e]
; CHECK: ucvtf.2s	v0, v0          ; encoding: [0x00,0xd8,0x21,0x2e]
; CHECK: uqxtn.8b	v0, v0          ; encoding: [0x00,0x48,0x21,0x2e]
; CHECK: urecpe.2s	v0, v0          ; encoding: [0x00,0xc8,0xa1,0x0e]
; CHECK: ursqrte.2s	v0, v0          ; encoding: [0x00,0xc8,0xa1,0x2e]
; CHECK: usqadd.8b	v0, v0          ; encoding: [0x00,0x38,0x20,0x2e]
; CHECK: xtn.8b	v0, v0                  ; encoding: [0x00,0x28,0x21,0x0e]
; CHECK: shll.8h	v1, v2, #8      ; encoding: [0x41,0x38,0x21,0x2e]
; CHECK: shll.4s	v3, v4, #16     ; encoding: [0x83,0x38,0x61,0x2e]
; CHECK: shll.2d	v5, v6, #32     ; encoding: [0xc5,0x38,0xa1,0x2e]
; CHECK: shll2.8h	v7, v8, #8      ; encoding: [0x07,0x39,0x21,0x6e]
; CHECK: shll2.4s	v9, v10, #16    ; encoding: [0x49,0x39,0x61,0x6e]
; CHECK: shll2.2d	v11, v12, #32   ; encoding: [0x8b,0x39,0xa1,0x6e]
; CHECK: shll.8h	v1, v2, #8      ; encoding: [0x41,0x38,0x21,0x2e]
; CHECK: shll.4s	v1, v2, #16     ; encoding: [0x41,0x38,0x61,0x2e]
; CHECK: shll.2d	v1, v2, #32     ; encoding: [0x41,0x38,0xa1,0x2e]
; CHECK: shll2.8h	v1, v2, #8      ; encoding: [0x41,0x38,0x21,0x6e]
; CHECK: shll2.4s	v1, v2, #16     ; encoding: [0x41,0x38,0x61,0x6e]
; CHECK: shll2.2d	v1, v2, #32     ; encoding: [0x41,0x38,0xa1,0x6e]


  cmeq.8b   v0, v0, #0
  cmeq.16b  v0, v0, #0
  cmeq.4h   v0, v0, #0
  cmeq.8h   v0, v0, #0
  cmeq.2s   v0, v0, #0
  cmeq.4s   v0, v0, #0
  cmeq.2d   v0, v0, #0

; CHECK: cmeq.8b	v0, v0, #0              ; encoding: [0x00,0x98,0x20,0x0e]
; CHECK: cmeq.16b	v0, v0, #0      ; encoding: [0x00,0x98,0x20,0x4e]
; CHECK: cmeq.4h	v0, v0, #0              ; encoding: [0x00,0x98,0x60,0x0e]
; CHECK: cmeq.8h	v0, v0, #0              ; encoding: [0x00,0x98,0x60,0x4e]
; CHECK: cmeq.2s	v0, v0, #0              ; encoding: [0x00,0x98,0xa0,0x0e]
; CHECK: cmeq.4s	v0, v0, #0              ; encoding: [0x00,0x98,0xa0,0x4e]
; CHECK: cmeq.2d	v0, v0, #0              ; encoding: [0x00,0x98,0xe0,0x4e]

  cmge.8b   v0, v0, #0
  cmgt.8b   v0, v0, #0
  cmle.8b   v0, v0, #0
  cmlt.8b   v0, v0, #0
  fcmeq.2s  v0, v0, #0
  fcmge.2s  v0, v0, #0
  fcmgt.2s  v0, v0, #0
  fcmle.2s  v0, v0, #0
  fcmlt.2s  v0, v0, #0

; ARM verbose mode aliases
  cmlt v8.8b, v14.8b, #0
  cmlt v8.16b, v14.16b, #0
  cmlt v8.4h, v14.4h, #0
  cmlt v8.8h, v14.8h, #0
  cmlt v8.2s, v14.2s, #0
  cmlt v8.4s, v14.4s, #0
  cmlt v8.2d, v14.2d, #0

; CHECK: cmge.8b	v0, v0, #0              ; encoding: [0x00,0x88,0x20,0x2e]
; CHECK: cmgt.8b	v0, v0, #0              ; encoding: [0x00,0x88,0x20,0x0e]
; CHECK: cmle.8b	v0, v0, #0              ; encoding: [0x00,0x98,0x20,0x2e]
; CHECK: cmlt.8b	v0, v0, #0              ; encoding: [0x00,0xa8,0x20,0x0e]
; CHECK: fcmeq.2s	v0, v0, #0.0      ; encoding: [0x00,0xd8,0xa0,0x0e]
; CHECK: fcmge.2s	v0, v0, #0.0      ; encoding: [0x00,0xc8,0xa0,0x2e]
; CHECK: fcmgt.2s	v0, v0, #0.0      ; encoding: [0x00,0xc8,0xa0,0x0e]
; CHECK: fcmle.2s	v0, v0, #0.0      ; encoding: [0x00,0xd8,0xa0,0x2e]
; CHECK: fcmlt.2s	v0, v0, #0.0      ; encoding: [0x00,0xe8,0xa0,0x0e]
; CHECK: cmlt.8b	v8, v14, #0             ; encoding: [0xc8,0xa9,0x20,0x0e]
; CHECK: cmlt.16b	v8, v14, #0     ; encoding: [0xc8,0xa9,0x20,0x4e]
; CHECK: cmlt.4h	v8, v14, #0             ; encoding: [0xc8,0xa9,0x60,0x0e]
; CHECK: cmlt.8h	v8, v14, #0             ; encoding: [0xc8,0xa9,0x60,0x4e]
; CHECK: cmlt.2s	v8, v14, #0             ; encoding: [0xc8,0xa9,0xa0,0x0e]
; CHECK: cmlt.4s	v8, v14, #0             ; encoding: [0xc8,0xa9,0xa0,0x4e]
; CHECK: cmlt.2d	v8, v14, #0             ; encoding: [0xc8,0xa9,0xe0,0x4e]


;===-------------------------------------------------------------------------===
; AdvSIMD Floating-point <-> Integer Conversions
;===-------------------------------------------------------------------------===

  fcvtas.2s   v0, v0
  fcvtas.4s   v0, v0
  fcvtas.2d   v0, v0
  fcvtas      s0, s0
  fcvtas      d0, d0

; CHECK: fcvtas.2s  v0, v0           ; encoding: [0x00,0xc8,0x21,0x0e]
; CHECK: fcvtas.4s  v0, v0           ; encoding: [0x00,0xc8,0x21,0x4e]
; CHECK: fcvtas.2d  v0, v0           ; encoding: [0x00,0xc8,0x61,0x4e]
; CHECK: fcvtas     s0, s0           ; encoding: [0x00,0xc8,0x21,0x5e]
; CHECK: fcvtas     d0, d0           ; encoding: [0x00,0xc8,0x61,0x5e]

  fcvtau.2s   v0, v0
  fcvtau.4s   v0, v0
  fcvtau.2d   v0, v0
  fcvtau      s0, s0
  fcvtau      d0, d0

; CHECK: fcvtau.2s  v0, v0           ; encoding: [0x00,0xc8,0x21,0x2e]
; CHECK: fcvtau.4s  v0, v0           ; encoding: [0x00,0xc8,0x21,0x6e]
; CHECK: fcvtau.2d  v0, v0           ; encoding: [0x00,0xc8,0x61,0x6e]
; CHECK: fcvtau     s0, s0           ; encoding: [0x00,0xc8,0x21,0x7e]
; CHECK: fcvtau     d0, d0           ; encoding: [0x00,0xc8,0x61,0x7e]

  fcvtl   v1.4s, v5.4h
  fcvtl   v2.2d, v6.2s
  fcvtl2  v3.4s, v7.8h
  fcvtl2  v4.2d, v8.4s

; CHECK: fcvtl	v1.4s, v5.4h            ; encoding: [0xa1,0x78,0x21,0x0e]
; CHECK: fcvtl	v2.2d, v6.2s            ; encoding: [0xc2,0x78,0x61,0x0e]
; CHECK: fcvtl2	v3.4s, v7.8h            ; encoding: [0xe3,0x78,0x21,0x4e]
; CHECK: fcvtl2	v4.2d, v8.4s            ; encoding: [0x04,0x79,0x61,0x4e]

  fcvtms.2s  v0, v0
  fcvtms.4s  v0, v0
  fcvtms.2d  v0, v0
  fcvtms     s0, s0
  fcvtms     d0, d0

; CHECK: fcvtms.2s v0, v0            ; encoding: [0x00,0xb8,0x21,0x0e]
; CHECK: fcvtms.4s v0, v0            ; encoding: [0x00,0xb8,0x21,0x4e]
; CHECK: fcvtms.2d v0, v0            ; encoding: [0x00,0xb8,0x61,0x4e]
; CHECK: fcvtms    s0, s0            ; encoding: [0x00,0xb8,0x21,0x5e]
; CHECK: fcvtms    d0, d0            ; encoding: [0x00,0xb8,0x61,0x5e]

  fcvtmu.2s   v0, v0
  fcvtmu.4s   v0, v0
  fcvtmu.2d   v0, v0
  fcvtmu      s0, s0
  fcvtmu      d0, d0

; CHECK: fcvtmu.2s v0, v0            ; encoding: [0x00,0xb8,0x21,0x2e]
; CHECK: fcvtmu.4s v0, v0            ; encoding: [0x00,0xb8,0x21,0x6e]
; CHECK: fcvtmu.2d v0, v0            ; encoding: [0x00,0xb8,0x61,0x6e]
; CHECK: fcvtmu    s0, s0            ; encoding: [0x00,0xb8,0x21,0x7e]
; CHECK: fcvtmu    d0, d0            ; encoding: [0x00,0xb8,0x61,0x7e]

  fcvtns.2s   v0, v0
  fcvtns.4s   v0, v0
  fcvtns.2d   v0, v0
  fcvtns      s0, s0
  fcvtns      d0, d0

; CHECK: fcvtns.2s v0, v0            ; encoding: [0x00,0xa8,0x21,0x0e]
; CHECK: fcvtns.4s v0, v0            ; encoding: [0x00,0xa8,0x21,0x4e]
; CHECK: fcvtns.2d v0, v0            ; encoding: [0x00,0xa8,0x61,0x4e]
; CHECK: fcvtns    s0, s0            ; encoding: [0x00,0xa8,0x21,0x5e]
; CHECK: fcvtns    d0, d0            ; encoding: [0x00,0xa8,0x61,0x5e]

  fcvtnu.2s   v0, v0
  fcvtnu.4s   v0, v0
  fcvtnu.2d   v0, v0
  fcvtnu      s0, s0
  fcvtnu      d0, d0

; CHECK: fcvtnu.2s v0, v0            ; encoding: [0x00,0xa8,0x21,0x2e]
; CHECK: fcvtnu.4s v0, v0            ; encoding: [0x00,0xa8,0x21,0x6e]
; CHECK: fcvtnu.2d v0, v0            ; encoding: [0x00,0xa8,0x61,0x6e]
; CHECK: fcvtnu    s0, s0            ; encoding: [0x00,0xa8,0x21,0x7e]
; CHECK: fcvtnu    d0, d0            ; encoding: [0x00,0xa8,0x61,0x7e]

  fcvtn   v2.4h, v4.4s
  fcvtn   v3.2s, v5.2d
  fcvtn2  v4.8h, v6.4s
  fcvtn2  v5.4s, v7.2d
  fcvtxn  v6.2s, v9.2d
  fcvtxn2 v7.4s, v8.2d

; CHECK: fcvtn	v2.4h, v4.4s            ; encoding: [0x82,0x68,0x21,0x0e]
; CHECK: fcvtn	v3.2s, v5.2d            ; encoding: [0xa3,0x68,0x61,0x0e]
; CHECK: fcvtn2	v4.8h, v6.4s            ; encoding: [0xc4,0x68,0x21,0x4e]
; CHECK: fcvtn2	v5.4s, v7.2d            ; encoding: [0xe5,0x68,0x61,0x4e]
; CHECK: fcvtxn	v6.2s, v9.2d            ; encoding: [0x26,0x69,0x61,0x2e]
; CHECK: fcvtxn2 v7.4s, v8.2d           ; encoding: [0x07,0x69,0x61,0x6e]

  fcvtps.2s  v0, v0
  fcvtps.4s  v0, v0
  fcvtps.2d  v0, v0
  fcvtps     s0, s0
  fcvtps     d0, d0

; CHECK: fcvtps.2s v0, v0            ; encoding: [0x00,0xa8,0xa1,0x0e]
; CHECK: fcvtps.4s v0, v0            ; encoding: [0x00,0xa8,0xa1,0x4e]
; CHECK: fcvtps.2d v0, v0            ; encoding: [0x00,0xa8,0xe1,0x4e]
; CHECK: fcvtps    s0, s0            ; encoding: [0x00,0xa8,0xa1,0x5e]
; CHECK: fcvtps    d0, d0            ; encoding: [0x00,0xa8,0xe1,0x5e]

  fcvtpu.2s  v0, v0
  fcvtpu.4s  v0, v0
  fcvtpu.2d  v0, v0
  fcvtpu     s0, s0
  fcvtpu     d0, d0

; CHECK: fcvtpu.2s v0, v0            ; encoding: [0x00,0xa8,0xa1,0x2e]
; CHECK: fcvtpu.4s v0, v0            ; encoding: [0x00,0xa8,0xa1,0x6e]
; CHECK: fcvtpu.2d v0, v0            ; encoding: [0x00,0xa8,0xe1,0x6e]
; CHECK: fcvtpu    s0, s0            ; encoding: [0x00,0xa8,0xa1,0x7e]
; CHECK: fcvtpu    d0, d0            ; encoding: [0x00,0xa8,0xe1,0x7e]

  fcvtzs.2s  v0, v0
  fcvtzs.4s  v0, v0
  fcvtzs.2d  v0, v0
  fcvtzs     s0, s0
  fcvtzs     d0, d0

; CHECK: fcvtzs.2s v0, v0            ; encoding: [0x00,0xb8,0xa1,0x0e]
; CHECK: fcvtzs.4s v0, v0            ; encoding: [0x00,0xb8,0xa1,0x4e]
; CHECK: fcvtzs.2d v0, v0            ; encoding: [0x00,0xb8,0xe1,0x4e]
; CHECK: fcvtzs    s0, s0            ; encoding: [0x00,0xb8,0xa1,0x5e]
; CHECK: fcvtzs    d0, d0            ; encoding: [0x00,0xb8,0xe1,0x5e]

  fcvtzu.2s  v0, v0
  fcvtzu.4s  v0, v0
  fcvtzu.2d  v0, v0
  fcvtzu     s0, s0
  fcvtzu     d0, d0

; CHECK: fcvtzu.2s v0, v0            ; encoding: [0x00,0xb8,0xa1,0x2e]
; CHECK: fcvtzu.4s v0, v0            ; encoding: [0x00,0xb8,0xa1,0x6e]
; CHECK: fcvtzu.2d v0, v0            ; encoding: [0x00,0xb8,0xe1,0x6e]
; CHECK: fcvtzu    s0, s0            ; encoding: [0x00,0xb8,0xa1,0x7e]
; CHECK: fcvtzu    d0, d0            ; encoding: [0x00,0xb8,0xe1,0x7e]

;===-------------------------------------------------------------------------===
; AdvSIMD modified immediate instructions
;===-------------------------------------------------------------------------===

  bic.2s  v0, #1
  bic.2s  v0, #1, lsl #0
  bic.2s  v0, #1, lsl #8
  bic.2s  v0, #1, lsl #16
  bic.2s  v0, #1, lsl #24

; CHECK: bic.2s v0, #0x1               ; encoding: [0x20,0x14,0x00,0x2f]
; CHECK: bic.2s v0, #0x1               ; encoding: [0x20,0x14,0x00,0x2f]
; CHECK: bic.2s v0, #0x1, lsl #8       ; encoding: [0x20,0x34,0x00,0x2f]
; CHECK: bic.2s v0, #0x1, lsl #16      ; encoding: [0x20,0x54,0x00,0x2f]
; CHECK: bic.2s v0, #0x1, lsl #24      ; encoding: [0x20,0x74,0x00,0x2f]

  bic.4h  v0, #1
  bic.4h  v0, #1, lsl #0
  bic.4h  v0, #1, lsl #8

; CHECK: bic.4h v0, #0x1               ; encoding: [0x20,0x94,0x00,0x2f]
; CHECK: bic.4h v0, #0x1               ; encoding: [0x20,0x94,0x00,0x2f]
; CHECK: bic.4h v0, #0x1, lsl #8       ; encoding: [0x20,0xb4,0x00,0x2f]

  bic.4s  v0, #1
  bic.4s  v0, #1, lsl #0
  bic.4s  v0, #1, lsl #8
  bic.4s  v0, #1, lsl #16
  bic.4s  v0, #1, lsl #24

; CHECK: bic.4s v0, #0x1               ; encoding: [0x20,0x14,0x00,0x6f]
; CHECK: bic.4s v0, #0x1               ; encoding: [0x20,0x14,0x00,0x6f]
; CHECK: bic.4s v0, #0x1, lsl #8       ; encoding: [0x20,0x34,0x00,0x6f]
; CHECK: bic.4s v0, #0x1, lsl #16      ; encoding: [0x20,0x54,0x00,0x6f]
; CHECK: bic.4s v0, #0x1, lsl #24      ; encoding: [0x20,0x74,0x00,0x6f]

  bic.8h  v0, #1
  bic.8h  v0, #1, lsl #0
  bic.8h  v0, #1, lsl #8

; CHECK: bic.8h v0, #0x1               ; encoding: [0x20,0x94,0x00,0x6f]
; CHECK: bic.8h v0, #0x1               ; encoding: [0x20,0x94,0x00,0x6f]
; CHECK: bic.8h v0, #0x1, lsl #8       ; encoding: [0x20,0xb4,0x00,0x6f]

  fmov.2d v0, #1.250000e-01

; CHECK: fmov.2d v0, #0.12500000             ; encoding: [0x00,0xf4,0x02,0x6f]

  fmov.2s v0, #1.250000e-01
  fmov.4s v0, #1.250000e-01

; CHECK: fmov.2s v0, #0.12500000             ; encoding: [0x00,0xf4,0x02,0x0f]
; CHECK: fmov.4s v0, #0.12500000             ; encoding: [0x00,0xf4,0x02,0x4f]

  orr.2s  v0, #1
  orr.2s  v0, #1, lsl #0
  orr.2s  v0, #1, lsl #8
  orr.2s  v0, #1, lsl #16
  orr.2s  v0, #1, lsl #24

; CHECK: orr.2s v0, #0x1               ; encoding: [0x20,0x14,0x00,0x0f]
; CHECK: orr.2s v0, #0x1               ; encoding: [0x20,0x14,0x00,0x0f]
; CHECK: orr.2s v0, #0x1, lsl #8       ; encoding: [0x20,0x34,0x00,0x0f]
; CHECK: orr.2s v0, #0x1, lsl #16      ; encoding: [0x20,0x54,0x00,0x0f]
; CHECK: orr.2s v0, #0x1, lsl #24      ; encoding: [0x20,0x74,0x00,0x0f]

  orr.4h  v0, #1
  orr.4h  v0, #1, lsl #0
  orr.4h  v0, #1, lsl #8

; CHECK: orr.4h v0, #0x1               ; encoding: [0x20,0x94,0x00,0x0f]
; CHECK: orr.4h v0, #0x1               ; encoding: [0x20,0x94,0x00,0x0f]
; CHECK: orr.4h v0, #0x1, lsl #8       ; encoding: [0x20,0xb4,0x00,0x0f]

  orr.4s  v0, #1
  orr.4s  v0, #1, lsl #0
  orr.4s  v0, #1, lsl #8
  orr.4s  v0, #1, lsl #16
  orr.4s  v0, #1, lsl #24

; CHECK: orr.4s v0, #0x1               ; encoding: [0x20,0x14,0x00,0x4f]
; CHECK: orr.4s v0, #0x1               ; encoding: [0x20,0x14,0x00,0x4f]
; CHECK: orr.4s v0, #0x1, lsl #8       ; encoding: [0x20,0x34,0x00,0x4f]
; CHECK: orr.4s v0, #0x1, lsl #16      ; encoding: [0x20,0x54,0x00,0x4f]
; CHECK: orr.4s v0, #0x1, lsl #24      ; encoding: [0x20,0x74,0x00,0x4f]

  orr.8h  v0, #1
  orr.8h  v0, #1, lsl #0
  orr.8h  v0, #1, lsl #8

; CHECK: orr.8h v0, #0x1               ; encoding: [0x20,0x94,0x00,0x4f]
; CHECK: orr.8h v0, #0x1               ; encoding: [0x20,0x94,0x00,0x4f]
; CHECK: orr.8h v0, #0x1, lsl #8       ; encoding: [0x20,0xb4,0x00,0x4f]

  movi     d0, #0x000000000000ff
  movi.2d  v0, #0x000000000000ff

; CHECK: movi     d0, #0x000000000000ff ; encoding: [0x20,0xe4,0x00,0x2f]
; CHECK: movi.2d  v0, #0x000000000000ff ; encoding: [0x20,0xe4,0x00,0x6f]

  movi.2s v0, #1
  movi.2s v0, #1, lsl #0
  movi.2s v0, #1, lsl #8
  movi.2s v0, #1, lsl #16
  movi.2s v0, #1, lsl #24

; CHECK: movi.2s v0, #0x1              ; encoding: [0x20,0x04,0x00,0x0f]
; CHECK: movi.2s v0, #0x1              ; encoding: [0x20,0x04,0x00,0x0f]
; CHECK: movi.2s v0, #0x1, lsl #8      ; encoding: [0x20,0x24,0x00,0x0f]
; CHECK: movi.2s v0, #0x1, lsl #16     ; encoding: [0x20,0x44,0x00,0x0f]
; CHECK: movi.2s v0, #0x1, lsl #24     ; encoding: [0x20,0x64,0x00,0x0f]

  movi.4s v0, #1
  movi.4s v0, #1, lsl #0
  movi.4s v0, #1, lsl #8
  movi.4s v0, #1, lsl #16
  movi.4s v0, #1, lsl #24

; CHECK: movi.4s v0, #0x1              ; encoding: [0x20,0x04,0x00,0x4f]
; CHECK: movi.4s v0, #0x1              ; encoding: [0x20,0x04,0x00,0x4f]
; CHECK: movi.4s v0, #0x1, lsl #8      ; encoding: [0x20,0x24,0x00,0x4f]
; CHECK: movi.4s v0, #0x1, lsl #16     ; encoding: [0x20,0x44,0x00,0x4f]
; CHECK: movi.4s v0, #0x1, lsl #24     ; encoding: [0x20,0x64,0x00,0x4f]

  movi.4h v0, #1
  movi.4h v0, #1, lsl #0
  movi.4h v0, #1, lsl #8

; CHECK: movi.4h v0, #0x1              ; encoding: [0x20,0x84,0x00,0x0f]
; CHECK: movi.4h v0, #0x1              ; encoding: [0x20,0x84,0x00,0x0f]
; CHECK: movi.4h v0, #0x1, lsl #8      ; encoding: [0x20,0xa4,0x00,0x0f]

  movi.8h v0, #1
  movi.8h v0, #1, lsl #0
  movi.8h v0, #1, lsl #8

; CHECK: movi.8h v0, #0x1              ; encoding: [0x20,0x84,0x00,0x4f]
; CHECK: movi.8h v0, #0x1              ; encoding: [0x20,0x84,0x00,0x4f]
; CHECK: movi.8h v0, #0x1, lsl #8      ; encoding: [0x20,0xa4,0x00,0x4f]

  movi.2s v0, #1, msl #8
  movi.2s v0, #1, msl #16
  movi.4s v0, #1, msl #8
  movi.4s v0, #1, msl #16

; CHECK: movi.2s v0, #0x1, msl #8      ; encoding: [0x20,0xc4,0x00,0x0f]
; CHECK: movi.2s v0, #0x1, msl #16     ; encoding: [0x20,0xd4,0x00,0x0f]
; CHECK: movi.4s v0, #0x1, msl #8      ; encoding: [0x20,0xc4,0x00,0x4f]
; CHECK: movi.4s v0, #0x1, msl #16     ; encoding: [0x20,0xd4,0x00,0x4f]

  movi.8b  v0, #1
  movi.16b v0, #1

; CHECK: movi.8b  v0, #0x1             ; encoding: [0x20,0xe4,0x00,0x0f]
; CHECK: movi.16b v0, #0x1             ; encoding: [0x20,0xe4,0x00,0x4f]

  mvni.2s v0, #1
  mvni.2s v0, #1, lsl #0
  mvni.2s v0, #1, lsl #8
  mvni.2s v0, #1, lsl #16
  mvni.2s v0, #1, lsl #24

; CHECK: mvni.2s v0, #0x1              ; encoding: [0x20,0x04,0x00,0x2f]
; CHECK: mvni.2s v0, #0x1              ; encoding: [0x20,0x04,0x00,0x2f]
; CHECK: mvni.2s v0, #0x1, lsl #8      ; encoding: [0x20,0x24,0x00,0x2f]
; CHECK: mvni.2s v0, #0x1, lsl #16     ; encoding: [0x20,0x44,0x00,0x2f]
; CHECK: mvni.2s v0, #0x1, lsl #24     ; encoding: [0x20,0x64,0x00,0x2f]

  mvni.4s v0, #1
  mvni.4s v0, #1, lsl #0
  mvni.4s v0, #1, lsl #8
  mvni.4s v0, #1, lsl #16
  mvni.4s v0, #1, lsl #24

; CHECK: mvni.4s v0, #0x1              ; encoding: [0x20,0x04,0x00,0x6f]
; CHECK: mvni.4s v0, #0x1              ; encoding: [0x20,0x04,0x00,0x6f]
; CHECK: mvni.4s v0, #0x1, lsl #8      ; encoding: [0x20,0x24,0x00,0x6f]
; CHECK: mvni.4s v0, #0x1, lsl #16     ; encoding: [0x20,0x44,0x00,0x6f]
; CHECK: mvni.4s v0, #0x1, lsl #24     ; encoding: [0x20,0x64,0x00,0x6f]

  mvni.4h v0, #1
  mvni.4h v0, #1, lsl #0
  mvni.4h v0, #1, lsl #8

; CHECK: mvni.4h v0, #0x1              ; encoding: [0x20,0x84,0x00,0x2f]
; CHECK: mvni.4h v0, #0x1              ; encoding: [0x20,0x84,0x00,0x2f]
; CHECK: mvni.4h v0, #0x1, lsl #8      ; encoding: [0x20,0xa4,0x00,0x2f]

  mvni.8h v0, #1
  mvni.8h v0, #1, lsl #0
  mvni.8h v0, #1, lsl #8

; CHECK: mvni.8h v0, #0x1              ; encoding: [0x20,0x84,0x00,0x6f]
; CHECK: mvni.8h v0, #0x1              ; encoding: [0x20,0x84,0x00,0x6f]
; CHECK: mvni.8h v0, #0x1, lsl #8      ; encoding: [0x20,0xa4,0x00,0x6f]

  mvni.2s v0, #1, msl #8
  mvni.2s v0, #1, msl #16
  mvni.4s v0, #1, msl #8
  mvni.4s v0, #1, msl #16

; CHECK: mvni.2s v0, #0x1, msl #8      ; encoding: [0x20,0xc4,0x00,0x2f]
; CHECK: mvni.2s v0, #0x1, msl #16     ; encoding: [0x20,0xd4,0x00,0x2f]
; CHECK: mvni.4s v0, #0x1, msl #8      ; encoding: [0x20,0xc4,0x00,0x6f]
; CHECK: mvni.4s v0, #0x1, msl #16     ; encoding: [0x20,0xd4,0x00,0x6f]

;===-------------------------------------------------------------------------===
; AdvSIMD scalar x index
;===-------------------------------------------------------------------------===

  fmla.s  s0, s0, v0[3]
  fmla.d  d0, d0, v0[1]
  fmls.s  s0, s0, v0[3]
  fmls.d  d0, d0, v0[1]
  fmulx.s s0, s0, v0[3]
  fmulx.d d0, d0, v0[1]
  fmul.s  s0, s0, v0[3]
  fmul.d  d0, d0, v0[1]
  sqdmlal.h s0, h0, v0[7]
  sqdmlal.s d0, s0, v0[3]
  sqdmlsl.h s0, h0, v0[7]
  sqdmulh.h h0, h0, v0[7]
  sqdmulh.s s0, s0, v0[3]
  sqdmull.h s0, h0, v0[7]
  sqdmull.s d0, s0, v0[3]
  sqrdmulh.h  h0, h0, v0[7]
  sqrdmulh.s  s0, s0, v0[3]

; CHECK: fmla.s	s0, s0, v0[3]           ; encoding: [0x00,0x18,0xa0,0x5f]
; CHECK: fmla.d	d0, d0, v0[1]           ; encoding: [0x00,0x18,0xc0,0x5f]
; CHECK: fmls.s	s0, s0, v0[3]           ; encoding: [0x00,0x58,0xa0,0x5f]
; CHECK: fmls.d	d0, d0, v0[1]           ; encoding: [0x00,0x58,0xc0,0x5f]
; CHECK: fmulx.s	s0, s0, v0[3]           ; encoding: [0x00,0x98,0xa0,0x7f]
; CHECK: fmulx.d	d0, d0, v0[1]           ; encoding: [0x00,0x98,0xc0,0x7f]
; CHECK: fmul.s	s0, s0, v0[3]           ; encoding: [0x00,0x98,0xa0,0x5f]
; CHECK: fmul.d	d0, d0, v0[1]           ; encoding: [0x00,0x98,0xc0,0x5f]
; CHECK: sqdmlal.h	s0, h0, v0[7]   ; encoding: [0x00,0x38,0x70,0x5f]
; CHECK: sqdmlal.s	d0, s0, v0[3]   ; encoding: [0x00,0x38,0xa0,0x5f]
; CHECK: sqdmlsl.h	s0, h0, v0[7]   ; encoding: [0x00,0x78,0x70,0x5f]
; CHECK: sqdmulh.h	h0, h0, v0[7]   ; encoding: [0x00,0xc8,0x70,0x5f]
; CHECK: sqdmulh.s	s0, s0, v0[3]   ; encoding: [0x00,0xc8,0xa0,0x5f]
; CHECK: sqdmull.h	s0, h0, v0[7]   ; encoding: [0x00,0xb8,0x70,0x5f]
; CHECK: sqdmull.s	d0, s0, v0[3]   ; encoding: [0x00,0xb8,0xa0,0x5f]
; CHECK: sqrdmulh.h	h0, h0, v0[7]   ; encoding: [0x00,0xd8,0x70,0x5f]
; CHECK: sqrdmulh.s	s0, s0, v0[3]   ; encoding: [0x00,0xd8,0xa0,0x5f]

;===-------------------------------------------------------------------------===
; AdvSIMD SMLAL
;===-------------------------------------------------------------------------===
        smlal.8h v1, v2, v3
        smlal.4s v1, v2, v3
        smlal.2d v1, v2, v3
        smlal2.8h v1, v2, v3
        smlal2.4s v1, v2, v3
        smlal2.2d v1, v2, v3

        smlal v13.8h, v8.8b, v0.8b
        smlal v13.4s, v8.4h, v0.4h
        smlal v13.2d, v8.2s, v0.2s
        smlal2 v13.8h, v8.16b, v0.16b
        smlal2 v13.4s, v8.8h, v0.8h
        smlal2 v13.2d, v8.4s, v0.4s

; CHECK: smlal.8h	v1, v2, v3      ; encoding: [0x41,0x80,0x23,0x0e]
; CHECK: smlal.4s	v1, v2, v3      ; encoding: [0x41,0x80,0x63,0x0e]
; CHECK: smlal.2d	v1, v2, v3      ; encoding: [0x41,0x80,0xa3,0x0e]
; CHECK: smlal2.8h	v1, v2, v3      ; encoding: [0x41,0x80,0x23,0x4e]
; CHECK: smlal2.4s	v1, v2, v3      ; encoding: [0x41,0x80,0x63,0x4e]
; CHECK: smlal2.2d	v1, v2, v3      ; encoding: [0x41,0x80,0xa3,0x4e]
; CHECK: smlal.8h	v13, v8, v0     ; encoding: [0x0d,0x81,0x20,0x0e]
; CHECK: smlal.4s	v13, v8, v0     ; encoding: [0x0d,0x81,0x60,0x0e]
; CHECK: smlal.2d	v13, v8, v0     ; encoding: [0x0d,0x81,0xa0,0x0e]
; CHECK: smlal2.8h	v13, v8, v0     ; encoding: [0x0d,0x81,0x20,0x4e]
; CHECK: smlal2.4s	v13, v8, v0     ; encoding: [0x0d,0x81,0x60,0x4e]
; CHECK: smlal2.2d	v13, v8, v0     ; encoding: [0x0d,0x81,0xa0,0x4e]


;===-------------------------------------------------------------------------===
; AdvSIMD scalar x index
;===-------------------------------------------------------------------------===

  fmla.2s v0, v0, v0[0]
  fmla.4s v0, v0, v0[1]
  fmla.2d v0, v0, v0[1]
  fmls.2s v0, v0, v0[0]
  fmls.4s v0, v0, v0[1]
  fmls.2d v0, v0, v0[1]
  fmulx.2s  v0, v0, v0[0]
  fmulx.4s  v0, v0, v0[1]
  fmulx.2d  v0, v0, v0[1]
  fmul.2s v0, v0, v0[0]
  fmul.4s v0, v0, v0[1]
  fmul.2d v0, v0, v0[1]
  mla.4h  v0, v0, v0[0]
  mla.8h  v0, v0, v0[1]
  mla.2s  v0, v0, v0[2]
  mla.4s  v0, v0, v0[3]
  mls.4h  v0, v0, v0[0]
  mls.8h  v0, v0, v0[1]
  mls.2s  v0, v0, v0[2]
  mls.4s  v0, v0, v0[3]
  mul.4h  v0, v0, v0[0]
  mul.8h  v0, v0, v0[1]
  mul.2s  v0, v0, v0[2]
  mul.4s  v0, v0, v0[3]
  smlal.4s  v0, v0, v0[0]
  smlal2.4s v0, v0, v0[1]
  smlal.2d  v0, v0, v0[2]
  smlal2.2d v0, v0, v0[3]
  smlsl.4s  v0, v0, v0[0]
  smlsl2.4s v0, v0, v0[1]
  smlsl.2d  v0, v0, v0[2]
  smlsl2.2d v0, v0, v0[3]
  smull.4s  v0, v0, v0[0]
  smull2.4s v0, v0, v0[1]
  smull.2d  v0, v0, v0[2]
  smull2.2d v0, v0, v0[3]
  sqdmlal.4s  v0, v0, v0[0]
  sqdmlal2.4s v0, v0, v0[1]
  sqdmlal.2d  v0, v0, v0[2]
  sqdmlal2.2d v0, v0, v0[3]
  sqdmlsl.4s  v0, v0, v0[0]
  sqdmlsl2.4s v0, v0, v0[1]
  sqdmlsl.2d  v0, v0, v0[2]
  sqdmlsl2.2d v0, v0, v0[3]
  sqdmulh.4h  v0, v0, v0[0]
  sqdmulh.8h  v0, v0, v0[1]
  sqdmulh.2s  v0, v0, v0[2]
  sqdmulh.4s  v0, v0, v0[3]
  sqdmull.4s  v0, v0, v0[0]
  sqdmull2.4s v0, v0, v0[1]
  sqdmull.2d  v0, v0, v0[2]
  sqdmull2.2d v0, v0, v0[3]
  sqrdmulh.4h v0, v0, v0[0]
  sqrdmulh.8h v0, v0, v0[1]
  sqrdmulh.2s v0, v0, v0[2]
  sqrdmulh.4s v0, v0, v0[3]
  umlal.4s  v0, v0, v0[0]
  umlal2.4s v0, v0, v0[1]
  umlal.2d  v0, v0, v0[2]
  umlal2.2d v0, v0, v0[3]
  umlsl.4s  v0, v0, v0[0]
  umlsl2.4s v0, v0, v0[1]
  umlsl.2d  v0, v0, v0[2]
  umlsl2.2d v0, v0, v0[3]
  umull.4s  v0, v0, v0[0]
  umull2.4s v0, v0, v0[1]
  umull.2d  v0, v0, v0[2]
  umull2.2d v0, v0, v0[3]

; CHECK: fmla.2s	v0, v0, v0[0]           ; encoding: [0x00,0x10,0x80,0x0f]
; CHECK: fmla.4s	v0, v0, v0[1]           ; encoding: [0x00,0x10,0xa0,0x4f]
; CHECK: fmla.2d	v0, v0, v0[1]           ; encoding: [0x00,0x18,0xc0,0x4f]
; CHECK: fmls.2s	v0, v0, v0[0]           ; encoding: [0x00,0x50,0x80,0x0f]
; CHECK: fmls.4s	v0, v0, v0[1]           ; encoding: [0x00,0x50,0xa0,0x4f]
; CHECK: fmls.2d	v0, v0, v0[1]           ; encoding: [0x00,0x58,0xc0,0x4f]
; CHECK: fmulx.2s	v0, v0, v0[0]   ; encoding: [0x00,0x90,0x80,0x2f]
; CHECK: fmulx.4s	v0, v0, v0[1]   ; encoding: [0x00,0x90,0xa0,0x6f]
; CHECK: fmulx.2d	v0, v0, v0[1]   ; encoding: [0x00,0x98,0xc0,0x6f]
; CHECK: fmul.2s	v0, v0, v0[0]           ; encoding: [0x00,0x90,0x80,0x0f]
; CHECK: fmul.4s	v0, v0, v0[1]           ; encoding: [0x00,0x90,0xa0,0x4f]
; CHECK: fmul.2d	v0, v0, v0[1]           ; encoding: [0x00,0x98,0xc0,0x4f]
; CHECK: mla.4h	v0, v0, v0[0]           ; encoding: [0x00,0x00,0x40,0x2f]
; CHECK: mla.8h	v0, v0, v0[1]           ; encoding: [0x00,0x00,0x50,0x6f]
; CHECK: mla.2s	v0, v0, v0[2]           ; encoding: [0x00,0x08,0x80,0x2f]
; CHECK: mla.4s	v0, v0, v0[3]           ; encoding: [0x00,0x08,0xa0,0x6f]
; CHECK: mls.4h	v0, v0, v0[0]           ; encoding: [0x00,0x40,0x40,0x2f]
; CHECK: mls.8h	v0, v0, v0[1]           ; encoding: [0x00,0x40,0x50,0x6f]
; CHECK: mls.2s	v0, v0, v0[2]           ; encoding: [0x00,0x48,0x80,0x2f]
; CHECK: mls.4s	v0, v0, v0[3]           ; encoding: [0x00,0x48,0xa0,0x6f]
; CHECK: mul.4h	v0, v0, v0[0]           ; encoding: [0x00,0x80,0x40,0x0f]
; CHECK: mul.8h	v0, v0, v0[1]           ; encoding: [0x00,0x80,0x50,0x4f]
; CHECK: mul.2s	v0, v0, v0[2]           ; encoding: [0x00,0x88,0x80,0x0f]
; CHECK: mul.4s	v0, v0, v0[3]           ; encoding: [0x00,0x88,0xa0,0x4f]
; CHECK: smlal.4s	v0, v0, v0[0]   ; encoding: [0x00,0x20,0x40,0x0f]
; CHECK: smlal2.4s	v0, v0, v0[1]   ; encoding: [0x00,0x20,0x50,0x4f]
; CHECK: smlal.2d	v0, v0, v0[2]   ; encoding: [0x00,0x28,0x80,0x0f]
; CHECK: smlal2.2d	v0, v0, v0[3]   ; encoding: [0x00,0x28,0xa0,0x4f]
; CHECK: smlsl.4s	v0, v0, v0[0]   ; encoding: [0x00,0x60,0x40,0x0f]
; CHECK: smlsl2.4s	v0, v0, v0[1]   ; encoding: [0x00,0x60,0x50,0x4f]
; CHECK: smlsl.2d	v0, v0, v0[2]   ; encoding: [0x00,0x68,0x80,0x0f]
; CHECK: smlsl2.2d	v0, v0, v0[3]   ; encoding: [0x00,0x68,0xa0,0x4f]
; CHECK: smull.4s	v0, v0, v0[0]   ; encoding: [0x00,0xa0,0x40,0x0f]
; CHECK: smull2.4s	v0, v0, v0[1]   ; encoding: [0x00,0xa0,0x50,0x4f]
; CHECK: smull.2d	v0, v0, v0[2]   ; encoding: [0x00,0xa8,0x80,0x0f]
; CHECK: smull2.2d	v0, v0, v0[3]   ; encoding: [0x00,0xa8,0xa0,0x4f]
; CHECK: sqdmlal.4s	v0, v0, v0[0]   ; encoding: [0x00,0x30,0x40,0x0f]
; CHECK: sqdmlal2.4s	v0, v0, v0[1]   ; encoding: [0x00,0x30,0x50,0x4f]
; CHECK: sqdmlal.2d	v0, v0, v0[2]   ; encoding: [0x00,0x38,0x80,0x0f]
; CHECK: sqdmlal2.2d	v0, v0, v0[3]   ; encoding: [0x00,0x38,0xa0,0x4f]
; CHECK: sqdmlsl.4s	v0, v0, v0[0]   ; encoding: [0x00,0x70,0x40,0x0f]
; CHECK: sqdmlsl2.4s	v0, v0, v0[1]   ; encoding: [0x00,0x70,0x50,0x4f]
; CHECK: sqdmlsl.2d	v0, v0, v0[2]   ; encoding: [0x00,0x78,0x80,0x0f]
; CHECK: sqdmlsl2.2d	v0, v0, v0[3]   ; encoding: [0x00,0x78,0xa0,0x4f]
; CHECK: sqdmulh.4h	v0, v0, v0[0]   ; encoding: [0x00,0xc0,0x40,0x0f]
; CHECK: sqdmulh.8h	v0, v0, v0[1]   ; encoding: [0x00,0xc0,0x50,0x4f]
; CHECK: sqdmulh.2s	v0, v0, v0[2]   ; encoding: [0x00,0xc8,0x80,0x0f]
; CHECK: sqdmulh.4s	v0, v0, v0[3]   ; encoding: [0x00,0xc8,0xa0,0x4f]
; CHECK: sqdmull.4s	v0, v0, v0[0]   ; encoding: [0x00,0xb0,0x40,0x0f]
; CHECK: sqdmull2.4s	v0, v0, v0[1]   ; encoding: [0x00,0xb0,0x50,0x4f]
; CHECK: sqdmull.2d	v0, v0, v0[2]   ; encoding: [0x00,0xb8,0x80,0x0f]
; CHECK: sqdmull2.2d	v0, v0, v0[3]   ; encoding: [0x00,0xb8,0xa0,0x4f]
; CHECK: sqrdmulh.4h	v0, v0, v0[0]   ; encoding: [0x00,0xd0,0x40,0x0f]
; CHECK: sqrdmulh.8h	v0, v0, v0[1]   ; encoding: [0x00,0xd0,0x50,0x4f]
; CHECK: sqrdmulh.2s	v0, v0, v0[2]   ; encoding: [0x00,0xd8,0x80,0x0f]
; CHECK: sqrdmulh.4s	v0, v0, v0[3]   ; encoding: [0x00,0xd8,0xa0,0x4f]
; CHECK: umlal.4s	v0, v0, v0[0]   ; encoding: [0x00,0x20,0x40,0x2f]
; CHECK: umlal2.4s	v0, v0, v0[1]   ; encoding: [0x00,0x20,0x50,0x6f]
; CHECK: umlal.2d	v0, v0, v0[2]   ; encoding: [0x00,0x28,0x80,0x2f]
; CHECK: umlal2.2d	v0, v0, v0[3]   ; encoding: [0x00,0x28,0xa0,0x6f]
; CHECK: umlsl.4s	v0, v0, v0[0]   ; encoding: [0x00,0x60,0x40,0x2f]
; CHECK: umlsl2.4s	v0, v0, v0[1]   ; encoding: [0x00,0x60,0x50,0x6f]
; CHECK: umlsl.2d	v0, v0, v0[2]   ; encoding: [0x00,0x68,0x80,0x2f]
; CHECK: umlsl2.2d	v0, v0, v0[3]   ; encoding: [0x00,0x68,0xa0,0x6f]
; CHECK: umull.4s	v0, v0, v0[0]   ; encoding: [0x00,0xa0,0x40,0x2f]
; CHECK: umull2.4s	v0, v0, v0[1]   ; encoding: [0x00,0xa0,0x50,0x6f]
; CHECK: umull.2d	v0, v0, v0[2]   ; encoding: [0x00,0xa8,0x80,0x2f]
; CHECK: umull2.2d	v0, v0, v0[3]   ; encoding: [0x00,0xa8,0xa0,0x6f]


;===-------------------------------------------------------------------------===
; AdvSIMD scalar with shift
;===-------------------------------------------------------------------------===

  fcvtzs s0, s0, #1
  fcvtzs d0, d0, #2
  fcvtzu s0, s0, #1
  fcvtzu d0, d0, #2
  shl    d0, d0, #1
  sli    d0, d0, #1
  sqrshrn b0, h0, #1
  sqrshrn h0, s0, #2
  sqrshrn s0, d0, #3
  sqrshrun b0, h0, #1
  sqrshrun h0, s0, #2
  sqrshrun s0, d0, #3
  sqshlu  b0, b0, #1
  sqshlu  h0, h0, #2
  sqshlu  s0, s0, #3
  sqshlu  d0, d0, #4
  sqshl   b0, b0, #1
  sqshl   h0, h0, #2
  sqshl   s0, s0, #3
  sqshl   d0, d0, #4
  sqshrn  b0, h0, #1
  sqshrn  h0, s0, #2
  sqshrn  s0, d0, #3
  sqshrun b0, h0, #1
  sqshrun h0, s0, #2
  sqshrun s0, d0, #3
  sri     d0, d0, #1
  srshr   d0, d0, #1
  srsra   d0, d0, #1
  sshr    d0, d0, #1
  ucvtf   s0, s0, #1
  ucvtf   d0, d0, #2
  scvtf   s0, s0, #1
  scvtf   d0, d0, #2
  uqrshrn b0, h0, #1
  uqrshrn h0, s0, #2
  uqrshrn s0, d0, #3
  uqshl   b0, b0, #1
  uqshl   h0, h0, #2
  uqshl   s0, s0, #3
  uqshl   d0, d0, #4
  uqshrn  b0, h0, #1
  uqshrn  h0, s0, #2
  uqshrn  s0, d0, #3
  urshr   d0, d0, #1
  ursra   d0, d0, #1
  ushr    d0, d0, #1
  usra    d0, d0, #1

; CHECK: fcvtzs	s0, s0, #1              ; encoding: [0x00,0xfc,0x3f,0x5f]
; CHECK: fcvtzs	d0, d0, #2              ; encoding: [0x00,0xfc,0x7e,0x5f]
; CHECK: fcvtzu	s0, s0, #1              ; encoding: [0x00,0xfc,0x3f,0x7f]
; CHECK: fcvtzu	d0, d0, #2              ; encoding: [0x00,0xfc,0x7e,0x7f]
; CHECK: shl	d0, d0, #1              ; encoding: [0x00,0x54,0x41,0x5f]
; CHECK: sli	d0, d0, #1              ; encoding: [0x00,0x54,0x41,0x7f]
; CHECK: sqrshrn	b0, h0, #1              ; encoding: [0x00,0x9c,0x0f,0x5f]
; CHECK: sqrshrn	h0, s0, #2              ; encoding: [0x00,0x9c,0x1e,0x5f]
; CHECK: sqrshrn	s0, d0, #3              ; encoding: [0x00,0x9c,0x3d,0x5f]
; CHECK: sqrshrun	b0, h0, #1      ; encoding: [0x00,0x8c,0x0f,0x7f]
; CHECK: sqrshrun	h0, s0, #2      ; encoding: [0x00,0x8c,0x1e,0x7f]
; CHECK: sqrshrun	s0, d0, #3      ; encoding: [0x00,0x8c,0x3d,0x7f]
; CHECK: sqshlu	b0, b0, #1              ; encoding: [0x00,0x64,0x09,0x7f]
; CHECK: sqshlu	h0, h0, #2              ; encoding: [0x00,0x64,0x12,0x7f]
; CHECK: sqshlu	s0, s0, #3              ; encoding: [0x00,0x64,0x23,0x7f]
; CHECK: sqshlu	d0, d0, #4              ; encoding: [0x00,0x64,0x44,0x7f]
; CHECK: sqshl	b0, b0, #1              ; encoding: [0x00,0x74,0x09,0x5f]
; CHECK: sqshl	h0, h0, #2              ; encoding: [0x00,0x74,0x12,0x5f]
; CHECK: sqshl	s0, s0, #3              ; encoding: [0x00,0x74,0x23,0x5f]
; CHECK: sqshl	d0, d0, #4              ; encoding: [0x00,0x74,0x44,0x5f]
; CHECK: sqshrn	b0, h0, #1              ; encoding: [0x00,0x94,0x0f,0x5f]
; CHECK: sqshrn	h0, s0, #2              ; encoding: [0x00,0x94,0x1e,0x5f]
; CHECK: sqshrn	s0, d0, #3              ; encoding: [0x00,0x94,0x3d,0x5f]
; CHECK: sqshrun	b0, h0, #1              ; encoding: [0x00,0x84,0x0f,0x7f]
; CHECK: sqshrun	h0, s0, #2              ; encoding: [0x00,0x84,0x1e,0x7f]
; CHECK: sqshrun	s0, d0, #3              ; encoding: [0x00,0x84,0x3d,0x7f]
; CHECK: sri	d0, d0, #1              ; encoding: [0x00,0x44,0x7f,0x7f]
; CHECK: srshr	d0, d0, #1              ; encoding: [0x00,0x24,0x7f,0x5f]
; CHECK: srsra	d0, d0, #1              ; encoding: [0x00,0x34,0x7f,0x5f]
; CHECK: sshr	d0, d0, #1              ; encoding: [0x00,0x04,0x7f,0x5f]
; CHECK: ucvtf	s0, s0, #1              ; encoding: [0x00,0xe4,0x3f,0x7f]
; CHECK: ucvtf	d0, d0, #2              ; encoding: [0x00,0xe4,0x7e,0x7f]
; check: scvtf  s0, s0, #1              ; encoding: [0x00,0xe4,0x3f,0x5f]
; check: scvtf  d0, d0, #2              ; encoding: [0x00,0xe4,0x7e,0x5f]
; CHECK: uqrshrn	b0, h0, #1              ; encoding: [0x00,0x9c,0x0f,0x7f]
; CHECK: uqrshrn	h0, s0, #2              ; encoding: [0x00,0x9c,0x1e,0x7f]
; CHECK: uqrshrn	s0, d0, #3              ; encoding: [0x00,0x9c,0x3d,0x7f]
; CHECK: uqshl	b0, b0, #1              ; encoding: [0x00,0x74,0x09,0x7f]
; CHECK: uqshl	h0, h0, #2              ; encoding: [0x00,0x74,0x12,0x7f]
; CHECK: uqshl	s0, s0, #3              ; encoding: [0x00,0x74,0x23,0x7f]
; CHECK: uqshl	d0, d0, #4              ; encoding: [0x00,0x74,0x44,0x7f]
; CHECK: uqshrn	b0, h0, #1              ; encoding: [0x00,0x94,0x0f,0x7f]
; CHECK: uqshrn	h0, s0, #2              ; encoding: [0x00,0x94,0x1e,0x7f]
; CHECK: uqshrn	s0, d0, #3              ; encoding: [0x00,0x94,0x3d,0x7f]
; CHECK: urshr	d0, d0, #1              ; encoding: [0x00,0x24,0x7f,0x7f]
; CHECK: ursra	d0, d0, #1              ; encoding: [0x00,0x34,0x7f,0x7f]
; CHECK: ushr	d0, d0, #1              ; encoding: [0x00,0x04,0x7f,0x7f]
; CHECK: usra	d0, d0, #1              ; encoding: [0x00,0x14,0x7f,0x7f]


;===-------------------------------------------------------------------------===
; AdvSIMD vector with shift
;===-------------------------------------------------------------------------===

   fcvtzs.2s v0, v0, #1
   fcvtzs.4s v0, v0, #2
   fcvtzs.2d v0, v0, #3
   fcvtzu.2s v0, v0, #1
   fcvtzu.4s v0, v0, #2
   fcvtzu.2d v0, v0, #3
   rshrn.8b v0, v0, #1
   rshrn2.16b v0, v0, #2
   rshrn.4h v0, v0, #3
   rshrn2.8h v0, v0, #4
   rshrn.2s v0, v0, #5
   rshrn2.4s v0, v0, #6
   scvtf.2s v0, v0, #1
   scvtf.4s v0, v0, #2
   scvtf.2d v0, v0, #3
   shl.8b v0, v0, #1
   shl.16b v0, v0, #2
   shl.4h v0, v0, #3
   shl.8h v0, v0, #4
   shl.2s v0, v0, #5
   shl.4s v0, v0, #6
   shl.2d v0, v0, #7
   shrn.8b v0, v0, #1
   shrn2.16b v0, v0, #2
   shrn.4h v0, v0, #3
   shrn2.8h v0, v0, #4
   shrn.2s v0, v0, #5
   shrn2.4s v0, v0, #6
   sli.8b v0, v0, #1
   sli.16b v0, v0, #2
   sli.4h v0, v0, #3
   sli.8h v0, v0, #4
   sli.2s v0, v0, #5
   sli.4s v0, v0, #6
   sli.2d v0, v0, #7
   sqrshrn.8b v0, v0, #1
   sqrshrn2.16b v0, v0, #2
   sqrshrn.4h v0, v0, #3
   sqrshrn2.8h v0, v0, #4
   sqrshrn.2s v0, v0, #5
   sqrshrn2.4s v0, v0, #6
   sqrshrun.8b v0, v0, #1
   sqrshrun2.16b v0, v0, #2
   sqrshrun.4h v0, v0, #3
   sqrshrun2.8h v0, v0, #4
   sqrshrun.2s v0, v0, #5
   sqrshrun2.4s v0, v0, #6
   sqshlu.8b v0, v0, #1
   sqshlu.16b v0, v0, #2
   sqshlu.4h v0, v0, #3
   sqshlu.8h v0, v0, #4
   sqshlu.2s v0, v0, #5
   sqshlu.4s v0, v0, #6
   sqshlu.2d v0, v0, #7
   sqshl.8b v0, v0, #1
   sqshl.16b v0, v0, #2
   sqshl.4h v0, v0, #3
   sqshl.8h v0, v0, #4
   sqshl.2s v0, v0, #5
   sqshl.4s v0, v0, #6
   sqshl.2d v0, v0, #7
   sqshrn.8b v0, v0, #1
   sqshrn2.16b v0, v0, #2
   sqshrn.4h v0, v0, #3
   sqshrn2.8h v0, v0, #4
   sqshrn.2s v0, v0, #5
   sqshrn2.4s v0, v0, #6
   sqshrun.8b v0, v0, #1
   sqshrun2.16b v0, v0, #2
   sqshrun.4h v0, v0, #3
   sqshrun2.8h v0, v0, #4
   sqshrun.2s v0, v0, #5
   sqshrun2.4s v0, v0, #6
   sri.8b v0, v0, #1
   sri.16b v0, v0, #2
   sri.4h v0, v0, #3
   sri.8h v0, v0, #4
   sri.2s v0, v0, #5
   sri.4s v0, v0, #6
   sri.2d v0, v0, #7
   srshr.8b v0, v0, #1
   srshr.16b v0, v0, #2
   srshr.4h v0, v0, #3
   srshr.8h v0, v0, #4
   srshr.2s v0, v0, #5
   srshr.4s v0, v0, #6
   srshr.2d v0, v0, #7
   srsra.8b v0, v0, #1
   srsra.16b v0, v0, #2
   srsra.4h v0, v0, #3
   srsra.8h v0, v0, #4
   srsra.2s v0, v0, #5
   srsra.4s v0, v0, #6
   srsra.2d v0, v0, #7
   sshll.8h v0, v0, #1
   sshll2.8h v0, v0, #2
   sshll.4s v0, v0, #3
   sshll2.4s v0, v0, #4
   sshll.2d v0, v0, #5
   sshll2.2d v0, v0, #6
   sshr.8b v0, v0, #1
   sshr.16b v0, v0, #2
   sshr.4h v0, v0, #3
   sshr.8h v0, v0, #4
   sshr.2s v0, v0, #5
   sshr.4s v0, v0, #6
   sshr.2d v0, v0, #7
   sshr.8b v0, v0, #1
   ssra.16b v0, v0, #2
   ssra.4h v0, v0, #3
   ssra.8h v0, v0, #4
   ssra.2s v0, v0, #5
   ssra.4s v0, v0, #6
   ssra.2d v0, v0, #7
   ssra d0, d0, #64
   ucvtf.2s v0, v0, #1
   ucvtf.4s v0, v0, #2
   ucvtf.2d v0, v0, #3
   uqrshrn.8b v0, v0, #1
   uqrshrn2.16b v0, v0, #2
   uqrshrn.4h v0, v0, #3
   uqrshrn2.8h v0, v0, #4
   uqrshrn.2s v0, v0, #5
   uqrshrn2.4s v0, v0, #6
   uqshl.8b v0, v0, #1
   uqshl.16b v0, v0, #2
   uqshl.4h v0, v0, #3
   uqshl.8h v0, v0, #4
   uqshl.2s v0, v0, #5
   uqshl.4s v0, v0, #6
   uqshl.2d v0, v0, #7
   uqshrn.8b v0, v0, #1
   uqshrn2.16b v0, v0, #2
   uqshrn.4h v0, v0, #3
   uqshrn2.8h v0, v0, #4
   uqshrn.2s v0, v0, #5
   uqshrn2.4s v0, v0, #6
   urshr.8b v0, v0, #1
   urshr.16b v0, v0, #2
   urshr.4h v0, v0, #3
   urshr.8h v0, v0, #4
   urshr.2s v0, v0, #5
   urshr.4s v0, v0, #6
   urshr.2d v0, v0, #7
   ursra.8b v0, v0, #1
   ursra.16b v0, v0, #2
   ursra.4h v0, v0, #3
   ursra.8h v0, v0, #4
   ursra.2s v0, v0, #5
   ursra.4s v0, v0, #6
   ursra.2d v0, v0, #7
   ushll.8h v0, v0, #1
   ushll2.8h v0, v0, #2
   ushll.4s v0, v0, #3
   ushll2.4s v0, v0, #4
   ushll.2d v0, v0, #5
   ushll2.2d v0, v0, #6
   ushr.8b v0, v0, #1
   ushr.16b v0, v0, #2
   ushr.4h v0, v0, #3
   ushr.8h v0, v0, #4
   ushr.2s v0, v0, #5
   ushr.4s v0, v0, #6
   ushr.2d v0, v0, #7
   usra.8b v0, v0, #1
   usra.16b v0, v0, #2
   usra.4h v0, v0, #3
   usra.8h v0, v0, #4
   usra.2s v0, v0, #5
   usra.4s v0, v0, #6
   usra.2d v0, v0, #7

; CHECK: fcvtzs.2s	v0, v0, #1      ; encoding: [0x00,0xfc,0x3f,0x0f]
; CHECK: fcvtzs.4s	v0, v0, #2      ; encoding: [0x00,0xfc,0x3e,0x4f]
; CHECK: fcvtzs.2d	v0, v0, #3      ; encoding: [0x00,0xfc,0x7d,0x4f]
; CHECK: fcvtzu.2s	v0, v0, #1      ; encoding: [0x00,0xfc,0x3f,0x2f]
; CHECK: fcvtzu.4s	v0, v0, #2      ; encoding: [0x00,0xfc,0x3e,0x6f]
; CHECK: fcvtzu.2d	v0, v0, #3      ; encoding: [0x00,0xfc,0x7d,0x6f]
; CHECK: rshrn.8b	v0, v0, #1      ; encoding: [0x00,0x8c,0x0f,0x0f]
; CHECK: rshrn2.16b	v0, v0, #2      ; encoding: [0x00,0x8c,0x0e,0x4f]
; CHECK: rshrn.4h	v0, v0, #3      ; encoding: [0x00,0x8c,0x1d,0x0f]
; CHECK: rshrn2.8h	v0, v0, #4      ; encoding: [0x00,0x8c,0x1c,0x4f]
; CHECK: rshrn.2s	v0, v0, #5      ; encoding: [0x00,0x8c,0x3b,0x0f]
; CHECK: rshrn2.4s	v0, v0, #6      ; encoding: [0x00,0x8c,0x3a,0x4f]
; CHECK: scvtf.2s	v0, v0, #1      ; encoding: [0x00,0xe4,0x3f,0x0f]
; CHECK: scvtf.4s	v0, v0, #2      ; encoding: [0x00,0xe4,0x3e,0x4f]
; CHECK: scvtf.2d	v0, v0, #3      ; encoding: [0x00,0xe4,0x7d,0x4f]
; CHECK: shl.8b	v0, v0, #1              ; encoding: [0x00,0x54,0x09,0x0f]
; CHECK: shl.16b	v0, v0, #2              ; encoding: [0x00,0x54,0x0a,0x4f]
; CHECK: shl.4h	v0, v0, #3              ; encoding: [0x00,0x54,0x13,0x0f]
; CHECK: shl.8h	v0, v0, #4              ; encoding: [0x00,0x54,0x14,0x4f]
; CHECK: shl.2s	v0, v0, #5              ; encoding: [0x00,0x54,0x25,0x0f]
; CHECK: shl.4s	v0, v0, #6              ; encoding: [0x00,0x54,0x26,0x4f]
; CHECK: shl.2d	v0, v0, #7              ; encoding: [0x00,0x54,0x47,0x4f]
; CHECK: shrn.8b	v0, v0, #1              ; encoding: [0x00,0x84,0x0f,0x0f]
; CHECK: shrn2.16b	v0, v0, #2      ; encoding: [0x00,0x84,0x0e,0x4f]
; CHECK: shrn.4h	v0, v0, #3              ; encoding: [0x00,0x84,0x1d,0x0f]
; CHECK: shrn2.8h	v0, v0, #4      ; encoding: [0x00,0x84,0x1c,0x4f]
; CHECK: shrn.2s	v0, v0, #5              ; encoding: [0x00,0x84,0x3b,0x0f]
; CHECK: shrn2.4s	v0, v0, #6      ; encoding: [0x00,0x84,0x3a,0x4f]
; CHECK: sli.8b	v0, v0, #1              ; encoding: [0x00,0x54,0x09,0x2f]
; CHECK: sli.16b	v0, v0, #2              ; encoding: [0x00,0x54,0x0a,0x6f]
; CHECK: sli.4h	v0, v0, #3              ; encoding: [0x00,0x54,0x13,0x2f]
; CHECK: sli.8h	v0, v0, #4              ; encoding: [0x00,0x54,0x14,0x6f]
; CHECK: sli.2s	v0, v0, #5              ; encoding: [0x00,0x54,0x25,0x2f]
; CHECK: sli.4s	v0, v0, #6              ; encoding: [0x00,0x54,0x26,0x6f]
; CHECK: sli.2d	v0, v0, #7              ; encoding: [0x00,0x54,0x47,0x6f]
; CHECK: sqrshrn.8b	v0, v0, #1      ; encoding: [0x00,0x9c,0x0f,0x0f]
; CHECK: sqrshrn2.16b	v0, v0, #2      ; encoding: [0x00,0x9c,0x0e,0x4f]
; CHECK: sqrshrn.4h	v0, v0, #3      ; encoding: [0x00,0x9c,0x1d,0x0f]
; CHECK: sqrshrn2.8h	v0, v0, #4      ; encoding: [0x00,0x9c,0x1c,0x4f]
; CHECK: sqrshrn.2s	v0, v0, #5      ; encoding: [0x00,0x9c,0x3b,0x0f]
; CHECK: sqrshrn2.4s	v0, v0, #6      ; encoding: [0x00,0x9c,0x3a,0x4f]
; CHECK: sqrshrun.8b	v0, v0, #1      ; encoding: [0x00,0x8c,0x0f,0x2f]
; CHECK: sqrshrun2.16b	v0, v0, #2      ; encoding: [0x00,0x8c,0x0e,0x6f]
; CHECK: sqrshrun.4h	v0, v0, #3      ; encoding: [0x00,0x8c,0x1d,0x2f]
; CHECK: sqrshrun2.8h	v0, v0, #4      ; encoding: [0x00,0x8c,0x1c,0x6f]
; CHECK: sqrshrun.2s	v0, v0, #5      ; encoding: [0x00,0x8c,0x3b,0x2f]
; CHECK: sqrshrun2.4s	v0, v0, #6      ; encoding: [0x00,0x8c,0x3a,0x6f]
; CHECK: sqshlu.8b	v0, v0, #1      ; encoding: [0x00,0x64,0x09,0x2f]
; CHECK: sqshlu.16b	v0, v0, #2      ; encoding: [0x00,0x64,0x0a,0x6f]
; CHECK: sqshlu.4h	v0, v0, #3      ; encoding: [0x00,0x64,0x13,0x2f]
; CHECK: sqshlu.8h	v0, v0, #4      ; encoding: [0x00,0x64,0x14,0x6f]
; CHECK: sqshlu.2s	v0, v0, #5      ; encoding: [0x00,0x64,0x25,0x2f]
; CHECK: sqshlu.4s	v0, v0, #6      ; encoding: [0x00,0x64,0x26,0x6f]
; CHECK: sqshlu.2d	v0, v0, #7      ; encoding: [0x00,0x64,0x47,0x6f]
; CHECK: sqshl.8b	v0, v0, #1      ; encoding: [0x00,0x74,0x09,0x0f]
; CHECK: sqshl.16b	v0, v0, #2      ; encoding: [0x00,0x74,0x0a,0x4f]
; CHECK: sqshl.4h	v0, v0, #3      ; encoding: [0x00,0x74,0x13,0x0f]
; CHECK: sqshl.8h	v0, v0, #4      ; encoding: [0x00,0x74,0x14,0x4f]
; CHECK: sqshl.2s	v0, v0, #5      ; encoding: [0x00,0x74,0x25,0x0f]
; CHECK: sqshl.4s	v0, v0, #6      ; encoding: [0x00,0x74,0x26,0x4f]
; CHECK: sqshl.2d	v0, v0, #7      ; encoding: [0x00,0x74,0x47,0x4f]
; CHECK: sqshrn.8b	v0, v0, #1      ; encoding: [0x00,0x94,0x0f,0x0f]
; CHECK: sqshrn2.16b	v0, v0, #2      ; encoding: [0x00,0x94,0x0e,0x4f]
; CHECK: sqshrn.4h	v0, v0, #3      ; encoding: [0x00,0x94,0x1d,0x0f]
; CHECK: sqshrn2.8h	v0, v0, #4      ; encoding: [0x00,0x94,0x1c,0x4f]
; CHECK: sqshrn.2s	v0, v0, #5      ; encoding: [0x00,0x94,0x3b,0x0f]
; CHECK: sqshrn2.4s	v0, v0, #6      ; encoding: [0x00,0x94,0x3a,0x4f]
; CHECK: sqshrun.8b	v0, v0, #1      ; encoding: [0x00,0x84,0x0f,0x2f]
; CHECK: sqshrun2.16b	v0, v0, #2      ; encoding: [0x00,0x84,0x0e,0x6f]
; CHECK: sqshrun.4h	v0, v0, #3      ; encoding: [0x00,0x84,0x1d,0x2f]
; CHECK: sqshrun2.8h	v0, v0, #4      ; encoding: [0x00,0x84,0x1c,0x6f]
; CHECK: sqshrun.2s	v0, v0, #5      ; encoding: [0x00,0x84,0x3b,0x2f]
; CHECK: sqshrun2.4s	v0, v0, #6      ; encoding: [0x00,0x84,0x3a,0x6f]
; CHECK: sri.8b	v0, v0, #1              ; encoding: [0x00,0x44,0x0f,0x2f]
; CHECK: sri.16b	v0, v0, #2              ; encoding: [0x00,0x44,0x0e,0x6f]
; CHECK: sri.4h	v0, v0, #3              ; encoding: [0x00,0x44,0x1d,0x2f]
; CHECK: sri.8h	v0, v0, #4              ; encoding: [0x00,0x44,0x1c,0x6f]
; CHECK: sri.2s	v0, v0, #5              ; encoding: [0x00,0x44,0x3b,0x2f]
; CHECK: sri.4s	v0, v0, #6              ; encoding: [0x00,0x44,0x3a,0x6f]
; CHECK: sri.2d	v0, v0, #7              ; encoding: [0x00,0x44,0x79,0x6f]
; CHECK: srshr.8b	v0, v0, #1      ; encoding: [0x00,0x24,0x0f,0x0f]
; CHECK: srshr.16b	v0, v0, #2      ; encoding: [0x00,0x24,0x0e,0x4f]
; CHECK: srshr.4h	v0, v0, #3      ; encoding: [0x00,0x24,0x1d,0x0f]
; CHECK: srshr.8h	v0, v0, #4      ; encoding: [0x00,0x24,0x1c,0x4f]
; CHECK: srshr.2s	v0, v0, #5      ; encoding: [0x00,0x24,0x3b,0x0f]
; CHECK: srshr.4s	v0, v0, #6      ; encoding: [0x00,0x24,0x3a,0x4f]
; CHECK: srshr.2d	v0, v0, #7      ; encoding: [0x00,0x24,0x79,0x4f]
; CHECK: srsra.8b	v0, v0, #1      ; encoding: [0x00,0x34,0x0f,0x0f]
; CHECK: srsra.16b	v0, v0, #2      ; encoding: [0x00,0x34,0x0e,0x4f]
; CHECK: srsra.4h	v0, v0, #3      ; encoding: [0x00,0x34,0x1d,0x0f]
; CHECK: srsra.8h	v0, v0, #4      ; encoding: [0x00,0x34,0x1c,0x4f]
; CHECK: srsra.2s	v0, v0, #5      ; encoding: [0x00,0x34,0x3b,0x0f]
; CHECK: srsra.4s	v0, v0, #6      ; encoding: [0x00,0x34,0x3a,0x4f]
; CHECK: srsra.2d	v0, v0, #7      ; encoding: [0x00,0x34,0x79,0x4f]
; CHECK: sshll.8h	v0, v0, #1      ; encoding: [0x00,0xa4,0x09,0x0f]
; CHECK: sshll2.8h	v0, v0, #2      ; encoding: [0x00,0xa4,0x0a,0x4f]
; CHECK: sshll.4s	v0, v0, #3      ; encoding: [0x00,0xa4,0x13,0x0f]
; CHECK: sshll2.4s	v0, v0, #4      ; encoding: [0x00,0xa4,0x14,0x4f]
; CHECK: sshll.2d	v0, v0, #5      ; encoding: [0x00,0xa4,0x25,0x0f]
; CHECK: sshll2.2d	v0, v0, #6      ; encoding: [0x00,0xa4,0x26,0x4f]
; CHECK: sshr.8b	v0, v0, #1              ; encoding: [0x00,0x04,0x0f,0x0f]
; CHECK: sshr.16b	v0, v0, #2      ; encoding: [0x00,0x04,0x0e,0x4f]
; CHECK: sshr.4h	v0, v0, #3              ; encoding: [0x00,0x04,0x1d,0x0f]
; CHECK: sshr.8h	v0, v0, #4              ; encoding: [0x00,0x04,0x1c,0x4f]
; CHECK: sshr.2s	v0, v0, #5              ; encoding: [0x00,0x04,0x3b,0x0f]
; CHECK: sshr.4s	v0, v0, #6              ; encoding: [0x00,0x04,0x3a,0x4f]
; CHECK: sshr.2d	v0, v0, #7              ; encoding: [0x00,0x04,0x79,0x4f]
; CHECK: sshr.8b	v0, v0, #1              ; encoding: [0x00,0x04,0x0f,0x0f]
; CHECK: ssra.16b	v0, v0, #2      ; encoding: [0x00,0x14,0x0e,0x4f]
; CHECK: ssra.4h	v0, v0, #3              ; encoding: [0x00,0x14,0x1d,0x0f]
; CHECK: ssra.8h	v0, v0, #4              ; encoding: [0x00,0x14,0x1c,0x4f]
; CHECK: ssra.2s	v0, v0, #5              ; encoding: [0x00,0x14,0x3b,0x0f]
; CHECK: ssra.4s	v0, v0, #6              ; encoding: [0x00,0x14,0x3a,0x4f]
; CHECK: ssra.2d	v0, v0, #7              ; encoding: [0x00,0x14,0x79,0x4f]
; CHECK: ssra		d0, d0, #64             ; encoding: [0x00,0x14,0x40,0x5f]
; CHECK: ucvtf.2s	v0, v0, #1      ; encoding: [0x00,0xe4,0x3f,0x2f]
; CHECK: ucvtf.4s	v0, v0, #2      ; encoding: [0x00,0xe4,0x3e,0x6f]
; CHECK: ucvtf.2d	v0, v0, #3      ; encoding: [0x00,0xe4,0x7d,0x6f]
; CHECK: uqrshrn.8b	v0, v0, #1      ; encoding: [0x00,0x9c,0x0f,0x2f]
; CHECK: uqrshrn2.16b	v0, v0, #2      ; encoding: [0x00,0x9c,0x0e,0x6f]
; CHECK: uqrshrn.4h	v0, v0, #3      ; encoding: [0x00,0x9c,0x1d,0x2f]
; CHECK: uqrshrn2.8h	v0, v0, #4      ; encoding: [0x00,0x9c,0x1c,0x6f]
; CHECK: uqrshrn.2s	v0, v0, #5      ; encoding: [0x00,0x9c,0x3b,0x2f]
; CHECK: uqrshrn2.4s	v0, v0, #6      ; encoding: [0x00,0x9c,0x3a,0x6f]
; CHECK: uqshl.8b	v0, v0, #1      ; encoding: [0x00,0x74,0x09,0x2f]
; CHECK: uqshl.16b	v0, v0, #2      ; encoding: [0x00,0x74,0x0a,0x6f]
; CHECK: uqshl.4h	v0, v0, #3      ; encoding: [0x00,0x74,0x13,0x2f]
; CHECK: uqshl.8h	v0, v0, #4      ; encoding: [0x00,0x74,0x14,0x6f]
; CHECK: uqshl.2s	v0, v0, #5      ; encoding: [0x00,0x74,0x25,0x2f]
; CHECK: uqshl.4s	v0, v0, #6      ; encoding: [0x00,0x74,0x26,0x6f]
; CHECK: uqshl.2d	v0, v0, #7      ; encoding: [0x00,0x74,0x47,0x6f]
; CHECK: uqshrn.8b	v0, v0, #1      ; encoding: [0x00,0x94,0x0f,0x2f]
; CHECK: uqshrn2.16b	v0, v0, #2      ; encoding: [0x00,0x94,0x0e,0x6f]
; CHECK: uqshrn.4h	v0, v0, #3      ; encoding: [0x00,0x94,0x1d,0x2f]
; CHECK: uqshrn2.8h	v0, v0, #4      ; encoding: [0x00,0x94,0x1c,0x6f]
; CHECK: uqshrn.2s	v0, v0, #5      ; encoding: [0x00,0x94,0x3b,0x2f]
; CHECK: uqshrn2.4s	v0, v0, #6      ; encoding: [0x00,0x94,0x3a,0x6f]
; CHECK: urshr.8b	v0, v0, #1      ; encoding: [0x00,0x24,0x0f,0x2f]
; CHECK: urshr.16b	v0, v0, #2      ; encoding: [0x00,0x24,0x0e,0x6f]
; CHECK: urshr.4h	v0, v0, #3      ; encoding: [0x00,0x24,0x1d,0x2f]
; CHECK: urshr.8h	v0, v0, #4      ; encoding: [0x00,0x24,0x1c,0x6f]
; CHECK: urshr.2s	v0, v0, #5      ; encoding: [0x00,0x24,0x3b,0x2f]
; CHECK: urshr.4s	v0, v0, #6      ; encoding: [0x00,0x24,0x3a,0x6f]
; CHECK: urshr.2d	v0, v0, #7      ; encoding: [0x00,0x24,0x79,0x6f]
; CHECK: ursra.8b	v0, v0, #1      ; encoding: [0x00,0x34,0x0f,0x2f]
; CHECK: ursra.16b	v0, v0, #2      ; encoding: [0x00,0x34,0x0e,0x6f]
; CHECK: ursra.4h	v0, v0, #3      ; encoding: [0x00,0x34,0x1d,0x2f]
; CHECK: ursra.8h	v0, v0, #4      ; encoding: [0x00,0x34,0x1c,0x6f]
; CHECK: ursra.2s	v0, v0, #5      ; encoding: [0x00,0x34,0x3b,0x2f]
; CHECK: ursra.4s	v0, v0, #6      ; encoding: [0x00,0x34,0x3a,0x6f]
; CHECK: ursra.2d	v0, v0, #7      ; encoding: [0x00,0x34,0x79,0x6f]
; CHECK: ushll.8h	v0, v0, #1      ; encoding: [0x00,0xa4,0x09,0x2f]
; CHECK: ushll2.8h	v0, v0, #2      ; encoding: [0x00,0xa4,0x0a,0x6f]
; CHECK: ushll.4s	v0, v0, #3      ; encoding: [0x00,0xa4,0x13,0x2f]
; CHECK: ushll2.4s	v0, v0, #4      ; encoding: [0x00,0xa4,0x14,0x6f]
; CHECK: ushll.2d	v0, v0, #5      ; encoding: [0x00,0xa4,0x25,0x2f]
; CHECK: ushll2.2d	v0, v0, #6      ; encoding: [0x00,0xa4,0x26,0x6f]
; CHECK: ushr.8b	v0, v0, #1              ; encoding: [0x00,0x04,0x0f,0x2f]
; CHECK: ushr.16b	v0, v0, #2      ; encoding: [0x00,0x04,0x0e,0x6f]
; CHECK: ushr.4h	v0, v0, #3              ; encoding: [0x00,0x04,0x1d,0x2f]
; CHECK: ushr.8h	v0, v0, #4              ; encoding: [0x00,0x04,0x1c,0x6f]
; CHECK: ushr.2s	v0, v0, #5              ; encoding: [0x00,0x04,0x3b,0x2f]
; CHECK: ushr.4s	v0, v0, #6              ; encoding: [0x00,0x04,0x3a,0x6f]
; CHECK: ushr.2d	v0, v0, #7              ; encoding: [0x00,0x04,0x79,0x6f]
; CHECK: usra.8b	v0, v0, #1              ; encoding: [0x00,0x14,0x0f,0x2f]
; CHECK: usra.16b	v0, v0, #2      ; encoding: [0x00,0x14,0x0e,0x6f]
; CHECK: usra.4h	v0, v0, #3              ; encoding: [0x00,0x14,0x1d,0x2f]
; CHECK: usra.8h	v0, v0, #4              ; encoding: [0x00,0x14,0x1c,0x6f]
; CHECK: usra.2s	v0, v0, #5              ; encoding: [0x00,0x14,0x3b,0x2f]
; CHECK: usra.4s	v0, v0, #6              ; encoding: [0x00,0x14,0x3a,0x6f]
; CHECK: usra.2d	v0, v0, #7              ; encoding: [0x00,0x14,0x79,0x6f]


; ARM Verbose syntax variants.

   rshrn v9.8b, v11.8h, #1
   rshrn2 v8.16b, v9.8h, #2
   rshrn v7.4h, v8.4s, #3
   rshrn2 v6.8h, v7.4s, #4
   rshrn v5.2s, v6.2d, #5
   rshrn2 v4.4s, v5.2d, #6

   shrn v9.8b, v11.8h, #1
   shrn2 v8.16b, v9.8h, #2
   shrn v7.4h, v8.4s, #3
   shrn2 v6.8h, v7.4s, #4
   shrn v5.2s, v6.2d, #5
   shrn2 v4.4s, v5.2d, #6

   sqrshrn v9.8b, v11.8h, #1
   sqrshrn2 v8.16b, v9.8h, #2
   sqrshrn v7.4h, v8.4s, #3
   sqrshrn2 v6.8h, v7.4s, #4
   sqrshrn v5.2s, v6.2d, #5
   sqrshrn2 v4.4s, v5.2d, #6

   sqshrn v9.8b, v11.8h, #1
   sqshrn2 v8.16b, v9.8h, #2
   sqshrn v7.4h, v8.4s, #3
   sqshrn2 v6.8h, v7.4s, #4
   sqshrn v5.2s, v6.2d, #5
   sqshrn2 v4.4s, v5.2d, #6

   sqrshrun v9.8b, v11.8h, #1
   sqrshrun2 v8.16b, v9.8h, #2
   sqrshrun v7.4h, v8.4s, #3
   sqrshrun2 v6.8h, v7.4s, #4
   sqrshrun v5.2s, v6.2d, #5
   sqrshrun2 v4.4s, v5.2d, #6

   sqshrun v9.8b, v11.8h, #1
   sqshrun2 v8.16b, v9.8h, #2
   sqshrun v7.4h, v8.4s, #3
   sqshrun2 v6.8h, v7.4s, #4
   sqshrun v5.2s, v6.2d, #5
   sqshrun2 v4.4s, v5.2d, #6

   uqrshrn v9.8b, v11.8h, #1
   uqrshrn2 v8.16b, v9.8h, #2
   uqrshrn v7.4h, v8.4s, #3
   uqrshrn2 v6.8h, v7.4s, #4
   uqrshrn v5.2s, v6.2d, #5
   uqrshrn2 v4.4s, v5.2d, #6

   uqshrn v9.8b, v11.8h, #1
   uqshrn2 v8.16b, v9.8h, #2
   uqshrn v7.4h, v8.4s, #3
   uqshrn2 v6.8h, v7.4s, #4
   uqshrn v5.2s, v6.2d, #5
   uqshrn2 v4.4s, v5.2d, #6

   sshll2 v10.8h, v3.16b, #6
   sshll2 v11.4s, v4.8h, #5
   sshll2 v12.2d, v5.4s, #4
   sshll v13.8h, v6.8b, #3
   sshll v14.4s, v7.4h, #2
   sshll v15.2d, v8.2s, #7

   ushll2 v10.8h, v3.16b, #6
   ushll2 v11.4s, v4.8h, #5
   ushll2 v12.2d, v5.4s, #4
   ushll v13.8h, v6.8b, #3
   ushll v14.4s, v7.4h, #2
   ushll v15.2d, v8.2s, #7


; CHECK: rshrn.8b	v9, v11, #1     ; encoding: [0x69,0x8d,0x0f,0x0f]
; CHECK: rshrn2.16b	v8, v9, #2      ; encoding: [0x28,0x8d,0x0e,0x4f]
; CHECK: rshrn.4h	v7, v8, #3      ; encoding: [0x07,0x8d,0x1d,0x0f]
; CHECK: rshrn2.8h	v6, v7, #4      ; encoding: [0xe6,0x8c,0x1c,0x4f]
; CHECK: rshrn.2s	v5, v6, #5      ; encoding: [0xc5,0x8c,0x3b,0x0f]
; CHECK: rshrn2.4s	v4, v5, #6      ; encoding: [0xa4,0x8c,0x3a,0x4f]
; CHECK: shrn.8b	v9, v11, #1             ; encoding: [0x69,0x85,0x0f,0x0f]
; CHECK: shrn2.16b	v8, v9, #2      ; encoding: [0x28,0x85,0x0e,0x4f]
; CHECK: shrn.4h	v7, v8, #3              ; encoding: [0x07,0x85,0x1d,0x0f]
; CHECK: shrn2.8h	v6, v7, #4      ; encoding: [0xe6,0x84,0x1c,0x4f]
; CHECK: shrn.2s	v5, v6, #5              ; encoding: [0xc5,0x84,0x3b,0x0f]
; CHECK: shrn2.4s	v4, v5, #6      ; encoding: [0xa4,0x84,0x3a,0x4f]
; CHECK: sqrshrn.8b	v9, v11, #1     ; encoding: [0x69,0x9d,0x0f,0x0f]
; CHECK: sqrshrn2.16b	v8, v9, #2      ; encoding: [0x28,0x9d,0x0e,0x4f]
; CHECK: sqrshrn.4h	v7, v8, #3      ; encoding: [0x07,0x9d,0x1d,0x0f]
; CHECK: sqrshrn2.8h	v6, v7, #4      ; encoding: [0xe6,0x9c,0x1c,0x4f]
; CHECK: sqrshrn.2s	v5, v6, #5      ; encoding: [0xc5,0x9c,0x3b,0x0f]
; CHECK: sqrshrn2.4s	v4, v5, #6      ; encoding: [0xa4,0x9c,0x3a,0x4f]
; CHECK: sqshrn.8b	v9, v11, #1     ; encoding: [0x69,0x95,0x0f,0x0f]
; CHECK: sqshrn2.16b	v8, v9, #2      ; encoding: [0x28,0x95,0x0e,0x4f]
; CHECK: sqshrn.4h	v7, v8, #3      ; encoding: [0x07,0x95,0x1d,0x0f]
; CHECK: sqshrn2.8h	v6, v7, #4      ; encoding: [0xe6,0x94,0x1c,0x4f]
; CHECK: sqshrn.2s	v5, v6, #5      ; encoding: [0xc5,0x94,0x3b,0x0f]
; CHECK: sqshrn2.4s	v4, v5, #6      ; encoding: [0xa4,0x94,0x3a,0x4f]
; CHECK: sqrshrun.8b	v9, v11, #1     ; encoding: [0x69,0x8d,0x0f,0x2f]
; CHECK: sqrshrun2.16b	v8, v9, #2      ; encoding: [0x28,0x8d,0x0e,0x6f]
; CHECK: sqrshrun.4h	v7, v8, #3      ; encoding: [0x07,0x8d,0x1d,0x2f]
; CHECK: sqrshrun2.8h	v6, v7, #4      ; encoding: [0xe6,0x8c,0x1c,0x6f]
; CHECK: sqrshrun.2s	v5, v6, #5      ; encoding: [0xc5,0x8c,0x3b,0x2f]
; CHECK: sqrshrun2.4s	v4, v5, #6      ; encoding: [0xa4,0x8c,0x3a,0x6f]
; CHECK: sqshrun.8b	v9, v11, #1     ; encoding: [0x69,0x85,0x0f,0x2f]
; CHECK: sqshrun2.16b	v8, v9, #2      ; encoding: [0x28,0x85,0x0e,0x6f]
; CHECK: sqshrun.4h	v7, v8, #3      ; encoding: [0x07,0x85,0x1d,0x2f]
; CHECK: sqshrun2.8h	v6, v7, #4      ; encoding: [0xe6,0x84,0x1c,0x6f]
; CHECK: sqshrun.2s	v5, v6, #5      ; encoding: [0xc5,0x84,0x3b,0x2f]
; CHECK: sqshrun2.4s	v4, v5, #6      ; encoding: [0xa4,0x84,0x3a,0x6f]
; CHECK: uqrshrn.8b	v9, v11, #1     ; encoding: [0x69,0x9d,0x0f,0x2f]
; CHECK: uqrshrn2.16b	v8, v9, #2      ; encoding: [0x28,0x9d,0x0e,0x6f]
; CHECK: uqrshrn.4h	v7, v8, #3      ; encoding: [0x07,0x9d,0x1d,0x2f]
; CHECK: uqrshrn2.8h	v6, v7, #4      ; encoding: [0xe6,0x9c,0x1c,0x6f]
; CHECK: uqrshrn.2s	v5, v6, #5      ; encoding: [0xc5,0x9c,0x3b,0x2f]
; CHECK: uqrshrn2.4s	v4, v5, #6      ; encoding: [0xa4,0x9c,0x3a,0x6f]
; CHECK: uqshrn.8b	v9, v11, #1     ; encoding: [0x69,0x95,0x0f,0x2f]
; CHECK: uqshrn2.16b	v8, v9, #2      ; encoding: [0x28,0x95,0x0e,0x6f]
; CHECK: uqshrn.4h	v7, v8, #3      ; encoding: [0x07,0x95,0x1d,0x2f]
; CHECK: uqshrn2.8h	v6, v7, #4      ; encoding: [0xe6,0x94,0x1c,0x6f]
; CHECK: uqshrn.2s	v5, v6, #5      ; encoding: [0xc5,0x94,0x3b,0x2f]
; CHECK: uqshrn2.4s	v4, v5, #6      ; encoding: [0xa4,0x94,0x3a,0x6f]
; CHECK: sshll2.8h	v10, v3, #6     ; encoding: [0x6a,0xa4,0x0e,0x4f]
; CHECK: sshll2.4s	v11, v4, #5     ; encoding: [0x8b,0xa4,0x15,0x4f]
; CHECK: sshll2.2d	v12, v5, #4     ; encoding: [0xac,0xa4,0x24,0x4f]
; CHECK: sshll.8h	v13, v6, #3     ; encoding: [0xcd,0xa4,0x0b,0x0f]
; CHECK: sshll.4s	v14, v7, #2     ; encoding: [0xee,0xa4,0x12,0x0f]
; CHECK: sshll.2d	v15, v8, #7     ; encoding: [0x0f,0xa5,0x27,0x0f]
; CHECK: ushll2.8h	v10, v3, #6     ; encoding: [0x6a,0xa4,0x0e,0x6f]
; CHECK: ushll2.4s	v11, v4, #5     ; encoding: [0x8b,0xa4,0x15,0x6f]
; CHECK: ushll2.2d	v12, v5, #4     ; encoding: [0xac,0xa4,0x24,0x6f]
; CHECK: ushll.8h	v13, v6, #3     ; encoding: [0xcd,0xa4,0x0b,0x2f]
; CHECK: ushll.4s	v14, v7, #2     ; encoding: [0xee,0xa4,0x12,0x2f]
; CHECK: ushll.2d	v15, v8, #7     ; encoding: [0x0f,0xa5,0x27,0x2f]


  pmull.8h v0, v0, v0
  pmull2.8h v0, v0, v0
  pmull.1q v2, v3, v4
  pmull2.1q v2, v3, v4
  pmull v2.1q, v3.1d, v4.1d
  pmull2 v2.1q, v3.2d, v4.2d

; CHECK: pmull.8h	v0, v0, v0      ; encoding: [0x00,0xe0,0x20,0x0e]
; CHECK: pmull2.8h	v0, v0, v0      ; encoding: [0x00,0xe0,0x20,0x4e]
; CHECK: pmull.1q	v2, v3, v4      ; encoding: [0x62,0xe0,0xe4,0x0e]
; CHECK: pmull2.1q	v2, v3, v4      ; encoding: [0x62,0xe0,0xe4,0x4e]
; CHECK: pmull.1q	v2, v3, v4      ; encoding: [0x62,0xe0,0xe4,0x0e]
; CHECK: pmull2.1q	v2, v3, v4      ; encoding: [0x62,0xe0,0xe4,0x4e]


  faddp.2d d1, v2
  faddp.2s s3, v4
; CHECK: faddp.2d	d1, v2          ; encoding: [0x41,0xd8,0x70,0x7e]
; CHECK: faddp.2s	s3, v4          ; encoding: [0x83,0xd8,0x30,0x7e]

  tbl.16b v2, {v4,v5,v6,v7}, v1
  tbl.8b v0, {v4,v5,v6,v7}, v1
  tbl.16b v2, {v5}, v1
  tbl.8b v0, {v5}, v1
  tbl.16b v2, {v5,v6,v7}, v1
  tbl.8b v0, {v5,v6,v7}, v1
  tbl.16b v2, {v6,v7}, v1
  tbl.8b v0, {v6,v7}, v1
; CHECK: tbl.16b	v2, { v4, v5, v6, v7 }, v1 ; encoding: [0x82,0x60,0x01,0x4e]
; CHECK: tbl.8b	v0, { v4, v5, v6, v7 }, v1 ; encoding: [0x80,0x60,0x01,0x0e]
; CHECK: tbl.16b	v2, { v5 }, v1          ; encoding: [0xa2,0x00,0x01,0x4e]
; CHECK: tbl.8b	v0, { v5 }, v1          ; encoding: [0xa0,0x00,0x01,0x0e]
; CHECK: tbl.16b	v2, { v5, v6, v7 }, v1  ; encoding: [0xa2,0x40,0x01,0x4e]
; CHECK: tbl.8b	v0, { v5, v6, v7 }, v1  ; encoding: [0xa0,0x40,0x01,0x0e]
; CHECK: tbl.16b	v2, { v6, v7 }, v1      ; encoding: [0xc2,0x20,0x01,0x4e]
; CHECK: tbl.8b	v0, { v6, v7 }, v1      ; encoding: [0xc0,0x20,0x01,0x0e]

  tbl v2.16b, {v4.16b,v5.16b,v6.16b,v7.16b}, v1.16b
  tbl v0.8b, {v4.16b,v5.16b,v6.16b,v7.16b}, v1.8b
  tbl v2.16b, {v5.16b}, v1.16b
  tbl v0.8b, {v5.16b}, v1.8b
  tbl v2.16b, {v5.16b,v6.16b,v7.16b}, v1.16b
  tbl v0.8b, {v5.16b,v6.16b,v7.16b}, v1.8b
  tbl v2.16b, {v6.16b,v7.16b}, v1.16b
  tbl v0.8b, {v6.16b,v7.16b}, v1.8b
; CHECK: tbl.16b v2, { v4, v5, v6, v7 }, v1 ; encoding: [0x82,0x60,0x01,0x4e]
; CHECK: tbl.8b v0, { v4, v5, v6, v7 }, v1 ; encoding: [0x80,0x60,0x01,0x0e]
; CHECK: tbl.16b v2, { v5 }, v1          ; encoding: [0xa2,0x00,0x01,0x4e]
; CHECK: tbl.8b v0, { v5 }, v1          ; encoding: [0xa0,0x00,0x01,0x0e]
; CHECK: tbl.16b v2, { v5, v6, v7 }, v1  ; encoding: [0xa2,0x40,0x01,0x4e]
; CHECK: tbl.8b v0, { v5, v6, v7 }, v1  ; encoding: [0xa0,0x40,0x01,0x0e]
; CHECK: tbl.16b v2, { v6, v7 }, v1      ; encoding: [0xc2,0x20,0x01,0x4e]
; CHECK: tbl.8b v0, { v6, v7 }, v1      ; encoding: [0xc0,0x20,0x01,0x0e]

  sqdmull	s0, h0, h0
  sqdmull	d0, s0, s0
; CHECK: sqdmull	s0, h0, h0              ; encoding: [0x00,0xd0,0x60,0x5e]
; CHECK: sqdmull	d0, s0, s0              ; encoding: [0x00,0xd0,0xa0,0x5e]

  frsqrte s0, s0
  frsqrte d0, d0
; CHECK: frsqrte s0, s0                  ; encoding: [0x00,0xd8,0xa1,0x7e]
; CHECK: frsqrte d0, d0                  ; encoding: [0x00,0xd8,0xe1,0x7e]

  mov.16b v0, v0
  mov.2s v0, v0
; CHECK: mov.16b v0, v0              ; encoding: [0x00,0x1c,0xa0,0x4e]
; CHECK: mov.8b v0, v0              ; encoding: [0x00,0x1c,0xa0,0x0e]


; uadalp/sadalp verbose mode aliases.
  uadalp v14.4h, v25.8b
  uadalp v15.8h, v24.16b
  uadalp v16.2s, v23.4h
  uadalp v17.4s, v22.8h
  uadalp v18.1d, v21.2s
  uadalp v19.2d, v20.4s

  sadalp v1.4h, v11.8b
  sadalp v2.8h, v12.16b
  sadalp v3.2s, v13.4h
  sadalp v4.4s, v14.8h
  sadalp v5.1d, v15.2s
  sadalp v6.2d, v16.4s

; CHECK: uadalp.4h	v14, v25        ; encoding: [0x2e,0x6b,0x20,0x2e]
; CHECK: uadalp.8h	v15, v24        ; encoding: [0x0f,0x6b,0x20,0x6e]
; CHECK: uadalp.2s	v16, v23        ; encoding: [0xf0,0x6a,0x60,0x2e]
; CHECK: uadalp.4s	v17, v22        ; encoding: [0xd1,0x6a,0x60,0x6e]
; CHECK: uadalp.1d	v18, v21        ; encoding: [0xb2,0x6a,0xa0,0x2e]
; CHECK: uadalp.2d	v19, v20        ; encoding: [0x93,0x6a,0xa0,0x6e]
; CHECK: sadalp.4h	v1, v11         ; encoding: [0x61,0x69,0x20,0x0e]
; CHECK: sadalp.8h	v2, v12         ; encoding: [0x82,0x69,0x20,0x4e]
; CHECK: sadalp.2s	v3, v13         ; encoding: [0xa3,0x69,0x60,0x0e]
; CHECK: sadalp.4s	v4, v14         ; encoding: [0xc4,0x69,0x60,0x4e]
; CHECK: sadalp.1d	v5, v15         ; encoding: [0xe5,0x69,0xa0,0x0e]
; CHECK: sadalp.2d	v6, v16         ; encoding: [0x06,0x6a,0xa0,0x4e]

; MVN is an alias for 'not'.
  mvn v1.8b, v4.8b
  mvn v19.16b, v17.16b
  mvn.8b v10, v6
  mvn.16b v11, v7

; CHECK: mvn.8b	v1, v4                  ; encoding: [0x81,0x58,0x20,0x2e]
; CHECK: mvn.16b	v19, v17                ; encoding: [0x33,0x5a,0x20,0x6e]
; CHECK: mvn.8b	v10, v6                 ; encoding: [0xca,0x58,0x20,0x2e]
; CHECK: mvn.16b	v11, v7                 ; encoding: [0xeb,0x58,0x20,0x6e]

; sqdmull verbose mode aliases
 sqdmull v10.4s, v12.4h, v12.4h
 sqdmull2 v10.4s, v13.8h, v13.8h
 sqdmull v10.2d, v13.2s, v13.2s
 sqdmull2 v10.2d, v13.4s, v13.4s
; CHECK: sqdmull.4s	v10, v12, v12   ; encoding: [0x8a,0xd1,0x6c,0x0e]
; CHECK: sqdmull2.4s	v10, v13, v13   ; encoding: [0xaa,0xd1,0x6d,0x4e]
; CHECK: sqdmull.2d	v10, v13, v13   ; encoding: [0xaa,0xd1,0xad,0x0e]
; CHECK: sqdmull2.2d	v10, v13, v13   ; encoding: [0xaa,0xd1,0xad,0x4e]

; xtn verbose mode aliases
 xtn v14.8b, v14.8h
 xtn2 v14.16b, v14.8h
 xtn v14.4h, v14.4s
 xtn2 v14.8h, v14.4s
 xtn v14.2s, v14.2d
 xtn2 v14.4s, v14.2d
; CHECK: xtn.8b v14, v14                ; encoding: [0xce,0x29,0x21,0x0e]
; CHECK: xtn2.16b v14, v14              ; encoding: [0xce,0x29,0x21,0x4e]
; CHECK: xtn.4h v14, v14                ; encoding: [0xce,0x29,0x61,0x0e]
; CHECK: xtn2.8h v14, v14               ; encoding: [0xce,0x29,0x61,0x4e]
; CHECK: xtn.2s v14, v14                ; encoding: [0xce,0x29,0xa1,0x0e]
; CHECK: xtn2.4s v14, v14               ; encoding: [0xce,0x29,0xa1,0x4e]

; uaddl verbose mode aliases
 uaddl v9.8h, v13.8b, v14.8b
 uaddl2 v9.8h, v13.16b, v14.16b
 uaddl v9.4s, v13.4h, v14.4h
 uaddl2 v9.4s, v13.8h, v14.8h
 uaddl v9.2d, v13.2s, v14.2s
 uaddl2 v9.2d, v13.4s, v14.4s
; CHECK: uaddl.8h	v9, v13, v14    ; encoding: [0xa9,0x01,0x2e,0x2e]
; CHECK: uaddl2.8h	v9, v13, v14    ; encoding: [0xa9,0x01,0x2e,0x6e]
; CHECK: uaddl.4s	v9, v13, v14    ; encoding: [0xa9,0x01,0x6e,0x2e]
; CHECK: uaddl2.4s	v9, v13, v14    ; encoding: [0xa9,0x01,0x6e,0x6e]
; CHECK: uaddl.2d	v9, v13, v14    ; encoding: [0xa9,0x01,0xae,0x2e]
; CHECK: uaddl2.2d	v9, v13, v14    ; encoding: [0xa9,0x01,0xae,0x6e]

; bit verbose mode aliases
 bit v9.16b, v10.16b, v10.16b
 bit v9.8b, v10.8b, v10.8b
; CHECK: bit.16b v9, v10, v10           ; encoding: [0x49,0x1d,0xaa,0x6e]
; CHECK: bit.8b v9, v10, v10            ; encoding: [0x49,0x1d,0xaa,0x2e]

; pmull verbose mode aliases
 pmull v8.8h, v8.8b, v8.8b
 pmull2 v8.8h, v8.16b, v8.16b
 pmull v8.1q, v8.1d, v8.1d
 pmull2 v8.1q, v8.2d, v8.2d
; CHECK: pmull.8h	v8, v8, v8      ; encoding: [0x08,0xe1,0x28,0x0e]
; CHECK: pmull2.8h	v8, v8, v8      ; encoding: [0x08,0xe1,0x28,0x4e]
; CHECK: pmull.1q	v8, v8, v8      ; encoding: [0x08,0xe1,0xe8,0x0e]
; CHECK: pmull2.1q	v8, v8, v8      ; encoding: [0x08,0xe1,0xe8,0x4e]

; usubl verbose mode aliases
 usubl v9.8h, v13.8b, v14.8b
 usubl2 v9.8h, v13.16b, v14.16b
 usubl v9.4s, v13.4h, v14.4h
 usubl2 v9.4s, v13.8h, v14.8h
 usubl v9.2d, v13.2s, v14.2s
 usubl2 v9.2d, v13.4s, v14.4s
; CHECK: usubl.8h	v9, v13, v14    ; encoding: [0xa9,0x21,0x2e,0x2e]
; CHECK: usubl2.8h	v9, v13, v14    ; encoding: [0xa9,0x21,0x2e,0x6e]
; CHECK: usubl.4s	v9, v13, v14    ; encoding: [0xa9,0x21,0x6e,0x2e]
; CHECK: usubl2.4s	v9, v13, v14    ; encoding: [0xa9,0x21,0x6e,0x6e]
; CHECK: usubl.2d	v9, v13, v14    ; encoding: [0xa9,0x21,0xae,0x2e]
; CHECK: usubl2.2d	v9, v13, v14    ; encoding: [0xa9,0x21,0xae,0x6e]

; uabdl verbose mode aliases
 uabdl v9.8h, v13.8b, v14.8b
 uabdl2 v9.8h, v13.16b, v14.16b
 uabdl v9.4s, v13.4h, v14.4h
 uabdl2 v9.4s, v13.8h, v14.8h
 uabdl v9.2d, v13.2s, v14.2s
 uabdl2 v9.2d, v13.4s, v14.4s
; CHECK: uabdl.8h	v9, v13, v14    ; encoding: [0xa9,0x71,0x2e,0x2e]
; CHECK: uabdl2.8h	v9, v13, v14    ; encoding: [0xa9,0x71,0x2e,0x6e]
; CHECK: uabdl.4s	v9, v13, v14    ; encoding: [0xa9,0x71,0x6e,0x2e]
; CHECK: uabdl2.4s	v9, v13, v14    ; encoding: [0xa9,0x71,0x6e,0x6e]
; CHECK: uabdl.2d	v9, v13, v14    ; encoding: [0xa9,0x71,0xae,0x2e]
; CHECK: uabdl2.2d	v9, v13, v14    ; encoding: [0xa9,0x71,0xae,0x6e]

; umull verbose mode aliases
 umull v9.8h, v13.8b, v14.8b
 umull2 v9.8h, v13.16b, v14.16b
 umull v9.4s, v13.4h, v14.4h
 umull2 v9.4s, v13.8h, v14.8h
 umull v9.2d, v13.2s, v14.2s
 umull2 v9.2d, v13.4s, v14.4s
; CHECK: umull.8h	v9, v13, v14    ; encoding: [0xa9,0xc1,0x2e,0x2e]
; CHECK: umull2.8h	v9, v13, v14    ; encoding: [0xa9,0xc1,0x2e,0x6e]
; CHECK: umull.4s	v9, v13, v14    ; encoding: [0xa9,0xc1,0x6e,0x2e]
; CHECK: umull2.4s	v9, v13, v14    ; encoding: [0xa9,0xc1,0x6e,0x6e]
; CHECK: umull.2d	v9, v13, v14    ; encoding: [0xa9,0xc1,0xae,0x2e]
; CHECK: umull2.2d	v9, v13, v14    ; encoding: [0xa9,0xc1,0xae,0x6e]

; smull verbose mode aliases
 smull v9.8h, v13.8b, v14.8b
 smull2 v9.8h, v13.16b, v14.16b
 smull v9.4s, v13.4h, v14.4h
 smull2 v9.4s, v13.8h, v14.8h
 smull v9.2d, v13.2s, v14.2s
 smull2 v9.2d, v13.4s, v14.4s
; CHECK: smull.8h	v9, v13, v14    ; encoding: [0xa9,0xc1,0x2e,0x0e]
; CHECK: smull2.8h	v9, v13, v14    ; encoding: [0xa9,0xc1,0x2e,0x4e]
; CHECK: smull.4s	v9, v13, v14    ; encoding: [0xa9,0xc1,0x6e,0x0e]
; CHECK: smull2.4s	v9, v13, v14    ; encoding: [0xa9,0xc1,0x6e,0x4e]
; CHECK: smull.2d	v9, v13, v14    ; encoding: [0xa9,0xc1,0xae,0x0e]
; CHECK: smull2.2d	v9, v13, v14    ; encoding: [0xa9,0xc1,0xae,0x4e]