Bill Wendling | 933b314 | 2010-11-01 21:16:39 +0000 | [diff] [blame] | 1 | @ RUN: llvm-mc -mcpu=cortex-a8 -triple armv7-apple-darwin -show-encoding < %s | FileCheck %s |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 2 | |
Jim Grosbach | bfb3c5a | 2012-04-20 00:14:57 +0000 | [diff] [blame] | 3 | vadd.f64 d16, d17, d16 |
| 4 | vadd.f32 s0, s1, s0 |
Bill Wendling | 933b314 | 2010-11-01 21:16:39 +0000 | [diff] [blame] | 5 | @ CHECK: vadd.f64 d16, d17, d16 @ encoding: [0xa0,0x0b,0x71,0xee] |
Bill Wendling | 933b314 | 2010-11-01 21:16:39 +0000 | [diff] [blame] | 6 | @ CHECK: vadd.f32 s0, s1, s0 @ encoding: [0x80,0x0a,0x30,0xee] |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 7 | |
Jim Grosbach | bfb3c5a | 2012-04-20 00:14:57 +0000 | [diff] [blame] | 8 | vsub.f64 d16, d17, d16 |
| 9 | vsub.f32 s0, s1, s0 |
Bill Wendling | 933b314 | 2010-11-01 21:16:39 +0000 | [diff] [blame] | 10 | @ CHECK: vsub.f64 d16, d17, d16 @ encoding: [0xe0,0x0b,0x71,0xee] |
Bill Wendling | 933b314 | 2010-11-01 21:16:39 +0000 | [diff] [blame] | 11 | @ CHECK: vsub.f32 s0, s1, s0 @ encoding: [0xc0,0x0a,0x30,0xee] |
Jim Grosbach | bfb3c5a | 2012-04-20 00:14:57 +0000 | [diff] [blame] | 12 | |
| 13 | vdiv.f64 d16, d17, d16 |
| 14 | vdiv.f32 s0, s1, s0 |
Jim Grosbach | 181b147 | 2012-04-20 00:15:00 +0000 | [diff] [blame] | 15 | vdiv.f32 s5, s7 |
| 16 | vdiv.f64 d5, d7 |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 17 | |
Jim Grosbach | 181b147 | 2012-04-20 00:15:00 +0000 | [diff] [blame] | 18 | @ CHECK: vdiv.f64 d16, d17, d16 @ encoding: [0xa0,0x0b,0xc1,0xee] |
| 19 | @ CHECK: vdiv.f32 s0, s1, s0 @ encoding: [0x80,0x0a,0x80,0xee] |
| 20 | @ CHECK: vdiv.f32 s5, s5, s7 @ encoding: [0xa3,0x2a,0xc2,0xee] |
| 21 | @ CHECK: vdiv.f64 d5, d5, d7 @ encoding: [0x07,0x5b,0x85,0xee] |
| 22 | |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 23 | |
Jim Grosbach | bfb3c5a | 2012-04-20 00:14:57 +0000 | [diff] [blame] | 24 | vmul.f64 d16, d17, d16 |
Jim Grosbach | bfb0a17 | 2011-11-15 20:14:51 +0000 | [diff] [blame] | 25 | vmul.f64 d20, d17 |
Jim Grosbach | bfb3c5a | 2012-04-20 00:14:57 +0000 | [diff] [blame] | 26 | vmul.f32 s0, s1, s0 |
Jim Grosbach | bfb0a17 | 2011-11-15 20:14:51 +0000 | [diff] [blame] | 27 | vmul.f32 s11, s21 |
| 28 | |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 29 | |
Jim Grosbach | bfb3c5a | 2012-04-20 00:14:57 +0000 | [diff] [blame] | 30 | @ CHECK: vmul.f64 d16, d17, d16 @ encoding: [0xa0,0x0b,0x61,0xee] |
| 31 | @ CHECK: vmul.f64 d20, d20, d17 @ encoding: [0xa1,0x4b,0x64,0xee] |
| 32 | @ CHECK: vmul.f32 s0, s1, s0 @ encoding: [0x80,0x0a,0x20,0xee] |
| 33 | @ CHECK: vmul.f32 s11, s11, s21 @ encoding: [0xaa,0x5a,0x65,0xee] |
| 34 | |
| 35 | vnmul.f64 d16, d17, d16 |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 36 | vnmul.f32 s0, s1, s0 |
| 37 | |
Jim Grosbach | bfb3c5a | 2012-04-20 00:14:57 +0000 | [diff] [blame] | 38 | @ CHECK: vnmul.f64 d16, d17, d16 @ encoding: [0xe0,0x0b,0x61,0xee] |
| 39 | @ CHECK: vnmul.f32 s0, s1, s0 @ encoding: [0xc0,0x0a,0x20,0xee] |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 40 | |
Jim Grosbach | bfb3c5a | 2012-04-20 00:14:57 +0000 | [diff] [blame] | 41 | vcmpe.f64 d17, d16 |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 42 | vcmpe.f32 s1, s0 |
| 43 | |
Jim Grosbach | bfb3c5a | 2012-04-20 00:14:57 +0000 | [diff] [blame] | 44 | @ CHECK: vcmpe.f64 d17, d16 @ encoding: [0xe0,0x1b,0xf4,0xee] |
| 45 | @ CHECK: vcmpe.f32 s1, s0 @ encoding: [0xc0,0x0a,0xf4,0xee] |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 46 | |
Jim Grosbach | bfb3c5a | 2012-04-20 00:14:57 +0000 | [diff] [blame] | 47 | vcmpe.f64 d16, #0 |
Jim Grosbach | 6825914 | 2011-10-03 22:30:24 +0000 | [diff] [blame] | 48 | vcmpe.f32 s0, #0 |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 49 | |
Jim Grosbach | bfb3c5a | 2012-04-20 00:14:57 +0000 | [diff] [blame] | 50 | @ CHECK: vcmpe.f64 d16, #0 @ encoding: [0xc0,0x0b,0xf5,0xee] |
| 51 | @ CHECK: vcmpe.f32 s0, #0 @ encoding: [0xc0,0x0a,0xb5,0xee] |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 52 | |
Jim Grosbach | bfb3c5a | 2012-04-20 00:14:57 +0000 | [diff] [blame] | 53 | vabs.f64 d16, d16 |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 54 | vabs.f32 s0, s0 |
Owen Anderson | 0da10cf | 2011-08-29 19:36:44 +0000 | [diff] [blame] | 55 | |
Jim Grosbach | bfb3c5a | 2012-04-20 00:14:57 +0000 | [diff] [blame] | 56 | @ CHECK: vabs.f64 d16, d16 @ encoding: [0xe0,0x0b,0xf0,0xee] |
| 57 | @ CHECK: vabs.f32 s0, s0 @ encoding: [0xc0,0x0a,0xb0,0xee] |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 58 | |
Jim Grosbach | bfb3c5a | 2012-04-20 00:14:57 +0000 | [diff] [blame] | 59 | vcvt.f32.f64 s0, d16 |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 60 | vcvt.f64.f32 d16, s0 |
| 61 | |
Jim Grosbach | bfb3c5a | 2012-04-20 00:14:57 +0000 | [diff] [blame] | 62 | @ CHECK: vcvt.f32.f64 s0, d16 @ encoding: [0xe0,0x0b,0xb7,0xee] |
| 63 | @ CHECK: vcvt.f64.f32 d16, s0 @ encoding: [0xc0,0x0a,0xf7,0xee] |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 64 | |
Jim Grosbach | bfb3c5a | 2012-04-20 00:14:57 +0000 | [diff] [blame] | 65 | vneg.f64 d16, d16 |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 66 | vneg.f32 s0, s0 |
| 67 | |
Jim Grosbach | bfb3c5a | 2012-04-20 00:14:57 +0000 | [diff] [blame] | 68 | @ CHECK: vneg.f64 d16, d16 @ encoding: [0x60,0x0b,0xf1,0xee] |
| 69 | @ CHECK: vneg.f32 s0, s0 @ encoding: [0x40,0x0a,0xb1,0xee] |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 70 | |
Jim Grosbach | bfb3c5a | 2012-04-20 00:14:57 +0000 | [diff] [blame] | 71 | vsqrt.f64 d16, d16 |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 72 | vsqrt.f32 s0, s0 |
| 73 | |
Jim Grosbach | bfb3c5a | 2012-04-20 00:14:57 +0000 | [diff] [blame] | 74 | @ CHECK: vsqrt.f64 d16, d16 @ encoding: [0xe0,0x0b,0xf1,0xee] |
| 75 | @ CHECK: vsqrt.f32 s0, s0 @ encoding: [0xc0,0x0a,0xb1,0xee] |
| 76 | |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 77 | vcvt.f64.s32 d16, s0 |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 78 | vcvt.f32.s32 s0, s0 |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 79 | vcvt.f64.u32 d16, s0 |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 80 | vcvt.f32.u32 s0, s0 |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 81 | vcvt.s32.f64 s0, d16 |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 82 | vcvt.s32.f32 s0, s0 |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 83 | vcvt.u32.f64 s0, d16 |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 84 | vcvt.u32.f32 s0, s0 |
| 85 | |
Jim Grosbach | bfb3c5a | 2012-04-20 00:14:57 +0000 | [diff] [blame] | 86 | @ CHECK: vcvt.f64.s32 d16, s0 @ encoding: [0xc0,0x0b,0xf8,0xee] |
| 87 | @ CHECK: vcvt.f32.s32 s0, s0 @ encoding: [0xc0,0x0a,0xb8,0xee] |
| 88 | @ CHECK: vcvt.f64.u32 d16, s0 @ encoding: [0x40,0x0b,0xf8,0xee] |
| 89 | @ CHECK: vcvt.f32.u32 s0, s0 @ encoding: [0x40,0x0a,0xb8,0xee] |
| 90 | @ CHECK: vcvt.s32.f64 s0, d16 @ encoding: [0xe0,0x0b,0xbd,0xee] |
| 91 | @ CHECK: vcvt.s32.f32 s0, s0 @ encoding: [0xc0,0x0a,0xbd,0xee] |
| 92 | @ CHECK: vcvt.u32.f64 s0, d16 @ encoding: [0xe0,0x0b,0xbc,0xee] |
| 93 | @ CHECK: vcvt.u32.f32 s0, s0 @ encoding: [0xc0,0x0a,0xbc,0xee] |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 94 | |
Jim Grosbach | bfb3c5a | 2012-04-20 00:14:57 +0000 | [diff] [blame] | 95 | |
| 96 | vmla.f64 d16, d18, d17 |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 97 | vmla.f32 s1, s2, s0 |
| 98 | |
Jim Grosbach | bfb3c5a | 2012-04-20 00:14:57 +0000 | [diff] [blame] | 99 | @ CHECK: vmla.f64 d16, d18, d17 @ encoding: [0xa1,0x0b,0x42,0xee] |
| 100 | @ CHECK: vmla.f32 s1, s2, s0 @ encoding: [0x00,0x0a,0x41,0xee] |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 101 | |
Jim Grosbach | bfb3c5a | 2012-04-20 00:14:57 +0000 | [diff] [blame] | 102 | vmls.f64 d16, d18, d17 |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 103 | vmls.f32 s1, s2, s0 |
| 104 | |
Jim Grosbach | bfb3c5a | 2012-04-20 00:14:57 +0000 | [diff] [blame] | 105 | @ CHECK: vmls.f64 d16, d18, d17 @ encoding: [0xe1,0x0b,0x42,0xee] |
| 106 | @ CHECK: vmls.f32 s1, s2, s0 @ encoding: [0x40,0x0a,0x41,0xee] |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 107 | |
Jim Grosbach | bfb3c5a | 2012-04-20 00:14:57 +0000 | [diff] [blame] | 108 | vnmla.f64 d16, d18, d17 |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 109 | vnmla.f32 s1, s2, s0 |
| 110 | |
Jim Grosbach | bfb3c5a | 2012-04-20 00:14:57 +0000 | [diff] [blame] | 111 | @ CHECK: vnmla.f64 d16, d18, d17 @ encoding: [0xe1,0x0b,0x52,0xee] |
| 112 | @ CHECK: vnmla.f32 s1, s2, s0 @ encoding: [0x40,0x0a,0x51,0xee] |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 113 | |
Jim Grosbach | bfb3c5a | 2012-04-20 00:14:57 +0000 | [diff] [blame] | 114 | vnmls.f64 d16, d18, d17 |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 115 | vnmls.f32 s1, s2, s0 |
| 116 | |
Jim Grosbach | bfb3c5a | 2012-04-20 00:14:57 +0000 | [diff] [blame] | 117 | @ CHECK: vnmls.f64 d16, d18, d17 @ encoding: [0xa1,0x0b,0x52,0xee] |
| 118 | @ CHECK: vnmls.f32 s1, s2, s0 @ encoding: [0x00,0x0a,0x51,0xee] |
| 119 | |
Jim Grosbach | b84ad4a | 2012-03-15 21:34:14 +0000 | [diff] [blame] | 120 | vmrs APSR_nzcv, fpscr |
Jim Grosbach | 5cd5ac6 | 2011-10-03 21:12:43 +0000 | [diff] [blame] | 121 | vmrs apsr_nzcv, fpscr |
| 122 | fmstat |
Jim Grosbach | 9426ac7 | 2012-03-16 00:27:18 +0000 | [diff] [blame] | 123 | vmrs r2, fpsid |
| 124 | vmrs r3, FPSID |
| 125 | vmrs r4, mvfr0 |
| 126 | vmrs r5, MVFR1 |
| 127 | |
| 128 | @ CHECK: vmrs APSR_nzcv, fpscr @ encoding: [0x10,0xfa,0xf1,0xee] |
| 129 | @ CHECK: vmrs APSR_nzcv, fpscr @ encoding: [0x10,0xfa,0xf1,0xee] |
| 130 | @ CHECK: vmrs APSR_nzcv, fpscr @ encoding: [0x10,0xfa,0xf1,0xee] |
| 131 | @ CHECK: vmrs r2, fpsid @ encoding: [0x10,0x2a,0xf0,0xee] |
| 132 | @ CHECK: vmrs r3, fpsid @ encoding: [0x10,0x3a,0xf0,0xee] |
| 133 | @ CHECK: vmrs r4, mvfr0 @ encoding: [0x10,0x4a,0xf7,0xee] |
| 134 | @ CHECK: vmrs r5, mvfr1 @ encoding: [0x10,0x5a,0xf6,0xee] |
Owen Anderson | 0da10cf | 2011-08-29 19:36:44 +0000 | [diff] [blame] | 135 | |
Bill Wendling | 933b314 | 2010-11-01 21:16:39 +0000 | [diff] [blame] | 136 | @ CHECK: vnegne.f64 d16, d16 @ encoding: [0x60,0x0b,0xf1,0x1e] |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 137 | vnegne.f64 d16, d16 |
| 138 | |
Bill Wendling | 933b314 | 2010-11-01 21:16:39 +0000 | [diff] [blame] | 139 | @ CHECK: vmovne s0, r0 @ encoding: [0x10,0x0a,0x00,0x1e] |
| 140 | @ CHECK: vmoveq s0, r1 @ encoding: [0x10,0x1a,0x00,0x0e] |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 141 | vmovne s0, r0 |
| 142 | vmoveq s0, r1 |
| 143 | |
Jim Grosbach | a68e90c | 2011-11-15 20:29:42 +0000 | [diff] [blame] | 144 | vmov.f32 r1, s2 |
| 145 | vmov.f32 s4, r3 |
| 146 | vmov.f64 r1, r5, d2 |
| 147 | vmov.f64 d4, r3, r9 |
| 148 | |
| 149 | @ CHECK: vmov r1, s2 @ encoding: [0x10,0x1a,0x11,0xee] |
| 150 | @ CHECK: vmov s4, r3 @ encoding: [0x10,0x3a,0x02,0xee] |
| 151 | @ CHECK: vmov r1, r5, d2 @ encoding: [0x12,0x1b,0x55,0xec] |
| 152 | @ CHECK: vmov d4, r3, r9 @ encoding: [0x14,0x3b,0x49,0xec] |
| 153 | |
Bill Wendling | 933b314 | 2010-11-01 21:16:39 +0000 | [diff] [blame] | 154 | @ CHECK: vmrs r0, fpscr @ encoding: [0x10,0x0a,0xf1,0xee] |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 155 | vmrs r0, fpscr |
Bruno Cardoso Lopes | 6150590 | 2011-01-18 21:58:20 +0000 | [diff] [blame] | 156 | @ CHECK: vmrs r0, fpexc @ encoding: [0x10,0x0a,0xf8,0xee] |
| 157 | vmrs r0, fpexc |
| 158 | @ CHECK: vmrs r0, fpsid @ encoding: [0x10,0x0a,0xf0,0xee] |
| 159 | vmrs r0, fpsid |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 160 | |
Bill Wendling | 933b314 | 2010-11-01 21:16:39 +0000 | [diff] [blame] | 161 | @ CHECK: vmsr fpscr, r0 @ encoding: [0x10,0x0a,0xe1,0xee] |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 162 | vmsr fpscr, r0 |
Bruno Cardoso Lopes | 6150590 | 2011-01-18 21:58:20 +0000 | [diff] [blame] | 163 | @ CHECK: vmsr fpexc, r0 @ encoding: [0x10,0x0a,0xe8,0xee] |
| 164 | vmsr fpexc, r0 |
| 165 | @ CHECK: vmsr fpsid, r0 @ encoding: [0x10,0x0a,0xe0,0xee] |
| 166 | vmsr fpsid, r0 |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 167 | |
Jim Grosbach | 9d39036 | 2011-10-03 23:38:36 +0000 | [diff] [blame] | 168 | vmov.f64 d16, #3.000000e+00 |
| 169 | vmov.f32 s0, #3.000000e+00 |
| 170 | vmov.f64 d16, #-3.000000e+00 |
| 171 | vmov.f32 s0, #-3.000000e+00 |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 172 | |
Jim Grosbach | 9d39036 | 2011-10-03 23:38:36 +0000 | [diff] [blame] | 173 | @ CHECK: vmov.f64 d16, #3.000000e+00 @ encoding: [0x08,0x0b,0xf0,0xee] |
| 174 | @ CHECK: vmov.f32 s0, #3.000000e+00 @ encoding: [0x08,0x0a,0xb0,0xee] |
| 175 | @ CHECK: vmov.f64 d16, #-3.000000e+00 @ encoding: [0x08,0x0b,0xf8,0xee] |
| 176 | @ CHECK: vmov.f32 s0, #-3.000000e+00 @ encoding: [0x08,0x0a,0xb8,0xee] |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 177 | |
Bill Wendling | 933b314 | 2010-11-01 21:16:39 +0000 | [diff] [blame] | 178 | @ CHECK: vmov s0, r0 @ encoding: [0x10,0x0a,0x00,0xee] |
| 179 | @ CHECK: vmov s1, r1 @ encoding: [0x90,0x1a,0x00,0xee] |
| 180 | @ CHECK: vmov s2, r2 @ encoding: [0x10,0x2a,0x01,0xee] |
| 181 | @ CHECK: vmov s3, r3 @ encoding: [0x90,0x3a,0x01,0xee] |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 182 | vmov s0, r0 |
| 183 | vmov s1, r1 |
| 184 | vmov s2, r2 |
| 185 | vmov s3, r3 |
| 186 | |
Bill Wendling | 933b314 | 2010-11-01 21:16:39 +0000 | [diff] [blame] | 187 | @ CHECK: vmov r0, s0 @ encoding: [0x10,0x0a,0x10,0xee] |
| 188 | @ CHECK: vmov r1, s1 @ encoding: [0x90,0x1a,0x10,0xee] |
| 189 | @ CHECK: vmov r2, s2 @ encoding: [0x10,0x2a,0x11,0xee] |
| 190 | @ CHECK: vmov r3, s3 @ encoding: [0x90,0x3a,0x11,0xee] |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 191 | vmov r0, s0 |
| 192 | vmov r1, s1 |
| 193 | vmov r2, s2 |
| 194 | vmov r3, s3 |
| 195 | |
Bill Wendling | 933b314 | 2010-11-01 21:16:39 +0000 | [diff] [blame] | 196 | @ CHECK: vmov r0, r1, d16 @ encoding: [0x30,0x0b,0x51,0xec] |
Bill Wendling | 52925b6 | 2010-10-29 23:50:21 +0000 | [diff] [blame] | 197 | vmov r0, r1, d16 |
Bill Wendling | 5df0e0a | 2010-11-02 22:31:46 +0000 | [diff] [blame] | 198 | |
Richard Barton | fae96f1 | 2012-07-10 12:51:09 +0000 | [diff] [blame] | 199 | @ Between two single precision registers and two core registers |
| 200 | vmov s3, s4, r1, r2 |
| 201 | vmov s2, s3, r1, r2 |
| 202 | vmov r1, r2, s3, s4 |
| 203 | vmov r1, r2, s2, s3 |
| 204 | @ CHECK: vmov s3, s4, r1, r2 @ encoding: [0x31,0x1a,0x42,0xec] |
| 205 | @ CHECK: vmov s2, s3, r1, r2 @ encoding: [0x11,0x1a,0x42,0xec] |
| 206 | @ CHECK: vmov r1, r2, s3, s4 @ encoding: [0x31,0x1a,0x52,0xec] |
| 207 | @ CHECK: vmov r1, r2, s2, s3 @ encoding: [0x11,0x1a,0x52,0xec] |
| 208 | |
| 209 | @ Between one double precision register and two core registers |
| 210 | vmov d15, r1, r2 |
| 211 | vmov d16, r1, r2 |
| 212 | vmov r1, r2, d15 |
| 213 | vmov r1, r2, d16 |
| 214 | @ CHECK: vmov d15, r1, r2 @ encoding: [0x1f,0x1b,0x42,0xec] |
| 215 | @ CHECK: vmov d16, r1, r2 @ encoding: [0x30,0x1b,0x42,0xec] |
| 216 | @ CHECK: vmov r1, r2, d15 @ encoding: [0x1f,0x1b,0x52,0xec] |
| 217 | @ CHECK: vmov r1, r2, d16 @ encoding: [0x30,0x1b,0x52,0xec] |
| 218 | |
| 219 | |
Jim Grosbach | ffc658b | 2011-11-14 23:03:21 +0000 | [diff] [blame] | 220 | @ CHECK: vldr d17, [r0] @ encoding: [0x00,0x1b,0xd0,0xed] |
| 221 | @ CHECK: vldr s0, [lr] @ encoding: [0x00,0x0a,0x9e,0xed] |
| 222 | @ CHECK: vldr d0, [lr] @ encoding: [0x00,0x0b,0x9e,0xed] |
Jim Grosbach | c7352f8 | 2011-11-11 23:34:43 +0000 | [diff] [blame] | 223 | |
Bill Wendling | 5df0e0a | 2010-11-02 22:31:46 +0000 | [diff] [blame] | 224 | vldr.64 d17, [r0] |
Jim Grosbach | ffc658b | 2011-11-14 23:03:21 +0000 | [diff] [blame] | 225 | vldr.i32 s0, [lr] |
| 226 | vldr.d d0, [lr] |
Bill Wendling | 5df0e0a | 2010-11-02 22:31:46 +0000 | [diff] [blame] | 227 | |
Jim Grosbach | ffc658b | 2011-11-14 23:03:21 +0000 | [diff] [blame] | 228 | @ CHECK: vldr d1, [r2, #32] @ encoding: [0x08,0x1b,0x92,0xed] |
| 229 | @ CHECK: vldr d1, [r2, #-32] @ encoding: [0x08,0x1b,0x12,0xed] |
Bill Wendling | 5df0e0a | 2010-11-02 22:31:46 +0000 | [diff] [blame] | 230 | vldr.64 d1, [r2, #32] |
Jim Grosbach | ffc658b | 2011-11-14 23:03:21 +0000 | [diff] [blame] | 231 | vldr.f64 d1, [r2, #-32] |
Owen Anderson | 0da10cf | 2011-08-29 19:36:44 +0000 | [diff] [blame] | 232 | |
Jim Grosbach | ffc658b | 2011-11-14 23:03:21 +0000 | [diff] [blame] | 233 | @ CHECK: vldr d2, [r3] @ encoding: [0x00,0x2b,0x93,0xed] |
Bill Wendling | 5df0e0a | 2010-11-02 22:31:46 +0000 | [diff] [blame] | 234 | vldr.64 d2, [r3] |
| 235 | |
Jim Grosbach | ffc658b | 2011-11-14 23:03:21 +0000 | [diff] [blame] | 236 | @ CHECK: vldr d3, [pc] @ encoding: [0x00,0x3b,0x9f,0xed] |
| 237 | @ CHECK: vldr d3, [pc] @ encoding: [0x00,0x3b,0x9f,0xed] |
| 238 | @ CHECK: vldr d3, [pc, #-0] @ encoding: [0x00,0x3b,0x1f,0xed] |
Bill Wendling | 5df0e0a | 2010-11-02 22:31:46 +0000 | [diff] [blame] | 239 | vldr.64 d3, [pc] |
| 240 | vldr.64 d3, [pc,#0] |
| 241 | vldr.64 d3, [pc,#-0] |
Bill Wendling | 92b5a2e | 2010-11-03 01:49:29 +0000 | [diff] [blame] | 242 | |
Jim Grosbach | ffc658b | 2011-11-14 23:03:21 +0000 | [diff] [blame] | 243 | @ CHECK: vldr s13, [r0] @ encoding: [0x00,0x6a,0xd0,0xed] |
Bill Wendling | 92b5a2e | 2010-11-03 01:49:29 +0000 | [diff] [blame] | 244 | vldr.32 s13, [r0] |
| 245 | |
Jim Grosbach | ffc658b | 2011-11-14 23:03:21 +0000 | [diff] [blame] | 246 | @ CHECK: vldr s1, [r2, #32] @ encoding: [0x08,0x0a,0xd2,0xed] |
| 247 | @ CHECK: vldr s1, [r2, #-32] @ encoding: [0x08,0x0a,0x52,0xed] |
Bill Wendling | 92b5a2e | 2010-11-03 01:49:29 +0000 | [diff] [blame] | 248 | vldr.32 s1, [r2, #32] |
| 249 | vldr.32 s1, [r2, #-32] |
Owen Anderson | 0da10cf | 2011-08-29 19:36:44 +0000 | [diff] [blame] | 250 | |
Jim Grosbach | ffc658b | 2011-11-14 23:03:21 +0000 | [diff] [blame] | 251 | @ CHECK: vldr s2, [r3] @ encoding: [0x00,0x1a,0x93,0xed] |
Bill Wendling | 92b5a2e | 2010-11-03 01:49:29 +0000 | [diff] [blame] | 252 | vldr.32 s2, [r3] |
| 253 | |
Jim Grosbach | ffc658b | 2011-11-14 23:03:21 +0000 | [diff] [blame] | 254 | @ CHECK: vldr s5, [pc] @ encoding: [0x00,0x2a,0xdf,0xed] |
| 255 | @ CHECK: vldr s5, [pc] @ encoding: [0x00,0x2a,0xdf,0xed] |
| 256 | @ CHECK: vldr s5, [pc, #-0] @ encoding: [0x00,0x2a,0x5f,0xed] |
Bill Wendling | 92b5a2e | 2010-11-03 01:49:29 +0000 | [diff] [blame] | 257 | vldr.32 s5, [pc] |
| 258 | vldr.32 s5, [pc,#0] |
| 259 | vldr.32 s5, [pc,#-0] |
Bill Wendling | 2f46f1f | 2010-11-04 00:59:42 +0000 | [diff] [blame] | 260 | |
Jim Grosbach | ffc658b | 2011-11-14 23:03:21 +0000 | [diff] [blame] | 261 | @ CHECK: vstr d4, [r1] @ encoding: [0x00,0x4b,0x81,0xed] |
| 262 | @ CHECK: vstr d4, [r1, #24] @ encoding: [0x06,0x4b,0x81,0xed] |
| 263 | @ CHECK: vstr d4, [r1, #-24] @ encoding: [0x06,0x4b,0x01,0xed] |
| 264 | @ CHECK: vstr s0, [lr] @ encoding: [0x00,0x0a,0x8e,0xed] |
| 265 | @ CHECK: vstr d0, [lr] @ encoding: [0x00,0x0b,0x8e,0xed] |
Jim Grosbach | c7352f8 | 2011-11-11 23:34:43 +0000 | [diff] [blame] | 266 | |
Bill Wendling | 2f46f1f | 2010-11-04 00:59:42 +0000 | [diff] [blame] | 267 | vstr.64 d4, [r1] |
| 268 | vstr.64 d4, [r1, #24] |
| 269 | vstr.64 d4, [r1, #-24] |
Jim Grosbach | c7352f8 | 2011-11-11 23:34:43 +0000 | [diff] [blame] | 270 | vstr s0, [lr] |
| 271 | vstr d0, [lr] |
Bill Wendling | 2f46f1f | 2010-11-04 00:59:42 +0000 | [diff] [blame] | 272 | |
Jim Grosbach | ffc658b | 2011-11-14 23:03:21 +0000 | [diff] [blame] | 273 | @ CHECK: vstr s4, [r1] @ encoding: [0x00,0x2a,0x81,0xed] |
| 274 | @ CHECK: vstr s4, [r1, #24] @ encoding: [0x06,0x2a,0x81,0xed] |
| 275 | @ CHECK: vstr s4, [r1, #-24] @ encoding: [0x06,0x2a,0x01,0xed] |
Bill Wendling | 2f46f1f | 2010-11-04 00:59:42 +0000 | [diff] [blame] | 276 | vstr.32 s4, [r1] |
| 277 | vstr.32 s4, [r1, #24] |
| 278 | vstr.32 s4, [r1, #-24] |
Bill Wendling | 0f63075 | 2010-11-17 04:32:08 +0000 | [diff] [blame] | 279 | |
| 280 | @ CHECK: vldmia r1, {d2, d3, d4, d5, d6, d7} @ encoding: [0x0c,0x2b,0x91,0xec] |
| 281 | @ CHECK: vldmia r1, {s2, s3, s4, s5, s6, s7} @ encoding: [0x06,0x1a,0x91,0xec] |
| 282 | vldmia r1, {d2,d3-d6,d7} |
| 283 | vldmia r1, {s2,s3-s6,s7} |
| 284 | |
| 285 | @ CHECK: vstmia r1, {d2, d3, d4, d5, d6, d7} @ encoding: [0x0c,0x2b,0x81,0xec] |
| 286 | @ CHECK: vstmia r1, {s2, s3, s4, s5, s6, s7} @ encoding: [0x06,0x1a,0x81,0xec] |
Jim Grosbach | ce485e7 | 2011-11-11 21:27:40 +0000 | [diff] [blame] | 287 | @ CHECK: vpush {d8, d9, d10, d11, d12, d13, d14, d15} @ encoding: [0x10,0x8b,0x2d,0xed] |
Bill Wendling | 0f63075 | 2010-11-17 04:32:08 +0000 | [diff] [blame] | 288 | vstmia r1, {d2,d3-d6,d7} |
| 289 | vstmia r1, {s2,s3-s6,s7} |
Jim Grosbach | ce485e7 | 2011-11-11 21:27:40 +0000 | [diff] [blame] | 290 | vstmdb sp!, {q4-q7} |
Bruno Cardoso Lopes | 106df6d | 2011-01-26 13:53:38 +0000 | [diff] [blame] | 291 | |
| 292 | @ CHECK: vcvtr.s32.f64 s0, d0 @ encoding: [0x40,0x0b,0xbd,0xee] |
| 293 | @ CHECK: vcvtr.s32.f32 s0, s1 @ encoding: [0x60,0x0a,0xbd,0xee] |
| 294 | @ CHECK: vcvtr.u32.f64 s0, d0 @ encoding: [0x40,0x0b,0xbc,0xee] |
| 295 | @ CHECK: vcvtr.u32.f32 s0, s1 @ encoding: [0x60,0x0a,0xbc,0xee] |
| 296 | vcvtr.s32.f64 s0, d0 |
| 297 | vcvtr.s32.f32 s0, s1 |
| 298 | vcvtr.u32.f64 s0, d0 |
| 299 | vcvtr.u32.f32 s0, s1 |
Owen Anderson | 694e0ff | 2011-08-29 23:15:25 +0000 | [diff] [blame] | 300 | |
| 301 | @ CHECK: vmovne s25, s26, r2, r5 |
| 302 | vmovne s25, s26, r2, r5 @ encoding: [0x39,0x2a,0x45,0x1c] |
Jim Grosbach | af33a0c | 2011-12-21 23:24:15 +0000 | [diff] [blame] | 303 | |
| 304 | @ VMOV w/ optional data type suffix. |
| 305 | vmov.32 s1, r8 |
| 306 | vmov.s16 s2, r4 |
| 307 | vmov.16 s3, r6 |
| 308 | vmov.u32 s4, r1 |
| 309 | vmov.p8 s5, r2 |
| 310 | vmov.8 s6, r3 |
| 311 | |
| 312 | vmov.32 r1, s8 |
| 313 | vmov.s16 r2, s4 |
| 314 | vmov.16 r3, s6 |
| 315 | vmov.u32 r4, s1 |
| 316 | vmov.p8 r5, s2 |
| 317 | vmov.8 r6, s3 |
| 318 | |
| 319 | @ CHECK: vmov s1, r8 @ encoding: [0x90,0x8a,0x00,0xee] |
| 320 | @ CHECK: vmov s2, r4 @ encoding: [0x10,0x4a,0x01,0xee] |
| 321 | @ CHECK: vmov s3, r6 @ encoding: [0x90,0x6a,0x01,0xee] |
| 322 | @ CHECK: vmov s4, r1 @ encoding: [0x10,0x1a,0x02,0xee] |
| 323 | @ CHECK: vmov s5, r2 @ encoding: [0x90,0x2a,0x02,0xee] |
| 324 | @ CHECK: vmov s6, r3 @ encoding: [0x10,0x3a,0x03,0xee] |
| 325 | @ CHECK: vmov r1, s8 @ encoding: [0x10,0x1a,0x14,0xee] |
| 326 | @ CHECK: vmov r2, s4 @ encoding: [0x10,0x2a,0x12,0xee] |
| 327 | @ CHECK: vmov r3, s6 @ encoding: [0x10,0x3a,0x13,0xee] |
| 328 | @ CHECK: vmov r4, s1 @ encoding: [0x90,0x4a,0x10,0xee] |
| 329 | @ CHECK: vmov r5, s2 @ encoding: [0x10,0x5a,0x11,0xee] |
| 330 | @ CHECK: vmov r6, s3 @ encoding: [0x90,0x6a,0x11,0xee] |
Jim Grosbach | 4050bc4 | 2011-12-22 22:19:05 +0000 | [diff] [blame] | 331 | |
| 332 | |
| 333 | @ VCVT (between floating-point and fixed-point) |
Kristof Beyls | 8a6bcc3 | 2012-03-15 17:50:29 +0000 | [diff] [blame] | 334 | vcvt.f32.u32 s0, s0, #20 |
Jim Grosbach | 4050bc4 | 2011-12-22 22:19:05 +0000 | [diff] [blame] | 335 | vcvt.f64.s32 d0, d0, #32 |
| 336 | vcvt.f32.u16 s0, s0, #1 |
| 337 | vcvt.f64.s16 d0, d0, #16 |
Kristof Beyls | 8a6bcc3 | 2012-03-15 17:50:29 +0000 | [diff] [blame] | 338 | vcvt.f32.s32 s1, s1, #20 |
| 339 | vcvt.f64.u32 d20, d20, #32 |
| 340 | vcvt.f32.s16 s17, s17, #1 |
| 341 | vcvt.f64.u16 d23, d23, #16 |
| 342 | vcvt.u32.f32 s12, s12, #20 |
| 343 | vcvt.s32.f64 d2, d2, #32 |
| 344 | vcvt.u16.f32 s28, s28, #1 |
| 345 | vcvt.s16.f64 d15, d15, #16 |
| 346 | vcvt.s32.f32 s1, s1, #20 |
| 347 | vcvt.u32.f64 d20, d20, #32 |
| 348 | vcvt.s16.f32 s17, s17, #1 |
| 349 | vcvt.u16.f64 d23, d23, #16 |
Jim Grosbach | 4050bc4 | 2011-12-22 22:19:05 +0000 | [diff] [blame] | 350 | |
| 351 | @ CHECK: vcvt.f32.u32 s0, s0, #20 @ encoding: [0xc6,0x0a,0xbb,0xee] |
| 352 | @ CHECK: vcvt.f64.s32 d0, d0, #32 @ encoding: [0xc0,0x0b,0xba,0xee] |
| 353 | @ CHECK: vcvt.f32.u16 s0, s0, #1 @ encoding: [0x67,0x0a,0xbb,0xee] |
| 354 | @ CHECK: vcvt.f64.s16 d0, d0, #16 @ encoding: [0x40,0x0b,0xba,0xee] |
Kristof Beyls | 8a6bcc3 | 2012-03-15 17:50:29 +0000 | [diff] [blame] | 355 | @ CHECK: vcvt.f32.s32 s1, s1, #20 @ encoding: [0xc6,0x0a,0xfa,0xee] |
| 356 | @ CHECK: vcvt.f64.u32 d20, d20, #32 @ encoding: [0xc0,0x4b,0xfb,0xee] |
| 357 | @ CHECK: vcvt.f32.s16 s17, s17, #1 @ encoding: [0x67,0x8a,0xfa,0xee] |
| 358 | @ CHECK: vcvt.f64.u16 d23, d23, #16 @ encoding: [0x40,0x7b,0xfb,0xee] |
| 359 | |
| 360 | @ CHECK: vcvt.u32.f32 s12, s12, #20 @ encoding: [0xc6,0x6a,0xbf,0xee] |
| 361 | @ CHECK: vcvt.s32.f64 d2, d2, #32 @ encoding: [0xc0,0x2b,0xbe,0xee] |
| 362 | @ CHECK: vcvt.u16.f32 s28, s28, #1 @ encoding: [0x67,0xea,0xbf,0xee] |
| 363 | @ CHECK: vcvt.s16.f64 d15, d15, #16 @ encoding: [0x40,0xfb,0xbe,0xee] |
| 364 | @ CHECK: vcvt.s32.f32 s1, s1, #20 @ encoding: [0xc6,0x0a,0xfe,0xee] |
| 365 | @ CHECK: vcvt.u32.f64 d20, d20, #32 @ encoding: [0xc0,0x4b,0xff,0xee] |
| 366 | @ CHECK: vcvt.s16.f32 s17, s17, #1 @ encoding: [0x67,0x8a,0xfe,0xee] |
| 367 | @ CHECK: vcvt.u16.f64 d23, d23, #16 @ encoding: [0x40,0x7b,0xff,0xee] |
Jim Grosbach | 51222d1 | 2012-01-20 18:09:51 +0000 | [diff] [blame] | 368 | |
| 369 | |
| 370 | @ Use NEON to load some f32 immediates that don't fit the f8 representation. |
| 371 | vmov.f32 d4, #0.0 |
| 372 | vmov.f32 d4, #32.0 |
| 373 | |
| 374 | @ CHECK: vmov.i32 d4, #0x0 @ encoding: [0x10,0x40,0x80,0xf2] |
| 375 | @ CHECK: vmov.i32 d4, #0x42000000 @ encoding: [0x12,0x46,0x84,0xf2] |