1; RUN: llc -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 %0 = bitcast <2 x i64>* %x to i8* 11 call void @llvm.lifetime.start(i64 16, i8* %0) 12 %arrayidx = getelementptr inbounds <2 x i64>, <2 x i64>* %x, i64 0, i64 0 13 store <2 x i64> <i64 0, i64 1>, <2 x i64>* %x, align 16 14 call void @foo(i64* %arrayidx) 15 call void @llvm.lifetime.end(i64 16, i8* %0) 16 ret void 17} 18 19; CHECK-LABEL: @bar 20; CHECK: lxvd2x 21; CHECK: stxvd2x 22; CHECK-NOT: xxswapd 23 24declare void @llvm.lifetime.start(i64, i8* nocapture) 25declare void @foo(i64*) 26declare void @llvm.lifetime.end(i64, i8* nocapture) 27 28