53 lines · plain
1; RUN: llc < %s -mcpu=pwr8 -mtriple=powerpc64le-unknown-unknown \2; RUN: -ppc-vsr-nums-as-vr -ppc-asm-full-reg-names -verify-machineinstrs \3; RUN: | FileCheck %s --check-prefix=CHECK-P84; RUN: llc < %s -mcpu=pwr9 -mtriple=powerpc64le-unknown-unknown \5; RUN: -ppc-vsr-nums-as-vr -ppc-asm-full-reg-names -verify-machineinstrs \6; RUN: | FileCheck %s --check-prefix=CHECK-P97 8@a = external local_unnamed_addr global <4 x i32>, align 169@pb = external local_unnamed_addr global ptr, align 810 11define void @testExpandPostRAPseudo(ptr nocapture readonly %ptr) {12; CHECK-P8-LABEL: testExpandPostRAPseudo:13; CHECK-P8: # %bb.0: # %entry14; CHECK-P8: lfiwzx f0, 0, r315; CHECK-P8: ld r4, .LC0@toc@l(r4)16; CHECK-P8: xxspltw vs0, vs0, 117; CHECK-P8; stxvd2x vs0, 0, r418; CHECK-P8: lfiwax f0, 0, r319; CHECK-P8: addis r3, r2, .LC1@toc@ha20; CHECK-P8: ld r3, .LC1@toc@l(r3)21; CHECK-P8: xscvsxdsp f0, f022; CHECK-P8: ld r3, 0(r3)23; CHECK-P8: stfsx f0, r3, r424; CHECK-P8: blr25;26; CHECK-P9-LABEL: testExpandPostRAPseudo:27; CHECK-P9: # %bb.0: # %entry28; CHECK-P9: addis r4, r2, .LC0@toc@ha29; CHECK-P9: lxvwsx vs0, 0, r330; CHECK-P9: ld r4, .LC0@toc@l(r4)31; CHECK-P9: stxv vs0, 0(r4)32; CHECK-P9: lis r4, 102433; CHECK-P9: lfiwax f0, 0, r334; CHECK-P9: addis r3, r2, .LC1@toc@ha35; CHECK-P9: ld r3, .LC1@toc@l(r3)36; CHECK-P9: xscvsxdsp f0, f037; CHECK-P9: ld r3, 0(r3)38; CHECK-P9: stfsx f0, r3, r439; CHECK-P9: blr40entry:41 %0 = load i32, ptr %ptr, align 442 %splat.splatinsert = insertelement <4 x i32> undef, i32 %0, i32 043 %splat.splat = shufflevector <4 x i32> %splat.splatinsert, <4 x i32> undef, <4 x i32> zeroinitializer44 store <4 x i32> %splat.splat, ptr @a, align 1645 tail call void asm sideeffect "#Clobber Rigisters", "~{f0},~{f3},~{f4},~{f5},~{f6},~{f7},~{f8},~{f9},~{f10},~{f11},~{f12},~{f13},~{f14},~{f15},~{f16},~{f17},~{f18},~{f19},~{f20},~{f21},~{f22},~{f23},~{f24},~{f25},~{f26},~{f27},~{f28},~{f29},~{f30},~{f31}"()46 %1 = load i32, ptr %ptr, align 447 %conv = sitofp i32 %1 to float48 %2 = load ptr, ptr @pb, align 849 %add.ptr = getelementptr inbounds float, ptr %2, i64 1677721650 store float %conv, ptr %add.ptr, align 451 ret void52}53