[llvm] [AArch64][GISel] length aware BITCAST between different-element-width fixed vectors (PR #179123)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Sun Feb 1 11:13:28 PST 2026
================
@@ -0,0 +1,38 @@
+; REQUIRES: aarch64-registered-target
+; RUN: llc -mtriple=aarch64-unknown-linux-musl -global-isel -global-isel-abort=1 < %s | FileCheck %s
+
+define <2 x i8> @test_bitcast_assertion(<4 x i32> %vqaddq_v2.i.i, ptr %BS_VAR_0) {
+; CHECK-LABEL: test_bitcast_assertion:
+; CHECK: sub sp, sp, #16
+; CHECK: movi v[[ZERO_REG:[0-9]+]].2d, #0
+; CHECK: mov [[PTR_TMP:x[0-9]+]], sp
+
+; CHECK: .LBB0_1: // %for.cond
+; CHECK: umov [[EXTRACTED:w[0-9]+]], v[[ZERO_REG]].h[0]
+; CHECK: str q0, [sp]
+; CHECK: umull [[IDX:x[0-9]+]], [[EXTRACTED]], w9
+; CHECK: ldrh w[[VAL_REG:[0-9]+]], [[[PTR_TMP]], [[IDX]]]
+; CHECK: stp q[[ZERO_REG]], q[[ZERO_REG]], [x0, #32]
+; CHECK: stp q[[ZERO_REG]], q[[ZERO_REG]], [x0, #64]
+; CHECK: fmov d[[RES_REG:[0-9]+]], x[[VAL_REG]]
+; CHECK: stp q[[ZERO_REG]], q[[ZERO_REG]], [x0, #96]
+; CHECK: mov v[[RES_REG]].d[1], xzr
+; CHECK: stp q[[RES_REG]], q[[ZERO_REG]], [x0]
+; CHECK: b .LBB0_1
+
+entry:
+ br label %for.cond
+
+for.cond: ; preds = %for.cond, %entry
+ %0 = phi <64 x i16> [ %2, %for.cond ], [ zeroinitializer, %entry ]
----------------
arsenm wrote:
Use named values in tests
https://github.com/llvm/llvm-project/pull/179123
More information about the llvm-commits
mailing list