72 lines · plain
1// RUN: mlir-translate -mlir-to-llvmir %s | FileCheck %s2 3// CHECK-LABEL: @convert_float_to_tf32_rna4llvm.func @convert_float_to_tf32_rna(%src : f32) -> i32 {5 // CHECK: %{{.*}} = call i32 @llvm.nvvm.f2tf32.rna(float %{{.*}})6 %res = nvvm.convert.float.to.tf32 %src {rnd = #nvvm.fp_rnd_mode<rna>}7 llvm.return %res : i328}9 10// CHECK-LABEL: @convert_float_to_tf32_rna_sf11llvm.func @convert_float_to_tf32_rna_sf(%src : f32) -> i32 {12 // CHECK: %{{.*}} = call i32 @llvm.nvvm.f2tf32.rna.satfinite(float %{{.*}})13 %res = nvvm.convert.float.to.tf32 %src {rnd = #nvvm.fp_rnd_mode<rna>, sat = #nvvm.sat_mode<satfinite>}14 llvm.return %res : i3215}16 17// CHECK-LABEL: @convert_float_to_tf32_rn18llvm.func @convert_float_to_tf32_rn(%src : f32) -> i32 {19 // CHECK: %{{.*}} = call i32 @llvm.nvvm.f2tf32.rn(float %{{.*}})20 %res = nvvm.convert.float.to.tf32 %src {rnd = #nvvm.fp_rnd_mode<rn>}21 llvm.return %res : i3222}23 24// CHECK-LABEL: @convert_float_to_tf32_rn_relu25llvm.func @convert_float_to_tf32_rn_relu(%src : f32) -> i32 {26 // CHECK: %{{.*}} = call i32 @llvm.nvvm.f2tf32.rn.relu(float %{{.*}})27 %res = nvvm.convert.float.to.tf32 %src {rnd = #nvvm.fp_rnd_mode<rn>, relu=true}28 llvm.return %res : i3229}30 31// CHECK-LABEL: @convert_float_to_tf32_rn_sf32llvm.func @convert_float_to_tf32_rn_sf(%src : f32) -> i32 {33 // CHECK: %{{.*}} = call i32 @llvm.nvvm.f2tf32.rn.satfinite(float %{{.*}})34 %res = nvvm.convert.float.to.tf32 %src {rnd = #nvvm.fp_rnd_mode<rn>, sat = #nvvm.sat_mode<satfinite>}35 llvm.return %res : i3236}37 38// CHECK-LABEL: @convert_float_to_tf32_rn_relu_sf39llvm.func @convert_float_to_tf32_rn_relu_sf(%src : f32) -> i32 {40 // CHECK: %{{.*}} = call i32 @llvm.nvvm.f2tf32.rn.relu.satfinite(float %{{.*}})41 %res = nvvm.convert.float.to.tf32 %src {rnd = #nvvm.fp_rnd_mode<rn>, relu=true, sat = #nvvm.sat_mode<satfinite>}42 llvm.return %res : i3243}44 45// CHECK-LABEL: @convert_float_to_tf32_rz46llvm.func @convert_float_to_tf32_rz(%src : f32) -> i32 {47 // CHECK: %{{.*}} = call i32 @llvm.nvvm.f2tf32.rz(float %{{.*}})48 %res = nvvm.convert.float.to.tf32 %src {rnd = #nvvm.fp_rnd_mode<rz>}49 llvm.return %res : i3250}51 52// CHECK-LABEL: @convert_float_to_tf32_rz_relu53llvm.func @convert_float_to_tf32_rz_relu(%src : f32) -> i32 {54 // CHECK: %{{.*}} = call i32 @llvm.nvvm.f2tf32.rz.relu(float %{{.*}})55 %res = nvvm.convert.float.to.tf32 %src {rnd = #nvvm.fp_rnd_mode<rz>, relu=true}56 llvm.return %res : i3257}58 59// CHECK-LABEL: @convert_float_to_tf32_rz_sf60llvm.func @convert_float_to_tf32_rz_sf(%src : f32) -> i32 {61 // CHECK: %{{.*}} = call i32 @llvm.nvvm.f2tf32.rz.satfinite(float %{{.*}})62 %res = nvvm.convert.float.to.tf32 %src {rnd = #nvvm.fp_rnd_mode<rz>, sat = #nvvm.sat_mode<satfinite>}63 llvm.return %res : i3264}65 66// CHECK-LABEL: @convert_float_to_tf32_rz_relu_sf67llvm.func @convert_float_to_tf32_rz_relu_sf(%src : f32) -> i32 {68 // CHECK: %{{.*}} = call i32 @llvm.nvvm.f2tf32.rz.relu.satfinite(float %{{.*}})69 %res = nvvm.convert.float.to.tf32 %src {rnd = #nvvm.fp_rnd_mode<rz>, relu=true, sat = #nvvm.sat_mode<satfinite>}70 llvm.return %res : i3271}72