mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-24 20:29:53 +00:00
529f49db93
Summary: Fixes PR23809. Without passing the context to SimplifyICmpInst, we would use the assume to prove that the condition feeding the assume is trivially true (see isValidAssumeForContext in ValueTracking.cpp), causing the removal of the assume which may be useful for later optimizations. Test Plan: pr23800.ll Reviewers: hfinkel, majnemer Reviewed By: hfinkel Subscribers: henryhu, llvm-commits, wengxt, broune, meheff, eliben Differential Revision: http://reviews.llvm.org/D10695 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240683 91177308-0d34-0410-b5e6-96231b3b80d8
23 lines
531 B
LLVM
23 lines
531 B
LLVM
; RUN: opt < %s -instcombine -S | FileCheck %s
|
|
|
|
; InstCombine should preserve the call to @llvm.assume.
|
|
define i32 @icmp(i32 %a, i32 %b) {
|
|
; CHECK-LABEL: @icmp(
|
|
%sum = add i32 %a, %b
|
|
%1 = icmp sge i32 %sum, 0
|
|
call void @llvm.assume(i1 %1)
|
|
; CHECK: call void @llvm.assume
|
|
ret i32 %sum
|
|
}
|
|
|
|
define float @fcmp(float %a, float %b) {
|
|
; CHECK-LABEL: @fcmp(
|
|
%sum = fadd float %a, %b
|
|
%1 = fcmp oge float %sum, 0.0
|
|
call void @llvm.assume(i1 %1)
|
|
; CHECK: call void @llvm.assume
|
|
ret float %sum
|
|
}
|
|
|
|
declare void @llvm.assume(i1)
|