[llvm] [LLVM][CodeGen][SVE] Improve custom lowering for EXTRACT_SUBVECTOR. (PR #90963)

Paul Walker via llvm-commits llvm-commits at lists.llvm.org
Fri May 10 03:21:37 PDT 2024


================
@@ -177,18 +177,19 @@ define void @ucvtf_v8i16_v8f64(ptr %a, ptr %b) {
 ; CHECK-NEXT:    uunpklo z1.s, z0.h
 ; CHECK-NEXT:    ext z0.b, z0.b, z0.b, #8
 ; CHECK-NEXT:    uunpklo z0.s, z0.h
-; CHECK-NEXT:    uunpklo z2.d, z1.s
-; CHECK-NEXT:    ext z1.b, z1.b, z1.b, #8
-; CHECK-NEXT:    uunpklo z3.d, z0.s
+; CHECK-NEXT:    mov z3.d, z1.d
----------------
paulwalker-arm wrote:

I've investigated this (via --debug=only=isel) and the only difference in the DAG prior to instruction selection is a few nodes having different numerical IDs.  The extra mov instruction disappears when using a Neoverse scheduling model so this looks like an existing issue with in-order scheduling.

Given these are streaming mode functions I believe  the current output is acceptable but please shout if you think otherwise.

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


More information about the llvm-commits mailing list