| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 1 | ; RUN: llc < %s -verify-machineinstrs -mtriple=aarch64-none-linux-gnu -mattr=+neon | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-AARCH64 |
| 2 | ; RUN: llc < %s -verify-machineinstrs -mtriple=arm64-none-linux-gnu -mattr=+neon | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-ARM64 |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 3 | |
| 4 | define <8 x i8> @movi8b() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 5 | ; CHECK-LABEL: movi8b: |
| 6 | ; CHECK: movi {{v[0-9]+}}.8b, #{{0x8|8}} |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 7 | ret <8 x i8> < i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8 > |
| 8 | } |
| 9 | |
| 10 | define <16 x i8> @movi16b() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 11 | ; CHECK-LABEL: movi16b: |
| 12 | ; CHECK: movi {{v[0-9]+}}.16b, #{{0x8|8}} |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 13 | ret <16 x i8> < i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8, i8 8 > |
| 14 | } |
| 15 | |
| 16 | define <2 x i32> @movi2s_lsl0() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 17 | ; CHECK-LABEL: movi2s_lsl0: |
| 18 | ; CHECK-AARCH64: movi {{v[0-9]+}}.2s, #0xff |
| 19 | ; CHECK-ARM64: movi {{d[0-9]+}}, #0x0000ff000000ff |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 20 | ret <2 x i32> < i32 255, i32 255 > |
| 21 | } |
| 22 | |
| 23 | define <2 x i32> @movi2s_lsl8() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 24 | ; CHECK-LABEL: movi2s_lsl8: |
| 25 | ; CHECK-AARCH64: movi {{v[0-9]+}}.2s, #0xff, lsl #8 |
| 26 | ; CHECK-ARM64: movi {{d[0-9]+}}, #0x00ff000000ff00 |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 27 | ret <2 x i32> < i32 65280, i32 65280 > |
| 28 | } |
| 29 | |
| 30 | define <2 x i32> @movi2s_lsl16() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 31 | ; CHECK-LABEL: movi2s_lsl16: |
| 32 | ; CHECK-AARCH64: movi {{v[0-9]+}}.2s, #0xff, lsl #16 |
| 33 | ; CHECK-ARM64: movi {{d[0-9]+}}, #0xff000000ff0000 |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 34 | ret <2 x i32> < i32 16711680, i32 16711680 > |
| 35 | |
| 36 | } |
| 37 | |
| 38 | define <2 x i32> @movi2s_lsl24() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 39 | ; CHECK-LABEL: movi2s_lsl24: |
| 40 | ; CHECK-AARCH64: movi {{v[0-9]+}}.2s, #0xff, lsl #24 |
| 41 | ; CHECK-ARM64: movi {{d[0-9]+}}, #0xff000000ff000000 |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 42 | ret <2 x i32> < i32 4278190080, i32 4278190080 > |
| 43 | } |
| 44 | |
| 45 | define <4 x i32> @movi4s_lsl0() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 46 | ; CHECK-LABEL: movi4s_lsl0: |
| 47 | ; CHECK-AARCH64: movi {{v[0-9]+}}.4s, #0xff |
| 48 | ; CHECK-ARM64: movi {{v[0-9]+}}.2d, #0x0000ff000000ff |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 49 | ret <4 x i32> < i32 255, i32 255, i32 255, i32 255 > |
| 50 | } |
| 51 | |
| 52 | define <4 x i32> @movi4s_lsl8() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 53 | ; CHECK-LABEL: movi4s_lsl8: |
| 54 | ; CHECK-AARCH64: movi {{v[0-9]+}}.4s, #0xff, lsl #8 |
| 55 | ; CHECK-ARM64: movi {{v[0-9]+}}.2d, #0x00ff000000ff00 |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 56 | ret <4 x i32> < i32 65280, i32 65280, i32 65280, i32 65280 > |
| 57 | } |
| 58 | |
| 59 | define <4 x i32> @movi4s_lsl16() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 60 | ; CHECK-LABEL: movi4s_lsl16: |
| 61 | ; CHECK-AARCH64: movi {{v[0-9]+}}.4s, #0xff, lsl #16 |
| 62 | ; CHECK-ARM64: movi {{v[0-9]+}}.2d, #0xff000000ff0000 |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 63 | ret <4 x i32> < i32 16711680, i32 16711680, i32 16711680, i32 16711680 > |
| 64 | |
| 65 | } |
| 66 | |
| 67 | define <4 x i32> @movi4s_lsl24() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 68 | ; CHECK-LABEL: movi4s_lsl24: |
| 69 | ; CHECK-AARCH64: movi {{v[0-9]+}}.4s, #0xff, lsl #24 |
| 70 | ; CHECK-ARM64: movi {{v[0-9]+}}.2d, #0xff000000ff000000 |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 71 | ret <4 x i32> < i32 4278190080, i32 4278190080, i32 4278190080, i32 4278190080 > |
| 72 | } |
| 73 | |
| 74 | define <4 x i16> @movi4h_lsl0() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 75 | ; CHECK-LABEL: movi4h_lsl0: |
| 76 | ; CHECK-AARCH64: movi {{v[0-9]+}}.4h, #0xff |
| 77 | ; CHECK-ARM64: movi {{d[0-9]+}}, #0xff00ff00ff00ff |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 78 | ret <4 x i16> < i16 255, i16 255, i16 255, i16 255 > |
| 79 | } |
| 80 | |
| 81 | define <4 x i16> @movi4h_lsl8() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 82 | ; CHECK-LABEL: movi4h_lsl8: |
| 83 | ; CHECK-AARCH64: movi {{v[0-9]+}}.4h, #{{0xff|255}}, lsl #8 |
| 84 | ; CHECK-ARM64: movi d0, #0xff00ff00ff00ff00 |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 85 | ret <4 x i16> < i16 65280, i16 65280, i16 65280, i16 65280 > |
| 86 | } |
| 87 | |
| 88 | define <8 x i16> @movi8h_lsl0() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 89 | ; CHECK-LABEL: movi8h_lsl0: |
| 90 | ; CHECK-AARCH64: movi {{v[0-9]+}}.8h, #{{0xff|255}} |
| 91 | ; CHECK-ARM64: movi v0.2d, #0xff00ff00ff00ff |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 92 | ret <8 x i16> < i16 255, i16 255, i16 255, i16 255, i16 255, i16 255, i16 255, i16 255 > |
| 93 | } |
| 94 | |
| 95 | define <8 x i16> @movi8h_lsl8() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 96 | ; CHECK-LABEL: movi8h_lsl8: |
| 97 | ; CHECK-AARCH64: movi {{v[0-9]+}}.8h, #{{0xff|255}}, lsl #8 |
| 98 | ; CHECK-ARM64: movi v0.2d, #0xff00ff00ff00ff00 |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 99 | ret <8 x i16> < i16 65280, i16 65280, i16 65280, i16 65280, i16 65280, i16 65280, i16 65280, i16 65280 > |
| 100 | } |
| 101 | |
| 102 | |
| 103 | define <2 x i32> @mvni2s_lsl0() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 104 | ; CHECK-LABEL: mvni2s_lsl0: |
| 105 | ; CHECK: mvni {{v[0-9]+}}.2s, #{{0x10|16}} |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 106 | ret <2 x i32> < i32 4294967279, i32 4294967279 > |
| 107 | } |
| 108 | |
| 109 | define <2 x i32> @mvni2s_lsl8() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 110 | ; CHECK-LABEL: mvni2s_lsl8: |
| 111 | ; CHECK: mvni {{v[0-9]+}}.2s, #{{0x10|16}}, lsl #8 |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 112 | ret <2 x i32> < i32 4294963199, i32 4294963199 > |
| 113 | } |
| 114 | |
| 115 | define <2 x i32> @mvni2s_lsl16() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 116 | ; CHECK-LABEL: mvni2s_lsl16: |
| 117 | ; CHECK: mvni {{v[0-9]+}}.2s, #{{0x10|16}}, lsl #16 |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 118 | ret <2 x i32> < i32 4293918719, i32 4293918719 > |
| 119 | } |
| 120 | |
| 121 | define <2 x i32> @mvni2s_lsl24() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 122 | ; CHECK-LABEL: mvni2s_lsl24: |
| 123 | ; CHECK: mvni {{v[0-9]+}}.2s, #{{0x10|16}}, lsl #24 |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 124 | ret <2 x i32> < i32 4026531839, i32 4026531839 > |
| 125 | } |
| 126 | |
| 127 | define <4 x i32> @mvni4s_lsl0() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 128 | ; CHECK-LABEL: mvni4s_lsl0: |
| 129 | ; CHECK: mvni {{v[0-9]+}}.4s, #{{0x10|16}} |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 130 | ret <4 x i32> < i32 4294967279, i32 4294967279, i32 4294967279, i32 4294967279 > |
| 131 | } |
| 132 | |
| 133 | define <4 x i32> @mvni4s_lsl8() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 134 | ; CHECK-LABEL: mvni4s_lsl8: |
| 135 | ; CHECK: mvni {{v[0-9]+}}.4s, #{{0x10|16}}, lsl #8 |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 136 | ret <4 x i32> < i32 4294963199, i32 4294963199, i32 4294963199, i32 4294963199 > |
| 137 | } |
| 138 | |
| 139 | define <4 x i32> @mvni4s_lsl16() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 140 | ; CHECK-LABEL: mvni4s_lsl16: |
| 141 | ; CHECK: mvni {{v[0-9]+}}.4s, #{{0x10|16}}, lsl #16 |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 142 | ret <4 x i32> < i32 4293918719, i32 4293918719, i32 4293918719, i32 4293918719 > |
| 143 | |
| 144 | } |
| 145 | |
| 146 | define <4 x i32> @mvni4s_lsl24() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 147 | ; CHECK-LABEL: mvni4s_lsl24: |
| 148 | ; CHECK: mvni {{v[0-9]+}}.4s, #{{0x10|16}}, lsl #24 |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 149 | ret <4 x i32> < i32 4026531839, i32 4026531839, i32 4026531839, i32 4026531839 > |
| 150 | } |
| 151 | |
| 152 | |
| 153 | define <4 x i16> @mvni4h_lsl0() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 154 | ; CHECK-LABEL: mvni4h_lsl0: |
| 155 | ; CHECK: mvni {{v[0-9]+}}.4h, #{{0x10|16}} |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 156 | ret <4 x i16> < i16 65519, i16 65519, i16 65519, i16 65519 > |
| 157 | } |
| 158 | |
| 159 | define <4 x i16> @mvni4h_lsl8() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 160 | ; CHECK-LABEL: mvni4h_lsl8: |
| 161 | ; CHECK: mvni {{v[0-9]+}}.4h, #{{0x10|16}}, lsl #8 |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 162 | ret <4 x i16> < i16 61439, i16 61439, i16 61439, i16 61439 > |
| 163 | } |
| 164 | |
| 165 | define <8 x i16> @mvni8h_lsl0() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 166 | ; CHECK-LABEL: mvni8h_lsl0: |
| 167 | ; CHECK: mvni {{v[0-9]+}}.8h, #{{0x10|16}} |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 168 | ret <8 x i16> < i16 65519, i16 65519, i16 65519, i16 65519, i16 65519, i16 65519, i16 65519, i16 65519 > |
| 169 | } |
| 170 | |
| 171 | define <8 x i16> @mvni8h_lsl8() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 172 | ; CHECK-LABEL: mvni8h_lsl8: |
| 173 | ; CHECK: mvni {{v[0-9]+}}.8h, #{{0x10|16}}, lsl #8 |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 174 | ret <8 x i16> < i16 61439, i16 61439, i16 61439, i16 61439, i16 61439, i16 61439, i16 61439, i16 61439 > |
| 175 | } |
| 176 | |
| 177 | |
| 178 | define <2 x i32> @movi2s_msl8(<2 x i32> %a) { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 179 | ; CHECK-LABEL: movi2s_msl8: |
| 180 | ; CHECK-AARCH64: movi {{v[0-9]+}}.2s, #0xff, msl #8 |
| 181 | ; CHECK-ARM64: movi {{d[0-9]+}}, #0x00ffff0000ffff |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 182 | ret <2 x i32> < i32 65535, i32 65535 > |
| 183 | } |
| 184 | |
| 185 | define <2 x i32> @movi2s_msl16() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 186 | ; CHECK-LABEL: movi2s_msl16: |
| 187 | ; CHECK-AARCH64: movi {{v[0-9]+}}.2s, #0xff, msl #16 |
| 188 | ; CHECK-ARM64: movi d0, #0xffffff00ffffff |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 189 | ret <2 x i32> < i32 16777215, i32 16777215 > |
| 190 | } |
| 191 | |
| 192 | |
| 193 | define <4 x i32> @movi4s_msl8() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 194 | ; CHECK-LABEL: movi4s_msl8: |
| 195 | ; CHECK-AARCH64: movi {{v[0-9]+}}.4s, #0xff, msl #8 |
| 196 | ; CHECK-ARM64: movi v0.2d, #0x00ffff0000ffff |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 197 | ret <4 x i32> < i32 65535, i32 65535, i32 65535, i32 65535 > |
| 198 | } |
| 199 | |
| 200 | define <4 x i32> @movi4s_msl16() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 201 | ; CHECK-LABEL: movi4s_msl16: |
| 202 | ; CHECK-AARCH64: movi {{v[0-9]+}}.4s, #0xff, msl #16 |
| 203 | ; CHECK-ARM64: movi v0.2d, #0xffffff00ffffff |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 204 | ret <4 x i32> < i32 16777215, i32 16777215, i32 16777215, i32 16777215 > |
| 205 | } |
| 206 | |
| 207 | define <2 x i32> @mvni2s_msl8() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 208 | ; CHECK-LABEL: mvni2s_msl8: |
| 209 | ; CHECK: mvni {{v[0-9]+}}.2s, #{{0x10|16}}, msl #8 |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 210 | ret <2 x i32> < i32 18446744073709547264, i32 18446744073709547264> |
| 211 | } |
| 212 | |
| 213 | define <2 x i32> @mvni2s_msl16() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 214 | ; CHECK-LABEL: mvni2s_msl16: |
| 215 | ; CHECK: mvni {{v[0-9]+}}.2s, #{{0x10|16}}, msl #16 |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 216 | ret <2 x i32> < i32 18446744073708437504, i32 18446744073708437504> |
| 217 | } |
| 218 | |
| 219 | define <4 x i32> @mvni4s_msl8() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 220 | ; CHECK-LABEL: mvni4s_msl8: |
| 221 | ; CHECK: mvni {{v[0-9]+}}.4s, #{{0x10|16}}, msl #8 |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 222 | ret <4 x i32> < i32 18446744073709547264, i32 18446744073709547264, i32 18446744073709547264, i32 18446744073709547264> |
| 223 | } |
| 224 | |
| 225 | define <4 x i32> @mvni4s_msl16() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 226 | ; CHECK-LABEL: mvni4s_msl16: |
| 227 | ; CHECK: mvni {{v[0-9]+}}.4s, #{{0x10|16}}, msl #16 |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 228 | ret <4 x i32> < i32 18446744073708437504, i32 18446744073708437504, i32 18446744073708437504, i32 18446744073708437504> |
| 229 | } |
| 230 | |
| 231 | define <2 x i64> @movi2d() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 232 | ; CHECK-LABEL: movi2d: |
| 233 | ; CHECK: movi {{v[0-9]+}}.2d, #0xff0000ff0000ffff |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 234 | ret <2 x i64> < i64 18374687574888349695, i64 18374687574888349695 > |
| 235 | } |
| 236 | |
| 237 | define <1 x i64> @movid() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 238 | ; CHECK-LABEL: movid: |
| 239 | ; CHECK: movi {{d[0-9]+}}, #0xff0000ff0000ffff |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 240 | ret <1 x i64> < i64 18374687574888349695 > |
| 241 | } |
| 242 | |
| 243 | define <2 x float> @fmov2s() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 244 | ; CHECK-LABEL: fmov2s: |
| 245 | ; CHECK: fmov {{v[0-9]+}}.2s, #{{-12.00000000|-1.200000e\+01}} |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 246 | ret <2 x float> < float -1.2e1, float -1.2e1> |
| 247 | } |
| 248 | |
| 249 | define <4 x float> @fmov4s() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 250 | ; CHECK-LABEL: fmov4s: |
| 251 | ; CHECK: fmov {{v[0-9]+}}.4s, #{{-12.00000000|-1.200000e\+01}} |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 252 | ret <4 x float> < float -1.2e1, float -1.2e1, float -1.2e1, float -1.2e1> |
| 253 | } |
| 254 | |
| 255 | define <2 x double> @fmov2d() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 256 | ; CHECK-LABEL: fmov2d: |
| 257 | ; CHECK: fmov {{v[0-9]+}}.2d, #{{-12.00000000|-1.200000e\+01}} |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 258 | ret <2 x double> < double -1.2e1, double -1.2e1> |
| 259 | } |
| 260 | |
| Ana Pazos | bde2828 | 2013-12-09 19:29:14 +0000 | [diff] [blame] | 261 | define <2 x i32> @movi1d_1() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 262 | ; CHECK-LABEL: movi1d_1: |
| 263 | ; CHECK: movi d0, #0x{{0*}}ffffffff0000 |
| Ana Pazos | bde2828 | 2013-12-09 19:29:14 +0000 | [diff] [blame] | 264 | ret <2 x i32> < i32 -65536, i32 65535> |
| 265 | } |
| 266 | |
| 267 | |
| 268 | declare <2 x i32> @test_movi1d(<2 x i32>, <2 x i32>) |
| 269 | define <2 x i32> @movi1d() { |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 270 | ; CHECK-LABEL: movi1d: |
| Kevin Qin | 53eaea0 | 2013-12-18 06:26:04 +0000 | [diff] [blame] | 271 | ; CHECK: adrp {{x[0-9]+}}, .{{[A-Z0-9_]+}} |
| Tim Northover | 0dbdfb85 | 2014-04-18 13:16:55 +0000 | [diff] [blame^] | 272 | ; CHECK: ldr {{d[0-9]+}}, [{{x[0-9]+}}, {{#?}}:lo12:.{{[A-Z0-9_]+}}] |
| 273 | ; CHECK-NEXT: movi d1, #0x{{0*}}ffffffff0000 |
| Ana Pazos | bde2828 | 2013-12-09 19:29:14 +0000 | [diff] [blame] | 274 | %1 = tail call <2 x i32> @test_movi1d(<2 x i32> <i32 -2147483648, i32 2147450880>, <2 x i32> <i32 -65536, i32 65535>) |
| 275 | ret <2 x i32> %1 |
| 276 | } |
| Tim Northover | 40e9efd | 2013-08-01 09:20:35 +0000 | [diff] [blame] | 277 | |