18d1b7e57e56015576fd489a57d74c53b98c5a56fBob Wilson@ RUN: llvm-mc -mcpu=cortex-a8 -triple thumb-unknown-unknown -show-encoding < %s | FileCheck %s
28f143913141991baaa535ca0da7c8a81606d6392Owen Anderson
38f143913141991baaa535ca0da7c8a81606d6392Owen Anderson.code 16
48f143913141991baaa535ca0da7c8a81606d6392Owen Anderson
58f143913141991baaa535ca0da7c8a81606d6392Owen Anderson	vmov.i8	d16, #0x8
6ea46110f57b293844a314aec3b8092adf21ff63fJim Grosbach	vmov.i16	d16, #0x10
7ea46110f57b293844a314aec3b8092adf21ff63fJim Grosbach	vmov.i16	d16, #0x1000
86248a546f23e7ffa84c171dc364b922e28467275Jim Grosbach	vmov.i32	d16, #0x20
96248a546f23e7ffa84c171dc364b922e28467275Jim Grosbach	vmov.i32	d16, #0x2000
106248a546f23e7ffa84c171dc364b922e28467275Jim Grosbach	vmov.i32	d16, #0x200000
116248a546f23e7ffa84c171dc364b922e28467275Jim Grosbach	vmov.i32	d16, #0x20000000
126248a546f23e7ffa84c171dc364b922e28467275Jim Grosbach	vmov.i32	d16, #0x20FF
136248a546f23e7ffa84c171dc364b922e28467275Jim Grosbach	vmov.i32	d16, #0x20FFFF
14f2f5bc60f61acf0490d856ddd09e461bf93c5459Jim Grosbach	vmov.i64	d16, #0xFF0000FF0000FFFF
150e387b2877e4eebeedfcb26b08253f9c1b946035Jim Grosbach
160e387b2877e4eebeedfcb26b08253f9c1b946035Jim Grosbach@ CHECK: vmov.i8	d16, #0x8       @ encoding: [0xc0,0xef,0x18,0x0e]
17ea46110f57b293844a314aec3b8092adf21ff63fJim Grosbach@ CHECK: vmov.i16	d16, #0x10      @ encoding: [0xc1,0xef,0x10,0x08]
18ea46110f57b293844a314aec3b8092adf21ff63fJim Grosbach@ CHECK: vmov.i16	d16, #0x1000    @ encoding: [0xc1,0xef,0x10,0x0a]
196248a546f23e7ffa84c171dc364b922e28467275Jim Grosbach@ CHECK: vmov.i32	d16, #0x20      @ encoding: [0xc2,0xef,0x10,0x00]
206248a546f23e7ffa84c171dc364b922e28467275Jim Grosbach@ CHECK: vmov.i32	d16, #0x2000    @ encoding: [0xc2,0xef,0x10,0x02]
216248a546f23e7ffa84c171dc364b922e28467275Jim Grosbach@ CHECK: vmov.i32	d16, #0x200000  @ encoding: [0xc2,0xef,0x10,0x04]
226248a546f23e7ffa84c171dc364b922e28467275Jim Grosbach@ CHECK: vmov.i32	d16, #0x20000000 @ encoding: [0xc2,0xef,0x10,0x06]
2366f72397cca6924503cee5d4f03c7163ff384fceBenjamin Kramer@ CHECK: vmov.i32	d16, #0x20ff    @ encoding: [0xc2,0xef,0x10,0x0c]
2466f72397cca6924503cee5d4f03c7163ff384fceBenjamin Kramer@ CHECK: vmov.i32	d16, #0x20ffff  @ encoding: [0xc2,0xef,0x10,0x0d]
2566f72397cca6924503cee5d4f03c7163ff384fceBenjamin Kramer@ CHECK: vmov.i64 d16, #0xff0000ff0000ffff @ encoding: [0xc1,0xff,0x33,0x0e]
260e387b2877e4eebeedfcb26b08253f9c1b946035Jim Grosbach
270e387b2877e4eebeedfcb26b08253f9c1b946035Jim Grosbach
288f143913141991baaa535ca0da7c8a81606d6392Owen Anderson	vmov.i8	q8, #0x8
29ea46110f57b293844a314aec3b8092adf21ff63fJim Grosbach	vmov.i16	q8, #0x10
30ea46110f57b293844a314aec3b8092adf21ff63fJim Grosbach	vmov.i16	q8, #0x1000
316248a546f23e7ffa84c171dc364b922e28467275Jim Grosbach	vmov.i32	q8, #0x20
326248a546f23e7ffa84c171dc364b922e28467275Jim Grosbach	vmov.i32	q8, #0x2000
336248a546f23e7ffa84c171dc364b922e28467275Jim Grosbach	vmov.i32	q8, #0x200000
346248a546f23e7ffa84c171dc364b922e28467275Jim Grosbach	vmov.i32	q8, #0x20000000
356248a546f23e7ffa84c171dc364b922e28467275Jim Grosbach	vmov.i32	q8, #0x20FF
366248a546f23e7ffa84c171dc364b922e28467275Jim Grosbach	vmov.i32	q8, #0x20FFFF
37f2f5bc60f61acf0490d856ddd09e461bf93c5459Jim Grosbach	vmov.i64	q8, #0xFF0000FF0000FFFF
380e387b2877e4eebeedfcb26b08253f9c1b946035Jim Grosbach
390e387b2877e4eebeedfcb26b08253f9c1b946035Jim Grosbach@ CHECK: vmov.i8	q8, #0x8        @ encoding: [0xc0,0xef,0x58,0x0e]
40ea46110f57b293844a314aec3b8092adf21ff63fJim Grosbach@ CHECK: vmov.i16	q8, #0x10       @ encoding: [0xc1,0xef,0x50,0x08]
41ea46110f57b293844a314aec3b8092adf21ff63fJim Grosbach@ CHECK: vmov.i16	q8, #0x1000     @ encoding: [0xc1,0xef,0x50,0x0a]
426248a546f23e7ffa84c171dc364b922e28467275Jim Grosbach@ CHECK: vmov.i32	q8, #0x20       @ encoding: [0xc2,0xef,0x50,0x00]
436248a546f23e7ffa84c171dc364b922e28467275Jim Grosbach@ CHECK: vmov.i32	q8, #0x2000     @ encoding: [0xc2,0xef,0x50,0x02]
446248a546f23e7ffa84c171dc364b922e28467275Jim Grosbach@ CHECK: vmov.i32	q8, #0x200000   @ encoding: [0xc2,0xef,0x50,0x04]
456248a546f23e7ffa84c171dc364b922e28467275Jim Grosbach@ CHECK: vmov.i32	q8, #0x20000000 @ encoding: [0xc2,0xef,0x50,0x06]
4666f72397cca6924503cee5d4f03c7163ff384fceBenjamin Kramer@ CHECK: vmov.i32	q8, #0x20ff     @ encoding: [0xc2,0xef,0x50,0x0c]
4766f72397cca6924503cee5d4f03c7163ff384fceBenjamin Kramer@ CHECK: vmov.i32	q8, #0x20ffff   @ encoding: [0xc2,0xef,0x50,0x0d]
4866f72397cca6924503cee5d4f03c7163ff384fceBenjamin Kramer@ CHECK: vmov.i64 q8, #0xff0000ff0000ffff @ encoding: [0xc1,0xff,0x73,0x0e]
490e387b2877e4eebeedfcb26b08253f9c1b946035Jim Grosbach
500e387b2877e4eebeedfcb26b08253f9c1b946035Jim Grosbach
51ea46110f57b293844a314aec3b8092adf21ff63fJim Grosbach	vmvn.i16	d16, #0x10
52ea46110f57b293844a314aec3b8092adf21ff63fJim Grosbach	vmvn.i16	d16, #0x1000
536248a546f23e7ffa84c171dc364b922e28467275Jim Grosbach	vmvn.i32	d16, #0x20
546248a546f23e7ffa84c171dc364b922e28467275Jim Grosbach	vmvn.i32	d16, #0x2000
556248a546f23e7ffa84c171dc364b922e28467275Jim Grosbach	vmvn.i32	d16, #0x200000
566248a546f23e7ffa84c171dc364b922e28467275Jim Grosbach	vmvn.i32	d16, #0x20000000
576248a546f23e7ffa84c171dc364b922e28467275Jim Grosbach	vmvn.i32	d16, #0x20FF
586248a546f23e7ffa84c171dc364b922e28467275Jim Grosbach	vmvn.i32	d16, #0x20FFFF
590e387b2877e4eebeedfcb26b08253f9c1b946035Jim Grosbach
60ea46110f57b293844a314aec3b8092adf21ff63fJim Grosbach@ CHECK: vmvn.i16	d16, #0x10      @ encoding: [0xc1,0xef,0x30,0x08]
61ea46110f57b293844a314aec3b8092adf21ff63fJim Grosbach@ CHECK: vmvn.i16	d16, #0x1000    @ encoding: [0xc1,0xef,0x30,0x0a]
626248a546f23e7ffa84c171dc364b922e28467275Jim Grosbach@ CHECK: vmvn.i32	d16, #0x20      @ encoding: [0xc2,0xef,0x30,0x00]
636248a546f23e7ffa84c171dc364b922e28467275Jim Grosbach@ CHECK: vmvn.i32	d16, #0x2000    @ encoding: [0xc2,0xef,0x30,0x02]
646248a546f23e7ffa84c171dc364b922e28467275Jim Grosbach@ CHECK: vmvn.i32	d16, #0x200000  @ encoding: [0xc2,0xef,0x30,0x04]
656248a546f23e7ffa84c171dc364b922e28467275Jim Grosbach@ CHECK: vmvn.i32	d16, #0x20000000 @ encoding: [0xc2,0xef,0x30,0x06]
6666f72397cca6924503cee5d4f03c7163ff384fceBenjamin Kramer@ CHECK: vmvn.i32	d16, #0x20ff    @ encoding: [0xc2,0xef,0x30,0x0c]
6766f72397cca6924503cee5d4f03c7163ff384fceBenjamin Kramer@ CHECK: vmvn.i32	d16, #0x20ffff  @ encoding: [0xc2,0xef,0x30,0x0d]
680e387b2877e4eebeedfcb26b08253f9c1b946035Jim Grosbach
690e387b2877e4eebeedfcb26b08253f9c1b946035Jim Grosbach
708f143913141991baaa535ca0da7c8a81606d6392Owen Anderson	vmovl.s8	q8, d16
718f143913141991baaa535ca0da7c8a81606d6392Owen Anderson	vmovl.s16	q8, d16
728f143913141991baaa535ca0da7c8a81606d6392Owen Anderson	vmovl.s32	q8, d16
738f143913141991baaa535ca0da7c8a81606d6392Owen Anderson	vmovl.u8	q8, d16
748f143913141991baaa535ca0da7c8a81606d6392Owen Anderson	vmovl.u16	q8, d16
758f143913141991baaa535ca0da7c8a81606d6392Owen Anderson	vmovl.u32	q8, d16
768f143913141991baaa535ca0da7c8a81606d6392Owen Anderson	vmovn.i16	d16, q8
778f143913141991baaa535ca0da7c8a81606d6392Owen Anderson	vmovn.i32	d16, q8
788f143913141991baaa535ca0da7c8a81606d6392Owen Anderson	vmovn.i64	d16, q8
798f143913141991baaa535ca0da7c8a81606d6392Owen Anderson	vqmovn.s16	d16, q8
808f143913141991baaa535ca0da7c8a81606d6392Owen Anderson	vqmovn.s32	d16, q8
818f143913141991baaa535ca0da7c8a81606d6392Owen Anderson	vqmovn.s64	d16, q8
828f143913141991baaa535ca0da7c8a81606d6392Owen Anderson	vqmovn.u16	d16, q8
838f143913141991baaa535ca0da7c8a81606d6392Owen Anderson	vqmovn.u32	d16, q8
848f143913141991baaa535ca0da7c8a81606d6392Owen Anderson	vqmovn.u64	d16, q8
858f143913141991baaa535ca0da7c8a81606d6392Owen Anderson	vqmovun.s16	d16, q8
868f143913141991baaa535ca0da7c8a81606d6392Owen Anderson	vqmovun.s32	d16, q8
878f143913141991baaa535ca0da7c8a81606d6392Owen Anderson	vqmovun.s64	d16, q8
880e387b2877e4eebeedfcb26b08253f9c1b946035Jim Grosbach
890e387b2877e4eebeedfcb26b08253f9c1b946035Jim Grosbach@ CHECK: vmovl.s8	q8, d16         @ encoding: [0xc8,0xef,0x30,0x0a]
900e387b2877e4eebeedfcb26b08253f9c1b946035Jim Grosbach@ CHECK: vmovl.s16	q8, d16         @ encoding: [0xd0,0xef,0x30,0x0a]
910e387b2877e4eebeedfcb26b08253f9c1b946035Jim Grosbach@ CHECK: vmovl.s32	q8, d16         @ encoding: [0xe0,0xef,0x30,0x0a]
920e387b2877e4eebeedfcb26b08253f9c1b946035Jim Grosbach@ CHECK: vmovl.u8	q8, d16         @ encoding: [0xc8,0xff,0x30,0x0a]
930e387b2877e4eebeedfcb26b08253f9c1b946035Jim Grosbach@ CHECK: vmovl.u16	q8, d16         @ encoding: [0xd0,0xff,0x30,0x0a]
940e387b2877e4eebeedfcb26b08253f9c1b946035Jim Grosbach@ CHECK: vmovl.u32	q8, d16         @ encoding: [0xe0,0xff,0x30,0x0a]
950e387b2877e4eebeedfcb26b08253f9c1b946035Jim Grosbach@ CHECK: vmovn.i16	d16, q8         @ encoding: [0xf2,0xff,0x20,0x02]
960e387b2877e4eebeedfcb26b08253f9c1b946035Jim Grosbach@ CHECK: vmovn.i32	d16, q8         @ encoding: [0xf6,0xff,0x20,0x02]
970e387b2877e4eebeedfcb26b08253f9c1b946035Jim Grosbach@ CHECK: vmovn.i64	d16, q8         @ encoding: [0xfa,0xff,0x20,0x02]
980e387b2877e4eebeedfcb26b08253f9c1b946035Jim Grosbach@ CHECK: vqmovn.s16	d16, q8         @ encoding: [0xf2,0xff,0xa0,0x02]
990e387b2877e4eebeedfcb26b08253f9c1b946035Jim Grosbach@ CHECK: vqmovn.s32	d16, q8         @ encoding: [0xf6,0xff,0xa0,0x02]
1000e387b2877e4eebeedfcb26b08253f9c1b946035Jim Grosbach@ CHECK: vqmovn.s64	d16, q8         @ encoding: [0xfa,0xff,0xa0,0x02]
1010e387b2877e4eebeedfcb26b08253f9c1b946035Jim Grosbach@ CHECK: vqmovn.u16	d16, q8         @ encoding: [0xf2,0xff,0xe0,0x02]
1020e387b2877e4eebeedfcb26b08253f9c1b946035Jim Grosbach@ CHECK: vqmovn.u32	d16, q8         @ encoding: [0xf6,0xff,0xe0,0x02]
1030e387b2877e4eebeedfcb26b08253f9c1b946035Jim Grosbach@ CHECK: vqmovn.u64	d16, q8         @ encoding: [0xfa,0xff,0xe0,0x02]
1040e387b2877e4eebeedfcb26b08253f9c1b946035Jim Grosbach@ CHECK: vqmovun.s16	d16, q8         @ encoding: [0xf2,0xff,0x60,0x02]
1050e387b2877e4eebeedfcb26b08253f9c1b946035Jim Grosbach@ CHECK: vqmovun.s32	d16, q8         @ encoding: [0xf6,0xff,0x60,0x02]
1060e387b2877e4eebeedfcb26b08253f9c1b946035Jim Grosbach@ CHECK: vqmovun.s64	d16, q8         @ encoding: [0xfa,0xff,0x60,0x02]
1070e387b2877e4eebeedfcb26b08253f9c1b946035Jim Grosbach
1080e387b2877e4eebeedfcb26b08253f9c1b946035Jim Grosbach
109ca8d1842cff5cd5866c0d4d46cf736ca9f8718f4Jim Grosbach	vmov.s8	r0, d16[1]
110ca8d1842cff5cd5866c0d4d46cf736ca9f8718f4Jim Grosbach	vmov.s16	r0, d16[1]
111ca8d1842cff5cd5866c0d4d46cf736ca9f8718f4Jim Grosbach	vmov.u8	r0, d16[1]
112ca8d1842cff5cd5866c0d4d46cf736ca9f8718f4Jim Grosbach	vmov.u16	r0, d16[1]
113ca8d1842cff5cd5866c0d4d46cf736ca9f8718f4Jim Grosbach	vmov.32	r0, d16[1]
114ca8d1842cff5cd5866c0d4d46cf736ca9f8718f4Jim Grosbach	vmov.8	d16[1], r1
115ca8d1842cff5cd5866c0d4d46cf736ca9f8718f4Jim Grosbach	vmov.16	d16[1], r1
116ca8d1842cff5cd5866c0d4d46cf736ca9f8718f4Jim Grosbach	vmov.32	d16[1], r1
117ca8d1842cff5cd5866c0d4d46cf736ca9f8718f4Jim Grosbach	vmov.8	d18[1], r1
118ca8d1842cff5cd5866c0d4d46cf736ca9f8718f4Jim Grosbach	vmov.16	d18[1], r1
119ca8d1842cff5cd5866c0d4d46cf736ca9f8718f4Jim Grosbach	vmov.32	d18[1], r1
1200e387b2877e4eebeedfcb26b08253f9c1b946035Jim Grosbach
121ca8d1842cff5cd5866c0d4d46cf736ca9f8718f4Jim Grosbach@ CHECK: vmov.s8	r0, d16[1]      @ encoding: [0x50,0xee,0xb0,0x0b]
122ca8d1842cff5cd5866c0d4d46cf736ca9f8718f4Jim Grosbach@ CHECK: vmov.s16	r0, d16[1]      @ encoding: [0x10,0xee,0xf0,0x0b]
123ca8d1842cff5cd5866c0d4d46cf736ca9f8718f4Jim Grosbach@ CHECK: vmov.u8	r0, d16[1]      @ encoding: [0xd0,0xee,0xb0,0x0b]
124ca8d1842cff5cd5866c0d4d46cf736ca9f8718f4Jim Grosbach@ CHECK: vmov.u16	r0, d16[1]      @ encoding: [0x90,0xee,0xf0,0x0b]
125ca8d1842cff5cd5866c0d4d46cf736ca9f8718f4Jim Grosbach@ CHECK: vmov.32	r0, d16[1]      @ encoding: [0x30,0xee,0x90,0x0b]
126ca8d1842cff5cd5866c0d4d46cf736ca9f8718f4Jim Grosbach@ CHECK: vmov.8	d16[1], r1              @ encoding: [0x40,0xee,0xb0,0x1b]
127ca8d1842cff5cd5866c0d4d46cf736ca9f8718f4Jim Grosbach@ CHECK: vmov.16	d16[1], r1      @ encoding: [0x00,0xee,0xf0,0x1b]
128ca8d1842cff5cd5866c0d4d46cf736ca9f8718f4Jim Grosbach@ CHECK: vmov.32	d16[1], r1      @ encoding: [0x20,0xee,0x90,0x1b]
129ca8d1842cff5cd5866c0d4d46cf736ca9f8718f4Jim Grosbach@ CHECK: vmov.8	d18[1], r1              @ encoding: [0x42,0xee,0xb0,0x1b]
130ca8d1842cff5cd5866c0d4d46cf736ca9f8718f4Jim Grosbach@ CHECK: vmov.16	d18[1], r1      @ encoding: [0x02,0xee,0xf0,0x1b]
131ca8d1842cff5cd5866c0d4d46cf736ca9f8718f4Jim Grosbach@ CHECK: vmov.32	d18[1], r1      @ encoding: [0x22,0xee,0x90,0x1b]
132