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>(
191
191
} )
192
192
. try_into ( )
193
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
+ }
194
202
_ => {
195
203
fx. tcx . dcx ( ) . span_err (
196
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 {
You can’t perform that action at this time.
0 commit comments