@@ -28,7 +28,6 @@ use syntax_pos::Span;
2828
2929use std:: cmp:: Ordering ;
3030use std:: { iter, i128, u128} ;
31- use std:: convert:: TryFrom ;
3231
3332fn get_simple_intrinsic ( cx : & CodegenCx < ' ll , ' _ > , name : & str ) -> Option < & ' ll Value > {
3433 let llvm_name = match name {
@@ -1161,13 +1160,13 @@ fn generic_simd_intrinsic(
11611160 }
11621161
11631162 if name. starts_with ( "simd_shuffle" ) {
1164- let n: usize = name[ "simd_shuffle" . len ( ) ..] . parse ( ) . unwrap_or_else ( |_|
1163+ let n: u64 = name[ "simd_shuffle" . len ( ) ..] . parse ( ) . unwrap_or_else ( |_|
11651164 span_bug ! ( span, "bad `simd_shuffle` instruction only caught in codegen?" ) ) ;
11661165
11671166 require_simd ! ( ret_ty, "return" ) ;
11681167
11691168 let out_len = ret_ty. simd_size ( tcx) ;
1170- require ! ( out_len == n as u64 ,
1169+ require ! ( out_len == n,
11711170 "expected return type of length {}, found `{}` with length {}" ,
11721171 n, ret_ty, out_len) ;
11731172 require ! ( in_elem == ret_ty. simd_type( tcx) ,
@@ -1176,7 +1175,7 @@ fn generic_simd_intrinsic(
11761175 in_elem, in_ty,
11771176 ret_ty, ret_ty. simd_type( tcx) ) ;
11781177
1179- let total_len = in_len as u128 * 2 ;
1178+ let total_len = u128:: from ( in_len ) * 2 ;
11801179
11811180 let vector = args[ 2 ] . immediate ( ) ;
11821181
@@ -1402,7 +1401,7 @@ fn generic_simd_intrinsic(
14021401 // FIXME: use:
14031402 // https://github.com/llvm-mirror/llvm/blob/master/include/llvm/IR/Function.h#L182
14041403 // https://github.com/llvm-mirror/llvm/blob/master/include/llvm/IR/Intrinsics.h#L81
1405- fn llvm_vector_str ( elem_ty : Ty < ' _ > , vec_len : usize , no_pointers : usize ) -> String {
1404+ fn llvm_vector_str ( elem_ty : Ty < ' _ > , vec_len : u64 , no_pointers : usize ) -> String {
14061405 let p0s: String = "p0" . repeat ( no_pointers) ;
14071406 match elem_ty. kind {
14081407 ty:: Int ( v) => format ! ( "v{}{}i{}" , vec_len, p0s, v. bit_width( ) . unwrap( ) ) ,
@@ -1412,7 +1411,7 @@ fn generic_simd_intrinsic(
14121411 }
14131412 }
14141413
1415- fn llvm_vector_ty ( cx : & CodegenCx < ' ll , ' _ > , elem_ty : Ty < ' _ > , vec_len : usize ,
1414+ fn llvm_vector_ty ( cx : & CodegenCx < ' ll , ' _ > , elem_ty : Ty < ' _ > , vec_len : u64 ,
14161415 mut no_pointers : usize ) -> & ' ll Type {
14171416 // FIXME: use cx.layout_of(ty).llvm_type() ?
14181417 let mut elem_ty = match elem_ty. kind {
@@ -1425,7 +1424,7 @@ fn generic_simd_intrinsic(
14251424 elem_ty = cx. type_ptr_to ( elem_ty) ;
14261425 no_pointers -= 1 ;
14271426 }
1428- cx. type_vector ( elem_ty, vec_len as u64 )
1427+ cx. type_vector ( elem_ty, vec_len)
14291428 }
14301429
14311430
@@ -1513,7 +1512,6 @@ fn generic_simd_intrinsic(
15131512 } ;
15141513
15151514 // Type of the vector of pointers:
1516- let in_len = usize:: try_from ( in_len) . unwrap ( ) ;
15171515 let llvm_pointer_vec_ty = llvm_vector_ty ( bx, underlying_ty, in_len, pointer_count) ;
15181516 let llvm_pointer_vec_str = llvm_vector_str ( underlying_ty, in_len, pointer_count) ;
15191517
@@ -1616,7 +1614,6 @@ fn generic_simd_intrinsic(
16161614 let ret_t = bx. type_void ( ) ;
16171615
16181616 // Type of the vector of pointers:
1619- let in_len = usize:: try_from ( in_len) . unwrap ( ) ;
16201617 let llvm_pointer_vec_ty = llvm_vector_ty ( bx, underlying_ty, in_len, pointer_count) ;
16211618 let llvm_pointer_vec_str = llvm_vector_str ( underlying_ty, in_len, pointer_count) ;
16221619
0 commit comments