Skip to content

Commit 5e115a2

Browse files
committed
avoid some casts
1 parent 8952c8a commit 5e115a2

File tree

1 file changed

+6
-9
lines changed

1 file changed

+6
-9
lines changed

src/librustc_codegen_llvm/intrinsic.rs

+6-9
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ use syntax_pos::Span;
2828

2929
use std::cmp::Ordering;
3030
use std::{iter, i128, u128};
31-
use std::convert::TryFrom;
3231

3332
fn 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

Comments
 (0)