1*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mipsel < %s | FileCheck %s -check-prefix=32 2*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mips64el -mcpu=mips4 < %s | FileCheck %s -check-prefix=64 3*9880d681SAndroid Build Coastguard Worker; RUN: llc -march=mips64el -mcpu=mips64 < %s | FileCheck %s -check-prefix=64 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Worker@i1 = global [3 x i32] [i32 1, i32 2, i32 3], align 4 6*9880d681SAndroid Build Coastguard Worker@i3 = common global i32* null, align 4 7*9880d681SAndroid Build Coastguard Worker 8*9880d681SAndroid Build Coastguard Worker; 32-LABEL: test_float_int_: 9*9880d681SAndroid Build Coastguard Worker; 32: mtc1 ${{[0-9]+}}, $f[[R0:[0-9]+]] 10*9880d681SAndroid Build Coastguard Worker; 32: cvt.s.w $f{{[0-9]+}}, $f[[R0]] 11*9880d681SAndroid Build Coastguard Worker 12*9880d681SAndroid Build Coastguard Workerdefine float @test_float_int_(i32 %a) { 13*9880d681SAndroid Build Coastguard Workerentry: 14*9880d681SAndroid Build Coastguard Worker %conv = sitofp i32 %a to float 15*9880d681SAndroid Build Coastguard Worker ret float %conv 16*9880d681SAndroid Build Coastguard Worker} 17*9880d681SAndroid Build Coastguard Worker 18*9880d681SAndroid Build Coastguard Worker; 32-LABEL: test_double_int_: 19*9880d681SAndroid Build Coastguard Worker; 32: mtc1 ${{[0-9]+}}, $f[[R0:[0-9]+]] 20*9880d681SAndroid Build Coastguard Worker; 32: cvt.d.w $f{{[0-9]+}}, $f[[R0]] 21*9880d681SAndroid Build Coastguard Worker; 64-LABEL: test_double_int_: 22*9880d681SAndroid Build Coastguard Worker; 64: mtc1 ${{[0-9]+}}, $f[[R0:[0-9]+]] 23*9880d681SAndroid Build Coastguard Worker; 64: cvt.d.w $f{{[0-9]+}}, $f[[R0]] 24*9880d681SAndroid Build Coastguard Worker 25*9880d681SAndroid Build Coastguard Workerdefine double @test_double_int_(i32 %a) { 26*9880d681SAndroid Build Coastguard Workerentry: 27*9880d681SAndroid Build Coastguard Worker %conv = sitofp i32 %a to double 28*9880d681SAndroid Build Coastguard Worker ret double %conv 29*9880d681SAndroid Build Coastguard Worker} 30*9880d681SAndroid Build Coastguard Worker 31*9880d681SAndroid Build Coastguard Worker; 64-LABEL: test_float_LL_: 32*9880d681SAndroid Build Coastguard Worker; 64: dmtc1 ${{[0-9]+}}, $f[[R0:[0-9]+]] 33*9880d681SAndroid Build Coastguard Worker; 64: cvt.s.l $f{{[0-9]+}}, $f[[R0]] 34*9880d681SAndroid Build Coastguard Worker 35*9880d681SAndroid Build Coastguard Workerdefine float @test_float_LL_(i64 %a) { 36*9880d681SAndroid Build Coastguard Workerentry: 37*9880d681SAndroid Build Coastguard Worker %conv = sitofp i64 %a to float 38*9880d681SAndroid Build Coastguard Worker ret float %conv 39*9880d681SAndroid Build Coastguard Worker} 40*9880d681SAndroid Build Coastguard Worker 41*9880d681SAndroid Build Coastguard Worker; 64-LABEL: test_double_LL_: 42*9880d681SAndroid Build Coastguard Worker; 64: dmtc1 ${{[0-9]+}}, $f[[R0:[0-9]+]] 43*9880d681SAndroid Build Coastguard Worker; 64: cvt.d.l $f{{[0-9]+}}, $f[[R0]] 44*9880d681SAndroid Build Coastguard Worker 45*9880d681SAndroid Build Coastguard Workerdefine double @test_double_LL_(i64 %a) { 46*9880d681SAndroid Build Coastguard Workerentry: 47*9880d681SAndroid Build Coastguard Worker %conv = sitofp i64 %a to double 48*9880d681SAndroid Build Coastguard Worker ret double %conv 49*9880d681SAndroid Build Coastguard Worker} 50