ARM: add a couple more NEON predicates.
[oota-llvm.git] / test / MC / ARM / vfp4.s
1 @ RUN: llvm-mc < %s -triple armv7-unknown-unknown -show-encoding -mattr=+neon,+vfp4   | FileCheck %s --check-prefix=ARM
2 @ RUN: llvm-mc < %s -triple thumbv7-unknown-unknown -show-encoding -mattr=+neon,+vfp4 | FileCheck %s --check-prefix=THUMB
3 @ RUN: not llvm-mc < %s -triple thumbv7-unknown-unknown -show-encoding -mcpu=cortex-m4 > %t 2> %t2
4 @ RUN:     FileCheck %s < %t --check-prefix=THUMB_V7EM
5 @ RUN:     FileCheck %s < %t2 --check-prefix=THUMB_V7EM-ERRORS
6
7 @ ARM: vfma.f64 d16, d18, d17 @ encoding: [0xa1,0x0b,0xe2,0xee]
8 @ THUMB: vfma.f64 d16, d18, d17 @ encoding: [0xe2,0xee,0xa1,0x0b]
9 vfma.f64 d16, d18, d17
10
11 @ ARM: vfma.f32 s2, s4, s0 @ encoding: [0x00,0x1a,0xa2,0xee]
12 @ THUMB: vfma.f32 s2, s4, s0 @ encoding: [0xa2,0xee,0x00,0x1a]
13 @ THUMB_V7EM: vfma.f32 s2, s4, s0 @ encoding: [0xa2,0xee,0x00,0x1a]
14 vfma.f32 s2, s4, s0
15
16 @ ARM: vfma.f32 d16, d18, d17 @ encoding: [0xb1,0x0c,0x42,0xf2]
17 @ THUMB: vfma.f32 d16, d18, d17 @ encoding: [0x42,0xef,0xb1,0x0c]
18 @ THUMB_V7EM-ERRORS: error: instruction requires: NEON
19 @ THUMB_V7EM-ERRORS-NEXT: vfma.f32 d16, d18, d17
20 vfma.f32 d16, d18, d17
21
22 @ ARM: vfma.f32 q2, q4, q0 @ encoding: [0x50,0x4c,0x08,0xf2]
23 @ THUMB: vfma.f32       q2, q4, q0 @ encoding: [0x08,0xef,0x50,0x4c]
24 @ THUMB_V7EM-ERRORS: error: instruction requires: NEON
25 @ THUMB_V7EM-ERRORS-NEXT: vfma.f32 q2, q4, q0
26 vfma.f32 q2, q4, q0
27
28 @ ARM: vfnma.f64 d16, d18, d17 @ encoding: [0xe1,0x0b,0xd2,0xee]
29 @ THUMB: vfnma.f64 d16, d18, d17 @ encoding: [0xd2,0xee,0xe1,0x0b]
30 vfnma.f64 d16, d18, d17
31
32 @ ARM: vfnma.f32 s2, s4, s0 @ encoding: [0x40,0x1a,0x92,0xee]
33 @ THUMB: vfnma.f32 s2, s4, s0 @ encoding: [0x92,0xee,0x40,0x1a]
34 @ THUMB_V7EM: vfnma.f32 s2, s4, s0 @ encoding: [0x92,0xee,0x40,0x1a]
35 vfnma.f32 s2, s4, s0
36
37 @ ARM: vfms.f64 d16, d18, d17 @ encoding: [0xe1,0x0b,0xe2,0xee]
38 @ THUMB: vfms.f64 d16, d18, d17 @ encoding: [0xe2,0xee,0xe1,0x0b]
39 vfms.f64 d16, d18, d17
40
41 @ ARM: vfms.f32 s2, s4, s0 @ encoding: [0x40,0x1a,0xa2,0xee]
42 @ THUMB: vfms.f32 s2, s4, s0 @ encoding: [0xa2,0xee,0x40,0x1a]
43 @ THUMB_V7EM: vfms.f32 s2, s4, s0 @ encoding: [0xa2,0xee,0x40,0x1a]
44 vfms.f32 s2, s4, s0
45
46 @ ARM: vfms.f32 d16, d18, d17 @ encoding: [0xb1,0x0c,0x62,0xf2]
47 @ THUMB: vfms.f32 d16, d18, d17 @ encoding: [0x62,0xef,0xb1,0x0c]
48 @ THUMB_V7EM-ERRORS: error: instruction requires: NEON
49 @ THUMB_V7EM-ERRORS-NEXT: vfms.f32 d16, d18, d17
50 vfms.f32 d16, d18, d17
51
52 @ ARM: vfms.f32 q2, q4, q0 @ encoding: [0x50,0x4c,0x28,0xf2]
53 @ THUMB: vfms.f32       q2, q4, q0 @ encoding: [0x28,0xef,0x50,0x4c]
54 @ THUMB_V7EM-ERRORS: error: instruction requires: NEON
55 @ THUMB_V7EM-ERRORS-NEXT: vfms.f32 q2, q4, q0
56 vfms.f32 q2, q4, q0
57
58 @ ARM: vfnms.f64 d16, d18, d17 @ encoding: [0xa1,0x0b,0xd2,0xee]
59 @ THUMB: vfnms.f64 d16, d18, d17 @ encoding: [0xd2,0xee,0xa1,0x0b]
60 vfnms.f64 d16, d18, d17
61
62 @ ARM: vfnms.f32 s2, s4, s0 @ encoding: [0x00,0x1a,0x92,0xee]
63 @ THUMB: vfnms.f32 s2, s4, s0 @ encoding: [0x92,0xee,0x00,0x1a]
64 @ THUMB_V7EM: vfnms.f32 s2, s4, s0 @ encoding: [0x92,0xee,0x00,0x1a]
65 vfnms.f32 s2, s4, s0