1 // REQUIRES: aarch64-registered-target 2 // RUN: %clang_cc1 -triple arm64-none-linux-gnu -target-feature +neon -S -O3 -o - %s | FileCheck %s 3 4 // Test new aarch64 intrinsics and types 5 6 #include <arm_neon.h> 7 8 int8x8_t test_vand_s8(int8x8_t a, int8x8_t b) { 9 // CHECK-LABEL: test_vand_s8 10 return vand_s8(a, b); 11 // CHECK: and {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 12 } 13 14 int8x16_t test_vandq_s8(int8x16_t a, int8x16_t b) { 15 // CHECK-LABEL: test_vandq_s8 16 return vandq_s8(a, b); 17 // CHECK: and {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 18 } 19 20 int16x4_t test_vand_s16(int16x4_t a, int16x4_t b) { 21 // CHECK-LABEL: test_vand_s16 22 return vand_s16(a, b); 23 // CHECK: and {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 24 } 25 26 int16x8_t test_vandq_s16(int16x8_t a, int16x8_t b) { 27 // CHECK-LABEL: test_vandq_s16 28 return vandq_s16(a, b); 29 // CHECK: and {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 30 } 31 32 int32x2_t test_vand_s32(int32x2_t a, int32x2_t b) { 33 // CHECK-LABEL: test_vand_s32 34 return vand_s32(a, b); 35 // CHECK: and {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 36 } 37 38 int32x4_t test_vandq_s32(int32x4_t a, int32x4_t b) { 39 // CHECK-LABEL: test_vandq_s32 40 return vandq_s32(a, b); 41 // CHECK: and {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 42 } 43 44 int64x1_t test_vand_s64(int64x1_t a, int64x1_t b) { 45 // CHECK-LABEL: test_vand_s64 46 return vand_s64(a, b); 47 // CHECK: and {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 48 } 49 50 int64x2_t test_vandq_s64(int64x2_t a, int64x2_t b) { 51 // CHECK-LABEL: test_vandq_s64 52 return vandq_s64(a, b); 53 // CHECK: and {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 54 } 55 56 uint8x8_t test_vand_u8(uint8x8_t a, uint8x8_t b) { 57 // CHECK-LABEL: test_vand_u8 58 return vand_u8(a, b); 59 // CHECK: and {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 60 } 61 62 uint8x16_t test_vandq_u8(uint8x16_t a, uint8x16_t b) { 63 // CHECK-LABEL: test_vandq_u8 64 return vandq_u8(a, b); 65 // CHECK: and {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 66 } 67 68 uint16x4_t test_vand_u16(uint16x4_t a, uint16x4_t b) { 69 // CHECK-LABEL: test_vand_u16 70 return vand_u16(a, b); 71 // CHECK: and {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 72 } 73 74 uint16x8_t test_vandq_u16(uint16x8_t a, uint16x8_t b) { 75 // CHECK-LABEL: test_vandq_u16 76 return vandq_u16(a, b); 77 // CHECK: and {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 78 } 79 80 uint32x2_t test_vand_u32(uint32x2_t a, uint32x2_t b) { 81 // CHECK-LABEL: test_vand_u32 82 return vand_u32(a, b); 83 // CHECK: and {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 84 } 85 86 uint32x4_t test_vandq_u32(uint32x4_t a, uint32x4_t b) { 87 // CHECK-LABEL: test_vandq_u32 88 return vandq_u32(a, b); 89 // CHECK: and {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 90 } 91 92 uint64x1_t test_vand_u64(uint64x1_t a, uint64x1_t b) { 93 // CHECK-LABEL: test_vand_u64 94 return vand_u64(a, b); 95 // CHECK: and {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 96 } 97 98 uint64x2_t test_vandq_u64(uint64x2_t a, uint64x2_t b) { 99 // CHECK-LABEL: test_vandq_u64 100 return vandq_u64(a, b); 101 // CHECK: and {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 102 } 103 104 int8x8_t test_vorr_s8(int8x8_t a, int8x8_t b) { 105 // CHECK-LABEL: test_vorr_s8 106 return vorr_s8(a, b); 107 // CHECK: orr {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 108 } 109 110 int8x16_t test_vorrq_s8(int8x16_t a, int8x16_t b) { 111 // CHECK-LABEL: test_vorrq_s8 112 return vorrq_s8(a, b); 113 // CHECK: orr {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 114 } 115 116 int16x4_t test_vorr_s16(int16x4_t a, int16x4_t b) { 117 // CHECK-LABEL: test_vorr_s16 118 return vorr_s16(a, b); 119 // CHECK: orr {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 120 } 121 122 int16x8_t test_vorrq_s16(int16x8_t a, int16x8_t b) { 123 // CHECK-LABEL: test_vorrq_s16 124 return vorrq_s16(a, b); 125 // CHECK: orr {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 126 } 127 128 int32x2_t test_vorr_s32(int32x2_t a, int32x2_t b) { 129 // CHECK-LABEL: test_vorr_s32 130 return vorr_s32(a, b); 131 // CHECK: orr {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 132 } 133 134 int32x4_t test_vorrq_s32(int32x4_t a, int32x4_t b) { 135 // CHECK-LABEL: test_vorrq_s32 136 return vorrq_s32(a, b); 137 // CHECK: orr {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 138 } 139 140 int64x1_t test_vorr_s64(int64x1_t a, int64x1_t b) { 141 // CHECK-LABEL: test_vorr_s64 142 return vorr_s64(a, b); 143 // CHECK: orr {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 144 } 145 146 int64x2_t test_vorrq_s64(int64x2_t a, int64x2_t b) { 147 // CHECK-LABEL: test_vorrq_s64 148 return vorrq_s64(a, b); 149 // CHECK: orr {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 150 } 151 152 uint8x8_t test_vorr_u8(uint8x8_t a, uint8x8_t b) { 153 // CHECK-LABEL: test_vorr_u8 154 return vorr_u8(a, b); 155 // CHECK: orr {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 156 } 157 158 uint8x16_t test_vorrq_u8(uint8x16_t a, uint8x16_t b) { 159 // CHECK-LABEL: test_vorrq_u8 160 return vorrq_u8(a, b); 161 // CHECK: orr {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 162 } 163 164 uint16x4_t test_vorr_u16(uint16x4_t a, uint16x4_t b) { 165 // CHECK-LABEL: test_vorr_u16 166 return vorr_u16(a, b); 167 // CHECK: orr {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 168 } 169 170 uint16x8_t test_vorrq_u16(uint16x8_t a, uint16x8_t b) { 171 // CHECK-LABEL: test_vorrq_u16 172 return vorrq_u16(a, b); 173 // CHECK: orr {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 174 } 175 176 uint32x2_t test_vorr_u32(uint32x2_t a, uint32x2_t b) { 177 // CHECK-LABEL: test_vorr_u32 178 return vorr_u32(a, b); 179 // CHECK: orr {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 180 } 181 182 uint32x4_t test_vorrq_u32(uint32x4_t a, uint32x4_t b) { 183 // CHECK-LABEL: test_vorrq_u32 184 return vorrq_u32(a, b); 185 // CHECK: orr {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 186 } 187 188 uint64x1_t test_vorr_u64(uint64x1_t a, uint64x1_t b) { 189 // CHECK-LABEL: test_vorr_u64 190 return vorr_u64(a, b); 191 // CHECK: orr {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 192 } 193 194 uint64x2_t test_vorrq_u64(uint64x2_t a, uint64x2_t b) { 195 // CHECK-LABEL: test_vorrq_u64 196 return vorrq_u64(a, b); 197 // CHECK: orr {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 198 } 199 200 int8x8_t test_veor_s8(int8x8_t a, int8x8_t b) { 201 // CHECK-LABEL: test_veor_s8 202 return veor_s8(a, b); 203 // CHECK: eor {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 204 } 205 206 int8x16_t test_veorq_s8(int8x16_t a, int8x16_t b) { 207 // CHECK-LABEL: test_veorq_s8 208 return veorq_s8(a, b); 209 // CHECK: eor {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 210 } 211 212 int16x4_t test_veor_s16(int16x4_t a, int16x4_t b) { 213 // CHECK-LABEL: test_veor_s16 214 return veor_s16(a, b); 215 // CHECK: eor {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 216 } 217 218 int16x8_t test_veorq_s16(int16x8_t a, int16x8_t b) { 219 // CHECK-LABEL: test_veorq_s16 220 return veorq_s16(a, b); 221 // CHECK: eor {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 222 } 223 224 int32x2_t test_veor_s32(int32x2_t a, int32x2_t b) { 225 // CHECK-LABEL: test_veor_s32 226 return veor_s32(a, b); 227 // CHECK: eor {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 228 } 229 230 int32x4_t test_veorq_s32(int32x4_t a, int32x4_t b) { 231 // CHECK-LABEL: test_veorq_s32 232 return veorq_s32(a, b); 233 // CHECK: eor {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 234 } 235 236 int64x1_t test_veor_s64(int64x1_t a, int64x1_t b) { 237 // CHECK-LABEL: test_veor_s64 238 return veor_s64(a, b); 239 // CHECK: eor {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 240 } 241 242 int64x2_t test_veorq_s64(int64x2_t a, int64x2_t b) { 243 // CHECK-LABEL: test_veorq_s64 244 return veorq_s64(a, b); 245 // CHECK: eor {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 246 } 247 248 uint8x8_t test_veor_u8(uint8x8_t a, uint8x8_t b) { 249 // CHECK-LABEL: test_veor_u8 250 return veor_u8(a, b); 251 // CHECK: eor {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 252 } 253 254 uint8x16_t test_veorq_u8(uint8x16_t a, uint8x16_t b) { 255 // CHECK-LABEL: test_veorq_u8 256 return veorq_u8(a, b); 257 // CHECK: eor {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 258 } 259 260 uint16x4_t test_veor_u16(uint16x4_t a, uint16x4_t b) { 261 // CHECK-LABEL: test_veor_u16 262 return veor_u16(a, b); 263 // CHECK: eor {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 264 } 265 266 uint16x8_t test_veorq_u16(uint16x8_t a, uint16x8_t b) { 267 // CHECK-LABEL: test_veorq_u16 268 return veorq_u16(a, b); 269 // CHECK: eor {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 270 } 271 272 uint32x2_t test_veor_u32(uint32x2_t a, uint32x2_t b) { 273 // CHECK-LABEL: test_veor_u32 274 return veor_u32(a, b); 275 // CHECK: eor {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 276 } 277 278 uint32x4_t test_veorq_u32(uint32x4_t a, uint32x4_t b) { 279 // CHECK-LABEL: test_veorq_u32 280 return veorq_u32(a, b); 281 // CHECK: eor {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 282 } 283 284 uint64x1_t test_veor_u64(uint64x1_t a, uint64x1_t b) { 285 // CHECK-LABEL: test_veor_u64 286 return veor_u64(a, b); 287 // CHECK: eor {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 288 } 289 290 uint64x2_t test_veorq_u64(uint64x2_t a, uint64x2_t b) { 291 // CHECK-LABEL: test_veorq_u64 292 return veorq_u64(a, b); 293 // CHECK: eor {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 294 } 295 296 int8x8_t test_vbic_s8(int8x8_t a, int8x8_t b) { 297 // CHECK-LABEL: test_vbic_s8 298 return vbic_s8(a, b); 299 // CHECK: bic {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 300 } 301 302 int8x16_t test_vbicq_s8(int8x16_t a, int8x16_t b) { 303 // CHECK-LABEL: test_vbicq_s8 304 return vbicq_s8(a, b); 305 // CHECK: bic {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 306 } 307 308 int16x4_t test_vbic_s16(int16x4_t a, int16x4_t b) { 309 // CHECK-LABEL: test_vbic_s16 310 return vbic_s16(a, b); 311 // CHECK: bic {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 312 } 313 314 int16x8_t test_vbicq_s16(int16x8_t a, int16x8_t b) { 315 // CHECK-LABEL: test_vbicq_s16 316 return vbicq_s16(a, b); 317 // CHECK: bic {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 318 } 319 320 int32x2_t test_vbic_s32(int32x2_t a, int32x2_t b) { 321 // CHECK-LABEL: test_vbic_s32 322 return vbic_s32(a, b); 323 // CHECK: bic {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 324 } 325 326 int32x4_t test_vbicq_s32(int32x4_t a, int32x4_t b) { 327 // CHECK-LABEL: test_vbicq_s32 328 return vbicq_s32(a, b); 329 // CHECK: bic {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 330 } 331 332 int64x1_t test_vbic_s64(int64x1_t a, int64x1_t b) { 333 // CHECK-LABEL: test_vbic_s64 334 return vbic_s64(a, b); 335 // CHECK: bic {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 336 } 337 338 int64x2_t test_vbicq_s64(int64x2_t a, int64x2_t b) { 339 // CHECK-LABEL: test_vbicq_s64 340 return vbicq_s64(a, b); 341 // CHECK: bic {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 342 } 343 344 uint8x8_t test_vbic_u8(uint8x8_t a, uint8x8_t b) { 345 // CHECK-LABEL: test_vbic_u8 346 return vbic_u8(a, b); 347 // CHECK: bic {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 348 } 349 350 uint8x16_t test_vbicq_u8(uint8x16_t a, uint8x16_t b) { 351 // CHECK-LABEL: test_vbicq_u8 352 return vbicq_u8(a, b); 353 // CHECK: bic {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 354 } 355 356 uint16x4_t test_vbic_u16(uint16x4_t a, uint16x4_t b) { 357 // CHECK-LABEL: test_vbic_u16 358 return vbic_u16(a, b); 359 // CHECK: bic {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 360 } 361 362 uint16x8_t test_vbicq_u16(uint16x8_t a, uint16x8_t b) { 363 // CHECK-LABEL: test_vbicq_u16 364 return vbicq_u16(a, b); 365 // CHECK: bic {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 366 } 367 368 uint32x2_t test_vbic_u32(uint32x2_t a, uint32x2_t b) { 369 // CHECK-LABEL: test_vbic_u32 370 return vbic_u32(a, b); 371 // CHECK: bic {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 372 } 373 374 uint32x4_t test_vbicq_u32(uint32x4_t a, uint32x4_t b) { 375 // CHECK-LABEL: test_vbicq_u32 376 return vbicq_u32(a, b); 377 // CHECK: bic {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 378 } 379 380 uint64x1_t test_vbic_u64(uint64x1_t a, uint64x1_t b) { 381 // CHECK-LABEL: test_vbic_u64 382 return vbic_u64(a, b); 383 // CHECK: bic {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 384 } 385 386 uint64x2_t test_vbicq_u64(uint64x2_t a, uint64x2_t b) { 387 // CHECK-LABEL: test_vbicq_u64 388 return vbicq_u64(a, b); 389 // CHECK: bic {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 390 } 391 392 int8x8_t test_vorn_s8(int8x8_t a, int8x8_t b) { 393 // CHECK-LABEL: test_vorn_s8 394 return vorn_s8(a, b); 395 // CHECK: orn {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 396 } 397 398 int8x16_t test_vornq_s8(int8x16_t a, int8x16_t b) { 399 // CHECK-LABEL: test_vornq_s8 400 return vornq_s8(a, b); 401 // CHECK: orn {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 402 } 403 404 int16x4_t test_vorn_s16(int16x4_t a, int16x4_t b) { 405 // CHECK-LABEL: test_vorn_s16 406 return vorn_s16(a, b); 407 // CHECK: orn {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 408 } 409 410 int16x8_t test_vornq_s16(int16x8_t a, int16x8_t b) { 411 // CHECK-LABEL: test_vornq_s16 412 return vornq_s16(a, b); 413 // CHECK: orn {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 414 } 415 416 int32x2_t test_vorn_s32(int32x2_t a, int32x2_t b) { 417 // CHECK-LABEL: test_vorn_s32 418 return vorn_s32(a, b); 419 // CHECK: orn {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 420 } 421 422 int32x4_t test_vornq_s32(int32x4_t a, int32x4_t b) { 423 // CHECK-LABEL: test_vornq_s32 424 return vornq_s32(a, b); 425 // CHECK: orn {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 426 } 427 428 int64x1_t test_vorn_s64(int64x1_t a, int64x1_t b) { 429 // CHECK-LABEL: test_vorn_s64 430 return vorn_s64(a, b); 431 // CHECK: orn {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 432 } 433 434 int64x2_t test_vornq_s64(int64x2_t a, int64x2_t b) { 435 // CHECK-LABEL: test_vornq_s64 436 return vornq_s64(a, b); 437 // CHECK: orn {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 438 } 439 440 uint8x8_t test_vorn_u8(uint8x8_t a, uint8x8_t b) { 441 // CHECK-LABEL: test_vorn_u8 442 return vorn_u8(a, b); 443 // CHECK: orn {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 444 } 445 446 uint8x16_t test_vornq_u8(uint8x16_t a, uint8x16_t b) { 447 // CHECK-LABEL: test_vornq_u8 448 return vornq_u8(a, b); 449 // CHECK: orn {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 450 } 451 452 uint16x4_t test_vorn_u16(uint16x4_t a, uint16x4_t b) { 453 // CHECK-LABEL: test_vorn_u16 454 return vorn_u16(a, b); 455 // CHECK: orn {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 456 } 457 458 uint16x8_t test_vornq_u16(uint16x8_t a, uint16x8_t b) { 459 // CHECK-LABEL: test_vornq_u16 460 return vornq_u16(a, b); 461 // CHECK: orn {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 462 } 463 464 uint32x2_t test_vorn_u32(uint32x2_t a, uint32x2_t b) { 465 // CHECK-LABEL: test_vorn_u32 466 return vorn_u32(a, b); 467 // CHECK: orn {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 468 } 469 470 uint32x4_t test_vornq_u32(uint32x4_t a, uint32x4_t b) { 471 // CHECK-LABEL: test_vornq_u32 472 return vornq_u32(a, b); 473 // CHECK: orn {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 474 } 475 476 uint64x1_t test_vorn_u64(uint64x1_t a, uint64x1_t b) { 477 // CHECK-LABEL: test_vorn_u64 478 return vorn_u64(a, b); 479 // CHECK: orn {{v[0-9]+}}.8b, {{v[0-9]+}}.8b, {{v[0-9]+}}.8b 480 } 481 482 uint64x2_t test_vornq_u64(uint64x2_t a, uint64x2_t b) { 483 // CHECK-LABEL: test_vornq_u64 484 return vornq_u64(a, b); 485 // CHECK: orn {{v[0-9]+}}.16b, {{v[0-9]+}}.16b, {{v[0-9]+}}.16b 486 } 487