1*9880d681SAndroid Build Coastguard Worker; RUN: opt -S -instcombine < %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Workerdefine float @test1(float %x) nounwind readnone ssp { 4*9880d681SAndroid Build Coastguard Worker %div = fdiv float %x, 0x3810000000000000 5*9880d681SAndroid Build Coastguard Worker ret float %div 6*9880d681SAndroid Build Coastguard Worker 7*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test1( 8*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: fmul float %x, 0x47D0000000000000 9*9880d681SAndroid Build Coastguard Worker} 10*9880d681SAndroid Build Coastguard Worker 11*9880d681SAndroid Build Coastguard Workerdefine float @test2(float %x) nounwind readnone ssp { 12*9880d681SAndroid Build Coastguard Worker %div = fdiv float %x, 0x47E0000000000000 13*9880d681SAndroid Build Coastguard Worker ret float %div 14*9880d681SAndroid Build Coastguard Worker 15*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test2( 16*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: fdiv float %x, 0x47E0000000000000 17*9880d681SAndroid Build Coastguard Worker} 18*9880d681SAndroid Build Coastguard Worker 19*9880d681SAndroid Build Coastguard Workerdefine float @test3(float %x) nounwind readnone ssp { 20*9880d681SAndroid Build Coastguard Worker %div = fdiv float %x, 0x36A0000000000000 21*9880d681SAndroid Build Coastguard Worker ret float %div 22*9880d681SAndroid Build Coastguard Worker 23*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test3( 24*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: fdiv float %x, 0x36A0000000000000 25*9880d681SAndroid Build Coastguard Worker} 26*9880d681SAndroid Build Coastguard Worker 27*9880d681SAndroid Build Coastguard Workerdefine float @test4(float %x) nounwind readnone ssp { 28*9880d681SAndroid Build Coastguard Worker %div = fdiv fast float %x, 8.0 29*9880d681SAndroid Build Coastguard Worker ret float %div 30*9880d681SAndroid Build Coastguard Worker 31*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test4( 32*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: fmul fast float %x, 1.250000e-01 33*9880d681SAndroid Build Coastguard Worker} 34*9880d681SAndroid Build Coastguard Worker 35*9880d681SAndroid Build Coastguard Workerdefine float @test5(float %x, float %y, float %z) nounwind readnone ssp { 36*9880d681SAndroid Build Coastguard Worker %div1 = fdiv fast float %x, %y 37*9880d681SAndroid Build Coastguard Worker %div2 = fdiv fast float %div1, %z 38*9880d681SAndroid Build Coastguard Worker ret float %div2 39*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test5( 40*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: fmul fast 41*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: fdiv fast 42*9880d681SAndroid Build Coastguard Worker} 43*9880d681SAndroid Build Coastguard Worker 44*9880d681SAndroid Build Coastguard Workerdefine float @test6(float %x, float %y, float %z) nounwind readnone ssp { 45*9880d681SAndroid Build Coastguard Worker %div1 = fdiv fast float %x, %y 46*9880d681SAndroid Build Coastguard Worker %div2 = fdiv fast float %z, %div1 47*9880d681SAndroid Build Coastguard Worker ret float %div2 48*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: @test6( 49*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: fmul fast 50*9880d681SAndroid Build Coastguard Worker; CHECK-NEXT: fdiv fast 51*9880d681SAndroid Build Coastguard Worker} 52