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