forked from OSchip/llvm-project
26 lines
702 B
LLVM
26 lines
702 B
LLVM
|
; RUN: opt -reassociate %s -S -o - | FileCheck %s
|
||
|
|
||
|
; Reassociate pass used to crash on these example
|
||
|
|
||
|
|
||
|
define float @undef1() {
|
||
|
wrapper_entry:
|
||
|
; CHECK-LABEL: @undef1
|
||
|
; CHECK: ret float fadd (float undef, float fadd (float undef, float fadd (float fsub (float -0.000000e+00, float undef), float fsub (float -0.000000e+00, float undef))))
|
||
|
%0 = fadd fast float undef, undef
|
||
|
%1 = fsub fast float undef, %0
|
||
|
%2 = fadd fast float undef, %1
|
||
|
ret float %2
|
||
|
}
|
||
|
|
||
|
define void @undef2() {
|
||
|
wrapper_entry:
|
||
|
; CHECK-LABEL: @undef2
|
||
|
; CHECK: unreachable
|
||
|
%0 = fadd fast float undef, undef
|
||
|
%1 = fadd fast float %0, 1.000000e+00
|
||
|
%2 = fsub fast float %0, %1
|
||
|
%3 = fmul fast float %2, 2.000000e+00
|
||
|
unreachable
|
||
|
}
|