60 lines · plain
1; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s2target datalayout = "E-m:e-i64:64-n32:64"3 4define void @_Z4testSt7complexIfE(float %v0, float %v1, ptr %ref.tmp, ptr %_M_value.realp.i.i, ptr %_M_value.imagp.i.i) {5entry:6 %v2 = load i64, ptr %ref.tmp, align 87 %v3 = lshr i64 %v2, 328 %v4 = trunc i64 %v3 to i329 %v5 = bitcast i32 %v4 to float10 %v6 = trunc i64 %v2 to i3211 %v7 = bitcast i32 %v6 to float12 %mul_ad.i.i = fmul float %v5, %v113 %mul_bc.i.i = fmul float %v7, %v014 %mul_i.i.i = fadd float %mul_ad.i.i, %mul_bc.i.i15 %mul_ac.i.i = fmul float %v5, %v016 %mul_bd.i.i = fmul float %v7, %v117 %mul_r.i.i = fsub float %mul_ac.i.i, %mul_bd.i.i18 store float %mul_r.i.i, ptr %_M_value.realp.i.i, align 419 store float %mul_i.i.i, ptr %_M_value.imagp.i.i, align 420 ret void21 22; CHECK-LABEL: @_Z4testSt7complexIfE23; CHECK-NOT: ld {{[0-9]+}}, 0(5)24; CHECK-NOT: stw25; CHECK-NOT: rldicl26; CHECK-DAG: lfs {{[0-9]+}}, 4(5)27; CHECK-DAG: lfs {{[0-9]+}}, 0(5)28; CHECK: blr29}30 31define ptr @_Z4testSt7complexIfE_idx(float %v0, float %v1, ptr %ref.tmp, ptr %_M_value.realp.i.i, ptr %_M_value.imagp.i.i) {32entry:33 %r = getelementptr i64, ptr %ref.tmp, i64 134 %v2 = load i64, ptr %r, align 835 %v3 = lshr i64 %v2, 3236 %v4 = trunc i64 %v3 to i3237 %v5 = bitcast i32 %v4 to float38 %v6 = trunc i64 %v2 to i3239 %v7 = bitcast i32 %v6 to float40 %mul_ad.i.i = fmul float %v5, %v141 %mul_bc.i.i = fmul float %v7, %v042 %mul_i.i.i = fadd float %mul_ad.i.i, %mul_bc.i.i43 %mul_ac.i.i = fmul float %v5, %v044 %mul_bd.i.i = fmul float %v7, %v145 %mul_r.i.i = fsub float %mul_ac.i.i, %mul_bd.i.i46 store float %mul_r.i.i, ptr %_M_value.realp.i.i, align 447 store float %mul_i.i.i, ptr %_M_value.imagp.i.i, align 448 ret ptr %r49 50; CHECK-LABEL: @_Z4testSt7complexIfE51; CHECK-NOT: ld {{[0-9]+}}, 8(5)52; CHECK-NOT: ldu {{[0-9]+}}, 8(5)53; CHECK-NOT: stw54; CHECK-NOT: rldicl55; CHECK-DAG: lfsu {{[0-9]+}}, 8(3)56; CHECK-DAG: lfs {{[0-9]+}}, 4(3)57; CHECK: blr58}59 60