; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 ; RUN: llc < %s -mtriple=aarch64-unknown-linux-gnu | FileCheck %s define <4 x float> @f(ptr %0) { ; CHECK-LABEL: f: ; CHECK: // %bb.0: ; CHECK-NEXT: sub sp, sp, #32 ; CHECK-NEXT: str x30, [sp, #16] // 8-byte Spill ; CHECK-NEXT: .cfi_def_cfa_offset 32 ; CHECK-NEXT: .cfi_offset w30, -16 ; CHECK-NEXT: ldr q1, [x0, #56]! ; CHECK-NEXT: ldr d0, [x0, #16] ; CHECK-NEXT: mov v1.d[1], v0.d[0] ; CHECK-NEXT: str q1, [sp] // 16-byte Spill ; CHECK-NEXT: bl use ; CHECK-NEXT: ldr q0, [sp] // 16-byte Reload ; CHECK-NEXT: ldr x30, [sp, #16] // 8-byte Reload ; CHECK-NEXT: add sp, sp, #32 ; CHECK-NEXT: ret %2 = getelementptr inbounds nuw i8, ptr %0, i64 56 %3 = load <6 x float>, ptr %2, align 4 %4 = shufflevector <6 x float> %3, <6 x float> poison, <4 x i32> tail call void @use(ptr %2) ret <4 x float> %4 } declare void @use(ptr)