about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAndy Sadler <andrewsadler122@gmail.com>2022-10-02 18:29:51 -0500
committerAndy Sadler <andrewsadler122@gmail.com>2022-10-02 19:04:49 -0500
commit436710fa9bf5ea9a601705c2bd276e18751f2c24 (patch)
tree92433a9aace8b0737a17b353a6728fc6b7ab1e31
parent86a3e3bd03a3be2cbd44094878d6ea7528ba5c9c (diff)
downloadrust-436710fa9bf5ea9a601705c2bd276e18751f2c24.tar.gz
rust-436710fa9bf5ea9a601705c2bd276e18751f2c24.zip
simd: enable simd_as intrinsic
The method context.convert_vector, added to libgccjit for simd_cast,
appears to give the correct behavior for simd_as.  Instead of
special-casing simd_as, re-use simd_cast's impl for simd_as.

Signed-off-by: Andy Sadler <andrewsadler122@gmail.com>
-rw-r--r--failing-ui-tests.txt1
-rw-r--r--failing-ui-tests12.txt1
-rw-r--r--src/intrinsic/simd.rs2
3 files changed, 2 insertions, 2 deletions
diff --git a/failing-ui-tests.txt b/failing-ui-tests.txt
index 8b740cff4f5..6acd3808445 100644
--- a/failing-ui-tests.txt
+++ b/failing-ui-tests.txt
@@ -31,7 +31,6 @@ src/test/ui/sepcomp/sepcomp-fns-backwards.rs
 src/test/ui/sepcomp/sepcomp-fns.rs
 src/test/ui/sepcomp/sepcomp-statics.rs
 src/test/ui/simd/intrinsic/generic-arithmetic-pass.rs
-src/test/ui/simd/intrinsic/generic-as.rs
 src/test/ui/simd/intrinsic/generic-bitmask-pass.rs
 src/test/ui/simd/intrinsic/generic-gather-pass.rs
 src/test/ui/simd/intrinsic/generic-select-pass.rs
diff --git a/failing-ui-tests12.txt b/failing-ui-tests12.txt
index 7826875f04e..027c929d2f3 100644
--- a/failing-ui-tests12.txt
+++ b/failing-ui-tests12.txt
@@ -10,6 +10,7 @@ src/test/ui/packed/packed-tuple-struct-layout.rs
 src/test/ui/simd/array-type.rs
 src/test/ui/simd/intrinsic/float-minmax-pass.rs
 src/test/ui/simd/intrinsic/generic-arithmetic-saturating-pass.rs
+src/test/ui/simd/intrinsic/generic-as.rs
 src/test/ui/simd/intrinsic/generic-cast-pass.rs
 src/test/ui/simd/intrinsic/generic-cast-pointer-width.rs
 src/test/ui/simd/intrinsic/generic-comparison-pass.rs
diff --git a/src/intrinsic/simd.rs b/src/intrinsic/simd.rs
index 6d600997283..00c541a8af7 100644
--- a/src/intrinsic/simd.rs
+++ b/src/intrinsic/simd.rs
@@ -254,7 +254,7 @@ pub fn generic_simd_intrinsic<'a, 'gcc, 'tcx>(bx: &mut Builder<'a, 'gcc, 'tcx>,
     }
 
     #[cfg(feature="master")]
-    if name == sym::simd_cast {
+    if name == sym::simd_cast || name == sym::simd_as {
         require_simd!(ret_ty, "return");
         let (out_len, out_elem) = ret_ty.simd_size_and_type(bx.tcx());
         require!(