1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 18:54:02 +01:00
llvm-mirror/test/Transforms/InstCombine/oss_fuzz_32759.ll
Jeroen Dobbelaere b41d9938e1 [InstCombine] Fix out-of-bounds ashr(shl) optimization
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
2021-04-02 13:45:11 +02:00

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
}