@@ -697,18 +697,12 @@ pub fn generic_simd_intrinsic<'a, 'gcc, 'tcx>(
697
697
default : RValue < ' gcc > ,
698
698
pointers : RValue < ' gcc > ,
699
699
mask : RValue < ' gcc > ,
700
- pointer_count : usize ,
701
700
bx : & mut Builder < ' a , ' gcc , ' tcx > ,
702
701
in_len : u64 ,
703
- underlying_ty : Ty < ' tcx > ,
704
702
invert : bool ,
705
703
) -> RValue < ' gcc > {
706
- let vector_type = if pointer_count > 1 {
707
- bx. context . new_vector_type ( bx. usize_type , in_len)
708
- } else {
709
- vector_ty ( bx, underlying_ty, in_len)
710
- } ;
711
- let elem_type = vector_type. dyncast_vector ( ) . expect ( "vector type" ) . get_element_type ( ) ;
704
+ let vector_type = default. get_type ( ) ;
705
+ let elem_type = vector_type. unqualified ( ) . dyncast_vector ( ) . expect ( "vector type" ) . get_element_type ( ) ;
712
706
713
707
let mut values = Vec :: with_capacity ( in_len as usize ) ;
714
708
for i in 0 ..in_len {
@@ -737,12 +731,6 @@ pub fn generic_simd_intrinsic<'a, 'gcc, 'tcx>(
737
731
let mask_type = bx. context . new_struct_type ( None , "mask_type" , & mask_types) ;
738
732
let mask = bx. context . new_struct_constructor ( None , mask_type. as_type ( ) , None , & mask_values) ;
739
733
740
- // FIXME(antoyo): We sometimes need to bitcast here, since usize/isize sometimes (but not
741
- // always) get canonicalized to their corresponding integer type (i.e. uint64_t/int64_t on
742
- // 64-bit platforms). This causes the shuffle_vector call below to panic, since the types
743
- // of the two vectors aren't the same. This is a workaround for now.
744
- let vector = bx. bitcast_if_needed ( vector, default. get_type ( ) ) ;
745
-
746
734
if invert {
747
735
bx. shuffle_vector ( vector, default, mask)
748
736
} else {
@@ -865,10 +853,8 @@ pub fn generic_simd_intrinsic<'a, 'gcc, 'tcx>(
865
853
args[ 0 ] . immediate ( ) ,
866
854
args[ 1 ] . immediate ( ) ,
867
855
args[ 2 ] . immediate ( ) ,
868
- pointer_count,
869
856
bx,
870
857
in_len,
871
- underlying_ty,
872
858
false ,
873
859
) ) ;
874
860
}
@@ -983,10 +969,8 @@ pub fn generic_simd_intrinsic<'a, 'gcc, 'tcx>(
983
969
args[ 0 ] . immediate ( ) ,
984
970
args[ 1 ] . immediate ( ) ,
985
971
args[ 2 ] . immediate ( ) ,
986
- pointer_count,
987
972
bx,
988
973
in_len,
989
- underlying_ty,
990
974
true ,
991
975
) ;
992
976
0 commit comments