about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorAntoni Boucher <bouanto@zoho.com>2024-07-02 10:43:26 -0400
committerAntoni Boucher <bouanto@zoho.com>2024-07-02 12:28:44 -0400
commit4d3d0d492f25eddeb837e16b2773783c95f8933b (patch)
tree91ad7497a96b79b57c854176d182ac33c0d8af49 /src
parentcd014cda8c09afd88f6a9b8d75043c1d95bee734 (diff)
Fix intrinsic/generic-arithmetic-pass.rs test
Diffstat (limited to 'src')
-rw-r--r--src/intrinsic/simd.rs10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/intrinsic/simd.rs b/src/intrinsic/simd.rs
index a54e7107a90..01f207368e8 100644
--- a/src/intrinsic/simd.rs
+++ b/src/intrinsic/simd.rs
@@ -343,11 +343,13 @@ pub fn generic_simd_intrinsic<'a, 'gcc, 'tcx>(
             .map(|i| {
                 let index = bx.context.new_rvalue_from_long(bx.i32_type, i as i64);
                 let value = bx.extract_element(vector, index).to_rvalue();
-                if name == sym::simd_ctlz {
-                    bx.count_leading_zeroes(value.get_type().get_size() as u64 * 8, value)
+                let value_type = value.get_type();
+                let element = if name == sym::simd_ctlz {
+                    bx.count_leading_zeroes(value_type.get_size() as u64 * 8, value)
                 } else {
-                    bx.count_trailing_zeroes(value.get_type().get_size() as u64 * 8, value)
-                }
+                    bx.count_trailing_zeroes(value_type.get_size() as u64 * 8, value)
+                };
+                bx.context.new_cast(None, element, value_type)
             })
             .collect();
         return Ok(bx.context.new_rvalue_from_vector(None, vector.get_type(), &elements));