xref: /llvm-project/llvm/test/CodeGen/PowerPC/swaps-le-4.ll (revision 5403c59c608c08c8ecd4303763f08eb046eb5e4d)
1; RUN: llc -verify-machineinstrs -mcpu=pwr8 -mtriple=powerpc64le-unknown-linux-gnu -O3 < %s | FileCheck %s
2
3; This test verifies that VSX swap optimization works when an implicit
4; subregister is present (in this case, in the XXPERMDI associated with
5; the store).
6
7define void @bar() {
8entry:
9  %x = alloca <2 x i64>, align 16
10  call void @llvm.lifetime.start.p0(i64 16, ptr %x)
11  store <2 x i64> <i64 0, i64 1>, ptr %x, align 16
12  call void @foo(ptr %x)
13  call void @llvm.lifetime.end.p0(i64 16, ptr %x)
14  ret void
15}
16
17; CHECK-LABEL: @bar
18; CHECK: lxvd2x
19; CHECK: stxvd2x
20; CHECK-NOT: xxswapd
21
22declare void @llvm.lifetime.start.p0(i64, ptr nocapture)
23declare void @foo(ptr)
24declare void @llvm.lifetime.end.p0(i64, ptr nocapture)
25
26