brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.8 KiB · 98d9a57 Raw
71 lines · plain
1; RUN: llc -verify-machineinstrs -mcpu=pwr8 -mtriple=powerpc64le-unknown-linux-gnu -O3 < %s | FileCheck %s2 3; These tests verify that VSX swap optimization works for various4; manipulations of <2 x double> vectors.5 6@x = global <2 x double> <double 9.970000e+01, double -1.032220e+02>, align 167@z = global <2 x double> <double 2.332000e+01, double 3.111111e+01>, align 168 9define void @bar0(double %y) {10entry:11  %0 = load <2 x double>, ptr @x, align 1612  %vecins = insertelement <2 x double> %0, double %y, i32 013  store <2 x double> %vecins, ptr @z, align 1614  ret void15}16 17; CHECK-LABEL: @bar018; CHECK-DAG: xxswapd 0, 119; CHECK-DAG: lxvd2x [[REG1:[0-9]+]]20; CHECK: xxmrgld [[REG2:[0-9]+]], 0, [[REG1]]21; CHECK: stxvd2x [[REG2]]22; CHECK-NOT: xxswapd23 24define void @bar1(double %y) {25entry:26  %0 = load <2 x double>, ptr @x, align 1627  %vecins = insertelement <2 x double> %0, double %y, i32 128  store <2 x double> %vecins, ptr @z, align 1629  ret void30}31 32; CHECK-LABEL: @bar133; CHECK-DAG: xxswapd 0, 134; CHECK-DAG: lxvd2x [[REG1:[0-9]+]]35; CHECK: xxpermdi [[REG2:[0-9]+]], [[REG1]], 0, 136; CHECK: stxvd2x [[REG2]]37; CHECK-NOT: xxswapd38 39define void @baz0() {40entry:41  %0 = load <2 x double>, ptr @z, align 1642  %1 = load <2 x double>, ptr @x, align 1643  %vecins = shufflevector <2 x double> %0, <2 x double> %1, <2 x i32> <i32 0, i32 2>44  store <2 x double> %vecins, ptr @z, align 1645  ret void46}47 48; CHECK-LABEL: @baz049; CHECK: lxvd2x50; CHECK: lxvd2x51; CHECK: xxmrghd52; CHECK: stxvd2x53; CHECK-NOT: xxswapd54 55define void @baz1() {56entry:57  %0 = load <2 x double>, ptr @z, align 1658  %1 = load <2 x double>, ptr @x, align 1659  %vecins = shufflevector <2 x double> %0, <2 x double> %1, <2 x i32> <i32 3, i32 1>60  store <2 x double> %vecins, ptr @z, align 1661  ret void62}63 64; CHECK-LABEL: @baz165; CHECK: lxvd2x66; CHECK: lxvd2x67; CHECK: xxmrgld68; CHECK: stxvd2x69; CHECK-NOT: xxswapd70 71