1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=mipsel-linux-gnu -march=mipsel -mattr=mips16 -relocation-model=static < %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker@x = global float 0.000000e+00, align 4 4*9880d681SAndroid Build Coastguard Worker@.str = private unnamed_addr constant [20 x i8] c"in main: mips16 %f\0A\00", align 1 5*9880d681SAndroid Build Coastguard Worker 6*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind 7*9880d681SAndroid Build Coastguard Workerdefine void @foo() #0 { 8*9880d681SAndroid Build Coastguard Workerentry: 9*9880d681SAndroid Build Coastguard Worker %0 = load float, float* @x, align 4 10*9880d681SAndroid Build Coastguard Worker %conv = fpext float %0 to double 11*9880d681SAndroid Build Coastguard Worker %add = fadd double %conv, 1.500000e+00 12*9880d681SAndroid Build Coastguard Worker %conv1 = fptrunc double %add to float 13*9880d681SAndroid Build Coastguard Worker store float %conv1, float* @x, align 4 14*9880d681SAndroid Build Coastguard Worker ret void 15*9880d681SAndroid Build Coastguard Worker} 16*9880d681SAndroid Build Coastguard Worker; CHECK: .ent foo 17*9880d681SAndroid Build Coastguard Worker; CHECK: jal __mips16_extendsfdf2 18*9880d681SAndroid Build Coastguard Worker; CHECK: .end foo 19*9880d681SAndroid Build Coastguard Worker 20*9880d681SAndroid Build Coastguard Worker; Function Attrs: nounwind 21*9880d681SAndroid Build Coastguard Workerdefine void @nofoo() #1 { 22*9880d681SAndroid Build Coastguard Workerentry: 23*9880d681SAndroid Build Coastguard Worker %0 = load float, float* @x, align 4 24*9880d681SAndroid Build Coastguard Worker %conv = fpext float %0 to double 25*9880d681SAndroid Build Coastguard Worker %add = fadd double %conv, 3.900000e+00 26*9880d681SAndroid Build Coastguard Worker %conv1 = fptrunc double %add to float 27*9880d681SAndroid Build Coastguard Worker store float %conv1, float* @x, align 4 28*9880d681SAndroid Build Coastguard Worker ret void 29*9880d681SAndroid Build Coastguard Worker} 30*9880d681SAndroid Build Coastguard Worker 31*9880d681SAndroid Build Coastguard Worker; CHECK: .ent nofoo 32*9880d681SAndroid Build Coastguard Worker; CHECK: cvt.d.s $f{{.+}}, $f{{.+}} 33*9880d681SAndroid Build Coastguard Worker; CHECK: .end nofoo 34*9880d681SAndroid Build Coastguard Worker 35*9880d681SAndroid Build Coastguard Worker 36*9880d681SAndroid Build Coastguard Workerattributes #0 = { nounwind "less-precise-fpmad"="false" "mips16" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } 37*9880d681SAndroid Build Coastguard Workerattributes #1 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "nomips16" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } 38*9880d681SAndroid Build Coastguard Worker 39