mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
b41d9938e1
This fixes a crash found by the oss fuzzer and reported by @fhahn. The suggestion of @RKSimon seems to be the correct fix here. (See D91343). The oss fuzz report can be found here: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=32759 Reviewed By: lebedev.ri Differential Revision: https://reviews.llvm.org/D99792
30 lines
873 B
LLVM
30 lines
873 B
LLVM
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
|
; RUN: opt < %s -instcombine -S | FileCheck %s
|
|
target datalayout = "n32"
|
|
|
|
define i1 @oss_fuzz_32759(i1 %y) {
|
|
; CHECK-LABEL: @oss_fuzz_32759(
|
|
; CHECK-NEXT: entry:
|
|
; CHECK-NEXT: br i1 undef, label [[COND_TRUE:%.*]], label [[END:%.*]]
|
|
; CHECK: cond.true:
|
|
; CHECK-NEXT: br label [[END]]
|
|
; CHECK: end:
|
|
; CHECK-NEXT: ret i1 false
|
|
;
|
|
entry:
|
|
br i1 undef, label %cond.true, label %end
|
|
|
|
cond.true: ; preds = %entry
|
|
%zy = zext i1 %y to i32
|
|
%B6 = shl i32 %zy, 2147483647
|
|
%B3 = ashr i32 %B6, 2147483647
|
|
%B7 = srem i32 %B3, 123
|
|
%cond = xor i32 %B7, %B3
|
|
br label %end
|
|
|
|
end: ; preds = %cond.true, %entry
|
|
%p = phi i32 [ %cond, %cond.true ], [ -1, %entry ]
|
|
%r = icmp eq i32 %p, 0
|
|
ret i1 %r
|
|
}
|