blob: 750677077ea1e4032f90b96161fc697f0399a353 [file] [edit]
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 4
; RUN: opt -S -passes=ipsccp < %s | FileCheck %s
define void @caller() {
; CHECK-LABEL: define void @caller() {
; CHECK-NEXT: entry:
; CHECK-NEXT: [[CALL:%.*]] = call i32 @f2(i8 0, i8 0)
; CHECK-NEXT: ret void
;
entry:
%call = call i32 @f2(i8 0, i8 0)
ret void
}
define internal i32 @f2(i8 %a0, i8 %a1) {
; CHECK-LABEL: define internal i32 @f2(
; CHECK-SAME: i8 range(i8 -9, 1) [[A0:%.*]], i8 range(i8 -9, 1) [[A1:%.*]]) {
; CHECK-NEXT: entry:
; CHECK-NEXT: [[CMP_NOT_NOT:%.*]] = icmp eq i8 [[A0]], -9
; CHECK-NEXT: br i1 [[CMP_NOT_NOT]], label [[COMMON_RET1:%.*]], label [[IF_THEN3:%.*]]
; CHECK: common.ret1:
; CHECK-NEXT: ret i32 poison
; CHECK: if.then3:
; CHECK-NEXT: [[CALL:%.*]] = call i32 @f2(i8 [[A1]], i8 -9)
; CHECK-NEXT: ret i32 poison
;
entry:
%cmp.not.not = icmp eq i8 %a0, -9
br i1 %cmp.not.not, label %common.ret1, label %if.then3
common.ret1: ; preds = %entry
ret i32 0
if.then3: ; preds = %entry
%call = call i32 @f2(i8 %a1, i8 -9)
ret i32 %call
}