1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mcpu=a2 < %s | FileCheck %s -check-prefix=FPCVT 2*9880d681SAndroid Build Coastguard Worker; RUN: llc -mcpu=ppc64 < %s | FileCheck %s -check-prefix=PPC64 3*9880d681SAndroid Build Coastguard Workertarget datalayout = "E-m:e-i64:64-n32:64" 4*9880d681SAndroid Build Coastguard Workertarget triple = "powerpc64-unknown-linux-gnu" 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind readnone 7*9880d681SAndroid Build Coastguard Workerdefine float @fool(float %X) #0 { 8*9880d681SAndroid Build Coastguard Workerentry: 9*9880d681SAndroid Build Coastguard Worker %conv = fptosi float %X to i64 10*9880d681SAndroid Build Coastguard Worker %conv1 = sitofp i64 %conv to float 11*9880d681SAndroid Build Coastguard Worker ret float %conv1 12*9880d681SAndroid Build Coastguard Worker 13*9880d681SAndroid Build Coastguard Worker; FPCVT-LABEL: @fool 14*9880d681SAndroid Build Coastguard Worker; FPCVT: fctidz [[REG1:[0-9]+]], 1 15*9880d681SAndroid Build Coastguard Worker; FPCVT: fcfids 1, [[REG1]] 16*9880d681SAndroid Build Coastguard Worker; FPCVT: blr 17*9880d681SAndroid Build Coastguard Worker 18*9880d681SAndroid Build Coastguard Worker; PPC64-LABEL: @fool 19*9880d681SAndroid Build Coastguard Worker; PPC64: fctidz [[REG1:[0-9]+]], 1 20*9880d681SAndroid Build Coastguard Worker; PPC64: fcfid [[REG2:[0-9]+]], [[REG1]] 21*9880d681SAndroid Build Coastguard Worker; PPC64: frsp 1, [[REG2]] 22*9880d681SAndroid Build Coastguard Worker; PPC64: blr 23*9880d681SAndroid Build Coastguard Worker} 24*9880d681SAndroid Build Coastguard Worker 25*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind readnone 26*9880d681SAndroid Build Coastguard Workerdefine double @foodl(double %X) #0 { 27*9880d681SAndroid Build Coastguard Workerentry: 28*9880d681SAndroid Build Coastguard Worker %conv = fptosi double %X to i64 29*9880d681SAndroid Build Coastguard Worker %conv1 = sitofp i64 %conv to double 30*9880d681SAndroid Build Coastguard Worker ret double %conv1 31*9880d681SAndroid Build Coastguard Worker 32*9880d681SAndroid Build Coastguard Worker; FPCVT-LABEL: @foodl 33*9880d681SAndroid Build Coastguard Worker; FPCVT: fctidz [[REG1:[0-9]+]], 1 34*9880d681SAndroid Build Coastguard Worker; FPCVT: fcfid 1, [[REG1]] 35*9880d681SAndroid Build Coastguard Worker; FPCVT: blr 36*9880d681SAndroid Build Coastguard Worker 37*9880d681SAndroid Build Coastguard Worker; PPC64-LABEL: @foodl 38*9880d681SAndroid Build Coastguard Worker; PPC64: fctidz [[REG1:[0-9]+]], 1 39*9880d681SAndroid Build Coastguard Worker; PPC64: fcfid 1, [[REG1]] 40*9880d681SAndroid Build Coastguard Worker; PPC64: blr 41*9880d681SAndroid Build Coastguard Worker} 42*9880d681SAndroid Build Coastguard Worker 43*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind readnone 44*9880d681SAndroid Build Coastguard Workerdefine float @fooul(float %X) #0 { 45*9880d681SAndroid Build Coastguard Workerentry: 46*9880d681SAndroid Build Coastguard Worker %conv = fptoui float %X to i64 47*9880d681SAndroid Build Coastguard Worker %conv1 = uitofp i64 %conv to float 48*9880d681SAndroid Build Coastguard Worker ret float %conv1 49*9880d681SAndroid Build Coastguard Worker 50*9880d681SAndroid Build Coastguard Worker; FPCVT-LABEL: @fooul 51*9880d681SAndroid Build Coastguard Worker; FPCVT: fctiduz [[REG1:[0-9]+]], 1 52*9880d681SAndroid Build Coastguard Worker; FPCVT: fcfidus 1, [[REG1]] 53*9880d681SAndroid Build Coastguard Worker; FPCVT: blr 54*9880d681SAndroid Build Coastguard Worker} 55*9880d681SAndroid Build Coastguard Worker 56*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind readnone 57*9880d681SAndroid Build Coastguard Workerdefine double @fooudl(double %X) #0 { 58*9880d681SAndroid Build Coastguard Workerentry: 59*9880d681SAndroid Build Coastguard Worker %conv = fptoui double %X to i64 60*9880d681SAndroid Build Coastguard Worker %conv1 = uitofp i64 %conv to double 61*9880d681SAndroid Build Coastguard Worker ret double %conv1 62*9880d681SAndroid Build Coastguard Worker 63*9880d681SAndroid Build Coastguard Worker; FPCVT-LABEL: @fooudl 64*9880d681SAndroid Build Coastguard Worker; FPCVT: fctiduz [[REG1:[0-9]+]], 1 65*9880d681SAndroid Build Coastguard Worker; FPCVT: fcfidu 1, [[REG1]] 66*9880d681SAndroid Build Coastguard Worker; FPCVT: blr 67*9880d681SAndroid Build Coastguard Worker} 68*9880d681SAndroid Build Coastguard Worker 69*9880d681SAndroid Build Coastguard Workerattributes #0 = { nounwind readnone } 70*9880d681SAndroid Build Coastguard Worker 71