File tree Expand file tree Collapse file tree 1 file changed +10
-0
lines changed Expand file tree Collapse file tree 1 file changed +10
-0
lines changed Original file line number Diff line number Diff line change @@ -191,6 +191,14 @@ pub(super) fn codegen_simd_intrinsic_call<'tcx>(
191191 } )
192192 . try_into ( )
193193 . 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+ }
194202 _ => {
195203 fx. tcx . dcx ( ) . span_err (
196204 span,
@@ -213,6 +221,8 @@ pub(super) fn codegen_simd_intrinsic_call<'tcx>(
213221
214222 let total_len = lane_count * 2 ;
215223
224+ // FIXME: this is a terrible abstraction-breaking hack.
225+ // Find a way to reuse `immediate_const_vector` from `codegen_ssa` instead.
216226 let indexes = {
217227 use rustc_middle:: mir:: interpret:: * ;
218228 let idx_const = match & idx. node {
You can’t perform that action at this time.
0 commit comments