@@ -464,326 +464,191 @@ pub unsafe fn vcopy_laneq_f64<const LANE1: i32, const LANE2: i32>(
464
464
#[ target_feature( enable = "neon" ) ]
465
465
#[ cfg_attr( test, assert_instr( ldr) ) ]
466
466
pub unsafe fn vld1_s8 ( ptr : * const i8 ) -> int8x8_t {
467
- transmute ( i8x8:: new (
468
- * ptr,
469
- * ptr. offset ( 1 ) ,
470
- * ptr. offset ( 2 ) ,
471
- * ptr. offset ( 3 ) ,
472
- * ptr. offset ( 4 ) ,
473
- * ptr. offset ( 5 ) ,
474
- * ptr. offset ( 6 ) ,
475
- * ptr. offset ( 7 ) ,
476
- ) )
467
+ core:: ptr:: read_unaligned ( ptr as * const int8x8_t )
477
468
}
478
469
479
470
/// Load multiple single-element structures to one, two, three, or four registers.
480
471
#[ inline]
481
472
#[ target_feature( enable = "neon" ) ]
482
473
#[ cfg_attr( test, assert_instr( ldr) ) ]
483
474
pub unsafe fn vld1q_s8 ( ptr : * const i8 ) -> int8x16_t {
484
- transmute ( i8x16:: new (
485
- * ptr,
486
- * ptr. offset ( 1 ) ,
487
- * ptr. offset ( 2 ) ,
488
- * ptr. offset ( 3 ) ,
489
- * ptr. offset ( 4 ) ,
490
- * ptr. offset ( 5 ) ,
491
- * ptr. offset ( 6 ) ,
492
- * ptr. offset ( 7 ) ,
493
- * ptr. offset ( 8 ) ,
494
- * ptr. offset ( 9 ) ,
495
- * ptr. offset ( 10 ) ,
496
- * ptr. offset ( 11 ) ,
497
- * ptr. offset ( 12 ) ,
498
- * ptr. offset ( 13 ) ,
499
- * ptr. offset ( 14 ) ,
500
- * ptr. offset ( 15 ) ,
501
- ) )
475
+ core:: ptr:: read_unaligned ( ptr as * const int8x16_t )
502
476
}
503
477
504
478
/// Load multiple single-element structures to one, two, three, or four registers.
505
479
#[ inline]
506
480
#[ target_feature( enable = "neon" ) ]
507
481
#[ cfg_attr( test, assert_instr( ldr) ) ]
508
482
pub unsafe fn vld1_s16 ( ptr : * const i16 ) -> int16x4_t {
509
- transmute ( i16x4:: new (
510
- * ptr,
511
- * ptr. offset ( 1 ) ,
512
- * ptr. offset ( 2 ) ,
513
- * ptr. offset ( 3 ) ,
514
- ) )
483
+ core:: ptr:: read_unaligned ( ptr as * const int16x4_t )
515
484
}
516
485
517
486
/// Load multiple single-element structures to one, two, three, or four registers.
518
487
#[ inline]
519
488
#[ target_feature( enable = "neon" ) ]
520
489
#[ cfg_attr( test, assert_instr( ldr) ) ]
521
490
pub unsafe fn vld1q_s16 ( ptr : * const i16 ) -> int16x8_t {
522
- transmute ( i16x8:: new (
523
- * ptr,
524
- * ptr. offset ( 1 ) ,
525
- * ptr. offset ( 2 ) ,
526
- * ptr. offset ( 3 ) ,
527
- * ptr. offset ( 4 ) ,
528
- * ptr. offset ( 5 ) ,
529
- * ptr. offset ( 6 ) ,
530
- * ptr. offset ( 7 ) ,
531
- ) )
491
+ core:: ptr:: read_unaligned ( ptr as * const int16x8_t )
532
492
}
533
493
534
494
/// Load multiple single-element structures to one, two, three, or four registers.
535
495
#[ inline]
536
496
#[ target_feature( enable = "neon" ) ]
537
497
#[ cfg_attr( test, assert_instr( ldr) ) ]
538
498
pub unsafe fn vld1_s32 ( ptr : * const i32 ) -> int32x2_t {
539
- transmute ( i32x2 :: new ( * ptr, * ptr . offset ( 1 ) ) )
499
+ core :: ptr :: read_unaligned ( ptr as * const int32x2_t )
540
500
}
541
501
542
502
/// Load multiple single-element structures to one, two, three, or four registers.
543
503
#[ inline]
544
504
#[ target_feature( enable = "neon" ) ]
545
505
#[ cfg_attr( test, assert_instr( ldr) ) ]
546
506
pub unsafe fn vld1q_s32 ( ptr : * const i32 ) -> int32x4_t {
547
- transmute ( i32x4:: new (
548
- * ptr,
549
- * ptr. offset ( 1 ) ,
550
- * ptr. offset ( 2 ) ,
551
- * ptr. offset ( 3 ) ,
552
- ) )
507
+ core:: ptr:: read_unaligned ( ptr as * const int32x4_t )
553
508
}
554
509
555
510
/// Load multiple single-element structures to one, two, three, or four registers.
556
511
#[ inline]
557
512
#[ target_feature( enable = "neon" ) ]
558
513
#[ cfg_attr( test, assert_instr( ldr) ) ]
559
514
pub unsafe fn vld1_s64 ( ptr : * const i64 ) -> int64x1_t {
560
- transmute ( i64x1 :: new ( * ptr) )
515
+ core :: ptr :: read_unaligned ( ptr as * const int64x1_t )
561
516
}
562
517
563
518
/// Load multiple single-element structures to one, two, three, or four registers.
564
519
#[ inline]
565
520
#[ target_feature( enable = "neon" ) ]
566
521
#[ cfg_attr( test, assert_instr( ldr) ) ]
567
522
pub unsafe fn vld1q_s64 ( ptr : * const i64 ) -> int64x2_t {
568
- transmute ( i64x2 :: new ( * ptr, * ptr . offset ( 1 ) ) )
523
+ core :: ptr :: read_unaligned ( ptr as * const int64x2_t )
569
524
}
570
525
571
526
/// Load multiple single-element structures to one, two, three, or four registers.
572
527
#[ inline]
573
528
#[ target_feature( enable = "neon" ) ]
574
529
#[ cfg_attr( test, assert_instr( ldr) ) ]
575
530
pub unsafe fn vld1_u8 ( ptr : * const u8 ) -> uint8x8_t {
576
- transmute ( u8x8:: new (
577
- * ptr,
578
- * ptr. offset ( 1 ) ,
579
- * ptr. offset ( 2 ) ,
580
- * ptr. offset ( 3 ) ,
581
- * ptr. offset ( 4 ) ,
582
- * ptr. offset ( 5 ) ,
583
- * ptr. offset ( 6 ) ,
584
- * ptr. offset ( 7 ) ,
585
- ) )
531
+ core:: ptr:: read_unaligned ( ptr as * const uint8x8_t )
586
532
}
587
533
588
534
/// Load multiple single-element structures to one, two, three, or four registers.
589
535
#[ inline]
590
536
#[ target_feature( enable = "neon" ) ]
591
537
#[ cfg_attr( test, assert_instr( ldr) ) ]
592
538
pub unsafe fn vld1q_u8 ( ptr : * const u8 ) -> uint8x16_t {
593
- transmute ( u8x16:: new (
594
- * ptr,
595
- * ptr. offset ( 1 ) ,
596
- * ptr. offset ( 2 ) ,
597
- * ptr. offset ( 3 ) ,
598
- * ptr. offset ( 4 ) ,
599
- * ptr. offset ( 5 ) ,
600
- * ptr. offset ( 6 ) ,
601
- * ptr. offset ( 7 ) ,
602
- * ptr. offset ( 8 ) ,
603
- * ptr. offset ( 9 ) ,
604
- * ptr. offset ( 10 ) ,
605
- * ptr. offset ( 11 ) ,
606
- * ptr. offset ( 12 ) ,
607
- * ptr. offset ( 13 ) ,
608
- * ptr. offset ( 14 ) ,
609
- * ptr. offset ( 15 ) ,
610
- ) )
539
+ core:: ptr:: read_unaligned ( ptr as * const uint8x16_t )
611
540
}
612
541
613
542
/// Load multiple single-element structures to one, two, three, or four registers.
614
543
#[ inline]
615
544
#[ target_feature( enable = "neon" ) ]
616
545
#[ cfg_attr( test, assert_instr( ldr) ) ]
617
546
pub unsafe fn vld1_u16 ( ptr : * const u16 ) -> uint16x4_t {
618
- transmute ( u16x4:: new (
619
- * ptr,
620
- * ptr. offset ( 1 ) ,
621
- * ptr. offset ( 2 ) ,
622
- * ptr. offset ( 3 ) ,
623
- ) )
547
+ core:: ptr:: read_unaligned ( ptr as * const uint16x4_t )
624
548
}
625
549
626
550
/// Load multiple single-element structures to one, two, three, or four registers.
627
551
#[ inline]
628
552
#[ target_feature( enable = "neon" ) ]
629
553
#[ cfg_attr( test, assert_instr( ldr) ) ]
630
554
pub unsafe fn vld1q_u16 ( ptr : * const u16 ) -> uint16x8_t {
631
- transmute ( u16x8:: new (
632
- * ptr,
633
- * ptr. offset ( 1 ) ,
634
- * ptr. offset ( 2 ) ,
635
- * ptr. offset ( 3 ) ,
636
- * ptr. offset ( 4 ) ,
637
- * ptr. offset ( 5 ) ,
638
- * ptr. offset ( 6 ) ,
639
- * ptr. offset ( 7 ) ,
640
- ) )
555
+ core:: ptr:: read_unaligned ( ptr as * const uint16x8_t )
641
556
}
642
557
643
558
/// Load multiple single-element structures to one, two, three, or four registers.
644
559
#[ inline]
645
560
#[ target_feature( enable = "neon" ) ]
646
561
#[ cfg_attr( test, assert_instr( ldr) ) ]
647
562
pub unsafe fn vld1_u32 ( ptr : * const u32 ) -> uint32x2_t {
648
- transmute ( u32x2 :: new ( * ptr, * ptr . offset ( 1 ) ) )
563
+ core :: ptr :: read_unaligned ( ptr as * const uint32x2_t )
649
564
}
650
565
651
566
/// Load multiple single-element structures to one, two, three, or four registers.
652
567
#[ inline]
653
568
#[ target_feature( enable = "neon" ) ]
654
569
#[ cfg_attr( test, assert_instr( ldr) ) ]
655
570
pub unsafe fn vld1q_u32 ( ptr : * const u32 ) -> uint32x4_t {
656
- transmute ( u32x4:: new (
657
- * ptr,
658
- * ptr. offset ( 1 ) ,
659
- * ptr. offset ( 2 ) ,
660
- * ptr. offset ( 3 ) ,
661
- ) )
571
+ core:: ptr:: read_unaligned ( ptr as * const uint32x4_t )
662
572
}
663
573
664
574
/// Load multiple single-element structures to one, two, three, or four registers.
665
575
#[ inline]
666
576
#[ target_feature( enable = "neon" ) ]
667
577
#[ cfg_attr( test, assert_instr( ldr) ) ]
668
578
pub unsafe fn vld1_u64 ( ptr : * const u64 ) -> uint64x1_t {
669
- transmute ( u64x1 :: new ( * ptr) )
579
+ core :: ptr :: read_unaligned ( ptr as * const uint64x1_t )
670
580
}
671
581
672
582
/// Load multiple single-element structures to one, two, three, or four registers.
673
583
#[ inline]
674
584
#[ target_feature( enable = "neon" ) ]
675
585
#[ cfg_attr( test, assert_instr( ldr) ) ]
676
586
pub unsafe fn vld1q_u64 ( ptr : * const u64 ) -> uint64x2_t {
677
- transmute ( u64x2 :: new ( * ptr, * ptr . offset ( 1 ) ) )
587
+ core :: ptr :: read_unaligned ( ptr as * const uint64x2_t )
678
588
}
679
589
680
590
/// Load multiple single-element structures to one, two, three, or four registers.
681
591
#[ inline]
682
592
#[ target_feature( enable = "neon" ) ]
683
593
#[ cfg_attr( test, assert_instr( ldr) ) ]
684
594
pub unsafe fn vld1_p8 ( ptr : * const p8 ) -> poly8x8_t {
685
- transmute ( u8x8:: new (
686
- * ptr,
687
- * ptr. offset ( 1 ) ,
688
- * ptr. offset ( 2 ) ,
689
- * ptr. offset ( 3 ) ,
690
- * ptr. offset ( 4 ) ,
691
- * ptr. offset ( 5 ) ,
692
- * ptr. offset ( 6 ) ,
693
- * ptr. offset ( 7 ) ,
694
- ) )
595
+ core:: ptr:: read_unaligned ( ptr as * const poly8x8_t )
695
596
}
696
597
697
598
/// Load multiple single-element structures to one, two, three, or four registers.
698
599
#[ inline]
699
600
#[ target_feature( enable = "neon" ) ]
700
601
#[ cfg_attr( test, assert_instr( ldr) ) ]
701
602
pub unsafe fn vld1q_p8 ( ptr : * const p8 ) -> poly8x16_t {
702
- transmute ( u8x16:: new (
703
- * ptr,
704
- * ptr. offset ( 1 ) ,
705
- * ptr. offset ( 2 ) ,
706
- * ptr. offset ( 3 ) ,
707
- * ptr. offset ( 4 ) ,
708
- * ptr. offset ( 5 ) ,
709
- * ptr. offset ( 6 ) ,
710
- * ptr. offset ( 7 ) ,
711
- * ptr. offset ( 8 ) ,
712
- * ptr. offset ( 9 ) ,
713
- * ptr. offset ( 10 ) ,
714
- * ptr. offset ( 11 ) ,
715
- * ptr. offset ( 12 ) ,
716
- * ptr. offset ( 13 ) ,
717
- * ptr. offset ( 14 ) ,
718
- * ptr. offset ( 15 ) ,
719
- ) )
603
+ core:: ptr:: read_unaligned ( ptr as * const poly8x16_t )
720
604
}
721
605
722
606
/// Load multiple single-element structures to one, two, three, or four registers.
723
607
#[ inline]
724
608
#[ target_feature( enable = "neon" ) ]
725
609
#[ cfg_attr( test, assert_instr( ldr) ) ]
726
610
pub unsafe fn vld1_p16 ( ptr : * const p16 ) -> poly16x4_t {
727
- transmute ( u16x4:: new (
728
- * ptr,
729
- * ptr. offset ( 1 ) ,
730
- * ptr. offset ( 2 ) ,
731
- * ptr. offset ( 3 ) ,
732
- ) )
611
+ core:: ptr:: read_unaligned ( ptr as * const poly16x4_t )
733
612
}
734
613
735
614
/// Load multiple single-element structures to one, two, three, or four registers.
736
615
#[ inline]
737
616
#[ target_feature( enable = "neon" ) ]
738
617
#[ cfg_attr( test, assert_instr( ldr) ) ]
739
618
pub unsafe fn vld1q_p16 ( ptr : * const p16 ) -> poly16x8_t {
740
- transmute ( u16x8:: new (
741
- * ptr,
742
- * ptr. offset ( 1 ) ,
743
- * ptr. offset ( 2 ) ,
744
- * ptr. offset ( 3 ) ,
745
- * ptr. offset ( 4 ) ,
746
- * ptr. offset ( 5 ) ,
747
- * ptr. offset ( 6 ) ,
748
- * ptr. offset ( 7 ) ,
749
- ) )
619
+ core:: ptr:: read_unaligned ( ptr as * const poly16x8_t )
750
620
}
751
621
752
622
/// Load multiple single-element structures to one, two, three, or four registers.
753
623
#[ inline]
754
624
#[ target_feature( enable = "neon" ) ]
755
625
#[ cfg_attr( test, assert_instr( ldr) ) ]
756
626
pub unsafe fn vld1_f32 ( ptr : * const f32 ) -> float32x2_t {
757
- transmute ( f32x2 :: new ( * ptr, * ptr . offset ( 1 ) ) )
627
+ core :: ptr :: read_unaligned ( ptr as * const float32x2_t )
758
628
}
759
629
760
630
/// Load multiple single-element structures to one, two, three, or four registers.
761
631
#[ inline]
762
632
#[ target_feature( enable = "neon" ) ]
763
633
#[ cfg_attr( test, assert_instr( ldr) ) ]
764
634
pub unsafe fn vld1q_f32 ( ptr : * const f32 ) -> float32x4_t {
765
- transmute ( f32x4:: new (
766
- * ptr,
767
- * ptr. offset ( 1 ) ,
768
- * ptr. offset ( 2 ) ,
769
- * ptr. offset ( 3 ) ,
770
- ) )
635
+ core:: ptr:: read_unaligned ( ptr as * const float32x4_t )
771
636
}
772
637
773
638
/// Load multiple single-element structures to one, two, three, or four registers.
774
639
#[ inline]
775
640
#[ target_feature( enable = "neon" ) ]
776
641
#[ cfg_attr( test, assert_instr( ldr) ) ]
777
642
pub unsafe fn vld1_f64 ( ptr : * const f64 ) -> float64x1_t {
778
- transmute ( f64x1 :: new ( * ptr) )
643
+ core :: ptr :: read_unaligned ( ptr as * const float64x1_t )
779
644
}
780
645
781
646
/// Load multiple single-element structures to one, two, three, or four registers.
782
647
#[ inline]
783
648
#[ target_feature( enable = "neon" ) ]
784
649
#[ cfg_attr( test, assert_instr( ldr) ) ]
785
650
pub unsafe fn vld1q_f64 ( ptr : * const f64 ) -> float64x2_t {
786
- transmute ( f64x2 :: new ( * ptr, * ptr . offset ( 1 ) ) )
651
+ core :: ptr :: read_unaligned ( ptr as * const float64x2_t )
787
652
}
788
653
789
654
/// Store multiple single-element structures from one, two, three, or four registers.
0 commit comments