1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -instcombine -S | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker; PR4374 4*9880d681SAndroid Build Coastguard Workerdefine float @test1(float %a, float %b) nounwind { 5*9880d681SAndroid Build Coastguard Worker %t1 = fsub float %a, %b 6*9880d681SAndroid Build Coastguard Worker %t2 = fsub float -0.000000e+00, %t1 7*9880d681SAndroid Build Coastguard Worker 8*9880d681SAndroid Build Coastguard Worker; CHECK: %t1 = fsub float %a, %b 9*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: %t2 = fsub float -0.000000e+00, %t1 10*9880d681SAndroid Build Coastguard Worker 11*9880d681SAndroid Build Coastguard Worker ret float %t2 12*9880d681SAndroid Build Coastguard Worker} 13*9880d681SAndroid Build Coastguard Worker 14*9880d681SAndroid Build Coastguard Worker; <rdar://problem/7530098> 15*9880d681SAndroid Build Coastguard Workerdefine double @test2(double %x, double %y) nounwind { 16*9880d681SAndroid Build Coastguard Worker %t1 = fadd double %x, %y 17*9880d681SAndroid Build Coastguard Worker %t2 = fsub double %x, %t1 18*9880d681SAndroid Build Coastguard Worker 19*9880d681SAndroid Build Coastguard Worker; CHECK: %t1 = fadd double %x, %y 20*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: %t2 = fsub double %x, %t1 21*9880d681SAndroid Build Coastguard Worker 22*9880d681SAndroid Build Coastguard Worker ret double %t2 23*9880d681SAndroid Build Coastguard Worker} 24