brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.1 KiB · 59b33b1 Raw
166 lines · plain
1; RUN: llc < %s -mtriple=nvptx -mcpu=sm_20 | FileCheck %s2; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_20 | FileCheck %s3; RUN: %if ptxas-ptr32 %{ llc < %s -mtriple=nvptx -mcpu=sm_20 | %ptxas-verify %}4; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_20 | %ptxas-verify %}5 6define i16 @cvt_u16_f32(float %x) {7; CHECK: cvt.rzi.u16.f32 %rs{{[0-9]+}}, %r{{[0-9]+}};8; CHECK: ret;9  %a = fptoui float %x to i1610  ret i16 %a11}12define i16 @cvt_u16_f64(double %x) {13; CHECK: cvt.rzi.u16.f64 %rs{{[0-9]+}}, %rd{{[0-9]+}};14; CHECK: ret;15  %a = fptoui double %x to i1616  ret i16 %a17}18define i32 @cvt_u32_f32(float %x) {19; CHECK: cvt.rzi.u32.f32 %r{{[0-9]+}}, %r{{[0-9]+}};20; CHECK: ret;21  %a = fptoui float %x to i3222  ret i32 %a23}24define i32 @cvt_u32_f64(double %x) {25; CHECK: cvt.rzi.u32.f64 %r{{[0-9]+}}, %rd{{[0-9]+}};26; CHECK: ret;27  %a = fptoui double %x to i3228  ret i32 %a29}30define i64 @cvt_u64_f32(float %x) {31; CHECK: cvt.rzi.u64.f32 %rd{{[0-9]+}}, %r{{[0-9]+}};32; CHECK: ret;33  %a = fptoui float %x to i6434  ret i64 %a35}36define i64 @cvt_u64_f64(double %x) {37; CHECK: cvt.rzi.u64.f64 %rd{{[0-9]+}}, %rd{{[0-9]+}};38; CHECK: ret;39  %a = fptoui double %x to i6440  ret i64 %a41}42 43define float @cvt_f32_i16(i16 %x) {44; CHECK: cvt.rn.f32.u16 %r{{[0-9]+}}, %rs{{[0-9]+}};45; CHECK: ret;46  %a = uitofp i16 %x to float47  ret float %a48}49define float @cvt_f32_i32(i32 %x) {50; CHECK: cvt.rn.f32.u32 %r{{[0-9]+}}, %r{{[0-9]+}};51; CHECK: ret;52  %a = uitofp i32 %x to float53  ret float %a54}55define float @cvt_f32_i64(i64 %x) {56; CHECK: cvt.rn.f32.u64 %r{{[0-9]+}}, %rd{{[0-9]+}};57; CHECK: ret;58  %a = uitofp i64 %x to float59  ret float %a60}61define double @cvt_f64_i16(i16 %x) {62; CHECK: cvt.rn.f64.u16 %rd{{[0-9]+}}, %rs{{[0-9]+}};63; CHECK: ret;64  %a = uitofp i16 %x to double65  ret double %a66}67define double @cvt_f64_i32(i32 %x) {68; CHECK: cvt.rn.f64.u32 %rd{{[0-9]+}}, %r{{[0-9]+}};69; CHECK: ret;70  %a = uitofp i32 %x to double71  ret double %a72}73define double @cvt_f64_i64(i64 %x) {74; CHECK: cvt.rn.f64.u64 %rd{{[0-9]+}}, %rd{{[0-9]+}};75; CHECK: ret;76  %a = uitofp i64 %x to double77  ret double %a78}79 80define float @cvt_f32_f64(double %x) {81; CHECK: cvt.rn.f32.f64 %r{{[0-9]+}}, %rd{{[0-9]+}};82; CHECK: ret;83  %a = fptrunc double %x to float84  ret float %a85}86define double @cvt_f64_f32(float %x) {87; CHECK: cvt.f64.f32 %rd{{[0-9]+}}, %r{{[0-9]+}};88; CHECK: ret;89  %a = fpext float %x to double90  ret double %a91}92 93define float @cvt_f32_s16(i16 %x) {94; CHECK: cvt.rn.f32.s16 %r{{[0-9]+}}, %rs{{[0-9]+}}95; CHECK: ret96  %a = sitofp i16 %x to float97  ret float %a98}99define float @cvt_f32_s32(i32 %x) {100; CHECK: cvt.rn.f32.s32 %r{{[0-9]+}}, %r{{[0-9]+}}101; CHECK: ret102  %a = sitofp i32 %x to float103  ret float %a104}105define float @cvt_f32_s64(i64 %x) {106; CHECK: cvt.rn.f32.s64 %r{{[0-9]+}}, %rd{{[0-9]+}}107; CHECK: ret108  %a = sitofp i64 %x to float109  ret float %a110}111define double @cvt_f64_s16(i16 %x) {112; CHECK: cvt.rn.f64.s16 %rd{{[0-9]+}}, %rs{{[0-9]+}}113; CHECK: ret114  %a = sitofp i16 %x to double115  ret double %a116}117define double @cvt_f64_s32(i32 %x) {118; CHECK: cvt.rn.f64.s32 %rd{{[0-9]+}}, %r{{[0-9]+}}119; CHECK: ret120  %a = sitofp i32 %x to double121  ret double %a122}123define double @cvt_f64_s64(i64 %x) {124; CHECK: cvt.rn.f64.s64 %rd{{[0-9]+}}, %rd{{[0-9]+}}125; CHECK: ret126  %a = sitofp i64 %x to double127  ret double %a128}129 130define i16 @cvt_s16_f32(float %x) {131; CHECK: cvt.rzi.s16.f32 %rs{{[0-9]+}}, %r{{[0-9]+}};132; CHECK: ret;133  %a = fptosi float %x to i16134  ret i16 %a135}136define i16 @cvt_s16_f64(double %x) {137; CHECK: cvt.rzi.s16.f64 %rs{{[0-9]+}}, %rd{{[0-9]+}};138; CHECK: ret;139  %a = fptosi double %x to i16140  ret i16 %a141}142define i32 @cvt_s32_f32(float %x) {143; CHECK: cvt.rzi.s32.f32 %r{{[0-9]+}}, %r{{[0-9]+}};144; CHECK: ret;145  %a = fptosi float %x to i32146  ret i32 %a147}148define i32 @cvt_s32_f64(double %x) {149; CHECK: cvt.rzi.s32.f64 %r{{[0-9]+}}, %rd{{[0-9]+}};150; CHECK: ret;151  %a = fptosi double %x to i32152  ret i32 %a153}154define i64 @cvt_s64_f32(float %x) {155; CHECK: cvt.rzi.s64.f32 %rd{{[0-9]+}}, %r{{[0-9]+}};156; CHECK: ret;157  %a = fptosi float %x to i64158  ret i64 %a159}160define i64 @cvt_s64_f64(double %x) {161; CHECK: cvt.rzi.s64.f64 %rd{{[0-9]+}}, %rd{{[0-9]+}};162; CHECK: ret;163  %a = fptosi double %x to i64164  ret i64 %a165}166