@@ -1364,22 +1364,17 @@ impl<'a, 'gcc, 'tcx> Builder<'a, 'gcc, 'tcx> {
1364
1364
vector_elements. push ( self . context . new_rvalue_zero ( mask_element_type) ) ;
1365
1365
}
1366
1366
1367
- let array_type = self . context . new_array_type ( None , element_type, vec_num_units as i32 ) ;
1368
1367
let result_type = self . context . new_vector_type ( element_type, mask_num_units as u64 ) ;
1369
1368
let ( v1, v2) =
1370
1369
if vec_num_units < mask_num_units {
1371
1370
// NOTE: the mask needs to be the same length as the input vectors, so join the 2
1372
1371
// vectors and create a dummy second vector.
1373
- // TODO(antoyo): switch to using new_vector_access.
1374
- let array = self . context . new_bitcast ( None , v1, array_type) ;
1375
1372
let mut elements = vec ! [ ] ;
1376
1373
for i in 0 ..vec_num_units {
1377
- elements. push ( self . context . new_array_access ( None , array , self . context . new_rvalue_from_int ( self . int_type , i as i32 ) ) . to_rvalue ( ) ) ;
1374
+ elements. push ( self . context . new_vector_access ( None , v1 , self . context . new_rvalue_from_int ( self . int_type , i as i32 ) ) . to_rvalue ( ) ) ;
1378
1375
}
1379
- // TODO(antoyo): switch to using new_vector_access.
1380
- let array = self . context . new_bitcast ( None , v2, array_type) ;
1381
1376
for i in 0 ..( mask_num_units - vec_num_units) {
1382
- elements. push ( self . context . new_array_access ( None , array , self . context . new_rvalue_from_int ( self . int_type , i as i32 ) ) . to_rvalue ( ) ) ;
1377
+ elements. push ( self . context . new_vector_access ( None , v2 , self . context . new_rvalue_from_int ( self . int_type , i as i32 ) ) . to_rvalue ( ) ) ;
1383
1378
}
1384
1379
let v1 = self . context . new_rvalue_from_vector ( None , result_type, & elements) ;
1385
1380
let zero = self . context . new_rvalue_zero ( element_type) ;
@@ -1399,10 +1394,8 @@ impl<'a, 'gcc, 'tcx> Builder<'a, 'gcc, 'tcx> {
1399
1394
// NOTE: if padding was added, only select the number of elements of the masks to
1400
1395
// remove that padding in the result.
1401
1396
let mut elements = vec ! [ ] ;
1402
- // TODO(antoyo): switch to using new_vector_access.
1403
- let array = self . context . new_bitcast ( None , result, array_type) ;
1404
1397
for i in 0 ..mask_num_units {
1405
- elements. push ( self . context . new_array_access ( None , array , self . context . new_rvalue_from_int ( self . int_type , i as i32 ) ) . to_rvalue ( ) ) ;
1398
+ elements. push ( self . context . new_vector_access ( None , result , self . context . new_rvalue_from_int ( self . int_type , i as i32 ) ) . to_rvalue ( ) ) ;
1406
1399
}
1407
1400
self . context . new_rvalue_from_vector ( None , result_type, & elements)
1408
1401
}
0 commit comments