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