147 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -verify-machineinstrs -mcpu=pwr8 -mattr=+vsx -ppc-vsr-nums-as-vr \3; RUN: -ppc-asm-full-reg-names -mtriple=powerpc64le-unknown-linux-gnu < %s \4; RUN: | FileCheck %s5 6; RUN: llc -verify-machineinstrs -mcpu=pwr8 -mattr=+vsx -ppc-vsr-nums-as-vr \7; RUN: -ppc-asm-full-reg-names -mtriple=powerpc64-unknown-linux-gnu < %s \8; RUN: | FileCheck %s --check-prefix=CHECK-P8-BE9 10; RUN: llc -verify-machineinstrs -mcpu=pwr9 -mattr=-power9-vector -ppc-vsr-nums-as-vr \11; RUN: -ppc-asm-full-reg-names -mtriple=powerpc64le-unknown-linux-gnu < %s \12; RUN: | FileCheck --check-prefix=CHECK-P9-VECTOR %s13 14; RUN: llc -verify-machineinstrs -mcpu=pwr9 -ppc-vsr-nums-as-vr -ppc-asm-full-reg-names \15; RUN: -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s \16; RUN: --check-prefix=CHECK-P9 --implicit-check-not xxswapd17 18define <2 x double> @testi0(ptr %p1, ptr %p2) {19; CHECK-LABEL: testi0:20; CHECK: # %bb.0:21; CHECK-NEXT: lxvd2x vs0, 0, r322; CHECK-NEXT: lfd f1, 0(r4)23; CHECK-NEXT: xxswapd vs0, vs024; CHECK-NEXT: xxmrghd v2, vs0, vs125; CHECK-NEXT: blr26;27; CHECK-P8-BE-LABEL: testi0:28; CHECK-P8-BE: # %bb.0:29; CHECK-P8-BE-NEXT: lxvd2x vs0, 0, r330; CHECK-P8-BE-NEXT: lfd f1, 0(r4)31; CHECK-P8-BE-NEXT: xxpermdi v2, vs1, vs0, 132; CHECK-P8-BE-NEXT: blr33;34; CHECK-P9-VECTOR-LABEL: testi0:35; CHECK-P9-VECTOR: # %bb.0:36; CHECK-P9-VECTOR-NEXT: lxvd2x vs0, 0, r337; CHECK-P9-VECTOR-NEXT: lfd f1, 0(r4)38; CHECK-P9-VECTOR-NEXT: xxswapd vs0, vs039; CHECK-P9-VECTOR-NEXT: xxmrghd v2, vs0, vs140; CHECK-P9-VECTOR-NEXT: blr41;42; CHECK-P9-LABEL: testi0:43; CHECK-P9: # %bb.0:44; CHECK-P9-NEXT: lxv vs0, 0(r3)45; CHECK-P9-NEXT: lfd f1, 0(r4)46; CHECK-P9-NEXT: xxmrghd v2, vs0, vs147; CHECK-P9-NEXT: blr48 %v = load <2 x double>, ptr %p149 %s = load double, ptr %p250 %r = insertelement <2 x double> %v, double %s, i32 051 ret <2 x double> %r52 53 54}55 56define <2 x double> @testi1(ptr %p1, ptr %p2) {57; CHECK-LABEL: testi1:58; CHECK: # %bb.0:59; CHECK-NEXT: lxvd2x vs0, 0, r360; CHECK-NEXT: lfd f1, 0(r4)61; CHECK-NEXT: xxswapd vs0, vs062; CHECK-NEXT: xxpermdi v2, vs1, vs0, 163; CHECK-NEXT: blr64;65; CHECK-P8-BE-LABEL: testi1:66; CHECK-P8-BE: # %bb.0:67; CHECK-P8-BE-NEXT: lxvd2x vs0, 0, r368; CHECK-P8-BE-NEXT: lfd f1, 0(r4)69; CHECK-P8-BE-NEXT: xxmrghd v2, vs0, vs170; CHECK-P8-BE-NEXT: blr71;72; CHECK-P9-VECTOR-LABEL: testi1:73; CHECK-P9-VECTOR: # %bb.0:74; CHECK-P9-VECTOR-NEXT: lxvd2x vs0, 0, r375; CHECK-P9-VECTOR-NEXT: lfd f1, 0(r4)76; CHECK-P9-VECTOR-NEXT: xxswapd vs0, vs077; CHECK-P9-VECTOR-NEXT: xxpermdi v2, vs1, vs0, 178; CHECK-P9-VECTOR-NEXT: blr79;80; CHECK-P9-LABEL: testi1:81; CHECK-P9: # %bb.0:82; CHECK-P9-NEXT: lxv vs0, 0(r3)83; CHECK-P9-NEXT: lfd f1, 0(r4)84; CHECK-P9-NEXT: xxpermdi v2, vs1, vs0, 185; CHECK-P9-NEXT: blr86 %v = load <2 x double>, ptr %p187 %s = load double, ptr %p288 %r = insertelement <2 x double> %v, double %s, i32 189 ret <2 x double> %r90 91 92}93 94define double @teste0(ptr %p1) {95; CHECK-LABEL: teste0:96; CHECK: # %bb.0:97; CHECK-NEXT: lfd f1, 0(r3)98; CHECK-NEXT: blr99;100; CHECK-P8-BE-LABEL: teste0:101; CHECK-P8-BE: # %bb.0:102; CHECK-P8-BE-NEXT: lfd f1, 0(r3)103; CHECK-P8-BE-NEXT: blr104;105; CHECK-P9-VECTOR-LABEL: teste0:106; CHECK-P9-VECTOR: # %bb.0:107; CHECK-P9-VECTOR-NEXT: lfd f1, 0(r3)108; CHECK-P9-VECTOR-NEXT: blr109;110; CHECK-P9-LABEL: teste0:111; CHECK-P9: # %bb.0:112; CHECK-P9-NEXT: lfd f1, 0(r3)113; CHECK-P9-NEXT: blr114 %v = load <2 x double>, ptr %p1115 %r = extractelement <2 x double> %v, i32 0116 ret double %r117 118 119}120 121define double @teste1(ptr %p1) {122; CHECK-LABEL: teste1:123; CHECK: # %bb.0:124; CHECK-NEXT: lfd f1, 8(r3)125; CHECK-NEXT: blr126;127; CHECK-P8-BE-LABEL: teste1:128; CHECK-P8-BE: # %bb.0:129; CHECK-P8-BE-NEXT: lfd f1, 8(r3)130; CHECK-P8-BE-NEXT: blr131;132; CHECK-P9-VECTOR-LABEL: teste1:133; CHECK-P9-VECTOR: # %bb.0:134; CHECK-P9-VECTOR-NEXT: lfd f1, 8(r3)135; CHECK-P9-VECTOR-NEXT: blr136;137; CHECK-P9-LABEL: teste1:138; CHECK-P9: # %bb.0:139; CHECK-P9-NEXT: lfd f1, 8(r3)140; CHECK-P9-NEXT: blr141 %v = load <2 x double>, ptr %p1142 %r = extractelement <2 x double> %v, i32 1143 ret double %r144 145 146}147