[llvm] [AArch64] Correct SCVTF/UCVTF instructions for vector input (PR #152974)

Eli Friedman via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 8 12:48:21 PDT 2025


================
@@ -202,10 +196,8 @@ define float @scvtf_f32i64_neg(<2 x i64> %x) {
  ret float %conv
 }
 
-; This test does not give the indended result of scvtf s0, d0
-; This is due to the input being loaded as a 2 item vector and
-; therefore using vector inputs that do not match the pattern
-; This test will be fixed in a future revision
+; <1 x float> is illegal on AArch64 and is widened to <2 x float>.
+; This widening introduces the extra insert/extract/zeroing instructions.
----------------
efriedma-quic wrote:

Not really related to this patch, but scvtf zeros the high bits of the register.  So theoretically we should be able to pattern-match the extra zeroing operation.  Not sure if it's worth spending the time to implement.

https://github.com/llvm/llvm-project/pull/152974


More information about the llvm-commits mailing list