49 lines · plain
1; RUN: llc -verify-machineinstrs -mcpu=pwr9 -mattr=+vsx -ppc-vsr-nums-as-vr \2; RUN: -mtriple=powerpc64le-unknown-linux-gnu -ppc-asm-full-reg-names < %s \3; RUN: | FileCheck %s4; RUN: llc -verify-machineinstrs -mcpu=pwr9 -mattr=+vsx -ppc-vsr-nums-as-vr \5; RUN: -mtriple=powerpc64-unknown-linux-gnu -ppc-asm-full-reg-names < %s \6; RUN: | FileCheck -check-prefix=CHECK-BE %s7 8; Function Attrs: norecurse nounwind readnone9define double @cp_fp1(<2 x double> %v) {10 ; CHECK-LABEL: cp_fp1:11 ; CHECK: xscpsgndp f1, v2, v212 ; CHECK: blr13 14 ; CHECK-BE-LABEL: cp_fp1:15 ; CHECK-BE: xxswapd vs1, v216 ; CHECK-BE: blr17 entry:18 %vecext = extractelement <2 x double> %v, i32 119 ret double %vecext20}21 22; Function Attrs: norecurse nounwind readnone23define double @cp_fp2(<2 x double> %v) {24 ; CHECK-LABEL: cp_fp2:25 ; CHECK: xxswapd vs1, v226 ; CHECK: blr27 28 ; CHECK-BE-LABEL: cp_fp2:29 ; CHECK-BE: xscpsgndp f1, v2, v230 ; CHECK-BE: blr31 entry:32 %vecext = extractelement <2 x double> %v, i32 033 ret double %vecext34}35 36; Function Attrs: norecurse nounwind readnone37define <2 x double> @cp_fp3(double %v) {38 ; CHECK-LABEL: cp_fp3:39 ; CHECK: xxspltd v2, vs1, 040 ; CHECK: blr41 42 ; CHECK-BE-LABEL: cp_fp3:43 ; CHECK-BE: xscpsgndp v2, f1, f144 ; CHECK-BE: blr45 entry:46 %vecins = insertelement <2 x double> undef, double %v, i32 047 ret <2 x double> %vecins48}49