1 // RUN: llvm-mc -triple armv7-apple-darwin -show-encoding < %s | FileCheck %s
3 // CHECK: vadd.f64 d16, d17, d16 @ encoding: [0xa0,0x0b,0x71,0xee]
6 // CHECK: vadd.f32 s0, s1, s0 @ encoding: [0x80,0x0a,0x30,0xee]
9 // CHECK: vsub.f64 d16, d17, d16 @ encoding: [0xe0,0x0b,0x71,0xee]
10 vsub.f64 d16, d17, d16
12 // CHECK: vsub.f32 s0, s1, s0 @ encoding: [0xc0,0x0a,0x30,0xee]
15 // CHECK: vdiv.f64 d16, d17, d16 @ encoding: [0xa0,0x0b,0xc1,0xee]
16 vdiv.f64 d16, d17, d16
18 // CHECK: vdiv.f32 s0, s1, s0 @ encoding: [0x80,0x0a,0x80,0xee]
21 // CHECK: vmul.f64 d16, d17, d16 @ encoding: [0xa0,0x0b,0x61,0xee]
22 vmul.f64 d16, d17, d16
24 // CHECK: vmul.f32 s0, s1, s0 @ encoding: [0x80,0x0a,0x20,0xee]
27 // CHECK: vnmul.f64 d16, d17, d16 @ encoding: [0xe0,0x0b,0x61,0xee]
28 vnmul.f64 d16, d17, d16
30 // CHECK: vnmul.f32 s0, s1, s0 @ encoding: [0xc0,0x0a,0x20,0xee]
33 // CHECK: vcmpe.f64 d17, d16 @ encoding: [0xe0,0x1b,0xf4,0xee]
36 // CHECK: vcmpe.f32 s1, s0 @ encoding: [0xc0,0x0a,0xf4,0xee]
39 // FIXME: vcmpe.f64 d16, #0 @ encoding: [0xc0,0x0b,0xf5,0xee]
42 // FIXME: vcmpe.f32 s0, #0 @ encoding: [0xc0,0x0a,0xb5,0xee]
45 // CHECK: vabs.f64 d16, d16 @ encoding: [0xe0,0x0b,0xf0,0xee]
48 // CHECK: vabs.f32 s0, s0 @ encoding: [0xc0,0x0a,0xb0,0xee]
51 // CHECK: vcvt.f32.f64 s0, d16 @ encoding: [0xe0,0x0b,0xb7,0xee]
54 // CHECK: vcvt.f64.f32 d16, s0 @ encoding: [0xc0,0x0a,0xf7,0xee]
57 // CHECK: vneg.f64 d16, d16 @ encoding: [0x60,0x0b,0xf1,0xee]
60 // CHECK: vneg.f32 s0, s0 @ encoding: [0x40,0x0a,0xb1,0xee]
63 // CHECK: vsqrt.f64 d16, d16 @ encoding: [0xe0,0x0b,0xf1,0xee]
66 // CHECK: vsqrt.f32 s0, s0 @ encoding: [0xc0,0x0a,0xb1,0xee]
69 // CHECK: vcvt.f64.s32 d16, s0 @ encoding: [0xc0,0x0b,0xf8,0xee]
72 // CHECK: vcvt.f32.s32 s0, s0 @ encoding: [0xc0,0x0a,0xb8,0xee]
75 // CHECK: vcvt.f64.u32 d16, s0 @ encoding: [0x40,0x0b,0xf8,0xee]
78 // CHECK: vcvt.f32.u32 s0, s0 @ encoding: [0x40,0x0a,0xb8,0xee]
81 // CHECK: vcvt.s32.f64 s0, d16 @ encoding: [0xe0,0x0b,0xbd,0xee]
84 // CHECK: vcvt.s32.f32 s0, s0 @ encoding: [0xc0,0x0a,0xbd,0xee]
87 // CHECK: vcvt.u32.f64 s0, d16 @ encoding: [0xe0,0x0b,0xbc,0xee]
90 // CHECK: vcvt.u32.f32 s0, s0 @ encoding: [0xc0,0x0a,0xbc,0xee]
93 // CHECK: vmla.f64 d16, d18, d17 @ encoding: [0xa1,0x0b,0x42,0xee]
94 vmla.f64 d16, d18, d17
96 // CHECK: vmla.f32 s1, s2, s0 @ encoding: [0x00,0x0a,0x41,0xee]
99 // CHECK: vmls.f64 d16, d18, d17 @ encoding: [0xe1,0x0b,0x42,0xee]
100 vmls.f64 d16, d18, d17
102 // CHECK: vmls.f32 s1, s2, s0 @ encoding: [0x40,0x0a,0x41,0xee]
105 // CHECK: vnmla.f64 d16, d18, d17 @ encoding: [0xe1,0x0b,0x52,0xee]
106 vnmla.f64 d16, d18, d17
108 // CHECK: vnmla.f32 s1, s2, s0 @ encoding: [0x40,0x0a,0x51,0xee]
111 // CHECK: vnmls.f64 d16, d18, d17 @ encoding: [0xa1,0x0b,0x52,0xee]
112 vnmls.f64 d16, d18, d17
114 // CHECK: vnmls.f32 s1, s2, s0 @ encoding: [0x00,0x0a,0x51,0xee]
117 // FIXME: vmrs apsr_nzcv, fpscr @ encoding: [0x10,0xfa,0xf1,0xee]
118 // vmrs apsr_nzcv, fpscr
120 // CHECK: vnegne.f64 d16, d16 @ encoding: [0x60,0x0b,0xf1,0x1e]
123 // CHECK: vmovne s0, r0 @ encoding: [0x10,0x0a,0x00,0x1e]
124 // CHECK: vmoveq s0, r1 @ encoding: [0x10,0x1a,0x00,0x0e]
128 // CHECK: vmrs r0, fpscr @ encoding: [0x10,0x0a,0xf1,0xee]
131 // CHECK: vmsr fpscr, r0 @ encoding: [0x10,0x0a,0xe1,0xee]
134 // FIXME: vmov.f64 d16, #3.000000e+00 @ encoding: [0x08,0x0b,0xf0,0xee]
135 // vmov.f64 d16, #3.000000e+00
137 // FIXME: vmov.f32 s0, #3.000000e+00 @ encoding: [0x08,0x0a,0xb0,0xee]
138 // vmov.f32 s0, #3.000000e+00
140 // CHECK: vmov s0, r0 @ encoding: [0x10,0x0a,0x00,0xee]
141 // CHECK: vmov s1, r1 @ encoding: [0x90,0x1a,0x00,0xee]
142 // CHECK: vmov s2, r2 @ encoding: [0x10,0x2a,0x01,0xee]
143 // CHECK: vmov s3, r3 @ encoding: [0x90,0x3a,0x01,0xee]
149 // CHECK: vmov r0, s0 @ encoding: [0x10,0x0a,0x10,0xee]
150 // CHECK: vmov r1, s1 @ encoding: [0x90,0x1a,0x10,0xee]
151 // CHECK: vmov r2, s2 @ encoding: [0x10,0x2a,0x11,0xee]
152 // CHECK: vmov r3, s3 @ encoding: [0x90,0x3a,0x11,0xee]
158 // CHECK: vmov r0, r1, d16 @ encoding: [0x30,0x0b,0x51,0xec]