We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent ef74616 commit 6906793Copy full SHA for 6906793
src/intrinsics/simd.rs
@@ -191,6 +191,14 @@ pub(super) fn codegen_simd_intrinsic_call<'tcx>(
191
})
192
.try_into()
193
.unwrap(),
194
+ _ if idx_ty.is_simd()
195
+ && matches!(
196
+ idx_ty.simd_size_and_type(fx.tcx).1.kind(),
197
+ ty::Uint(ty::UintTy::U32)
198
+ ) =>
199
+ {
200
+ idx_ty.simd_size_and_type(fx.tcx).0.try_into().unwrap()
201
+ }
202
_ => {
203
fx.tcx.dcx().span_err(
204
span,
@@ -213,6 +221,8 @@ pub(super) fn codegen_simd_intrinsic_call<'tcx>(
213
221
214
222
let total_len = lane_count * 2;
215
223
224
+ // FIXME: this is a terrible abstraction-breaking hack.
225
+ // Find a way to reuse `immediate_const_vector` from `codegen_ssa` instead.
216
226
let indexes = {
217
227
use rustc_middle::mir::interpret::*;
218
228
let idx_const = match &idx.node {
0 commit comments