https://llvm.org/bugs/show_bug.cgi?id=30596
Bug ID: 30596 Summary: [X86][AVX] Broadcast loads don't respect dependencies Product: libraries Version: 3.9 Hardware: PC OS: Windows NT Status: NEW Severity: normal Priority: P Component: Backend: X86 Assignee: unassignedb...@nondot.org Reporter: llvm-...@redking.me.uk CC: llvm-bugs@lists.llvm.org Classification: Unclassified As detailed in https://reviews.llvm.org/D25039: declare void @gfunc(<4 x float>*) declare void @llvm.lifetime.start(i64, i8*) declare void @llvm.lifetime.end(i64, i8*) define float @broadcast_lifetime() nounwind { %1 = alloca <4 x float>, align 16 %2 = alloca <4 x float>, align 16 %3 = bitcast <4 x float>* %1 to i8* %4 = bitcast <4 x float>* %2 to i8* call void @llvm.lifetime.start(i64 16, i8* %3) call void @gfunc(<4 x float>* %1) %5 = load <4 x float>, <4 x float>* %1, align 16 call void @llvm.lifetime.end(i64 16, i8* %3) call void @llvm.lifetime.start(i64 16, i8* %4) call void @gfunc(<4 x float>* %2) %6 = load <4 x float>, <4 x float>* %2, align 16 call void @llvm.lifetime.end(i64 16, i8* %4) %7 = extractelement <4 x float> %5, i32 1 %8 = extractelement <4 x float> %6, i32 1 %9 = fsub float %8, %7 ret float %9 } broadcast_lifetime: subq $24, %rsp movq %rsp, %rdi callq gfunc movq %rsp, %rdi callq gfunc vbroadcastss 4(%rsp), %xmm0 ## <-- 1st gfunc result vbroadcastss 4(%rsp), %xmm1 ## <-- 2nd gfunc result vsubss %xmm0, %xmm1, %xmm0 addq $24, %rsp retq -- You are receiving this mail because: You are on the CC list for the bug.
_______________________________________________ llvm-bugs mailing list llvm-bugs@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs