1*9880d681SAndroid Build Coastguard Worker; RUN: opt -reassociate %s -S -o - | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker; Reassociate pass used to crash on these example 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Workerdefine float @undef1() { 7*9880d681SAndroid Build Coastguard Workerwrapper_entry: 8*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @undef1 9*9880d681SAndroid Build Coastguard Worker; 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)))) 10*9880d681SAndroid Build Coastguard Worker %0 = fadd fast float undef, undef 11*9880d681SAndroid Build Coastguard Worker %1 = fsub fast float undef, %0 12*9880d681SAndroid Build Coastguard Worker %2 = fadd fast float undef, %1 13*9880d681SAndroid Build Coastguard Worker ret float %2 14*9880d681SAndroid Build Coastguard Worker} 15*9880d681SAndroid Build Coastguard Worker 16*9880d681SAndroid Build Coastguard Workerdefine void @undef2() { 17*9880d681SAndroid Build Coastguard Workerwrapper_entry: 18*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @undef2 19*9880d681SAndroid Build Coastguard Worker; CHECK: unreachable 20*9880d681SAndroid Build Coastguard Worker %0 = fadd fast float undef, undef 21*9880d681SAndroid Build Coastguard Worker %1 = fadd fast float %0, 1.000000e+00 22*9880d681SAndroid Build Coastguard Worker %2 = fsub fast float %0, %1 23*9880d681SAndroid Build Coastguard Worker %3 = fmul fast float %2, 2.000000e+00 24*9880d681SAndroid Build Coastguard Worker unreachable 25*9880d681SAndroid Build Coastguard Worker} 26