brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.1 KiB · d5ddf4d Raw
56 lines · plain
1; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s2 3; Test that a replicate of a load gets folded to vlrep also in cases where4; the load has multiple users.5 6; CHECK-NOT: vrep7 8 9define double @fun(ptr %Vsrc, <2 x double> %T) {10entry:11  %Vld1 = load double, ptr %Vsrc12  %Vgep2 = getelementptr double, ptr %Vsrc, i64 113  %Vld2 = load double, ptr %Vgep214  %Vgep3 = getelementptr double, ptr %Vsrc, i64 215  %Vld3 = load double, ptr %Vgep316  %Vgep4 = getelementptr double, ptr %Vsrc, i64 317  %Vld4 = load double, ptr %Vgep418  %Vgep5 = getelementptr double, ptr %Vsrc, i64 419  %Vld5 = load double, ptr %Vgep520  %Vgep6 = getelementptr double, ptr %Vsrc, i64 521  %Vld6 = load double, ptr %Vgep622 23  %V19 = insertelement <2 x double> undef, double %Vld1, i32 024  %V20 = shufflevector <2 x double> %V19, <2 x double> undef, <2 x i32> zeroinitializer25  %V21 = insertelement <2 x double> undef, double %Vld4, i32 026  %V22 = insertelement <2 x double> %V21, double %Vld5, i32 127  %V23 = fmul <2 x double> %V20, %V2228  %V24 = fadd <2 x double> %T, %V2329  %V25 = insertelement <2 x double> %V19, double %Vld2, i32 130  %V26 = insertelement <2 x double> undef, double %Vld6, i32 031  %V27 = insertelement <2 x double> %V26, double %Vld6, i32 132  %V28 = fmul <2 x double> %V25, %V2733  %V29 = fadd <2 x double> %T, %V2834  %V30 = insertelement <2 x double> undef, double %Vld2, i32 035  %V31 = shufflevector <2 x double> %V30, <2 x double> undef, <2 x i32> zeroinitializer36  %V32 = insertelement <2 x double> undef, double %Vld5, i32 037  %V33 = insertelement <2 x double> %V32, double %Vld6, i32 138  %V34 = fmul <2 x double> %V31, %V3339  %V35 = fadd <2 x double> %T, %V3440  %V36 = insertelement <2 x double> undef, double %Vld3, i32 041  %V37 = shufflevector <2 x double> %V36, <2 x double> undef, <2 x i32> zeroinitializer42  %V38 = fmul <2 x double> %V37, %V2243  %V39 = fadd <2 x double> %T, %V3844  %Vmul37 = fmul double %Vld3, %Vld645  %Vadd38 = fadd double %Vmul37, %Vmul3746 47  %VA0 = fadd <2 x double> %V24, %V2948  %VA1 = fadd <2 x double> %VA0, %V3549  %VA2 = fadd <2 x double> %VA1, %V3950 51  %VE0 = extractelement <2 x double> %VA2, i32 052  %VS1 = fadd double %VE0, %Vadd3853 54  ret double %VS155}56