From c7b91e65d8960da9e9fb6a3d044f7da71d5879fa Mon Sep 17 00:00:00 2001 From: Sanjay Patel Date: Mon, 9 May 2016 17:31:55 +0000 Subject: [CGP] avoid crashing from weightlessness It's possible that we have branch weights with 0 values. In that case, don't try to create an impossible BranchProbability. llvm-svn: 268935 --- llvm/test/CodeGen/X86/cmov-into-branch.ll | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'llvm/test/CodeGen/X86/cmov-into-branch.ll') diff --git a/llvm/test/CodeGen/X86/cmov-into-branch.ll b/llvm/test/CodeGen/X86/cmov-into-branch.ll index 35c1d3498a5..acb5a2bb51f 100644 --- a/llvm/test/CodeGen/X86/cmov-into-branch.ll +++ b/llvm/test/CodeGen/X86/cmov-into-branch.ll @@ -114,8 +114,22 @@ define i32 @weighted_select3(i32 %a, i32 %b) { ret i32 %sel } +; Weightlessness is no reason to die. +define i32 @unweighted_select(i32 %a, i32 %b) { +; CHECK-LABEL: unweighted_select: +; CHECK: # BB#0: +; CHECK-NEXT: testl %edi, %edi +; CHECK-NEXT: cmovnel %edi, %esi +; CHECK-NEXT: movl %esi, %eax +; CHECK-NEXT: retq +; + %cmp = icmp ne i32 %a, 0 + %sel = select i1 %cmp, i32 %a, i32 %b, !prof !3 + ret i32 %sel +} !0 = !{!"branch_weights", i32 1, i32 99} !1 = !{!"branch_weights", i32 1, i32 100} !2 = !{!"branch_weights", i32 100, i32 1} +!3 = !{!"branch_weights", i32 0, i32 0} -- cgit v1.2.3