[llvm] [AArch64] Convert UADDV(add(zext, zext)) into UADDLV(concat). (PR #78301)

David Green via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 16 09:45:55 PST 2024


================
@@ -513,11 +513,15 @@ entry:
 define i32 @add_v16i8_v16i32_zext(<16 x i8> %x) {
 ; CHECK-SD-BASE-LABEL: add_v16i8_v16i32_zext:
 ; CHECK-SD-BASE:       // %bb.0: // %entry
-; CHECK-SD-BASE-NEXT:    ushll2 v1.8h, v0.16b, #0
-; CHECK-SD-BASE-NEXT:    ushll v0.8h, v0.8b, #0
-; CHECK-SD-BASE-NEXT:    uaddl2 v2.4s, v0.8h, v1.8h
-; CHECK-SD-BASE-NEXT:    uaddl v0.4s, v0.4h, v1.4h
-; CHECK-SD-BASE-NEXT:    add v0.4s, v0.4s, v2.4s
+; CHECK-SD-BASE-NEXT:    ushll v1.8h, v0.8b, #0
----------------
davemgreen wrote:

We might have to address some of these, maybe by being more precise about the type sizes. I think a number of them might go away if the position of the code is adjusted. If not we might need to add a check that the operands look like they can be concat.

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


More information about the llvm-commits mailing list