31 lines
682 B
LLVM
31 lines
682 B
LLVM
; RUN: opt -sccp -S < %s | FileCheck %s
|
|
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
|
|
target triple = "x86_64-unknown-linux-gnu"
|
|
|
|
define i32 @main() {
|
|
entry:
|
|
br label %lbl_1154
|
|
|
|
lbl_1154:
|
|
%b0.0 = phi i32 [ -119, %entry ], [ 0, %lbl_1154 ]
|
|
%cmp11 = icmp slt i32 %b0.0, 0
|
|
%shl.op = shl i32 33554432, %b0.0
|
|
%cmp1445 = icmp ult i32 %shl.op, 33554432
|
|
%cmp14 = or i1 %cmp11, %cmp1445
|
|
br i1 %cmp14, label %lbl_1154, label %if.end19
|
|
|
|
if.end19:
|
|
br i1 %cmp11, label %if.then22, label %cleanup26
|
|
|
|
if.then22:
|
|
tail call void @abort()
|
|
unreachable
|
|
|
|
cleanup26:
|
|
ret i32 %shl.op
|
|
}
|
|
; CHECK-LABEL: define i32 @main(
|
|
; CHECK-NOT: ret i32 undef
|
|
|
|
declare void @abort()
|