Skip to content

Commit 1acfdbb

Browse files
committed
Make ValTree recurse through ty::Const
1 parent 987298c commit 1acfdbb

1 file changed

Lines changed: 7 additions & 10 deletions

File tree

src/intrinsics/simd.rs

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ pub(super) fn codegen_simd_intrinsic_call<'tcx>(
143143

144144
let total_len = lane_count * 2;
145145

146-
let indexes = idx.iter().map(|idx| idx.unwrap_leaf().to_u32()).collect::<Vec<u32>>();
146+
let indexes = idx.iter().map(|idx| idx.to_leaf().to_u32()).collect::<Vec<u32>>();
147147

148148
for &idx in &indexes {
149149
assert!(u64::from(idx) < total_len, "idx {} out of range 0..{}", idx, total_len);
@@ -961,9 +961,8 @@ pub(super) fn codegen_simd_intrinsic_call<'tcx>(
961961
let lane_clif_ty = fx.clif_type(val_lane_ty).unwrap();
962962
let ptr_val = ptr.load_scalar(fx);
963963

964-
let alignment = generic_args[3].expect_const().to_value().valtree.unwrap_branch()[0]
965-
.unwrap_leaf()
966-
.to_simd_alignment();
964+
let alignment =
965+
generic_args[3].expect_const().to_branch()[0].to_leaf().to_simd_alignment();
967966

968967
let memflags = match alignment {
969968
SimdAlign::Unaligned => MemFlags::new().with_notrap(),
@@ -1006,9 +1005,8 @@ pub(super) fn codegen_simd_intrinsic_call<'tcx>(
10061005
let lane_clif_ty = fx.clif_type(val_lane_ty).unwrap();
10071006
let ret_lane_layout = fx.layout_of(ret_lane_ty);
10081007

1009-
let alignment = generic_args[3].expect_const().to_value().valtree.unwrap_branch()[0]
1010-
.unwrap_leaf()
1011-
.to_simd_alignment();
1008+
let alignment =
1009+
generic_args[3].expect_const().to_branch()[0].to_leaf().to_simd_alignment();
10121010

10131011
let memflags = match alignment {
10141012
SimdAlign::Unaligned => MemFlags::new().with_notrap(),
@@ -1059,9 +1057,8 @@ pub(super) fn codegen_simd_intrinsic_call<'tcx>(
10591057
let ret_lane_layout = fx.layout_of(ret_lane_ty);
10601058
let ptr_val = ptr.load_scalar(fx);
10611059

1062-
let alignment = generic_args[3].expect_const().to_value().valtree.unwrap_branch()[0]
1063-
.unwrap_leaf()
1064-
.to_simd_alignment();
1060+
let alignment =
1061+
generic_args[3].expect_const().to_branch()[0].to_leaf().to_simd_alignment();
10651062

10661063
let memflags = match alignment {
10671064
SimdAlign::Unaligned => MemFlags::new().with_notrap(),

0 commit comments

Comments
 (0)