2017-09-29 21:11:33 +08:00
/ / RUN : not l l v m - m c - t r i p l e t h u m b - n o n e - l i n u x - g n u - m a t t r = + v8 . 3 a ,+ n e o n ,+ f u l l f p16 - s h o w - e n c o d i n g < % s 2 > % t | F i l e C h e c k % s - - c h e c k - p r e f i x =THUMB - - c h e c k - p r e f i x =FP16 - T H U M B
2017-10-03 18:26:11 +08:00
/ / RUN : FileCheck - - c h e c k - p r e f i x =STDERR - - c h e c k - p r e f i x =NEON - S T D E R R < % t % s
2017-09-29 21:11:33 +08:00
/ / RUN : not l l v m - m c - t r i p l e a r m - n o n e - l i n u x - g n u - m a t t r = + v8 . 3 a ,+ n e o n ,+ f u l l f p16 - s h o w - e n c o d i n g < % s 2 > % t | F i l e C h e c k % s - - c h e c k - p r e f i x =ARM - - c h e c k - p r e f i x =FP16 - A R M
2017-10-03 18:26:11 +08:00
/ / RUN : FileCheck - - c h e c k - p r e f i x =STDERR - - c h e c k - p r e f i x =NEON - S T D E R R < % t % s
2017-09-29 21:11:33 +08:00
/ / RUN : not l l v m - m c - t r i p l e t h u m b - n o n e - l i n u x - g n u - m a t t r = + v8 . 3 a ,+ n e o n ,- f u l l f p16 - s h o w - e n c o d i n g < % s 2 > % t | F i l e C h e c k % s - - c h e c k - p r e f i x =THUMB
2017-10-03 18:26:11 +08:00
/ / RUN : FileCheck - - c h e c k - p r e f i x =STDERR - - c h e c k - p r e f i x =NO - F P 1 6 - S T D E R R - - c h e c k - p r e f i x =NEON - S T D E R R < % t % s
2017-09-29 21:11:33 +08:00
/ / RUN : not l l v m - m c - t r i p l e a r m - n o n e - l i n u x - g n u - m a t t r = + v8 . 3 a ,+ n e o n ,- f u l l f p16 - s h o w - e n c o d i n g < % s 2 > % t | F i l e C h e c k % s - - c h e c k - p r e f i x =ARM
2017-10-03 18:26:11 +08:00
/ / RUN : FileCheck - - c h e c k - p r e f i x =STDERR - - c h e c k - p r e f i x =NO - F P 1 6 - S T D E R R - - c h e c k - p r e f i x =NEON - S T D E R R < % t % s
2017-09-29 21:11:33 +08:00
/ / RUN : not l l v m - m c - t r i p l e t h u m b - n o n e - l i n u x - g n u - m a t t r = + v8 . 3 a ,- n e o n ,+ f u l l f p16 - s h o w - e n c o d i n g < % s 2 > % t
/ / RUN : FileCheck - - c h e c k - p r e f i x =STDERR - - c h e c k - p r e f i x =NO - N E O N - S T D E R R < % t % s
/ / RUN : not l l v m - m c - t r i p l e a r m - n o n e - l i n u x - g n u - m a t t r = + v8 . 3 a ,- n e o n ,+ f u l l f p16 - s h o w - e n c o d i n g < % s 2 > % t
/ / RUN : FileCheck - - c h e c k - p r e f i x =STDERR - - c h e c k - p r e f i x =NO - N E O N - S T D E R R < % t % s
/ / RUN : not l l v m - m c - t r i p l e t h u m b - n o n e - l i n u x - g n u - m a t t r = + v8 . 2 a ,+ n e o n ,+ f u l l f p16 - s h o w - e n c o d i n g < % s 2 > & 1 | F i l e C h e c k % s - - c h e c k - p r e f i x =V82A
/ / RUN : not l l v m - m c - t r i p l e a r m - n o n e - l i n u x - g n u - m a t t r = + v8 . 2 a ,+ n e o n ,+ f u l l f p16 - s h o w - e n c o d i n g < % s 2 > & 1 | F i l e C h e c k % s - - c h e c k - p r e f i x =V82A
/* ==== VCMLA vector ==== */
/ / Valid t y p e s
vcmla. f16 d0 , d1 , d2 , #0
/ / FP1 6 - A R M : v c m l a . f16 d0 , d1 , d2 , #0 @ encoding: [0x02,0x08,0x21,0xfc]
/ / FP1 6 - T H U M B : v c m l a . f16 d0 , d1 , d2 , #0 @ encoding: [0x21,0xfc,0x02,0x08]
2017-10-03 18:26:11 +08:00
/ / NO- F P 1 6 - S T D E R R : : [ [ @LINE-3]]:{{[0-9]*}}: note: instruction requires: full half-float
2017-09-29 21:11:33 +08:00
/ / V82A : : [ [ @LINE-4]]:{{[0-9]*}}: error: instruction requires: armv8.3a
/ / NO- N E O N _ S T D E R R : : [ [ @LINE-5]]:{{[0-9]*}}: error: instruction requires: NEON
vcmla. f16 q0 , q1 , q2 , #0
/ / FP1 6 - A R M : v c m l a . f16 q0 , q1 , q2 , #0 @ encoding: [0x44,0x08,0x22,0xfc]
/ / FP1 6 - T H U M B : v c m l a . f16 q0 , q1 , q2 , #0 @ encoding: [0x22,0xfc,0x44,0x08]
2017-10-03 18:26:11 +08:00
/ / NO- F P 1 6 - S T D E R R : : [ [ @LINE-3]]:{{[0-9]*}}: note: instruction requires: full half-float
2017-09-29 21:11:33 +08:00
/ / V82A : : [ [ @LINE-4]]:{{[0-9]*}}: error: instruction requires: armv8.3a
/ / NO- N E O N _ S T D E R R : : [ [ @LINE-5]]:{{[0-9]*}}: error: instruction requires: NEON
vcmla. f32 d0 , d1 , d2 , #0
/ / ARM : vcmla. f32 d0 , d1 , d2 , #0 @ encoding: [0x02,0x08,0x31,0xfc]
/ / THUMB : vcmla. f32 d0 , d1 , d2 , #0 @ encoding: [0x31,0xfc,0x02,0x08]
/ / V82A : : [ [ @LINE-3]]:{{[0-9]*}}: error: instruction requires: armv8.3a
/ / NO- N E O N _ S T D E R R : : [ [ @LINE-4]]:{{[0-9]*}}: error: instruction requires: NEON
vcmla. f32 q0 , q1 , q2 , #0
/ / ARM : vcmla. f32 q0 , q1 , q2 , #0 @ encoding: [0x44,0x08,0x32,0xfc]
/ / THUMB : vcmla. f32 q0 , q1 , q2 , #0 @ encoding: [0x32,0xfc,0x44,0x08]
/ / V82A : : [ [ @LINE-3]]:{{[0-9]*}}: error: instruction requires: armv8.3a
/ / NO- N E O N _ S T D E R R : : [ [ @LINE-4]]:{{[0-9]*}}: error: instruction requires: NEON
/ / Valid r o t a t i o n s
vcmla. f32 d0 , d1 , d2 , #90
/ / ARM : vcmla. f32 d0 , d1 , d2 , #90 @ encoding: [0x02,0x08,0xb1,0xfc]
/ / THUMB : vcmla. f32 d0 , d1 , d2 , #90 @ encoding: [0xb1,0xfc,0x02,0x08]
/ / V82A : : [ [ @LINE-3]]:{{[0-9]*}}: error: instruction requires: armv8.3a
/ / NO- N E O N _ S T D E R R : : [ [ @LINE-4]]:{{[0-9]*}}: error: instruction requires: NEON
vcmla. f32 d0 , d1 , d2 , #180
/ / ARM : vcmla. f32 d0 , d1 , d2 , #180 @ encoding: [0x02,0x08,0x31,0xfd]
/ / THUMB : vcmla. f32 d0 , d1 , d2 , #180 @ encoding: [0x31,0xfd,0x02,0x08]
/ / V82A : : [ [ @LINE-3]]:{{[0-9]*}}: error: instruction requires: armv8.3a
/ / NO- N E O N _ S T D E R R : : [ [ @LINE-4]]:{{[0-9]*}}: error: instruction requires: NEON
vcmla. f32 d0 , d1 , d2 , #270
/ / ARM : vcmla. f32 d0 , d1 , d2 , #270 @ encoding: [0x02,0x08,0xb1,0xfd]
/ / THUMB : vcmla. f32 d0 , d1 , d2 , #270 @ encoding: [0xb1,0xfd,0x02,0x08]
/ / V82A : : [ [ @LINE-3]]:{{[0-9]*}}: error: instruction requires: armv8.3a
/ / NO- N E O N _ S T D E R R : : [ [ @LINE-4]]:{{[0-9]*}}: error: instruction requires: NEON
/ / Invalid r o t a t i o n s
vcmla. f32 d0 , d1 , d2 , #- 90
2017-10-03 18:26:11 +08:00
/ / NEON- S T D E R R : : [ [ @LINE-1]]:{{[0-9]*}}: error: complex rotation must be 0, 90, 180 or 270
/ / NO- N E O N - S T D E R R : : [ [ @LINE-2]]:{{[0-9]*}}: error: invalid instruction
2017-09-29 21:11:33 +08:00
vcmla. f32 d0 , d1 , d2 , #1
2017-10-03 18:26:11 +08:00
/ / NEON- S T D E R R : : [ [ @LINE-1]]:{{[0-9]*}}: error: complex rotation must be 0, 90, 180 or 270
/ / NO- N E O N - S T D E R R : : [ [ @LINE-2]]:{{[0-9]*}}: error: invalid instruction
2017-09-29 21:11:33 +08:00
vcmla. f32 d0 , d1 , d2 , #360
2017-10-03 18:26:11 +08:00
/ / NEON- S T D E R R : : [ [ @LINE-1]]:{{[0-9]*}}: error: complex rotation must be 0, 90, 180 or 270
/ / NO- N E O N - S T D E R R : : [ [ @LINE-2]]:{{[0-9]*}}: error: invalid instruction
2017-09-29 21:11:33 +08:00
/* ==== VCADD vector ==== */
/ / Valid t y p e s
vcadd. f16 d0 , d1 , d2 , #90
/ / FP1 6 - A R M : v c a d d . f16 d0 , d1 , d2 , #90 @ encoding: [0x02,0x08,0x81,0xfc]
/ / FP1 6 - T H U M B : v c a d d . f16 d0 , d1 , d2 , #90 @ encoding: [0x81,0xfc,0x02,0x08]
2017-10-03 18:26:11 +08:00
/ / NO- F P 1 6 - S T D E R R : : [ [ @LINE-3]]:{{[0-9]*}}: note: instruction requires: full half-float
2017-09-29 21:11:33 +08:00
/ / V82A : : [ [ @LINE-4]]:{{[0-9]*}}: error: instruction requires: armv8.3a
/ / NO- N E O N _ S T D E R R : : [ [ @LINE-5]]:{{[0-9]*}}: error: instruction requires: NEON
vcadd. f16 q0 , q1 , q2 , #90
/ / FP1 6 - A R M : v c a d d . f16 q0 , q1 , q2 , #90 @ encoding: [0x44,0x08,0x82,0xfc]
/ / FP1 6 - T H U M B : v c a d d . f16 q0 , q1 , q2 , #90 @ encoding: [0x82,0xfc,0x44,0x08]
2017-10-03 18:26:11 +08:00
/ / NO- F P 1 6 - S T D E R R : : [ [ @LINE-3]]:{{[0-9]*}}: note: instruction requires: full half-float
2017-09-29 21:11:33 +08:00
/ / V82A : : [ [ @LINE-4]]:{{[0-9]*}}: error: instruction requires: armv8.3a
/ / NO- N E O N _ S T D E R R : : [ [ @LINE-5]]:{{[0-9]*}}: error: instruction requires: NEON
vcadd. f32 d0 , d1 , d2 , #90
/ / ARM : vcadd. f32 d0 , d1 , d2 , #90 @ encoding: [0x02,0x08,0x91,0xfc]
/ / THUMB : vcadd. f32 d0 , d1 , d2 , #90 @ encoding: [0x91,0xfc,0x02,0x08]
/ / V82A : : [ [ @LINE-3]]:{{[0-9]*}}: error: instruction requires: armv8.3a
/ / NO- N E O N _ S T D E R R : : [ [ @LINE-4]]:{{[0-9]*}}: error: instruction requires: NEON
vcadd. f32 q0 , q1 , q2 , #90
/ / ARM : vcadd. f32 q0 , q1 , q2 , #90 @ encoding: [0x44,0x08,0x92,0xfc]
/ / THUMB : vcadd. f32 q0 , q1 , q2 , #90 @ encoding: [0x92,0xfc,0x44,0x08]
/ / V82A : : [ [ @LINE-3]]:{{[0-9]*}}: error: instruction requires: armv8.3a
/ / NO- N E O N _ S T D E R R : : [ [ @LINE-4]]:{{[0-9]*}}: error: instruction requires: NEON
/ / Valid r o t a t i o n s
vcadd. f32 d0 , d1 , d2 , #270
/ / ARM : vcadd. f32 d0 , d1 , d2 , #270 @ encoding: [0x02,0x08,0x91,0xfd]
/ / THUMB : vcadd. f32 d0 , d1 , d2 , #270 @ encoding: [0x91,0xfd,0x02,0x08]
/ / V82A : : [ [ @LINE-3]]:{{[0-9]*}}: error: instruction requires: armv8.3a
/ / NO- N E O N _ S T D E R R : : [ [ @LINE-4]]:{{[0-9]*}}: error: instruction requires: NEON
/ / Invalid r o t a t i o n s
vcadd. f32 d0 , d1 , d2 , #0
2017-10-03 18:26:11 +08:00
/ / NEON- S T D E R R : : [ [ @LINE-1]]:{{[0-9]*}}: error: complex rotation must be 90 or 270
/ / NO- N E O N - S T D E R R : : [ [ @LINE-2]]:{{[0-9]*}}: error: invalid instruction
2017-09-29 21:11:33 +08:00
vcadd. f32 d0 , d1 , d2 , #180
2017-10-03 18:26:11 +08:00
/ / NEON- S T D E R R : : [ [ @LINE-1]]:{{[0-9]*}}: error: complex rotation must be 90 or 270
/ / NO- N E O N - S T D E R R : : [ [ @LINE-2]]:{{[0-9]*}}: error: invalid instruction
2017-09-29 21:11:33 +08:00
vcadd. f32 d0 , d1 , d2 , #- 90
2017-10-03 18:26:11 +08:00
/ / NEON- S T D E R R : : [ [ @LINE-1]]:{{[0-9]*}}: error: complex rotation must be 90 or 270
/ / NO- N E O N - S T D E R R : : [ [ @LINE-2]]:{{[0-9]*}}: error: invalid instruction
2017-09-29 21:11:33 +08:00
vcadd. f32 d0 , d1 , d2 , #1
2017-10-03 18:26:11 +08:00
/ / NEON- S T D E R R : : [ [ @LINE-1]]:{{[0-9]*}}: error: complex rotation must be 90 or 270
/ / NO- N E O N - S T D E R R : : [ [ @LINE-2]]:{{[0-9]*}}: error: invalid instruction
2017-09-29 21:11:33 +08:00
vcadd. f32 d0 , d1 , d2 , #360
2017-10-03 18:26:11 +08:00
/ / NEON- S T D E R R : : [ [ @LINE-1]]:{{[0-9]*}}: error: complex rotation must be 90 or 270
/ / NO- N E O N - S T D E R R : : [ [ @LINE-2]]:{{[0-9]*}}: error: invalid instruction
2017-09-29 21:11:33 +08:00
/* ==== VCMLA indexed ==== */
/ / Valid t y p e s
vcmla. f16 d0 , d1 , d2 [ 0 ] , #0
/ / FP1 6 - A R M : v c m l a . f16 d0 , d1 , d2 [ 0 ] , #0 @ encoding: [0x02,0x08,0x01,0xfe]
/ / FP1 6 - T H U M B : v c m l a . f16 d0 , d1 , d2 [ 0 ] , #0 @ encoding: [0x01,0xfe,0x02,0x08]
2017-10-03 18:26:11 +08:00
/ / NO- F P 1 6 - S T D E R R : : [ [ @LINE-3]]:{{[0-9]*}}: note: instruction requires: full half-float
2017-09-29 21:11:33 +08:00
/ / V82A : : [ [ @LINE-4]]:{{[0-9]*}}: error: instruction requires: armv8.3a
/ / NO- N E O N _ S T D E R R : : [ [ @LINE-5]]:{{[0-9]*}}: error: instruction requires: NEON
vcmla. f16 q0 , q1 , d2 [ 0 ] , #0
/ / FP1 6 - A R M : v c m l a . f16 q0 , q1 , d2 [ 0 ] , #0 @ encoding: [0x42,0x08,0x02,0xfe]
/ / FP1 6 - T H U M B : v c m l a . f16 q0 , q1 , d2 [ 0 ] , #0 @ encoding: [0x02,0xfe,0x42,0x08]
2017-10-03 18:26:11 +08:00
/ / NO- F P 1 6 - S T D E R R : : [ [ @LINE-3]]:{{[0-9]*}}: note: instruction requires: full half-float
2017-09-29 21:11:33 +08:00
/ / V82A : : [ [ @LINE-4]]:{{[0-9]*}}: error: instruction requires: armv8.3a
/ / NO- N E O N _ S T D E R R : : [ [ @LINE-5]]:{{[0-9]*}}: error: instruction requires: NEON
vcmla. f32 d0 , d1 , d2 [ 0 ] , #0
/ / ARM : vcmla. f32 d0 , d1 , d2 [ 0 ] , #0 @ encoding: [0x02,0x08,0x81,0xfe]
/ / THUMB : vcmla. f32 d0 , d1 , d2 [ 0 ] , #0 @ encoding: [0x81,0xfe,0x02,0x08]
/ / V82A : : [ [ @LINE-3]]:{{[0-9]*}}: error: instruction requires: armv8.3a
/ / NO- N E O N _ S T D E R R : : [ [ @LINE-5]]:{{[0-9]*}}: error: instruction requires: NEON
vcmla. f32 q0 , q1 , d2 [ 0 ] , #0
/ / ARM : vcmla. f32 q0 , q1 , d2 [ 0 ] , #0 @ encoding: [0x42,0x08,0x82,0xfe]
/ / THUMB : vcmla. f32 q0 , q1 , d2 [ 0 ] , #0 @ encoding: [0x82,0xfe,0x42,0x08]
/ / V82A : : [ [ @LINE-3]]:{{[0-9]*}}: error: instruction requires: armv8.3a
/ / NO- N E O N _ S T D E R R : : [ [ @LINE-5]]:{{[0-9]*}}: error: instruction requires: NEON
/ / Valid r o t a t i o n s
vcmla. f32 d0 , d1 , d2 [ 0 ] , #90
/ / ARM : vcmla. f32 d0 , d1 , d2 [ 0 ] , #90 @ encoding: [0x02,0x08,0x91,0xfe]
/ / THUMB : vcmla. f32 d0 , d1 , d2 [ 0 ] , #90 @ encoding: [0x91,0xfe,0x02,0x08]
/ / V82A : : [ [ @LINE-3]]:{{[0-9]*}}: error: instruction requires: armv8.3a
/ / NO- N E O N _ S T D E R R : : [ [ @LINE-4]]:{{[0-9]*}}: error: instruction requires: NEON
vcmla. f32 d0 , d1 , d2 [ 0 ] , #180
/ / ARM : vcmla. f32 d0 , d1 , d2 [ 0 ] , #180 @ encoding: [0x02,0x08,0xa1,0xfe]
/ / THUMB : vcmla. f32 d0 , d1 , d2 [ 0 ] , #180 @ encoding: [0xa1,0xfe,0x02,0x08]
/ / V82A : : [ [ @LINE-3]]:{{[0-9]*}}: error: instruction requires: armv8.3a
/ / NO- N E O N _ S T D E R R : : [ [ @LINE-4]]:{{[0-9]*}}: error: instruction requires: NEON
vcmla. f32 d0 , d1 , d2 [ 0 ] , #270
/ / ARM : vcmla. f32 d0 , d1 , d2 [ 0 ] , #270 @ encoding: [0x02,0x08,0xb1,0xfe]
/ / THUMB : vcmla. f32 d0 , d1 , d2 [ 0 ] , #270 @ encoding: [0xb1,0xfe,0x02,0x08]
/ / V82A : : [ [ @LINE-3]]:{{[0-9]*}}: error: instruction requires: armv8.3a
/ / NO- N E O N _ S T D E R R : : [ [ @LINE-4]]:{{[0-9]*}}: error: instruction requires: NEON
/ / Invalid r o t a t i o n s
vcmla. f32 d0 , d1 , d2 [ 0 ] , #- 90
2017-10-03 18:26:11 +08:00
/ / NEON- S T D E R R : : [ [ @LINE-1]]:{{[0-9]*}}: error: complex rotation must be 0, 90, 180 or 270
/ / NO- N E O N - S T D E R R : : [ [ @LINE-2]]:{{[0-9]*}}: error: invalid instruction
2017-09-29 21:11:33 +08:00
vcmla. f32 d0 , d1 , d2 [ 0 ] , #1
2017-10-03 18:26:11 +08:00
/ / NEON- S T D E R R : : [ [ @LINE-1]]:{{[0-9]*}}: error: complex rotation must be 0, 90, 180 or 270
/ / NO- N E O N - S T D E R R : : [ [ @LINE-2]]:{{[0-9]*}}: error: invalid instruction
2017-09-29 21:11:33 +08:00
vcmla. f32 d0 , d1 , d2 [ 0 ] , #360
2017-10-03 18:26:11 +08:00
/ / NEON- S T D E R R : : [ [ @LINE-1]]:{{[0-9]*}}: error: complex rotation must be 0, 90, 180 or 270
/ / NO- N E O N - S T D E R R : : [ [ @LINE-2]]:{{[0-9]*}}: error: invalid instruction
2017-09-29 21:11:33 +08:00
/ / Valid i n d i c e s
vcmla. f16 d0 , d1 , d2 [ 1 ] , #0
/ / FP1 6 - A R M : v c m l a . f16 d0 , d1 , d2 [ 1 ] , #0 @ encoding: [0x22,0x08,0x01,0xfe]
/ / FP1 6 - T H U M B : v c m l a . f16 d0 , d1 , d2 [ 1 ] , #0 @ encoding: [0x01,0xfe,0x22,0x08]
/ / V82A : : [ [ @LINE-3]]:{{[0-9]*}}: error: instruction requires: armv8.3a
/ / NO- N E O N _ S T D E R R : : [ [ @LINE-4]]:{{[0-9]*}}: error: instruction requires: NEON
/ / Invalid i n d i c e s
2017-10-03 18:26:11 +08:00
/ / The t e x t o f t h e s e e r r o r s v a r y d e p e n d i n g o n w h e t h e r f u l l f p16 i s p r e s e n t .
2017-09-29 21:11:33 +08:00
vcmla. f16 d0 , d1 , d2 [ 2 ] , #0
2017-10-03 18:26:11 +08:00
/ / STDERR : : [ [ @LINE-1]]:{{[0-9]*}}: error:
2017-09-29 21:11:33 +08:00
vcmla. f32 d0 , d1 , d2 [ 1 ] , #0
2017-10-03 18:26:11 +08:00
/ / STDERR : : [ [ @LINE-1]]:{{[0-9]*}}: error: