@@ -890,6 +890,148 @@ aarch64 = fcvtpu
890
890
link - aarch64 = fcvtpu ._EXT2_ ._EXT_
891
891
generate float32x2_t :uint32x2_t , float32x4_t :uint32x4_t , float64x1_t :uint64x1_t , float64x2_t :uint64x2_t
892
892
893
+ // / Set all vector lanes to the same value
894
+ name = vdup
895
+ lane - suffixes
896
+ constn = N
897
+ multi_fn = static_assert_imm - in_exp_len - N
898
+ multi_fn = simd_shuffle - out_len - noext , a , a , {dup - out_len - N as u32 }
899
+ a = 1 , 1 , 1 , 4 , 1 , 6 , 7 , 8 , 1 , 10 , 11 , 12 , 13 , 14 , 15 , 16
900
+ n = HFLEN
901
+ validate 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1
902
+
903
+ aarch64 = dup
904
+ generate poly64x2_t , poly64x1_t :poly64x2_t
905
+
906
+ arm = vdup .l
907
+ generate int * _t
908
+ generate int8x16_t :int8x8_t , int16x8_t :int16x4_t , int32x4_t :int32x2_t
909
+ generate int8x8_t :int8x16_t , int16x4_t :int16x8_t , int32x2_t :int32x4_t
910
+
911
+ generate uint * _t
912
+ generate uint8x16_t :uint8x8_t , uint16x8_t :uint16x4_t , uint32x4_t :uint32x2_t
913
+ generate uint8x8_t :uint8x16_t , uint16x4_t :uint16x8_t , uint32x2_t :uint32x4_t
914
+
915
+ generate poly8x8_t , poly8x16_t , poly16x4_t , poly16x8_t
916
+ generate poly8x16_t :poly8x8_t , poly16x8_t :poly16x4_t
917
+ generate poly8x8_t :poly8x16_t , poly16x4_t :poly16x8_t
918
+
919
+ // / Set all vector lanes to the same value
920
+ name = vdup
921
+ lane - suffixes
922
+ constn = N
923
+ multi_fn = static_assert_imm - in_exp_len - N
924
+ multi_fn = simd_shuffle - out_len - noext , a , a , {dup - out_len - N as u32 }
925
+ a = 1 , 1 , 1 , 4 , 1 , 6 , 7 , 8 , 1 , 10 , 11 , 12 , 13 , 14 , 15 , 16
926
+ n = HFLEN
927
+ validate 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1
928
+
929
+ aarch64 = dup
930
+ arm = vmov
931
+ generate int64x2_t , int64x1_t :int64x2_t , uint64x2_t , uint64x1_t :uint64x2_t
932
+
933
+ // / Set all vector lanes to the same value
934
+ name = vdup
935
+ lane - suffixes
936
+ constn = N
937
+ multi_fn = static_assert_imm - in_exp_len - N
938
+ multi_fn = simd_shuffle - out_len - noext , a , a , {dup - out_len - N as u32 }
939
+ a = 1. , 1. , 1. , 4.
940
+ n = HFLEN
941
+ validate 1. , 1. , 1. , 1.
942
+
943
+ aarch64 = dup
944
+ generate float64x2_t , float64x1_t :float64x2_t
945
+
946
+ arm = vdup .l
947
+ generate float * _t , float32x4_t :float32x2_t , float32x2_t :float32x4_t
948
+
949
+ // / Set all vector lanes to the same value
950
+ name = vdup
951
+ lane - suffixes
952
+ constn = N
953
+ multi_fn = static_assert_imm - in_exp_len - N
954
+ multi_fn = a
955
+ a = 0
956
+ n = HFLEN
957
+ validate 0
958
+
959
+ aarch64 = nop
960
+ generate poly64x1_t
961
+
962
+ arm = nop
963
+ generate int64x1_t , uint64x1_t
964
+
965
+ // / Set all vector lanes to the same value
966
+ name = vdup
967
+ lane - suffixes
968
+ constn = N
969
+ multi_fn = static_assert_imm - in_exp_len - N
970
+ multi_fn = a
971
+ a = 0.
972
+ n = HFLEN
973
+ validate 0.
974
+
975
+ aarch64 = nop
976
+ generate float64x1_t
977
+
978
+ // / Set all vector lanes to the same value
979
+ name = vdup
980
+ lane - suffixes
981
+ constn = N
982
+ multi_fn = static_assert_imm - in_exp_len - N
983
+ multi_fn = transmute - - < element_t _ > , {simd_extract , a , N as u32 }
984
+ a = 0 , 1
985
+ n = HFLEN
986
+ validate 1
987
+
988
+ aarch64 = nop
989
+ generate poly64x2_t :poly64x1_t
990
+
991
+ arm = vmov
992
+ generate int64x2_t :int64x1_t , uint64x2_t :uint64x1_t
993
+
994
+ // / Set all vector lanes to the same value
995
+ name = vdup
996
+ lane - suffixes
997
+ constn = N
998
+ multi_fn = static_assert_imm - in_exp_len - N
999
+ multi_fn = transmute - - < element_t _ > , {simd_extract , a , N as u32 }
1000
+ a = 0. , 1.
1001
+ n = HFLEN
1002
+ validate 1.
1003
+
1004
+ aarch64 = nop
1005
+ generate float64x2_t :float64x1_t
1006
+
1007
+ // / Set all vector lanes to the same value
1008
+ name = vdup
1009
+ lane - suffixes
1010
+ constn = N
1011
+ multi_fn = static_assert_imm - in_exp_len - N
1012
+ multi_fn = simd_extract , a , N as u32
1013
+ a = 1 , 1 , 1 , 4 , 1 , 6 , 7 , 8 , 1 , 10 , 11 , 12 , 13 , 14 , 15 , 16
1014
+ n = HFLEN
1015
+ validate 1
1016
+
1017
+ aarch64 = nop
1018
+ generate int8x8_t :i8 , int8x16_t :i8 , int16x4_t :i16 , int16x8_t :i16 , int32x2_t :i32 , int32x4_t :i32 , int64x1_t :i64 , int64x2_t :i64
1019
+ generate uint8x8_t :u8 , uint8x16_t :u8 , uint16x4_t :u16 , uint16x8_t :u16 , uint32x2_t :u32 , uint32x4_t :u32 , uint64x1_t :u64 , uint64x2_t :u64
1020
+ generate poly8x8_t :p8 , poly8x16_t :p8 , poly16x4_t :p16 , poly16x8_t :p16
1021
+
1022
+ // / Set all vector lanes to the same value
1023
+ name = vdup
1024
+ lane - suffixes
1025
+ constn = N
1026
+ multi_fn = static_assert_imm - in_exp_len - N
1027
+ multi_fn = simd_extract , a , N as u32
1028
+ a = 1. , 1. , 1. , 4.
1029
+ n = HFLEN
1030
+ validate 1.
1031
+
1032
+ aarch64 = nop
1033
+ generate float32x2_t :f32 , float32x4_t :f32 , float64x1_t :f64 , float64x2_t :f64
1034
+
893
1035
// / Extract vector from pair of vectors
894
1036
name = vext
895
1037
constn = N
0 commit comments