Skip to content

Commit 48f5434

Browse files
committed
Fix expected instructions for arm.
- vreinterpret* do not emit any instructions on arm. - vst1* intrinsics actual emit vst1.* instructions. - arm vext_s64/vext_u64 don't cause any instructions to be emitted.
1 parent 89b4898 commit 48f5434

File tree

4 files changed

+253
-253
lines changed

4 files changed

+253
-253
lines changed

crates/core_arch/src/arm/neon.rs

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -307,175 +307,175 @@ pub unsafe fn vld1q_f32(ptr: *const f32) -> float32x4_t {
307307
/// Store multiple single-element structures from one, two, three, or four registers.
308308
#[inline]
309309
#[target_feature(enable = "neon,v7")]
310-
#[cfg_attr(test, assert_instr(str))]
310+
#[cfg_attr(test, assert_instr("vst1.8"))]
311311
pub unsafe fn vst1_s8(ptr: *mut i8, a: int8x8_t) {
312312
vst1_v8i8(ptr as *const i8, a, align_of::<i8>() as i32)
313313
}
314314

315315
/// Store multiple single-element structures from one, two, three, or four registers.
316316
#[inline]
317317
#[target_feature(enable = "neon,v7")]
318-
#[cfg_attr(test, assert_instr(str))]
318+
#[cfg_attr(test, assert_instr("vst1.8"))]
319319
pub unsafe fn vst1q_s8(ptr: *mut i8, a: int8x16_t) {
320320
vst1q_v16i8(ptr as *const i8, a, align_of::<i8>() as i32)
321321
}
322322

323323
/// Store multiple single-element structures from one, two, three, or four registers.
324324
#[inline]
325325
#[target_feature(enable = "neon,v7")]
326-
#[cfg_attr(test, assert_instr(str))]
326+
#[cfg_attr(test, assert_instr("vst1.16"))]
327327
pub unsafe fn vst1_s16(ptr: *mut i16, a: int16x4_t) {
328328
vst1_v4i16(ptr as *const i8, a, align_of::<i16>() as i32)
329329
}
330330

331331
/// Store multiple single-element structures from one, two, three, or four registers.
332332
#[inline]
333333
#[target_feature(enable = "neon,v7")]
334-
#[cfg_attr(test, assert_instr(str))]
334+
#[cfg_attr(test, assert_instr("vst1.16"))]
335335
pub unsafe fn vst1q_s16(ptr: *mut i16, a: int16x8_t) {
336336
vst1q_v8i16(ptr as *const i8, a, align_of::<i16>() as i32)
337337
}
338338

339339
/// Store multiple single-element structures from one, two, three, or four registers.
340340
#[inline]
341341
#[target_feature(enable = "neon,v7")]
342-
#[cfg_attr(test, assert_instr(str))]
342+
#[cfg_attr(test, assert_instr("vst1.32"))]
343343
pub unsafe fn vst1_s32(ptr: *mut i32, a: int32x2_t) {
344344
vst1_v2i32(ptr as *const i8, a, align_of::<i32>() as i32)
345345
}
346346

347347
/// Store multiple single-element structures from one, two, three, or four registers.
348348
#[inline]
349349
#[target_feature(enable = "neon,v7")]
350-
#[cfg_attr(test, assert_instr(str))]
350+
#[cfg_attr(test, assert_instr("vst1.32"))]
351351
pub unsafe fn vst1q_s32(ptr: *mut i32, a: int32x4_t) {
352352
vst1q_v4i32(ptr as *const i8, a, align_of::<i32>() as i32)
353353
}
354354

355355
/// Store multiple single-element structures from one, two, three, or four registers.
356356
#[inline]
357357
#[target_feature(enable = "neon,v7")]
358-
#[cfg_attr(test, assert_instr(str))]
358+
#[cfg_attr(test, assert_instr("vst1.64"))]
359359
pub unsafe fn vst1_s64(ptr: *mut i64, a: int64x1_t) {
360360
vst1_v1i64(ptr as *const i8, a, align_of::<i64>() as i32)
361361
}
362362

363363
/// Store multiple single-element structures from one, two, three, or four registers.
364364
#[inline]
365365
#[target_feature(enable = "neon,v7")]
366-
#[cfg_attr(test, assert_instr(str))]
366+
#[cfg_attr(test, assert_instr("vst1.64"))]
367367
pub unsafe fn vst1q_s64(ptr: *mut i64, a: int64x2_t) {
368368
vst1q_v2i64(ptr as *const i8, a, align_of::<i64>() as i32)
369369
}
370370

371371
/// Store multiple single-element structures from one, two, three, or four registers.
372372
#[inline]
373373
#[target_feature(enable = "neon,v7")]
374-
#[cfg_attr(test, assert_instr(str))]
374+
#[cfg_attr(test, assert_instr("vst1.8"))]
375375
pub unsafe fn vst1_u8(ptr: *mut u8, a: uint8x8_t) {
376376
vst1_v8i8(ptr as *const i8, transmute(a), align_of::<u8>() as i32)
377377
}
378378

379379
/// Store multiple single-element structures from one, two, three, or four registers.
380380
#[inline]
381381
#[target_feature(enable = "neon,v7")]
382-
#[cfg_attr(test, assert_instr(str))]
382+
#[cfg_attr(test, assert_instr("vst1.8"))]
383383
pub unsafe fn vst1q_u8(ptr: *mut u8, a: uint8x16_t) {
384384
vst1q_v16i8(ptr as *const i8, transmute(a), align_of::<u8>() as i32)
385385
}
386386

387387
/// Store multiple single-element structures from one, two, three, or four registers.
388388
#[inline]
389389
#[target_feature(enable = "neon,v7")]
390-
#[cfg_attr(test, assert_instr(str))]
390+
#[cfg_attr(test, assert_instr("vst1.16"))]
391391
pub unsafe fn vst1_u16(ptr: *mut u16, a: uint16x4_t) {
392392
vst1_v4i16(ptr as *const i8, transmute(a), align_of::<u16>() as i32)
393393
}
394394

395395
/// Store multiple single-element structures from one, two, three, or four registers.
396396
#[inline]
397397
#[target_feature(enable = "neon,v7")]
398-
#[cfg_attr(test, assert_instr(str))]
398+
#[cfg_attr(test, assert_instr("vst1.16"))]
399399
pub unsafe fn vst1q_u16(ptr: *mut u16, a: uint16x8_t) {
400400
vst1q_v8i16(ptr as *const i8, transmute(a), align_of::<u16>() as i32)
401401
}
402402

403403
/// Store multiple single-element structures from one, two, three, or four registers.
404404
#[inline]
405405
#[target_feature(enable = "neon,v7")]
406-
#[cfg_attr(test, assert_instr(str))]
406+
#[cfg_attr(test, assert_instr("vst1.32"))]
407407
pub unsafe fn vst1_u32(ptr: *mut u32, a: uint32x2_t) {
408408
vst1_v2i32(ptr as *const i8, transmute(a), align_of::<u32>() as i32)
409409
}
410410

411411
/// Store multiple single-element structures from one, two, three, or four registers.
412412
#[inline]
413413
#[target_feature(enable = "neon,v7")]
414-
#[cfg_attr(test, assert_instr(str))]
414+
#[cfg_attr(test, assert_instr("vst1.32"))]
415415
pub unsafe fn vst1q_u32(ptr: *mut u32, a: uint32x4_t) {
416416
vst1q_v4i32(ptr as *const i8, transmute(a), align_of::<u32>() as i32)
417417
}
418418

419419
/// Store multiple single-element structures from one, two, three, or four registers.
420420
#[inline]
421421
#[target_feature(enable = "neon,v7")]
422-
#[cfg_attr(test, assert_instr(str))]
422+
#[cfg_attr(test, assert_instr("vst1.64"))]
423423
pub unsafe fn vst1_u64(ptr: *mut u64, a: uint64x1_t) {
424424
vst1_v1i64(ptr as *const i8, transmute(a), align_of::<u64>() as i32)
425425
}
426426

427427
/// Store multiple single-element structures from one, two, three, or four registers.
428428
#[inline]
429429
#[target_feature(enable = "neon,v7")]
430-
#[cfg_attr(test, assert_instr(str))]
430+
#[cfg_attr(test, assert_instr("vst1.64"))]
431431
pub unsafe fn vst1q_u64(ptr: *mut u64, a: uint64x2_t) {
432432
vst1q_v2i64(ptr as *const i8, transmute(a), align_of::<u64>() as i32)
433433
}
434434

435435
/// Store multiple single-element structures from one, two, three, or four registers.
436436
#[inline]
437437
#[target_feature(enable = "neon,v7")]
438-
#[cfg_attr(test, assert_instr(str))]
438+
#[cfg_attr(test, assert_instr("vst1.8"))]
439439
pub unsafe fn vst1_p8(ptr: *mut p8, a: poly8x8_t) {
440440
vst1_v8i8(ptr as *const i8, transmute(a), align_of::<p8>() as i32)
441441
}
442442

443443
/// Store multiple single-element structures from one, two, three, or four registers.
444444
#[inline]
445445
#[target_feature(enable = "neon,v7")]
446-
#[cfg_attr(test, assert_instr(str))]
446+
#[cfg_attr(test, assert_instr("vst1.8"))]
447447
pub unsafe fn vst1q_p8(ptr: *mut p8, a: poly8x16_t) {
448448
vst1q_v16i8(ptr as *const i8, transmute(a), align_of::<p8>() as i32)
449449
}
450450

451451
/// Store multiple single-element structures from one, two, three, or four registers.
452452
#[inline]
453453
#[target_feature(enable = "neon,v7")]
454-
#[cfg_attr(test, assert_instr(str))]
454+
#[cfg_attr(test, assert_instr("vst1.16"))]
455455
pub unsafe fn vst1_p16(ptr: *mut p16, a: poly16x4_t) {
456456
vst1_v4i16(ptr as *const i8, transmute(a), align_of::<p16>() as i32)
457457
}
458458

459459
/// Store multiple single-element structures from one, two, three, or four registers.
460460
#[inline]
461461
#[target_feature(enable = "neon,v7")]
462-
#[cfg_attr(test, assert_instr(str))]
462+
#[cfg_attr(test, assert_instr("vst1.16"))]
463463
pub unsafe fn vst1q_p16(ptr: *mut p16, a: poly16x8_t) {
464464
vst1q_v8i16(ptr as *const i8, transmute(a), align_of::<p8>() as i32)
465465
}
466466

467467
// Store multiple single-element structures from one, two, three, or four registers.
468468
#[inline]
469469
#[target_feature(enable = "neon,v7")]
470-
#[cfg_attr(test, assert_instr(str))]
470+
#[cfg_attr(test, assert_instr("vst1.32"))]
471471
pub unsafe fn vst1_f32(ptr: *mut f32, a: float32x2_t) {
472472
vst1_v2f32(ptr as *const i8, a, align_of::<f32>() as i32)
473473
}
474474

475475
// Store multiple single-element structures from one, two, three, or four registers.
476476
#[inline]
477477
#[target_feature(enable = "neon,v7")]
478-
#[cfg_attr(test, assert_instr(str))]
478+
#[cfg_attr(test, assert_instr("vst1.32"))]
479479
pub unsafe fn vst1q_f32(ptr: *mut f32, a: float32x4_t) {
480480
vst1q_v4f32(ptr as *const i8, a, align_of::<f32>() as i32)
481481
}

0 commit comments

Comments
 (0)